论文解读-Bag of Freebies for Training Object Detection Neural Networks

文章目录

    • 1 动机
    • 2 改进点
      • 2.1 Visually Coherent Image Mixup
      • 2.2 Classification Head Label Smoothing
      • 2.3 Synchronize batchnorm
      • 2.4 Random shapes training
      • 2.5 对比实验结果
    • 3 总结
    • 4 参考资料


笔者在前面的博文中解读了文章“Bag of Tricks for Image Classification with Convolutional Neural Networks”,大家感兴趣的可以参见论文解读-Bag of Tricks for Image Classification with Convolutional Neural Networks。本文解读的文章作为其姊妹篇,同样出自亚马逊的李沐团队之手。最早论文放出来笔者就想去读了,可是工作上比较忙,周末终于闲下来有时间慢慢读,于是把自己对文章的理解和体会记录下来,希望能帮到对检测方向同样感兴趣的童鞋。

1 动机

尽管目标检测方向涌现出一大批优秀的算法,包括单阶段的Yolo、SSD和双阶段的Faster RCNN等,但是所有的调参都是针对单一算法本身,缺乏对通用性Trick的研究,而亚马逊团队的工作则填补了这一空白。
论文中所提的策略,针对通用的目标检测算法,比如堆叠所有的Tricks,可以将Yolo v3在COCO数据集上的效果提升4个点。

2 改进点

在cv领域,分类任务几乎是所有视觉任务的基础,所以,分类算法中用到的很多Tricks,同样也可以用于其他的视觉任务,比如目标检测。

2.1 Visually Coherent Image Mixup

“Visually Coherent Image Mixup”,翻译成“视觉上连贯的图像融合”。所谓的“Image Mixup”,指两幅图像逐像素加权求和的结果,那么问题来了,权值系数应该怎么取呢?论文“Beyond empirical risk minimization”中的作者将其建模成 β \beta β分布,该分布的不同超参数组合对应的概率密度图如下,
论文解读-Bag of Freebies for Training Object Detection Neural Networks_第1张图片
图像分类任务中也可以使用Mixup的策略,但是混合比率的分布如图中红色线所示,显然大多数时候混合比率的值接近0或者1,也即合成图片等价于添加噪声的过程。
目标检测任务中使用的Mixup策略,混合比例的分布如图中黄色线所示,显然大多数时候混合比率的值接近0.5,可视化对比效果如下,
论文解读-Bag of Freebies for Training Object Detection Neural Networks_第2张图片
实验结果如下图,
论文解读-Bag of Freebies for Training Object Detection Neural Networks_第3张图片
其中,“baseline”表示不使用mixup策略,”0.5:0.5 evenly”表示混合比例为常数0.5,beta(1.5, 1.5)表示混合比例为服从beta分布的变量。显然,mixup策略使Yolo v3的效果提升了2个点

2.2 Classification Head Label Smoothing

检测任务有两个输出分支,包括Classification Head和 Regression Head,对于分类的分支可以采用标签平滑策略,具体的操作过程可以参见本文刚开始给的博文链接。

2.3 Synchronize batchnorm

大家在平时的学习过程中,可能发现检测任务和识别任务的一个明显区别,即检测任务的batch size参数明显小于识别任务,以ocr检测任务为例,可能一张图中有成百上千的文字区域,也即成百上千个待检测目标,所以训练时的超参数batch size通常设置为1。那么问题来了,这样做有没有什么问题呢?
在使用单机多卡训练检测模型时,默认情况下,每个卡的样本是相互独立的,也即只对当前卡上的样本做batchnorm操作,当每个卡上的样本量很少时,会导致大的偏差,使效果反而变差。跨卡的Synchronize batchnorm可以使用全局的样本做归一化操作,模型的收敛效果更好。

2.4 Random shapes training

现实中的训练图像的尺寸通常是各不相同的,为了提高检测模型的鲁棒性,可以考虑将训练集图像分成若干个桶,例如每个桶的图像尺寸分别为 320 , 480 , 512 {320, 480, 512} 320,480,512。在训练的过程中,随机地从一个桶中选取batch图像,用来更新模型的参数。

2.5 对比实验结果

论文解读-Bag of Freebies for Training Object Detection Neural Networks_第4张图片
论文解读-Bag of Freebies for Training Object Detection Neural Networks_第5张图片

3 总结

(1)使用mixup策略,可以明显提升检测模型的效果,值得一提的是,这种数据增强策略特别适用于异常的图片场景,比如“房间中的大象”,也有很好的检测效果;
(2)“Synchronize batchnorm”策略适用于单机多卡训练的场景;

4 参考资料

https://arxiv.org/abs/1902.04103
https://zhuanlan.zhihu.com/p/40496177

你可能感兴趣的:(工程应用)