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

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

  • 8
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
要使用FCOS训练自己的数据集,你需要按照以下步骤进行操作: 1. 数据准备:首先,你需要准备好自己的训练数据集,包括图像和相应的标注信息。标注信息可以是Bounding Box或者其他形式的目标边界框和类别标签。 2. 数据格式转换:将数据集转换为FCOS所需的格式。FCOS要求数据集采用COCO格式,你可以使用相关的工具库来进行数据格式转换。 3. 配置网络模型:根据你的需求,选择合适的FCOS网络模型,并进行相应的配置。你可以根据数据集的类别数量和目标大小等因素调整模型的参数。 4. 数据增强:为了提高模型的泛化能力,可以对训练数据进行数据增强操作,例如随机裁剪、旋转、缩放等。 5. 模型训练:使用准备好的数据集配置好的网络模型开始训练。你可以使用常见的深度学习框架,如PyTorch或TensorFlow,来实现FCOS模型的训练。 6. 模型评估:在训练过程中,可以定期评估模型的性能。常见的评估指标包括准确率、召回率和平均精度均值(mAP)等。 7. 模型优化:根据评估结果,你可以对模型进行调优,例如调整学习率、增加训练轮数、调整网络结构等。 8. 模型测试:在模型训练完成后,你可以使用测试数据集对其进行测试,评估其在未见过的数据上的性能。 请注意,以上步骤提供了一个基本的框架,具体实施过程可能因你的数据集和需求而有所不同。此外,你需要有一定的深度学习知识和编程经验来完成这些步骤。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值