FCOS
FCOS:Fully Convolutional One-Stage Object Detection是2019年I的一种无锚的目标检测算法。
官方github地址:https://github.com/tianzhi0549/FCOS
FCOS的安装照着官方readme即可安装,下面简单记录一下我的安装过程。
离线安装
安装前须知:需要检查依赖项是否具备,否则可能导致安装不成功。
我的环境以满足直接安装
1、下载离线安装包**FCOS-master.zip,并解压为FCOS-master。
2、进入路径FCOS-master:
sudo python setup.py build develop --no-deps
然后完成安装,安装成功后会打印Installing fcos script to /usr/local/bin和Installed …/FCOS-master
3、快速跑一个demo测试下:
下载官方的一个模型FCOS_imprv_R_50_FPN_1x.pth,执行:
python demo/fcos_demo.py
若正确输出检测图像则说明安装成功,若出错显示缺少一些包则根据提示安装即可。
训练模型
模型训练步骤也是按照官方文档来就可以了,下面记录下我自己的步骤:
1、准备数据集(可参考https://github.com/tianzhi0549/FCOS/issues/54#issuecomment-497558687)
FCOS自带支持voc类型的检测数据和coco类型的检测数据。
准备好自己的数据集后在/fcos_core/config/paths_catalog.py
里面设置自己的数据集。在/fcos_core/config/defaults.py
里面_C.MODEL.FCOS.NUM_CLASSESS = 81
设置自己的数据类别数量。在/fcos_core/data/datasets/voc.py
中设置自己的数据类别名。
然后在自己要训练的模型的yam文件里面设置使用的数据集:
如:/configs/fcos/fcos_imprv_R_50_FPN_1x.yaml
(这里面还可以设置包括图像大小,迭代次数等参数)
2、开始训练
若需要指定具体的GPU可通过:
export CUDA_VISIVLE_DEVICES="1"
来指定使用具体的1号卡训练
训练命令:
python -m torch.distributed.launch \
--nproc_per_node=2 \
--master_port=$((RANDOM + 10000)) \
tools/train_net.py \
--config-file configs/fcos/fcos_imprv_R_50_FPN_1x.yaml \
DATALOADER.NUM_WORKERS 2 \
OUTPUT_DIR out/fcos_imprv_R_50_FPN_1x
模型推理测试
测试命令:
python tools/test_net.py \
--config-file configs/fcos/fcos_imprv_R_50_FPN_1x.yaml \
MODEL.WEIGHT FCOS_imprv_R_50_FPN_1x.pth \
TEST.IMS_PER_BATCH 4
补充
1、针对自己的数据要去注意的目标大小分布,去设置fpn每一层对应的目标大小,在fcos_core/modeling/rpn/fcos/loss.py的object_sizes_of_interest那里。
2、fcos默认的推理的输入图像是较大的,所以速度会比较慢。