目标检测炼丹经验总结

本文总结了目标检测的模型设计与训练技巧,包括预训练模型的选择、检测头的改进、损失函数优化以及训练策略。实验表明,在特定场景下,FCOS模型优于FasterrCNN/Mask R-CNN,采用Decoupled Head和Focal Loss能显著提高mAP。此外,正样本选择策略如Centerness和SimOTA也有助于提升精度。在生产部署中,建议使用单阶段模型,如YOLO系列,以简化转换到ONNX和其它后端框架的过程。
摘要由CSDN通过智能技术生成

最近因为工作原因系统地摸了一下目标检测,也在生产环境部署了一波。公司的数据当然是不能放出来的,记录一些心得帮后来人少走弯路吧。

结论放在最前:在torchvision官方的预训练模型里,fasterrcnn/maskrcnn指标比fcos更高,但在本文进行的所有实验中fcos显著强于其他模型,目前达到的效果:考虑类别的mAP 0.535,不考虑类别0.636。

实验说明:以下结论依赖公司内部训练数据,测试结果套用COCO API取得,报告mAP为mAP50(即预测和groundtruth的IoU匹配阈值取0.5),并非mAP50:95。我司使用的数据比COCO大很多也难很多,所以指标绝对值参考意义不大,看相对提升即可。

  1. 模型设计
    a. 骨干网络
    i. 骨干网络性能越强越好
    1. resnext > resnet > mobilenet。从论文看ViT > CNN,但我没有尝试。
    2. resnext50_32x4d效果优于resnet50,收敛也更快,可以无缝替换。mAP可以提升3pt左右。
      ii. 预训练模型能极大加快收敛。
      iii. 使用预训练模型时,冻结底层参数,相比完全放开效果更好。
    3. 以resnet50为例,一般冻结5个阶段中的前2个。
      b. 检测头,性能由弱到强,每一个改进都能大幅提升mAP
      i. 初版仿yolo v1方案:无fpn,骨干网络接一层卷积,mAP~0.06
      ii. faster rcnn原始设计:采用fpn,rpn head一层卷积,roi head两层mlp。mAP提升约8pt(0.06->0.14&#x
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值