DSOD:Learning Deeply Supervised Object Detectors from Scratch 翻译

本文提出DSOD框架,可从零开始训练目标检测网络。先介绍CNN在目标检测等任务的应用及预训练网络的局限性,接着阐述DSOD结构和设计原则,如无提议框架、深度监督等,最后通过在PASCAL VOC 2007、2012和MS COCO数据集实验,验证了设计原则的有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本篇论文大多数部分是利用有道进行翻译的,目的只是帮助理解原论文,所以对本篇论文感兴趣的同学,一定要对着原文进行理解,否则会越看越乱。
DSOD: Learning Deeply Supervised Object Detectors from

																								摘要	
提出了一种基于深度监督的目标检测器(DSOD)框架,该框架可以对目标检测器进行从无到有的学习。最先进的对象对象严重依赖于在大规模分类数据集(如ImageNet)上预先训练的现成网络,由于分类和检测任务在损失函数和统计分布上的差异,存在学习偏差。检测任务的模型微调可以在一定程度上消除这种偏差,但不能从根本上消除。此外,将预先训练好的模型从分类转换到离散域之间的检测更加困难。(RGB到深度图像)。解决这两个关键问题的一个更好的方法是从零开始训练对象检测器,这激发了我们提出的DSOD。以往在这方面的ef-forts大多由于复杂的丢失函数和有限的目标检测训练数据而失败。在DSOD中,我们提出了一套从零开始训练对象检测器的设计原则。其中一个重要的发现是,深入的监督,通过密集的连接,在学习一个好的检测器中起着至关重要的作用。结合其他一些原理,我们开发了基于单镜头检测(SSD)框架的DSOD。在PASCAL VOC 2007、2012和ms COCO数据集上进行的实验表明,DSOD比最先进的模型紧凑得多的解决方案效果更好。例如,DSOD在所有三个基准上都优于sssd,具有实时检测速度,而对SSD只需要1/2的参数,对RCNN只需要1/10的参数。我们的代码和模型是可用的

1 introduction
卷积神经网络(CNNs)在图像分类[17、28、32、9、10]、目标检测[5、4、27、19、21、25]、图像分割[23、8、2、36]等许多计算机视觉任务中都有显著的性能提升。在过去的几年里,许多创新的CNN网络结构被提出。Szegedyet al.[32]提出了一个“Inception”模块,它将不同大小的文件生成的功能映射连接起来。Heet al.[9]提出了带有skipconnections的剩余学习块,它可以训练超过100层的深度网络。Huanget al.[10]提出了具有密集层状连接的densenet。这些优良的网络结构大大提高了许多视觉任务的精度。其中,目标检测由于其在监控、自动驾驶等方面的广泛应用,成为移动速度最快的领域之一。
为了获得良好的性能,大多数先进的目标检测系统都是在ImageNet[3]上对网络进行预训练,对网络进行微调。这个微调过程也被视为转移学习[24]。从预先训练的模型进行微调至少有两个优点。首先,有许多最先进的深层模型可以公开使用。重用它们进行目标检测非常方便。第二,微调可以快速生成最终模型,并且比分类任务查询的实例级带注释的培训数据要少得多。
然而,在目标检测中采用预训练网络也存在着严重的局限性:(1)结构设计空间有限。训练前的网络模型大多来自于基于图像的分类任务,这些任务通常非常繁重,包含大量的参数。现有的目标检测器直接采用预训练网络,控制/调整网络结构的灵活性很小(即使是网络结构的微小变化)。计算资源的需求也受到重网络结构的限制。
(2)学习的偏见。由于分类和检测任务之间的损失函数和类别分布不同,我们认为这将导致不同的搜索/优化空间。因此,学习可能偏向于局部最小值,这对检测任务不是最好的。(3)域不匹配。众所周知,微调可以缓解由于目标类别分布不同而造成的差距。然而,当源域(ImageNet)与目标域(如深度图像、医学图像等[7])存在较大的不匹配时,仍然是一个严重的问题
在这里插入图片描述

我们工作的动力来自以下两个问题。首先,有可能从零开始训练目标检测网络吗?第二,如果第一个答案是肯定的,有什么原则来设计一个资源高效的网络结构,为目标检测,同时保持较高的检测精度?为了实现这一目标,我们提出了一种深度监督对象检测器(DSOD),这是一种简单而有效的框架,可以从头开始学习对象检测器。DSOD具有相当的灵活性,我们可以针对不同的计算平台(如服务器、桌面、移动设备甚至嵌入式设备)定制不同的网络结构。我们提出了一套设计DSOD的原则。其中一个关键点是深层监督起着至关重要的作用,这是由[18,35]的工作所推动的。Xieetal [35]。提出了一种用于边缘检测的整体嵌套结构,该结构将边输出层包含到基网的每个凸级,实现了对边输出层的显式深度监控。本文通过DenseNet[10]中提出的密集分层连接,隐式地采用了深度监控,而不是使用带有侧输出层的多个插入损耗信号。在主干网子网中采用了密集结构,在前端多尺度预测层中也采用了密集结构。图1展示了前端预测层的结构比较。多分辨率预测图的融合和重用在一定程度上降低模型参数的同时,有助于保持甚至提高最终的精度

