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默认的推理的输入图像是较大的,所以速度会比较慢。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