• Rethinking Training from Scratch for Object Detection


    Rethinking Training from Scratch for Object Detection

    一. 概述

    正常训练目标检测的流程分为以下几种:

    • 在imagenet上进行预训练,然后在特定数据集进行tune
    • 直接在数据集上进行从头训练

    两种方式各有千秋,前者可以很快收敛(在特定数据集收敛快),但是训练复杂(预训练实际长)。后者直接训练较为容易(尤其在修改模型结构时),但是训练周期较长(比tune阶段长很多)。这篇文章就是解决从头训练的时长问题,从而达到集成两者的优点(夸大其词的说法)。

    二. 流程

    论文比较简单,这里进行总结如下:

    代码地址: 链接地址
    论文地址: 链接地址

    • 精度和 (batchsize) 有关,且在一定范围内,越大越好。
    • 精度和图像的分辨率(大小)有关,且图像越大分辨率越好,图像过小对精度影响较小。
    • 精度和缩放有关,按照分类的缩放进行,不仅提高速度,且精度也比正常缩放效果好。
    • 精度和BN层有关,正相关。

    按照上述的总结,论文进行改进的训练如下:

    1. 使用BN层(当前网络基础结构)

    2. Pretrained先用小尺度图像进行训练,(batchsize)设置较大

    3. 数据处理部分-->先将图像缩放到 ((H,W) imes(1.0,1.2)) ,随机RandomCrop-->((H,W)),最后进行Padding到 ((h,W))

    4. Finetune阶段按照正常训练即可

    三. 总结

    1. 有一定使用意义,对于大数据集,直接使用此方法较好。
    2. 对于小的数据集,还是重新训练imagenet比较好
    3. VOC的数据集太小,而且分布较为散乱,这里对比意义不大。
    4. 笔者会在实际数据集上尝试之后进行补充(TODO

    2021.6.22补充:

    使用YOLOV5-Small在mmdetection环境下,第一阶段完全按照作者的方式进行,训练100Epoch,初始学习率0.01,最终降低到0.01/20。第二阶段修改为1)20%概率Mosaic数据增强。2)输入大小修改为800。3)增加100%颜色扰动。学习率和第一个阶段相同,训练100Epoch。(mAP=0.28)

    直接进行训练,不使用预训练模型,学习率相同,训练300epoch,(mAP=29.6)

    总结: 由于参数和论文有所差异,所以这个实验不完全准确。但是可以确定的是==>此论文方案可以加快训练速度,但是精度需要调参才能提高,而且和数据集关系较大!笔者建议缺卡的学生可以使用,其它情况没必要在这浪费时间。

    -------------------------------------------

    个性签名:衣带渐宽终不悔,为伊消得人憔悴!

    如果觉得这篇文章对你有小小的帮助的话,记得关注再下的公众号,同时在右下角点个“推荐”哦,博主在此感谢!

  • 相关阅读:
    8月4日
    8月3日 hive配置
    8月2日
    8月1日
    7月31日
    7月30日
    7月29日
    7月28日
    第六周总结
    重大技术需求进度报告一
  • 原文地址:https://www.cnblogs.com/wjy-lulu/p/14889270.html
Copyright © 2020-2023  润新知