我们的主要贡献总结如下:
(1)我们提出的DSOD,据我们所知,世界上第一个框架,可以训练对象检测网络从零开始与最先进的性能。
(2)通过逐步消融研究,介绍并验证了一套从无到有设计高效目标检测网络的原理。
(3)通过实时处理速度和更紧凑的模型,我们的DSOD可以在三个标准基准(PASCAL VOC 2007、2012和MS COCO数据集)上实现最先进的性能
2 relation work
目标检测:最先进的基于CNN的对象设计方法可以分为两类:(i)基于推荐区域的方法和(ii)无建议的方法。基于推荐区域 的方法包括R-CNN[5]、Fast R-CNN[4]、Faster R-CNN[27]和R-FCN[19]。R-CNN使用选择性搜索[34],首先生成图像中潜在的目标区域,然后对提出的区域进行分类。R-CNN要求很高的计算成本,因为每个区域都是由CNN网络单独处理的。快速的R-CNN和更快的R-CNN通过共享计算和使用神经网络生成区域建议来提高效率。R-FCN通过去除全连接层和采用位置敏感的分数图进行最终检测,进一步提高了速度和精度
最近提出了YOLO[25]和SSD[21]等无提议的实时检测方法。利用一个前馈卷积网络直接预测对象类和位置。与基于该区域的方法相比,YOLO不再需要第二区域分类操作,因此速度非常快。SSD在几个方面改进了YOLO,包括(1)使用小卷积滤波器预测类别和定位框位置的锚偏移量;(2)利用金字塔特征进行不同尺度的预测;(3)使用默认框和长宽比来调整不同的对象形状。我们提出的DSOD是建立在SSD框架上的,它继承了SSD的速度和精度优势,同时产生了更小、更灵活的模型。用于检测的网络架构。在图像分类的网络体系结构设计方面,已经投入了大量的工作。出现了许多不同的网络,如AlexNet[17]、VGGNet[28]、GoogLeNet[32]、ResNet[9]和DenseNet[10]。同时,也提出了几种正则化技术[29,12]来进一步提高模型的性能。大多数检测方法[5,4,27,21]直接使用预训练的ImageNet(包括Alexnet,VGGnet,ResNet等)模型作为骨干网络
其他一些工作设计了用于目标检测的特定主干网络结构,但仍然需要先在ImageNet分类数据集上对网络进行预训练。例如,YOLO[25]定义了一个由24个卷积层和2个完全连接层组成的网络。YOLO9000[26]改进了YOLO,提出了一个名为Darknet-19的新网络,这是vggnet[28]的简化版本。Kimet al.[15]提出了用于对象检测的PVANet,它由GoogleNet的简化“Inception”块组成。Huanget al.[11]研究了网络结构和检测框架-工作的各种组合,发现更快的R-CNN[27]与incep- resnet -v2[31]实现了最高的性能。本文还考虑了一般对象检测的网络结构。然而,对ImageNet的预训练不再是DSOD所需要的。
从头开始学习深度模型。据我们所知,目前还没有训练目标检测网络从零开始的工作。与现有的解决方案相比,该方法具有非常吸引人的优点。我们将在下面几节中详细说明并验证该方法。在语义分割,J́egouet。[13]表明,设计良好的网络结构可以不使用预训练模型比目前最先进的解决方案表现的更好。它将DenseNets扩展到全卷积网络,通过添加上采样路径来恢复完整的输入分辨率
3 DSOD
在本节中,我们首先介绍DSOD体系结构及其组件,并阐述几个重要的设计原则。然后描述培训设置
3.1 DSOD结构
总体框架。所提出的DSOD方法是一种类似于SSD[21]的多尺度无建议检测框架。DSOD的网络结构可以分为两个部分:用于特征提取的主干子网络和用于预测多尺度响应图的前端子网络。骨干网是深度监督DenseNets[10]结构的一种变体,由一个主干块、四个密集块、两个过渡层和两个w/o池过渡层(a stem block, four dense blocks, two transition layers and two transition w/o pooling layers.)组成。前端子网(或称为DSOD预测层)融合了具有精细密集结构的多尺度预测响应。图1展示了所提出的DSOD预测层,以及SSD[21]中使用的多尺度预测图的平面结构。完整的DSOD网络架构见表1。我们在下面详细阐述了每个组件及其相应的设计原则
在这里插入图片描述

