ThunderNet: Towards Real-time Generic Object Detection on Mobile Devices

文章地址:https://arxiv.org/pdf/1903.11752.pdf
本文提出了一种轻量级的两级检测器ThunderNet。在主干部分,提出了一种用于目标检测的轻量级主干。在检测部分,开发了一种非常高效的RPN和检测头设计。为了生成更具区分性的特征表示,设计了两个高效的结构模块:上下文增强模块和空间注意模块。最后,作者研究了输入分辨率、主干和检测头之间的平衡。得益于高效的主干和检测部件设计,ThunderNet超越了以前的轻型单级检测器。

一、文章简介

图像分类和目标检测之间存在一些差异,例如,目标检测需要大的感受野和低水平的特征来提高定位能力,而这对于图像分类来说并不重要。这两项任务之间的差距限制了这些传统主干在目标检测方面的性能,并在不损害检测精度的情况下阻碍了进一步的压缩。
在本文中,作者提出了一种轻量级的两级通用对象检测器ThunderNet。ThunderNet的设计旨在解决最先进的两级探测器中计算成本高昂的结构问题。在主干部分,研究了以前轻量级主干的缺点,并提出了一种用于目标检测的轻量级主干SNet。在检测部分,遵循R-CNN中的检测头设计,进一步压缩RPN和R-CNN子网。为了消除小主干和小特征映射导致的性能下降,设计了两个高效的体系结构块:上下文增强模块(CEM)和空间注意模块(SAM)。CEM将来自多个尺度的特征映射结合起来,以利用局部和全局上下文信息,而SAM使用RPN中学习到的信息来优化RoI中的特征分布。最后,研究了输入分辨率、主干和检测头之间的平衡。下图展示了ThunderNet的整体架构。
在这里插入图片描述
ThunderNet使用320×320像素的输入分辨率。专门为目标检测而设计的SNet主干网络2。在检测部分,RPN被压缩,R-CNN子网使用1024-d fc层以提高效率。上下文增强模块利用来自多个尺度的语义和上下文信息。空间注意模块引入RPN中的信息来细化特征分布。

二、整体实现’

(一)、Backbone Part

Input Resolution:两级探测器的输入分辨率通常非常高,例如,FPN使用800×像素的输入图像。它有优点,但也涉及巨大的计算成本。为了提高推理速度,ThunderNet采用了320×320像素的输入分辨率。输入分辨率应与主干网的能力相匹配。具有大输入的小型主干和具有小输入的大型主干都不是最优的。
Backbone Networks:主干网提供了输入图像的基本特征表示,对准确性和效率都有很大影响。基于CNN的探测器通常使用ImageNet classification传输的分类网络作为主干。然而,由于图像分类和目标检测需要与主干不同的属性,简单地将分类网络传输到目标检测并不是最优的。
Receptive field:感受野大小在CNN模型中起着重要作用。CNN只能捕获感受野内的信息。因此,大的感受野可以利用更多的上下文信息,更有效地编码像素之间的长距离关系。这对于定位子任务至关重要,尤其是对于大型对象的定位。
Early-stage and late-stage features:在主干中,最初的特征图较大,具有描述空间细节的低级特征,而最终特征图较小,具有更具辨别力的高级特征。一般来说,定位对低级特征敏感,而高级特征对分类至关重要。对于较大的主干,定位比分类更困难,这表明最初的特征更重要。弱的表征能力限制了极其微小的主干在两个子任务中的准确性,这表明早期和晚期特征在这个级别上都至关重要。
之前的轻量级主干网的设计违反了上述因素:ShuffleNet v1/V2的感受野受限(121像素对320像素的输入),ShuffleNet V2和MobileNet V2缺乏前期特诊图的提取能力,而Exception在计算预算较小的情况下,高级语义不足。
基于这些见解,作者从ShuffleNet V2开始,构建一个轻量级主干网,名为SNet,用于实时检测。本文介绍了三个SNet主干:SNet49用于更快的推理,SNet535用于更好的准确性,SNet146用于更好的速度/准确性权衡。首先,将ShuffleNet V2中的所有3×3深度卷积替换为5×5深度卷积。实际上,5×5深度卷积提供了与3×3深度卷积相似的运行速度,同时有效地扩大了感受野(从121像素扩大到193像素)。在SNet146和SNet535中,删除了Conv5,并在早期阶段添加了更多通道。这种设计在不增加额外计算成本的情况下生成更多的低级特征。在SNet49中,将Conv5压缩到512个通道,而不是删除它,并在早期阶段增加通道,以便更好地平衡低级和高级功能。如果删除Conv5,主干就无法编码足够的信息。但如果保留1024-d Conv5层,主干网的底层功能就会受到限制。下表显示了主干网的总体架构。此外,Stage3和Stage4(对于SNet49,Conv5)的最后输出特征映射表示为C4和C5。
在这里插入图片描述

(二)、Detection Part

