刘翔羽 杨超宇
摘 要:为解决现有目标检测算法中尺度变化带来的检测问题,为此设计了基于多尺度感受野特征块,即一种并行的多分支卷积块,共享参数但有着不同的卷积扩张率,并将其特征块集成到SSD框架中,从而增强网络的感受野以提高检测精度,之后再添加通道注意力模块,融合多个尺度相同的特征,由此得到最终的特征进入检测层检测。在COCO和Pascal VOC 2007數据集上测试表明,该方法在满足一定检测精度的同时可以达到实时的检测效果。
关键词:目标检测;尺度变化;感受野
中图分类号:TP391 文献标识码:A 文章编号:1673-260X(2020)10-0017-06
1 引言
近年来,深度卷积神经网络(CNNs)[1-3]在目标检测上取得了巨大的成功。通常,这些基于CNN的方法可以大致分为两种类型:One-stage方法如YOLO[3]或SSD[2],直接利用前馈CNN去预测感兴趣区的边界框,而Two-stage的方法,如FasterR-CNN[1]或R-FCN[4]方法则是先生成提案,然后再加以利用提取区域特征从而利用CNN进一步细化。但是,这两种方法的一个中心问题是如何处理尺度变化。对象实例的尺度大小可能会有不同的范围,这阻碍了检测,特别是那些尺度非常小或者非常大的情况。
为了弥补大尺度变化,一种直观的方法是利用多尺度图像金字塔[5],这在基于手工制作的特征的方法[6,7]和基于深度CNN的方法中都很流行。强有力的证据[1,4]表明,深度检测器可以受益于多尺度的训练和测试。为了避免出现极端尺度的训练对象,SNIP[8,9]提出了一种尺度归一化方法,在每个图像尺度中有选择地训练适当大小的对象,图1a为图像金字塔结构。然而,测试时间的增加使得图像金字塔方法不太适合实际场合应用。另一个努力的方向是利用网络内的特征金字塔来近似模拟图像金字塔以减少计算代价,图1b为特征金字塔结构。这个方法首先在[10]中实现,通过在特征通道层插值快速构造特征金字塔来用于目标检测。SSD[2]利用来自不同层的多尺度特征映射,并在每个特征层检测不同尺度的对象。为了弥补低级特征中语义的缺失,FPN[11]进一步扩展了自顶向下的通路和横向的连接,以在高层特征中包含强语义信息。然而,不同尺度的目标区域特征是从不同层次的FPN骨干网中提取出来的,而FPN骨干网又是用不同的参数集生成的。这使得特征金字塔成为图像金字塔的一个不令人满意的替代品。图像金字塔和特征金字塔方法都有着同样的动机,即检测模型对不同尺度对象应该有不同的感受野。尽管效率不高,但图像金字塔充分利用了模型的表征能力,对所有对象进行变换尺度一视同仁。与之相反,特征金字塔产生了多层次的特征,从而牺牲了不同尺度上的特征一致性,这导致有效的训练数据减少,每个尺度的过度拟合风险更高。
为解决尺度变化对目标检测的影响,本文提出Multi-BranchReceptive-field Network(MBRnet)即多分支感受野网络模型,通过设计多分支卷积块生成不同尺度感受野的特征图,并将其集成到SSD网络结构中,以此来降低尺度变化对检测精度的影响,提高识别率,同时添加通道注意力模块学习不同尺度特征图。
2 相关研究
2.1 深度学习目标检测
基于深度学习的目标检测方法在精度和速度上都有了很大的提高。Two-stage检测方法[1,12,4,13,14]是主要的检测方法之一,它首先生成一组区域建议,然后通过CNN网络对其进行细化。在[1]中,R-CNN通过选择性搜索生成区域建议,然后由CNN独立地、顺序地从原始图像中对裁剪的建议区域进行分类和细化。为了减少R-CNN中特征提取的冗余计算,SPPNet[15]和Fast R-CNN[1]一次性提取整幅图像的特征,然后分别通过空间金字塔池RoI池化层生成区域特征,RoIAlign layer进一步改进了RoI层,解决了粗糙空间量化问题。Faster R-CNN首先提出了一个统一的端到端目标检测框架,介绍了一种与检测网络共享骨干网的区域建议网络(RPN),用以取代原有的独立的、耗时的区域建议方法。为了进一步提高FasterR-CNN的效率,R-FCN通过全卷积网络构造位置敏感的分数图,以避免RoI-wise头部网络。为了避免R-FCN中额外的大分数图,Light-Head R-CNN使用了一个维度更小的特征图和一个轻便的R-CNN子网来更有效地构建一个两阶段检测器。
另一方面,One-stage检测方法从YOLO开始被推广,最具代表性的方法就是YOLO和SSD。它们基于整个特征图预测多个对象的置信度和位置,这两种检测器都采用了轻量级的网络架构来加速,而它们的检测精度明显落后于顶级的Two-stage 方法。最近更为先进的One-stage检测器如DSSD和RetinaNet通过更深层的ResNet-101和应用一些技术,例如反卷积和Focalloss来更新它们的轻便网络架构,这些方法在检测效果的精度上甚至超过了一些顶级two-stage方法。然而,这种性能的提高在很大程度上牺牲了它们的速度优势。
2.2 Receptivefield
现有一些深度学习模型为了提高检测精度都是在以牺牲计算力为代价,增加网络深度。在这项研究中,我们的目标是在不引起太多计算负担的情况下提高高速单级探测器的性能。因此,人为修改网络以加强网络特征表征能力是替代增加网络深度最好的方法。感受野是卷积神经网络中重要的概念,感受野被定义为神经网络特征所能看到的输入图像区域,对于感受野在CNN的相关研究在早期已经出现,最相关的是Inception[16]家族,ASPP[17]和Deformable CNN[18]。Inception块采用具有不同内核大小的多个分支来捕获多尺度信息。但是,所有的内核都是在同一个中心采样的,这就需要更大的内核来达到相同的采样覆盖率,从而丢失了一些关键的细节。对于ASPP,扩展卷积改变了从中心到中心的采样距离,但是这些特征和以前相同核大小的卷积层有着相同的分辨率,这使得在所有位置的线索都被同等对待,可能导致对象和上下文之间的混淆。Deformable CNN学习单个物体的不同分辨率,但不幸的是有着和ASPP一样的缺点。Trident Networks[19]为了探讨感受野对检测结果的影响,对于不同尺度的物体,使用不同扩张率的空洞卷积来控制网络的感受野,其结果表明不同尺度对象的性能受网络接受域的影响,最适宜的感受野与物体的尺度有很强的相关性。可以得出的结论是,通过调大物体的有效感受野,从而影响小物体的表现。
2.3 Dilated convolution
空洞卷积通过在稀疏采样位置进行卷积,以原始权重放大卷积核,从而在不增加额外成本的情况下增大了感受野的大小,因此,针对感受野的改善,我们统一采取的方法是使用空洞卷积(Dilated convolution)。空洞卷积在语义分割中得到了广泛的应用,它可以整合大量的上下文信息。DetNet[22]設计了一个特定的检测骨干网络来保持空间分辨率,并使用空洞卷积放大感受野。在本文的工作中,我们使用多分支并行的架构,在分支中使用不同扩张率的空洞卷积来适应不同尺度的对象感受野。
2.4 SSD(Single shot multibox detector)结构
SSD是一种One-stage目标检测方法,One-stage算法就是目标检测和分类是同时完成的,其主要思路是利用CNN提取特征后,均匀地在图片的不同位置进行密集抽样,抽样时可以采用不同尺度和长宽比,物体分类与预测框的回归同时进行,整个过程只需要一步,所以其优势是速度快。SSD采用的主干网络是VGG网络,但与VGG的区别是,将VGG的全连接层去除替换成卷积层并去掉所有的Dropout层和FC8层并新增了四个卷积层。整体结构如图2所示。
尽管SSD在保持检测性能的同时还基本达到了和深层网络检测器相媲美的精度,但是仍然有着尺度变化带来的问题,在对多尺度检测时性能并不是很好,为此,本文提出的MBRnet模型在此基础上改进,通过设计并行的多分支卷积块,增强网络特征表征能力提高对尺度变化的检测性能。
3 MBRnet模型
MBRnet模型是以SSD模型为基础进行改进,融合本文所设计的多分支卷积块,改进了从轻量级骨干网中提取的特征,并且这个多分支卷积块是共享权重的,因此检测速率仍旧很快。因为高层语义特征表征能力更强,因此仅在SSD网络中的高层卷积层加入所设计的多分支卷积块,从而得到更好特征表现的特征图。再将得到的多尺度的特征,再添加通道注意力模块进行融合,使融合后的特征中既包含高层特征,又有足够的底层语义。为了使有效特征通道表现得更好,利用注意力机制为每个通道学习一个权值从而增强有效通道权重。图3给出了模型中较为主要的层。
3.1 多分支卷积块
本文所提出的MBRnet模型是以SSD网络为基础,VGG网络为主骨干网络,将其中的一些卷积层替换为本文所设计的多分支卷积块,并且这些分支卷积块与原先的卷积块有着相同的结构但扩张率不同。以一个单独的多分支卷积块为例,我们在结构中应用瓶颈结构,包含三个卷积层分别由一个1×1,3×3和1×1三个卷积核,将对应的多分支卷积块构造为3×3convs的具有不同扩张率的平行卷积块。卷积块的首尾采用1×1的卷积核来过滤特征图的通道数,中间的卷积核设计为3×3步长为2的卷积块。具有扩张率ds的扩张卷积在其连续卷积核中插入ds-1个0,从而在不增加参数和计算次数的情况下增大核的大小,具体来说,就是扩张的3×3卷积可以与核大小为3+2(ds-1)的卷积有着相同的感受野,假设当前特征图的总步幅为s,则速率ds的扩张卷积可使网络的感受野增加2(ds-1)s,因此,如果我们用扩张率ds修改n个conv层,则感受野可增加2(ds-1)sn。所以我们设置的三个卷积块的扩张率大小分别为1、2、3来控制感受野大小以适应不同尺度特征图,结构如图4所示。并行的三个分支卷积块可以使我们控制不同分支的感受野,得到具有适应性的感受野可以降低尺度变化带来的负面影响。本文选择在conv6和conv7替换为多分支块,因为顶层特征所产生的更大的跨步会导致感受野的更大差异,而不在后面的conv8和conv9层继续使用替换的卷积块原因是后两层的特征尺度过小而不再适用于卷积块处理。
使用多分支卷积块替代原始网络卷积层的一个重要问题是会多出几倍的参数,潜在的会产生过拟合问题,幸运的是我们会在不同的分支上共享相同的结构但卷积膨胀率不停,因此权重共享变得更简单,在多分支中应用权重共享使得训练参数的减少,并且缓解了一定程度的过拟合问题,使得检测精度会有所定提高。共享权值的好处可以分为三点,首先,它与我们的目的保持统一,即不同尺度的物体应该以相同的表征力进行统一转换,其次,这使得与原来的检测相比不会产生额外的参数,最后,可以对所有来自分支的更多对象样本训练转换参数,换句话说,就是在不同感受野下,对不同尺度范围进行相同的参数训练。
3.2 通道注意力模块
加入多分支卷积块之后的整个网络,在进行特征提取之后会产生10个有效特征图,这些特征图即包含底层信息的特征图,又有高层特征的特征图,为了使最后用作检测的特征信息更加分丰富,我们选择引入通道注意力模块融合多个金字塔相同尺度的特征,避免了主干网中的特征对检测任务而言特征表示不够充足的问题,同时特征包含了高低层语义和细节信息,这样既利于检测框的准确生成也利于网络分辨目标和背景。融合的特征通道不同作用不同,为了加强通道特征表示,这里使用SEnet[20]所提出的Squeeze-and-Excitation模型,通过学习的方式自动获取每个通道特征的重要程度融合不同通道的特征。
通道注意力模块结构如图5所示。这里给出具体的处理方法,多个特征金字塔中宽高为10通道数为256的特征经过concat操作融合成宽高为10通道数为256的融合特征,之后经过Attention机制增强不同通道的效果,最终用作检测层。Attention的实现方式,将需要融合特征作为输入进行Squeeze操作即全局平均池化使之成为宽高为1通道数保持为2560,之后进行Excitation操作,经过两个全连接层和一个ReLU函数激活层,其中,经过第一个FC层之后的输出维数变为原来的1/16,最后一个FC层再将其维数恢复一次来进行编码和解码操作同时不会产生太多计算量,最后再经过一个Sigmoid函数求得融合特征的每个通道的注意力权值。
4 实验结果及分析
我们主要在Pascal VOC 2007和MS COCO数据集上进行了实验,两个数据集分别有20和80个对象类别。在VOC 2007中,如果IoU与GT(Ground Truth)的交点大于0.5,则预测边界框为正;而在COCO中,则使用不同的阈值进行更全面的计算,评价检测性能的指标是平均精度(mAP)。我们以Pytorch深度学习框架实现MRBnet,并利用SSD提供的开源基本设施,我们的训练策略也主要遵循SSD包括数据扩充、难分样本挖掘(hard negative mining)、尺度和默认框的宽高比例以及Loss函数。
模型batch-size设置为32。为了防止loss爆炸,学习率采用分布策略,初始学习率根原始SSD设置一样10-3,此后在10、150和200个epoch时学习率每次衰减为原来的十分之一,前5个epoch的学习率从10-6逐渐升至4×10-3。参数衰减值(weight-decay)为0.0005,动量因子(momentum)为0.9。
4.1 多分支卷积块和通道注意力模块有效性验证
为验证所提出的方法有效性,我们在Pascal voc 2007数据集上分别做了多组实验验证了各模块的有效性,结果如表1所示。为了更好地理解多分支卷积块,我们以原始SSD作为对比,带有新数据扩充的SSD300*在数据集上达到77.2%mAP,通过简单的加入多分支卷积块后,结果改进到79.1%mAP,获得1.9%的提升,这说明多分支卷积块在检测方面是有效地。加入通道注意力模块后,检测结果有着0.9%的提升,同样说明通道注意力模块可以有效提升检测率。当同时引入提出的这两种模块之后,我们的MRBnet在数据集上达到了80.1%mAP。充分证明,提出的这两种模块都有效提升了检测精度。
4.2 Pascal VOC 2007实验结果对比
表1展示了现阶段各主流检测器在Pascal VOC 2007测试集与我们的结果之间的比较。SSD300*为更新后的SSD结果,增加了[2]的数据扩充,缩小了图像以创建更多的小示例。为了公平的比较,我们使用Pytorch-0.3.0和CUDNN V6重新实现了SSD,环境与MBRnet相同。通过整合卷积层,我们的基本模型,以80.1%的地图性能优于SSD和YOLO,同时保持SSD300的实时速度。它甚至达到了与R-FCN相同的精度,R-FCN是兩阶段框架下的高级模型。结果表明MRBnet比大多数一阶段和两阶段的目标检测系统要好,同时并以高速运行。
4.3 Microsoft COCO实验结果对比
为了进一步验证所提出的MRBnet模型有效性,我们在MS COCO数据集上进行了实验。我们使用trainval35k set (train set +val35k set)进行训练,同样的将batch-size设置为32,我们保持原来的SSD策略,减少默认框的大小,因为COCO中的对象比PASCAL VOC中的对象小。
从下表可以看出,MRBnet在test-dev集上达到了30.8%/51.2%,基准已经大大超越了SSD 300*,甚至与拥有深度骨干网络的R-FCN相比都有一定优势,而检测速率上与R-FCN相比有着优越的提升。与大模型相比MRBnet的结果略低于模型RetinaNet500(31.4%vs30.6%),但值得注意的是,RetinaNet500使用了较深的残差网络ResNet-101+FPN结构和新的loss使得学习的重点在困难样本(hard example),而我们的网络只是轻量级的VGG模型。另一方面,MRBnet检测平均消耗只有30ms,而RetinaNet500则需要90ms。同时,可以观察到所提出的MRBnet模型对不同尺度下的检测精度与原SSD和Two-stage方法相比都有所提升。通过以上各方法之间结果对比,MRBnet使用的多分支卷积块和通道注意力模块有效提升了各类检测精度,并在面对多尺度任务时可以出色完成检测任务。
5 结语
目标检测中多尺度问题一直影响检测器的检测精度,本文所提出的多分支卷积块和通道注意力模块在数据集上表现出良好的检测效果,在VOC 2007和Microsoft COCO数据集上检测精度较One-stage许多方法相比都有明显提升效果,检测精度可以与Two-stage相媲美,在实时性和准确度上成绩都非常优秀。现阶段卷积神经网络仍然因网络层数过深、训练参数过多导致模型实用性差,需依赖高性能设备做推理,如何通过剪枝压缩模型计算量是下一步的研究方向。
——————————
参考文献:
〔1〕Shaoqing Ren, Kaiming He, Ross Girshick, and Jian Sun.Faster R-CNN: Towards real-time object detection with regionproposal networks. In NIPS, 2015.
〔2〕Wei Liu, Dragomir Anguelov, Dumitru Erhan, ChristianSzegedy, Scott Reed, Cheng-Yang Fu, and Alexander CBerg. SSD: Single shot multibox detector. In ECCV, 2016.
〔3〕J. Redmon, S. Divvala, R. Girshick, and A. Farhadi. Youonly look once: Unified, real-time object detection. arXivpreprint arXiv:1506.02640 v4, 2015.
〔4〕Jifeng Dai, Yi Li, Kaiming He, and Jian Sun. R-FCN: Objectdetection via region-based fully convolutional networks. InNIPS, 2016.
〔5〕Edward H Adelson, Charles H Anderson, James R Bergen,Peter J Burt, and Joan M Ogden. Pyramid methods in imageprocessing. RCA engineer, 29(06):33–41, 1984.
〔6〕Navneet Dalal and Bill Triggs. Histograms of oriented gradientsfor human detection. In CVPR, 2005.
〔7〕David G Lowe. Distinctive image features from scaleinvariantkeypoints. International Journal of Computer Vision,60(02):91–110, 2004.
〔8〕Bharat Singh and Larry S Davis. An analysis of scale invariancein object detection–SNIP. In CVPR, 2018.
〔9〕Bharat Singh, Mahyar Najibi, and Larry S Davis. SNIPER:Efficient multi-scale training. In NIPS, 2018.
〔10〕Piotr Doll′ar, Ron Appel, Serge Belongie, and Pietro Perona.Fast feature pyramids for object detection. IEEETransactions on Pattern Analysis and Machine Intelligence, 36(08):1532–1545, 2014.
〔11〕Tsung-Yi Lin, Piotr Doll′ar, Ross B Girshick, Kaiming He,Bharath Hariharan, and Serge J Belongie. Feature pyramidnetworks for object detection. In CVPR, 2017.
〔12〕Ross Girshick. Fast R-CNN. In ICCV, 2015.
〔13〕Zhaowei Cai and Nuno Vasconcelos. Cascade R-CNN: Delvinginto high quality object detection. In CVPR, 2018.
〔14〕Zeming Li, Chao Peng, Gang Yu, Xiangyu Zhang, YangdongDeng, and Jian Sun. Light-head R-CNN: In defense of twostageobject detector. arXiv:1711.07264, 2017.
〔15〕Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun.Spatial pyramid pooling in deep convolutional networks for visual recognition. IEEE Transactions on Pattern Analysisand Machine Intelligence, 37(09):1904–1916, 2015.
〔16〕Szegedy, C., Io_e, S., Vanhoucke, V., Alemi, A.A.: Inception-v4, inception-resnet and the impact of residual connections on learning. In: AAAI (2017).
〔17〕Chen, L.C., Papandreou, G., Schro_, F., Adam, H.: Rethinking atrous convolution for semantic image segmentation. arXiv preprint arXiv:1706.05587 (2017).
〔18〕Dai, J., et al.: Deformable convolutional networks. In: ICCV (2017).
〔19〕Li Y, Chen Y, Wang N, et al. Scale-Aware Trident Networks for Object Detection[J]. 2019.
〔20〕Hu J, Shen L, Sun G. Squeeze-and-excitation networks[C]//Proceedings of the IEEE conference on computervision and pattern recognition. 2018: 7132-7141.
〔21〕J Redmon, A Farhadi. YOLOv3: An Incremental Improvement. 2018.
〔22〕Zeming Li, Chao Peng, Gang Yu, Xiangyu Zhang, YangdongDeng, and Jian Sun. DetNet: Design backbone for object detection. In ECCV, 2018.