FCOS(pytorch)检测算法安装+训练自己的数据集(ubuntu16.04)

FCOS安装和训练

    • FCOS
    • 离线安装
    • 训练模型
    • 模型推理测试
    • 补充

FCOS

FCOS:Fully Convolutional One-Stage Object Detection是2019年I的一种无锚的目标检测算法。
官方github地址:https://github.com/tianzhi0549/FCOS
FCOS的安装照着官方readme即可安装,下面简单记录一下我的安装过程。

离线安装

安装前须知:需要检查依赖项是否具备,否则可能导致安装不成功。

FCOS(pytorch)检测算法安装+训练自己的数据集(ubuntu16.04)_第1张图片
我的环境以满足直接安装
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、开始训练
FCOS(pytorch)检测算法安装+训练自己的数据集(ubuntu16.04)_第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  

FCOS(pytorch)检测算法安装+训练自己的数据集(ubuntu16.04)_第3张图片

补充

1、针对自己的数据要去注意的目标大小分布,去设置fpn每一层对应的目标大小,在fcos_core/modeling/rpn/fcos/loss.py的object_sizes_of_interest那里。
2、fcos默认的推理的输入图像是较大的,所以速度会比较慢。

你可能感兴趣的:(计算机视觉,目标检测,pytorch,深度学习)