基于多尺度特征融合和残差注意力机制的目标检测*
2021-03-01李本高吴从中许良凤
李本高,吴从中,许良凤,詹 曙
(合肥工业大学计算机与信息学院,安徽 合肥 231009)
1 引言
近年来计算机视觉领域[1,2]的重大进步是显而易见的,这些卓有成效的成果不仅受益于经典算法的研究,基于学习的方法对其发展更是起着举足轻重的作用。目标检测算法的优化和升级也证实了这一说法。为了突出本文的研究重点,可以从以下3个方面总结基于神经网络的目标检测算法:
(1)基于单尺度特征的检测网络。随着卷积神经网络(CNNs)的不断优化,R-CNN[3]利用卷积神经网络对传统检测器进行了改进,在精度上取得了巨大的进步,开创了目标检测的崭新时代。SPPNET(Spatial Pyramid Pooling convolutional NETworks)[4]允许任意大小的输入,避免重复计算卷积的特性大大提高了检测器的速度。Fast R-CNN[5]将训练ConvNet集成到具有多任务损失的端到端管道中,并引入ROI池化层来推进该模式。Faster R-CNN[6]用一个区域提议网络RPN(Region Proposal Network)代替了代价高昂的选择性搜索,使提取的特征信息能够在整个网络中实现权重共享。此后,研究者们在此基础上提出了很多其他方法来优化目标检测器,如R-FCN(Region-based Fully Convolutional Netowrks)[7]提出了位置敏感的Score maps,以解决检测中的位置灵敏度问题。除了基于区域的检测器外,还有一些效率更高的单级目标检测器。YOLO[8]率先在单个端到端ConvNet中实现了对象类预测和位置回归。YOLOv2[9]摈弃了全连接层,重新设计了一个用于检测的骨干网络,并生成了anchor box来更准确地预测边界框。这些方法力求只依赖于顶层特征来表示不同尺度目标的特征,因此对所有目标都具有固定的感受野,这导致很多信息被丢失了,而这些信息通常对于检测小目标是非常有用的。
(2)基于多尺度特征的检测网络。由于单尺度特征映射不擅长表示不同大小和形状的目标,所以从不同层提取相关信息自然地能缓解这种矛盾。MS-CNN(Multi-Scale deep Convolutional Neural Network)[10]从不同尺度特征映射中提取Proposal region,同时利用作用在特征图的反卷积替换对输入图像的上采样,从而提高速度和精度。SSD(Single Shot multibox Detector)[11]在截断的VGG-16[12]上扩展了几个额外的卷积层作为其骨干网络,并且根据不同的感受野设置不同的默认框大小,从而能更好地预测各种尺度的目标。例如,低层Conv4_3的特征更精细,可以执行较小尺度的目标检测,而高层的特征更适合检测较大尺度的目标。这种自下而上的金字塔层次结构能够分别检测不同大小的对象。然而,尽管有意避免使用太低级的特征(从Conv4_3构建金字塔),但是卷积神经网络的浅层无法充分提取特征的问题仍然限制了检测器在小尺度目标检测上的性能。解决此问题的直观方案是通过更深的前馈路径来增强特征表达能力,在这种情况下,加深的特征图可以获得具有平移不变性的更高级的语义,这有利于目标分类,但不利于位置回归。
(3)基于多尺度融合特征的检测网络。得益于多层特征融合和不同的采样策略之间的相互作用,HyperNet[13]在处理小对象和生成更高质量的proposal方面比Fast R-CNN更好。FPN(Feature Pyramid Networks)[14]则通过附加的自上而下的体系结构缓解了这种矛盾,该体系通过上采样增强了语义信息,并通过横向连接添加了细节,从而构建出高级语义特征图。DSSD(Deconvolutional Single Shot Detector)[15]利用反卷积模块在SSD基准网络上构建特征金字塔。基于多尺度融合特征的检测网络通过注入大规模的上下文信息提高检测精度。然而,发生在自下而上和自上而下的体系结构上的相应层融合不够有效,并且它实际上过多地依赖于最顶层的特征好坏程度。YOLOv3[16]也采用类似FP架构,以实现对小目标相对较高的平均精度。FSSD(Feature fusion Single Shot multibox Detector)[17]将来自不同层的特征拼接在一起,并且用一些下采样操作构建新的特征金字塔。像设计分类网络一样,专门用于目标检测的骨干网络还是非常少的,DetNet(Network for object Detection)[18]提出了一种新的目标检测骨干网络,在较深的层次上保持了较高的空间分辨率。此外,为了使训练过程更高效,基于R-CNN的方法通过采样启发式及其固有的两阶段级联优化检测器,这是两阶段检测器精度高的原因之一。同时,一些检测方法使用OHEM(Online Hard Example Mining)[19]算法来抑制大量的负样本。RetinaNet[20]通过创造性地重新定义损失函数来实现这一点,其中Focal Loss项被用来缓解由图像的前景背景不平衡带来的问题。
为了进一步缓解在深层网络中小区域空间特征容易丢失的问题。本文提出的方法结合了2个相邻的层来丰富上下文信息。与其它复杂的融合方法相比,本文方法融合的特征图的表征能力并不逊色,因为这2个近距离特征是高度互补和相关的,而且,某些看似对特征表示有益的融合实际上是对特征双方的一种损害。第3节中详细解释了为什么使用这种融合机制。为了进一步提高检测器检测精度,本文精心设计了用于融合2层特征图的合适的Conv层。此外,受人类感知过程的启发,注意力机制[21,22]被广泛用于计算机视觉领域。残差注意力学习被用来优化非常深的卷积网络[5],该网络可以有效地堆叠到数百层,其中自下而上、自上而下的前馈作为注意力模块的一部分,用来对特征进行软加权。在研究如何为低级别特征提供精确的像素级注意力方面,通常具有更大感受野的注意力因子能更好地引导特征图合成,因此,本文从最顶层的特征映射出发,通过反卷积操作构造自顶向下的结构,为融合的特征映射提供了在所有尺度上的注意力权重。为了防止关键信息在级联网络中不堪重负,本文设计了一种新颖的残差注意力融合架构来监督特征金字塔结构每一级的融合,这与残差注意力网络[23]完全不同,同时,本文使用的注意力因子具有最高级别的语义信息,而诸如SENet[24]这种通道层面上的注意力机制因为缺乏像素级的注意力,所以不擅长处理多尺度空间特征。本文提出的方法使SSD性能进一步优化,即以实时速度实现对多尺度目标更高的检测精度。
Figure 1 Network architecture
2 本文方法
2.1 网络结构
事实证明,用低层高分辨率特征图检测小目标是有效的,因为特征图中小目标对应的感受野相对较小,而低层的精确定位特征无疑对检测是有用的。本文采用与原始SSD一致的特征提取器,通过VGG-16以2倍的缩放步长生成多尺度特征图(在截断VGG-16的末端扩展附加的卷积层)。迭代过程可以表示如下:
fi(x)=Ci(fi-1(x))=
Ci(Ci-1(fi-2(x)))=
Ci(Ci-1…C1(x))
(1)
detectionresult={P1(f1),P2(f2),…,Pn(fn)}
(2)
其中,Ci(·)是骨干网络的第i个卷积块;f(·)是选择的特征,随着特征层的加深索引i变大,特征层越来越深;P(·)是预测层,负责将特征图转换为分类置信度和边界框。本文通过2个相互连接的模块进一步优化了多尺度检测器,将2个模块有机地组合成一个新颖的网络,网络结构如图1所示。
2.2 融合模块
尽管大多数检测器使用各种多尺度结构来解决图像中物体多样性的问题,但在小物体上的进展却不太令人满意。大目标之所以能够获得可靠的检测结果,主要是因为其基本特征在卷积神经网络的传播中不容易丢失。不幸的是,由于低级特征的不足和高级特征的信息缺陷带来的双重压力使小物体检测处于尴尬的境地。一方面,适当的骨干网是缓解这一矛盾的关键,除了考虑推理速度外,深度层次结构也会严重损害目标的位置特征,对于较小尺寸的图像则更为严重;另一方面,学习强大的抽象语义和精确的位置特征对各个级别的预测是必须的,这无疑会使学习系统超负荷。受上述2方面因素影响,特征很容易被极化或保持在中立水平,这可能是检测器对小物体难以达到期望检测结果的原因。
本文提出了一种通过组合2个近距离特征层来获取互补信息的方法,以下3个原因促使选择2个相邻特征进行融合:(1)由于2种特征之间的明显区别,深层的预测可信度将由于浅层特征的组合而降低;(2)感受野大的深层特征通常会向浅层引入大量无用的背景噪声;(3)近距离的特征层通常保留最有用的信息,用于检测小物体的Conv4_3也得到了增强。因此本文关注相邻层之间的融合以捕获它们的互补性。
在如图2所示的融合模块中,用一组1×1、3×3和1×1的卷积核处理尺寸为2W×2H×D2(W、H和D2分别表示特征图的宽度、高度和通道数)的较浅的特征,图2中的D表示卷积核的个数,而另一个更高层的2W×2H×D特征图的处理过程中添加了1×1个卷积作为缓冲器。这样的架构可在以下3个方面发挥作用:(1)通过特定的映射并向高层提供有用的位置信息来增强低层特征的表征能力;(2)对低级高分辨率特征图进行下采样,以匹配相应的高级低分辨率特征图尺寸;(3)在3×3卷积运算之前使用1×1卷积核减少一半的通道,然后使用1×1卷积核在融合时恢复,从而提高计算效率。可以通过式(2)来概括这一过程:
Mi,c(x)=fi,c(x)+F(fi-1,c(x))
(3)
其中,fi,c(·)表示来自骨干网络的第i级基本特征层;c表示信道的索引;F(·)是一种特殊的映射;Mi,c(·)是融合特征图。值得注意的是,融合过程是从顶部向底部进行的。
Figure 2 Internal details of the two modules
2.3 残差注意模块
如果没有额外的指导,融合模块很难准确地捕获关键特征。鉴于具有足够分类信息的高级特征可以作为引导低层信息的方向,本文通过传播最上层的高级语义,设计了一种自适应聚合信息的自顶向下路径。期望在抽象语义的指导下增强有意义的特征,同时抑制不太有用的特征。然而,用像素和与像素积等一般方法将2个弱相关特征联系起来并不能实现很好的融合效果,因为前者会叠加噪声,而后者可能会削弱有用的信息。例如,加权特征图Ai,c(x)*Mi,c(x)可以由特征图Ai,c(x)在自上而下结构中和对应的融合特征图Mi,c(x)进行像素级相乘来生成。在这种情况下,像素值通过加权(0~1)在抑制无意义特征的同时破坏了原始有用特征的良好性能。随着层叠金字塔层数的加深,这些关键特征将被进一步削弱,这可能会破坏原有网络的特性,隐式地降低了后续层对小目标的敏感性。
本文提出了一种基于残差注意力学习的多尺度注意力融合方法,以构建一种对称的自下而上和自上而下的金字塔体系结构。具体来说,受到注意的有用特征不应该比它原来没被注意力加权时差。所以,本文设计的融合特征在注意力机制下被具有丰富分类的高级特征监督。在这个过程中,小物体被逐渐显示出来,而其中反卷积的主要作用是恢复特征图尺寸。
本文的残差注意模块的出发点不同于以往的方法,这直接导致了体系结构上的差异。具体来说,使用自上而下的体系结构的全局信息来指导融合各种尺度的特征,而残差注意力网络[23]仅将自上而下网络中最高分辨率特征图与原始特征图结合在一起。因此,在2×2的反卷积层之后添加一个3×3卷积核,并使用Sigmoid层对注意力因子进行归一化。此外,还在融合的特征后进行了3×3的卷积操作,并使用ReLu层来激活特征,进行批量归一化[25],以获得更好的特性。最后,通过残差注意操作精炼用于预测的特征。本文所提出的注意力机制用式(4)表示如下:
Ri=Ai+1,c(x)=(1+Ai,c(x))*Mi,c(x)
(4)
detectionresult={P1(R1),P2(R2),…,Pn(Rn)}
(5)
其中,Ai,c(·)是多尺度注意力因子,在反卷积操作后用Sigmoid将其进行归一化,当注意力权重为0时,Mi,c(·)维持原始值。同时生成的特征图不仅是当前尺度下预测模块的输入,也是指导下一次精细特征合成的注意因子。级联的自下而上的体系结构以其增量的特性保留着完整的信息,金字塔层次越低,注意力特征图越能用来准确地检测小目标。
3 实验与分析
本文基于基准数据集PASCAL VOC评估了所提方法的性能,实验使用MXNet框架并在具有2块NVIDIA 1080Ti GPU的计算机上进行。与SSD相同,预训练的VGG-16(在ILSVRC CLS-LOC数据集上)用于初始化模型,以便有效地比较。此外,本文还设计了消融实验来分析每个模块的有效性。同时,为了突出本文方法的优越性,还将实验结果与主流方法进行了比较。各实验方法的性能由平均平均精度mAP(mean Average Precision)推理速度来衡量,分别反映了各方法的精度和速度。
3.1 PASCAL VOC 2007上的实验
本文方法在2007 trainval和2012 trainval上进行了训练(16 551幅图像),并在2007 test上进行了测试(4 952幅图像)。使用SGD优化器进行12×104次迭代,Momentum与Weight Decay分别设为0.9和0.000 5,对于512×512的输入图像,Batch Size设置为24,对于300×300的输入图像,Batch Size设置为32。初始学习率为0.001,在8×104次迭代时降低为0.000 1,10×104次迭代时降低为0.000 01。为了使添加的模块与基准网络之间维持更好的磨合过程,实验基于预先训练的VGG-16而不是直接基于预先训练的SSD。
表1中展示了一些主流检测方法的性能。本文方法在输入为300×300时mAP达到了78.8%,超过了基于ResNet-101的SSD300和DSSD321等的单阶段方法的。可以看出本文方法不仅在速度上远远领先于两阶段目标检测器,而且其检测精度甚至超过了大多数检测器的,例如Faster R-CNN和R-FCN。如文献[26]所述,输入图像的分辨率对检测有重大影响,这是合乎逻辑的,因为与小图像相比,大图像包含更多可见信息。因此,当分辨率提高到512×512时,本文方法的mAP达到80.7%,比SSD的高出1.5%。DSSD513在检测精度上比本文方法稍好,但是DSSD使用了重量级的主干网络ResNet-101,通过牺牲计算效率来提高检测精度。可以预见,本文方法的推理速度要比DSSD513快得多。此外,它从另一个角度证明了过度深化网络对较小规模输入的特征信息并不友好。图3展示了可视化的检测结果,同样证明了本文方法起到了较好的效果,特别是对图像中的小目标。
3.2 推理速度
高效的计算效率本来应该是单阶段检测器的优势,与SSD相比,本文方法在速度上受到新添加模块的影响。在表2(第5列)中展示了速度性能的对比。所有结果都是在使用单一NVIDIA 1080Ti GPU的计算机上获得的。不出所料,SSD继续保持领先地位。本文方法在300×300的输入下达到31.5 FPS的速度,在512×512的输入下达到14.8 FPS的速度。正如所期望的,因为本文方法仍然是实时的,所以在速度和准确性之间的权衡保持在合理的范围内。而且,它的推理速度远远领先于DSSD的。
Table 1 Comparison of experimental results on PASCAL VOC 2007 test
Table 2 Comparison of inference speed on PASCAL VOC 2007 test
Figure 3 Comparison of detection visualization performance
3.3 消融实验
为了证明融合模块和残差注意力模块的有效性,实验还使用设计的2个模块来构造3个变体,并比较它们在PASCAL VOC 2007 test上的性能,结果如表3所示。除了添加或删除相应的模块外,不同变体在实验过程中保持相同的超参数,以确保公平地比较。实验仍然在PASCAL VOC 2007和PASCAL VOC 2012训练集上训练模型,固定输入图像大小为300×300,并在PASCAL VOC 2007 test上进行测试。
Table 3 Ablation experiment on PASCAL VOC 2007
(1)融合模块有效性。首先,仅将融合模块添加到原始SSD。通过添加融合模块,可以观察到mAP显著增加(表3的第3行显示了SSD+融合模块变体的性能)。这有力证明了融合模块对于充分探索潜在的上下文信息非常有帮助,其结果与理论分析相符。同时,尽可能地尝试了各种融合操作以获得更好的结果,包括按元素求和、按元素乘积和通道拼接。所有融合策略对检测都有很好的效果,之所以选择像素和,是因为它在本文方法中表现最佳。
(2)残差注意力模块有效性。实验结果如表3(第4行和第5行)所示,基于自顶向下体系结构的多尺度残差注意力学习对指导高质量特征图的合成起着至关重要的作用。将残差注意力模块应用于原始SSD,以构建纯的残留注意力检测网络(不要通过融合模块融合特征图),并将其与原始的注意力框架进行比较,即注意力特征是由点积直接生成的,而无需残差注意力学习。根据最后2行的比较可以得出一个结论,不管是否添加了融合模块,带有残差注意力机制的检测器总是比带有原始注意力机制的检测器更有效。
与基准SSD相比,使用本文方法构造的变体的性能均有所提升。根据在PASCAL VOC上评估的实验结果,当同时采用本文提出的2种策略时,效果提升更为明显。这表明融合模块和残差注意力模块的有效协作对多尺度特征起到积极作用。
4 结束语
本文的理论源于多尺度特征融合与注意力机制的相互作用,提出了一种具有自适应注意力机制的特征金字塔框架,同时考虑了丰富的上下文信息对分类和定位的积极影响,以及高级语义特征对全局特征的指导作用。具体来说,低层特征图的精细细节可以有效地丰富上下文信息,而由高层语义通过自顶向下的结构合成的多尺度注意图可以提高特征图在各个层次上的表达能力。在基准数据集上的实验表明,本文所提出的方法适用于检测所有尺度目标。此外,尽管本文仅介绍了基于SSD基准网络的网络框架,但该方法具有通用性,可应用于绝大多数检测网络。未来将继续在更多基准框架上扩展设计体系结构,并尝试探索更有效的骨干网络来适应对移动目标的检测。