Compressing RPN and Detection Head:两级探测器通常采用大型RPN和重型探测头。虽然Light-Head R-CNN使用轻型探测头,但当与小型主干连接时,检测头仍然太重,导致主干和探测部分之间不平衡。这种不平衡不仅会导致冗余计算,还会增加过度拟合的风险。
为了解决这个问题,通过将原来的256通道3×3卷积替换为5×5深度卷积和256通道1×1卷积来压缩RPN。同时增加核的大小以扩大感受野,并编码更多的上下文信息。五个比例{322、642、1282、2562、5122}和五个纵横比{1:2、3:4、1:1、4:3、2:1}用于生成锚定框。其他超参数与原版模型中的相同。
在检测头中,Light-Head R-CNN在RoI之前生成一个带有α×p×p通道的轻量级特征图,其中p=7是池化大小,α=10。由于ThunderNet中的主干和输入图像较小,通过将α减半至5来进一步缩小特征映射,以消除冗余计算。对于RoI,选择PSRoI align,因为它将通道数压缩到α。
由于PSRoI align的RoI特整仅为245-d,在R-CNN子网中应用了1024-d全连接(fc)层。这种设计进一步降低了R-CNN子网的计算成本,而不牺牲精度。此外,由于特征映射较小,减少了测试用ROI的数量。
Context Enhancement Module:Light Head R-CNN应用全局卷积网络(GCN)生成轻量级特征图。它显著增加了感受野,但涉及到巨大的计算成本。加上SNet146,GCN需要2倍于主干所需的浮点运算(596M对298M)。因此,作者决定在ThunderNet中放弃这种设计。
然而,如果没有GCN,网络的感受野很小,无法编码足够的上下文信息。解决这个问题的一种常见技术是特征金字塔网络(FPN)。然而,以前的FPN结构涉及许多额外的卷积和多个检测分支,这增加了计算成本并导致巨大的运行时延迟。
为此,本文设计了一个有效的上下文增强模块(CEM)来扩大感受野。CEM的核心思想是将多尺度的局部上下文信息和全局上下文信息聚合起来,生成更具鉴别能力的特征。在CEM中,来自三个尺度的特征图被合并: C 4 、 C 5 和 C g l b C_4、C_5和C_{glb} C4C5Cglb C g l b C_{glb} Cglb是在C5上应用全局平均池化的全局上下文特征向量。然后,对每个特征映射应用1×1卷积,将通道数压缩到α×p×p=245。然后,将C5上采样2倍,并压缩 C g l b C_{glb} Cglb的特征数量,以使三个特征地图的空间维度相等。最后,对生成的三个特征图进行聚合。通过利用局部和全局上下文,CEM有效地扩大了接受域,并改进了轻量级特征图的表示能力。与以前的FPN结构相比,CEM只涉及两个1×1卷积和一个fc层,这对计算更加友好。下图示出了该模块的结构。
在这里插入图片描述
Spatial Attention Module:在RoI warping期间,期望背景区域中的特征较小,而前景对应的特征较高。然而,与大型检测器相比,由于ThunderNet使用轻量级主干网和较小的输入图像,因此网络本身更难学习适当的功能分布。因此,在空间维度上扭曲RoI之前,作者设计了一个计算友好的空间注意模块(SAM)来明确地重新加权。SAM的核心思想是利用RPN中的知识来细化特征图的特征分布。RPN经过训练,能够在真知的监督下识别前景区域。因此,RPN中的中间特征可以用来区分前景特征和背景特征。SAM接受两个输入: R P N F R P N RPN F^{RPN} RPNFRPN的中间特征映射和CEM F C E M F^{CEM} FCEM的精简特征映射。SAM F S A M F ^{SAM} FSAM的输出定义为:
在这里插入图片描述
θ(·)是一个维度变换,用于匹配两个特征图中的通道数。sigmoid函数用于约束[0,1]内的值。最后,根据生成的特征图对F-CEM进行重新加权,以获得更好的特征分布。为了提高计算效率,只需将1×1卷积作为θ(·),因此CEM的计算成本可以忽略不计。下图显示了SAM的结构。
在这里插入图片描述
空间注意模块(SAM)的结构。SAM利用在RPN中学习到的信息,从上下文增强模块优化特征映射的特征分布。然后将特征映射用于Rol。SAM有两个功能。第一种是通过增强前景特征和抑制背景特征来细化特征分布。第二种方法是稳定RPN的训练,因为SAM可以实现从R-CNN子网到RPN的额外梯度流:
在这里插入图片描述

三、实验部分

