论文名称:ScratchDet: Training Single-Shot Object Detectors from Scratch(京东AI研究院)
地址:https://arxiv.org/abs/1810.08425v3
代码:https://github.com/KimSoybean/ScratchDet
1、摘要
当前最先进的目标检测器是通过在大规模分类数据集ImageNet上预先训练的现成网络进行微调的,这带来了一些额外的问题:
1) 分类和检测对翻译有不同程度的敏感性,导致学习目标偏差;
2) 体系结构受分类网络的限制,修改不便。
为了解决这些问题,随机初始化训练检测器是一个可行的解决方案。。然而,随机初始化训练检测器的性能一般比预先训练的检测器差,甚至在训练中存在收敛问题。本文主要研究随机初始化训练目标探测器。通过对以往优化景观设计工作的分析,发现当前随机初始化训练检测器中存在的一个被忽视的问题是批处理归一化(BatchNorm)。利用BatchNorm带来的稳定且可预测的梯度,可以在保持良好性能独立于网络体系结构的前提下,随机初始化训练稳定地训练检测器。利用这一优势,我们可以探索各种类型的网络用于目标检测,而不受收敛性差的影响。通过对下采样因子的大量实验和分析,提出了一种充分利用原始图像信息的Root-ResNet骨干网。我们的ScratchDet在PASCAL VOC 2007、2012和MS COCO上达到了最先进的精度,甚至比几个一级预训练方法表现得更好。
2、介绍
一般来说,通过预先训练的网络进行微调可以比随机初始化训练获得更好的性能。然而,天下没有免费的午餐。将预先训练好的网络用于目标检测有一些关键的限制。
1)一方面,分类和检测任务对翻译具有不同程度的敏感性。分类任务更倾向于平移不变性,因此需要 向下采样操作 (例如,最大池化和与步长为2卷积)来获得更好的性能。相比之下,局部纹理信息对目标检测更为关键,因此要谨慎使用平移不变操作(例如下采样操作)。
2)另一方面,在微调过程中改变网络结构(即使是很小的变化)也很不方便。如果采用一种新的体系结构,则需要在大数据集(如ImageNet)上重新进行预训练,这需要较高的计算成本
DSOD(深度监督)是第一个随机初始化训练CNN检测器的,其中深度监控起着至关重要的作用。在DenseNet中引入了深度监控作为密集的分层连接。然而,DSOD也受到DenseNet预定义体系结构的限制。如果DSOD使用其他类型的网络(例如VGGNet和ResNet),性能急剧下降(有时甚至在训练中崩溃)。
因此,如果我们希望随机初始化利用训练检测器,需要做两个改进:
1)在保证训练收敛的同时,不受任何类型网络的架构限制
2)提供与预先训练的网络一样好的性能(甚至更好)。
因此研究了在给定随机初始化网络的情况下,影响检测器优化的主要因素。BatchNorm将优化问题重新参数化,使其景观更加平滑,而不是减少内部协变量移位。基于这个理论,认为随机初始化训练检测器缺乏BatchNorm是导致收敛性差的主要原因。因此,我们将BatchNorm集成到主干网和检测头子网中(图2),发现BatchNorm可以帮助检测器很好地收敛于任何形式的网络(包括VGGNet和ResNet),而不需要经过预训练,并且显著地超过了预训练基线的精度。因此,我们可以自由地修改体系结构,而不受预先训练的模型的限制。
利用这一优势,我们分析了基于ResNet和VGGNet的不同结构的SSD检测器的性能,发现卷积层的第一层的采样步长对检测性能有很大的影响。在此基础上,我们重新设计了探测器的结构,引入