原则1:Proposal-free。我们调查了所有基于CNN的最先进的物体探测器,发现它们可以分为三类。首先,R-CNN和fast R-CNN需要外部对象建议生成器,比如选择性搜索。第二,更快的R-CNN和R-FCN融合区域提议网络(RPN),生成相对较少的区域提议。第三,YOLO和ssd是一种单次射击和无推荐区域的方法,它将目标位置和边界框坐标作为一个回归问题进行处理。我们观察到,只有无建议方法(第三类)可以在没有预训练模型的情况下成功地收敛。我们推测这是由于另外两类方法中的the RoI(regions of interest)pooling的缘故——RoI pooling为每个推荐区域生成特性,这阻碍了梯度从区域级平滑地反向传播到卷积特性映射。基于提议的方法与预先训练好的网络模型很好地工作,因为参数初始化对于RoI pooling之前的那些层很好,而对于从零开始的训练则不是这样。因此,我们得出了第一个原则:训练检测网络从零开始需要一个无提议的框架。在实际应用中,我们从SSD框架[21]中推导出一个多尺度的无框架工作,因为它可以达到最先进的精度,同时提供快速的处理速度
原则2:深监督。深度监督学习的有效性已经在googlenet[32]、DSN[18]、DeepID3[30]等应用中得到了验证。其核心思想是提供综合的目标功能,作为对早期隐藏层的直接监督,而不仅仅是在输出层。这些“伙伴”或“辅助”目标函数在多个隐藏层可以缓解“消失”梯度问题。无建议检测框架包括分类损失和定位损失。显式解决方案需要添加复杂的侧输出层,在每个隐层引入检测任务的“伙伴”目标,类似于[35]。在这里,我们使用一种优雅且隐式的解决方案,即DenseNets[10]中介绍的密集分层连接,来增强深度监控能力。当块中前面的所有层都连接到当前层时,块称为密集块。因此,DenseNet中较早的层可以通过跳过连接接受目标函数的额外监视。虽然在网络的顶层只需要一个损失函数,但是所有层,包括较早的层,仍然可以不受阻碍地共享监督信号。我们将在第4.1.2节中验证深度监管的好处。trainsition w/o pooling层。我们引入这一层是为了在不降低最终特征图分辨率的情况下增加密集块的数量。在DenseNet的原始设计中,每个转换层都包含一个池操作来对特征映射进行下采样。如果想要保持相同的输出规模,那么密集块的数量是固定的(在所有DenseNet归档构造中有4个密集块)。增加网络深度的唯一方法是在原始DenseNet的每个块中添加层。transition w/o池层消除了DSOD体系结构中密集块数量的限制,也可以在标准DenseNet中使用。
原理3:stem BLock。在incep -v3[33]和v4[31]的驱动下,我们将stem Block定义为三个3×3卷积层的堆栈,然后是一个2×2 max pooling。第一个conv layer使用stride = 2,其他两个使用stride = 1。实验结果表明,添加这种简单的阀杆结构可以明显提高检测性能。我们推测,与DenseNet的原始设计(7×7 conv层,stride = 2, 3×3 max pooling, stride = 2)相比,stem block可以减少原始输入图像的信息丢失。我们将在第4.1.2节中展示Stem Block对检测性能的重要作用。
原理4:密集预测结构。图1说明了SSD中的普通结构与我们提出的前端子网络中的密集结构的比较。SSD将预测层设计为非对称(单侧)的沙漏结构。对于300×300的输入图像,采用6个尺度的特征图对目标进行预测。Scale-1 feature map来自于主干网子网的中间层,为了处理图像中的小对象,主干网的分辨率最大(38×38)。剩下的五个尺度位于主干子网的顶部。然后,在两个相邻尺度的feature map之间采用具有瓶颈结构的plain transition layer(1×1conv-layer,用于减少feature map的数量,加上3×3 conv layer) [33, 9]
学习一半,重用一半。在SSD中的plain结构中(参见图1),后面的每个比例尺都直接从相邻的前一个比例尺转换而来。我们提出了预测的密集结构,它融合了每个尺度的多尺度信息。为了简单起见,我们限制每个尺度为预测特征图输出相同数量的通道。在DSOD中,除scale-1外,在每个scale中,有一半的feature map是通过一系列的convlayers从之前的scale中学习的,而剩下的一半feature map则直接从相邻的高分辨率feature map中向下采样。下采样块由一个2×2、stride=2个最大池层和一个1×1、stride= 1个对流层组成。池层的目标是在连接期间将分辨率与当前大小匹配。采用1×1对流层,将通道数减少到50%。池层置于1×1对流层之前,考虑降低计算成本。这个下采样块实际上为每个尺度带来了来自所有后退尺度的多分辨率特征映射,这与DenseNets中引入的密度级连接本质上是相同的。对于每个scale,我们只学习了一半的新功能映射,并重用了前一半的功能映射。与普通结构相比,这种密集的预措辞结构在参数较少的情况下可以产生更准确的结果,这将在4.1节中进行研究。![在这里插入图片描述](https://img-blog.csdnimg.cn/20190507101505742.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5MDY4ODcy,size_16,color_FFFFFF,t_70在这里插入图片描述

3.2 训练设置
我们基于Caffe框架[14]实现了我们的检测器。我们所有的模型都是从零开始训练与SGD解决方案在NVidia TiTan x GPU。由于DSOD特征映射的每个尺度都是由多个分辨率串联而成的,因此我们采用L2归一化技术[22]将所有输出的特征范数缩放到20。注意,SSD只对scale-1应用这种标准化。我们的大多数培训策略都遵循SSD,包括默认框的数据扩充、规模和长宽比,以及损失函数(例如,用于本地化的平滑L1损失和用于分类的softmax损失),同时我们有自己的学习速率调度和小批量大小设置。细节将在实验部分给出

4 实验
我们对广泛使用的PASCALVOC 2007、2012和MS COCO数据集分别进行了20、20、80个对象类别的实验。目标检测性能是通过平均平均精度(mAP)来测量的。
4.1 在VOC2007上消融学习
4.1.1密集区块配置
我们首先研究不同配置对骨干网非密集块的影响。
过渡层中的压缩因子。我们比较两个压缩系数值(θ= 0.5,1)DenseNets的过渡层。结果如表3所示(rows2和3)。压缩factorθ= 1意味着没有地图功能减少过渡层,whileθ= 0.5意味着减少一半的特征图谱。结果表明,θ= 1收益率地图thanθ= 0.5高出2.9%。
瓶颈层中的通道。如表3(第3行和第4行)所示,我们观察到更宽的瓶颈层(具有更多响应映射通道)大大提高了性能(4.1% mAP)
#通道在第1对流层,我们观察到,大量的通道在第1 conv层是有益的,这带来1.1%的地图改进(表3行4和5)。
增长率。基斯发现,高增长率要好得多。我们在表3(第5行和第6行)中观察到,当k从16增加到48时,4k套领通道的mAP改善率为4.8%。
4.1.2设计原则的有效性
我们现在证明了前面阐述的关键设计原则的有效性。
Proposal-free框架。我们尝试使用基于提议的框架(如更快的R-CNN和R-FCN)从零开始训练对象检测器。然而,对于我们所研究的所有网络结构(VGGNet、ResNet、DenseNet),训练过程未能收敛。我们进一步尝试使用无提议框架SSD训练对象检测器。与预训练模型的case微调(75.8%)相比,训练成功收敛,但结果要差得多(VGG为69.6%),如表4所示。这个实验验证了我们选择无方案框架的设计原则。深的监督。然后,我们尝试从零开始,在深度监控下训练目标探测器。我们的dsod300实现了77.7%的mAP,这比使用VGG16从无到有(69.6%)训练的essd300要好得多。它也比SSD300(75.8%)的微调结果好得多。这验证了深度监管的原则
trainsition w/o pooling。我们比较了没有这个设计层(只有3个密集块)的案例和与这个设计层(在我们的设计中有4个密集块)的案例。主干网为DS/32-12-16-0.5。结果如表3所示。过渡w/o池层的网络结构带来了1.7%的性能提升,验证了该层的有效性。
Stem block。从表3(第6行和第9行)可以看出,stem block将性能从74.5%提高到了77.3%。这验证了我们的猜想,即使用stem块可以保护信息免受原始输入图像的损失。密集的预测结构。从速度、精度和参数三个方面分析了稠密预测结构。如表4所示,前端结构致密的DSOD运行速度略低于普通结构(17.4fpsvs)。(20.6fps)在TitanX GPU上,由于额外的向下采样块导致超过头部。但致密结构使mAP由77.3%提高到77.7%,参数由182 m降低到14.8M。表3给出了更多细节(第9行和第10行)。我们还尝试用提出的稠密预测层代替SSD中的预测层。以VGG-16模型为骨干,可将VOC 2007测试集的准确度从(原SSD)提高到76.1%(含预训练模型),从(原SSD)提高到69.6%(含w/o预训练模型)到70.4%(含w/o预训练模型)。验证了稠密预测层的有效性。如果在ImageNet上进行预培训呢?在ImageNet上对主干网络进行预训练,研究DSOD的性能是一件很有意思的事情。我们在ImageNet上训练了一个精简的骨干网络DS/64-12-16-1,在验证集上获得了66.8%的top-1精度和87.8%的top-5精度(略低于VGG-16)。在“07+12”训练集上对整个检测框架进行微调后,在VOC 2007测试集上实现了70.3%的mAP。相应的从零开始训练解决方案的准确率达到70.7%,甚至略好一些。未来的工作将更深入地研究这一点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值