在这里插入图片描述
在VOC 2007测试的评估结果。ThunderNet以显著更低的计算成本超越了竞争对手的模型。
在这里插入图片描述
使用SNet146的ThunderNet比之前的轻型单级探测器具有更高的精度,而单级探测器只有40%的FLOPs。配备SNet535的ThunderNet可与计算成本显著降低的大型探测器相媲美。
在这里插入图片描述
输入分辨率和主干之间的关系。上表显示,具有小图像的大主干和具有大图像的小主干都不是最优的。这两个因素之间存在权衡。一方面,小图像会导致低分辨率特征映射,并导致细节特征的严重丢失。仅仅通过增加主干网的容量是很难解决的。另一方面,小主干太弱,无法从大图像中编码足够的信息。主干图像和输入图像应匹配,以便更好地平衡特征图的表示能力和分辨率。
在这里插入图片描述
在SNet146上评估了5×5深度卷积的有效性。我们首先用3×3深度卷积替换所有5×5深度卷积。为了公平比较,从第二阶段到第四阶段的频道略有增加,以维持成本不变。该模型在图像分类(0.2%)和目标检测(0.9 AP)方面的性能都较差(表5(b))。与3×3深度卷积相比,5×5深度卷积显著增加了感受野,这有助于完成这两项任务。 然后,在所有构建块中的第一个1×1卷积之前添加另一个3×3深度卷积。通道数作为基线保持不变。该模型在图像分类方面具有可比性,但在目标检测方面稍差(0.3 AP)(表5(c))。由于该模型和SNet146在理论上具有相同的感受野,我们推测5×5深度卷积可以提供更大的有效感受野,这在目标检测中尤为重要。 同时为了研究前期和后期特征之间的权衡,首先在SNet146中添加了1024个通道Conv5。前期特征的通道也相应减少。该模型略微改善了top-1误差,但将AP降低了0.4(表5(d))。较宽的Conv5生成更具辨别力的特征,从而提高了分类精度。然而,目标检测同时关注分类和定位。在早期阶段增加通道编码更多细节信息,这有利于定位。对于SNet49,首先删除SNet49中的Conv5,并将通道从Stage2增加到Stage4。表5(f)显示,分类和检测性能都会严重退化。移除Conv5会将主干的输出通道减少一半,这会妨碍模型学习足够的信息。然后,将Conv5扩展到1024个通道,就像最初的ShuffleNet V2一样。对早期通道进行压缩,以保持相同的总体计算成本。该模型在图像分类方面超过SNet49 0.8%,但在目标检测方面表现较差(表5(g))。通过利用广泛的Conv5,该模型受益于图像分类中更高级的功能。然而,它在目标检测中缺乏底层特征。它进一步说明了图像分类和目标检测之间的区别。
在这里插入图片描述

进一步将SNet与ThunderNet框架中的其他轻量级主干网进行了比较。SNet146超越了Exception、MobileNetV2和ShuffleNet
在这里插入图片描述

以Light-Head R-CNN为例,以SNet146为基线。C5上采样2倍,以获得相同的下采样率。C4和C5被压缩到245个通道,并分别发送到RPN和RoI。在RPN中使用256通道3×3卷积,在R-CNN子网中使用2048-d fc层。该模型需要703个MFLOP,并达到21.9 AP(上表(a))。此外,多尺度训练、CGBN和软NMS逐渐将基线提高了1.4 AP(从20.5 AP提高到21.9 AP)。先将RPN中的3×3卷积替换为5×5深度卷积和1×1卷积。输出通道的数量保持不变。这种设计在不影响精度的情况下将计算成本降低了28%(表7(b))。然后,将R-CNN子网中fc层的输出数量减半至1024,从而在FLOPs上进一步实现13%的压缩,并略微减少0.2 AP。(上表(c))。这些结果表明,重型RPN和R-CNN子网为轻型探测器引入了大量冗余。然后,在主干之后插入上下文增强模块(CEM)。CEM的输出特征映射用于RPN和RoI。CEM实现了1.7 AP50、2.5 AP50和1.8 AP75的改进,而FLOPs的增加可以忽略不计(上表(d))。多尺度特征的组合引入了不同层次的语义和上下文信息,提高了表达能力。
与上表(c)相比,在没有CEM的情况下采用空间注意模块(SAM)(上表(e))将AP提高了1.4,而计算成本仅增加了5%。下图显示了上表(c)和上表(e)中RoI前的特征图。很明显,SAM有效地细化了特征分布,增强了前景特征,削弱了背景特征。
在这里插入图片描述
最后,采用CEM和SAM来组成完整的ThunderNet(上表(f))。与基线相比,此设置将AP提高1.8,AP50提高2.7,AP75提高2.1,同时将计算成本降低34%。这些结果证明了本设计的有效性。
在这里插入图片描述
实验中使用了两种模型:大主干小头(LBSH)模型和小主干大头(SBLH)模型。LBSH模型是带有SNet146的ThunderNet。SBLH模型使用SNet49和较重的头部:α为10,R-CNN子网中使用2048-d fc层。如上表8所示,即使FLOPs较少,LBSH模型也比SBLH模型高出3.4 AP。这表明,对于轻型两级探测器,大主干小头设计优于小主干大头设计。作者推断主干和探测头的能力应该匹配。在小型主干-大型头部设计中,来自主干的特征相对较弱,这使得强大的检测头冗余。
在这里插入图片描述

推理速度

猜你喜欢

转载自blog.csdn.net/qq_52302919/article/details/124488090