FCOS 的训练验证
前面介绍了安装FCOS,开始训练验证。FCOS的源码分析放在后面。
下载官方的一个训练好的模型
下载官方的一个模型FCOS_imprv_R_50_FPN_1x.pth 放到工程的根目录下,然后在终端输入:
conda activate Pytorch
cd #工程目录下
python demo/fcos_demo.py
然后出现正确输出检测图像,部分如下:
根据官网信息,FCOS_imprv_R_50_FPN_1x.pth模型的AP在38.7%左右,效果还是不错的。
重新训练模型
模型训练步骤也是按照官方文档来就可以了。
1、准备数据集
FCOS自带支持voc类型的检测数据和coco类型的检测数据。应毕业设计要求,使用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、开始训练
于是在终端输入指令:(因为自己只有一张GTX1050Ti显卡)
python -m torch.distributed.launch \
--nproc_per_node=1 \
--master_port=$((RANDOM + 10000)) \
tools/train_net.py \
--config-file configs/fcos/fcos_imprv_R_50_FPN_1x.yaml \
DATALOADER.NUM_WORKERS 1 \
SOLVER.IMS_PER_BATCH 1\
OUTPUT_DIR out/fcos_imprv_R_50_FPN_1x
训练过程图:
3、模型测试
测试命令指令:
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