您的位置:首页 > 移动开发 > Objective-C

Rethinking Training from Scratch for Object Detection

2021-06-16 14:29 1286 查看

Rethinking Training from Scratch for Object Detection

一. 概述

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

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

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

二. 流程

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

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

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

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

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

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

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

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

三. 总结

  1. 有一定使用意义,对于大数据集,直接使用此方法较好。
  2. 对于小的数据集,还是重新训练imagenet比较好
  3. VOC的数据集太小,而且分布较为散乱,这里对比意义不大。
  4. 笔者会在实际数据集上尝试之后进行补充(TODO
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