基于注意力机制和特征融合的SSD目标检测算法
2020-06-09高建瓴孙健王子牛韩毓璐冯娇娇
高建瓴 孙健 王子牛 韩毓璐 冯娇娇
摘 要: 为提高SSD算法对于小目标的检测能力和定位能力,本文提出一种引入注意力机制和特征融合的SSD算法。该算法在原始SSD模型的基础上,通过将全局池化操作作用于高层的不同尺度的特征图上,结合注意力机制筛选出需要保留的信息。为提高对小目标的检测精度,本文引入反卷积和特征融合的方式,提高对小目标的检测能力。通过在PASCAL VOC数据集上的实验表明,该算法有效的提升了对小目标识别的准确率,改善了漏检的情况,大幅度提升了检测精度和算法的鲁棒性。
关键词: 注意力机制;SSD算法;全局平均池化;特征融合;PASCAL VOC数据集
中图分类号: TN911.73 文献标识码: A DOI:10.3969/j.issn.1003-6970.2020.02.045
【Abstract】: In order to improve the ability of SSD algorithm to detect and locate small objects, this paper proposes an SSD algorithm that introduces attention mechanism and feature fusion. On the basis of the original SSD model, the algorithm combined with the attention mechanism to screen out the information that needs to be retained by applying the global pooling operation on the feature graphs of different scales at the high level. In order to improve the detection accuracy of small targets, deconvolution and feature fusion are introduced in this paper to improve the detection ability of small targets. Experiments on PASCAL VOC data set show that the algorithm can effectively improve the accuracy of small target recognition, improve the situation of missing detection, and greatly improve the detection accuracy and robustness of the algorithm.
【Key words】: Attention mechanisms; SSD algorithm; Global average pooling; Feature fusion; PASCAL VOC data set
0 引言
目前,越来越多的领域都运用到了目标检测技术[1-3],例如,无人驾驶领域,医疗图像领域,军事领域等等。在广泛运用的同时,怎样可以将目标检测的性能提高,成为了困扰广大国内外学者的一个重点和热点问题[4-5]。近几年,深度神经网络在目标检测领域取得了突破性的研究成果,其检测精度和速度都有了较高的提升,如R-CNN,Fast-RCNN,Faster-RCNN,YOLO,SSD等[6-10]。
其中,R-CNN,Fast-RCNN,Faster-RCNN属于two-stage检测算法,通过分类和回归的方式进行目标检测是two-stage检测算法的特点,该目标检测模型的主要思想是基于区域候选的方法,在检测区域中先将候选区域提选出来,然后再进行分类和特征提取。YOLO,SSD属于one-stage的检测算法,直接通过回归的方式实现目标检测,这就是one- stage的检测算法[11],这种检测方法需要预先按照一定的方式划定默认框,根据预测框、默认框、真实框之间的对应关系进行训练,最典型的代表就是YOLO算法和SSD算法。YOLO算法是將特征图等分为n×n的网格,但是有的时候一个网格中会存在很多小目标,这就很有可能会造成对于目标的漏检和误检,而SSD算法就同时兼顾检测的准确率和速度,是因为SSD算法可以在一个网格中提取多个候选区域[12]。但是SSD算法对于网络的特征表达能力仍然存在不足,例如,鲁棒性差,边界定位不佳等问题。
为解决这一问题Liu等人提出了一种DSSD算法[13],DSSD用Resnet-101网络替换SSD中的VGG16网络,将残差模块加入到了分类回归之前,在SSD添加的辅助卷积层后又添加了反卷积层形成“粗-细-粗”的哑铃结构。经过如此改造之后,DSSD算法在小目标检测上比SSD算法有了一个较大的提高,但因为加入的Resnet-101网络,卷积层数太深,计算量太大,导致DSSD比SSD的检测速度慢了不少。
为了进一步提高SSD算法的准确度,本文为了增强高层特征图的语义信息引入了通道域注意力机制。通过反卷积和特种融合的方法提高对小目标的检测精度。通过实验表明,本文算法在目标检测及小目标检测的准确率有了一定的提高,具有良好的鲁棒性。
1 相关工作
1.1 注意力机制
近些年来,使用掩码(mask)来形成注意力机制成为了在深度学习与注意力机制中相结合的一种研究方式。掩码的工作原理是通过另一层新的权重,将数据集图片中的关键特征识别并标记出来,然后经过不断的学习和慢慢的训练,让网络学习到每一张数据集图片里需要更多关注的区域,加重这块区域的权重,这样也就形成了所谓的注意力。这样来理解的话,注意力机制可以分为两种注意力机制,一种可以称之为软注意力,另一种可以称之为强注意力,软注意力更注重通道或者区域,软注意力学习完成后可以直接通过网络生成,所以软注意力是一种确定性的注意力。而且这种软注意力可以通过神经网络算出梯度,通过向前传播和向后传播反馈学习进而得到注意力的权重,这说明这种软注意力机制是可以微分的。而强注意力则更加偏向于关注点的变化,也就是说强注意力机制是一个随机的预测过程,图中的每一个点都有可能延伸出注意力,更偏向于动态变化。强注意力机制的训练过程通常是由增强学习完成的,这是因为强注意力是一个不可微的注意力。
如果从注意力域这方面来分析,注意力机制可以分为空间域注意力机制(spatial domain),通道域注意力机制(channel domain),混合域注意力机制(mixed domain)。
1.1.1 空间域(Spatial Domain)
2015年Max[14]等人提出一个叫空间转换器的模块,将图片中的关键信息提取出来,并对其空间域的信息进行相应的空间变换。其模型结构如图1所示。
spatial transformer说白了就是注意力机制的一种实现方式,因为经过训练得到的spatial trans former可以发现图片信息中需要被关注的区域,而且这个transformer还具有将图片变大变小,改变方向的功能,这样图片信息中需要被关注的区域可以用框盒提取出来。这个模块可以作为新层加入到其他网络结构中,对上一层信号的关键信息进行识别。
1.1.2 通道域
2017年hujie等人提出了一个非常重要的SENet的模型[15],并一举夺得ImageNet的冠军,其网络结构如图2所示。
我们从上图可以看出,左边的X是原始输入图片特征,经过卷积变换Ftr,产生了新的特征图U。特征图U包括了C个通道,每个通道的权重可以由注意力模块来学习出来,进而生成通道域的注意力。中间的注意力机制模块就是SENet的创新部分。SENet中的注意力机制可以分成三个部分:挤压(squeeze),激励(excitation),以及注意(attention)。
1.1.3 混合域
经过上面对空间域注意力机制和通道域注意力机制的介绍,我们可以发现,通道域注意力是忽略每一个通道内的局部信息,直接对通道内的信息进行全剧平均池化,这种做法比较粗糙。而空间域的注意力机制是将通道中的特征图进行同等处理,就会忽略通道域中特征信息,但是这样的话空间域的变换方法只能在原始图片特征提取阶段进行,如果在其他卷积层上进行应用,则可解释性不强,将这两种注意力机制结合一下就可以设计出混合域的注意力机制模型。
2017年Fei Wang等人提出了注意力机制与深度残差网络相关的方法[16],这篇文章中的注意力机制是一种软注意力机制,使用mask码来形成注意力。其中每一个特征元素(element)的权重就可以看成是这种mask码。将注意力权重对应到每个特征元素中去,形成的注意力机制就可以包含空间域和通道域了。
1.2 SSD网络结构
SSD的基础网络使用的是VGG16网络,将VGG16的两个全连接层替换为卷积层,并增加卷积层深度,在后面添加了Conv8_2,Conv9_2,Conv10_2, Conv11_2四个卷积层。其网络结构图如图3所示。
SSD将bounding box的输出空间离散化成一系列的default boxes,有点类似于faster rcnn中的anchor。不同的层会输出不同的default boxes,最终汇总在一起进行非极大值抑制。这样结合不同尺度的特征图的boxes可以有效的处理多尺度问题。
1.3 特征融合
1.3.1 深度特征的层次性
2014年,Zeiler和Fergus利用反卷积技术[17]对卷积神经网络Alex Net特征进行可视化[18],发现了卷积神经网络的一些特性,其中之一就是卷积神经网络具有层次性。卷积操作能够得到图片候选框区域中各种特征,经过池化操作之后,这些特征就会进行融合和抽象,就这样重复进行卷积、池化、卷积、池化操作,不断堆叠之后,从每一层得到的深度特征由一般的特征(如边缘、纹理特征)慢慢变成高层语义特征(如人脸、躯干等模式)。得益于卷积网络特征的层次特性使得不同层的特征可以信息互补,因此对单个网络模型而言卷积特征融合是一种十分直接有效的网络集成方法,对于提高网络精度有较好的表现。
1.3.2 上采樣
不同层的卷积特征图的分辨率可能不一样,而特征融合时通常需要一样分辨率的卷积特征图,所以就要对不同分辨率的卷积特征图进行缩放操作。下采样是一种将图片的分辨率采样到更小的分辨率的技术,比如我们人尽皆知的池化操作;与之相对应的,将图像分辨率采样到更高分辨率的技术就叫做上采样。在CNN中,常用的上采样方法是转置卷积[19](Transposed Convolution),也称为反卷积。这里的反卷积与之前提到的特征可视化中的反卷积一样都只是为了保证尺寸大小的互逆,而非数学意义上保证值的还原。反卷积过程如图4所示,假设输入为2*2大小,反卷积中的卷积核大小为4*4,将每个输入值乘以一个卷积核,则得到4个4*4大小的输出窗口,再将这四个输出窗口以stride为2的方式叠加,去掉最外圈一圈的padding值,中间留下的部分就是最终输出,大小刚好是输入的两倍。
2 本文算法
2.1 加入通道注意力机制的SSD算法
注意力机制模块的实现过程分为三个步骤:挤压(squeeze),激励(excitation),以及注意(attention)。其中挤压的公式如公式(1)所示。
其中H、W、C分别代表低分辨率高语义信息图X输入维度的长度、宽度和通道数,对信息图X进行挤压操作后,得到长度为C的一组数组。公式(1)中的(i,j)表示在大小为H*W的特征图上的(i,j)点,输出Y是长度为C的一维数组。我们可以看出公式(1)实际上就是一个全局平均池化的操作,把每个通道内所有的特征值平均再相加。接下来的激励过程实际上就是对各通道间的相关度进行建模,公式如下:
W1的维度是C*C,W2的维度是C*C,其中C为C*1/4,经过ReLU激活函数和Sigmoid函数来训练学习这两个权重,得到一个一维的激励权重来激活每一层通道,最后得到的S的维度是C*1*1。最后是attention操作:
将原始的输入X替换为经过注意力机制模块获得的特征图X·,并送到本文改进的SSD网络中进行检测,换一种说法这个过程其实就是一个放缩 的过程,不同的通道的值乘上不同的权重,从而可以增强对关键通道的注意力。其算法流程图如图5所示。
2.2 加入反卷积和特征融合的SSD模型
针对SSD对小目标检测能力不足的问题本文使用反卷积让负责检测小目标的特征层conv4_3的特征图增大,然后对特征层conv11_2输出的特征图进行上采样,conv11_2是一层拥有丰富语义的特征层,得到的特征图效果较好,将上采样后得到的特征图与特征图nconv4_3进行拼接,最后与SSD模型固有的多尺度特征层进行像素直接加权和不同加权系数的特征融合。所以,本文提出的最终模型如图6所示。
图6中红线部分为反卷积特征区域放大模块,主要作用是通过反卷积放大conv4_3特征图分辨率,与上采样的conv11_2特征图拼接,得到新的特征层nconv4_3。SSD模型其他特征层为conv7、conv8_2、conv9_2和conv10_2,与nconv4_3进行不同加权系数的特征融合,最后进行对目标的定位检测并输出。
3 实验结果与分析
3.1 实验环境和数据集
本实验所用配置为linux操作系统openSUSE Leap 42.3,选用intel(R)Core(TM)i5-7500的CPU,GeForce RTX2080Ti的GPU,深度学习框架为Tenorflow。实验所用数据集为PASCAL VOC数据集,该数据集包括20个类别,即飞机、自行车、鸟、船、瓶子、公共汽车、小轿车、猫、椅子、牛、桌子、狗、马、摩托车、人类、植物、羊、沙发、火车、电视,共27088张图片。本文使用VOC2007和VOC2012數据集进行训练,VOC2007数据集进行测试。
3.2 实验结果及对比
在目标检测中我们通常用mAP来表示算法的精确度如何,我们将batch_size设置为32,初始学习率0.0001,学习率的衰减因子为0.94,迭代80000次,得到最终的网络模型。对比SSD模型,DSSD模型以及本所提出的模型,实验结果如表1所示。
由表1可以看出,本文所提出的引入注意力机制和特征融合的SSD目标检测算法,在检测精度上比传统的SSD算法提高了1.8%。
本文提出的模型目的是提升小目标的检测准确率,VOC2007测试集中有21类不同的大小的目标,本文选取其中6类具有代表性的小目标,检测准确率与SSD和DSSD对比,实验结果如表2所示。
由表2可知,本文提出的模型在6类小目标的平均检测准确率为67.9%,较SSD和DSSD模型分别提升3.1%提升1.9%。可见本文方法能够有效检测小目标,对小目标的准确率有明显的提升。
除此之外,为了检验改进算法的实时性,本文对比了SSD算法、DSSD算法以及本文改进算法的检测速度,具体检测结果如表3所示:
由表3可知,SSD模型每秒检测52帧图像,DSSD模型每秒检测19帧图像,本文模型检测速度为每秒28帧图像,检测单张图像耗时为SSD的两倍,但快于DSSD模型。
模型检测速度相对于SSD模型之所以有所下降,是由于本文方法在底层特征层上采用反卷积操作,其在提高特征分辨率的同时增加了计算量,还在后面五层卷积层上加入了注意力机制,使模型的运行时间增加,最终影响了模型的检测速度。
但是本文模型在检测精度上相比于SSD模型、DSSD模型有较为明显的提升,在PASCAL VOC数据集上检测精度达到了73.2%,比SSD模型、DSSD模型分别提高了1.8%,0.6%。在PASCAL VOC小目标检测上,精度达到了67.9%比SSD模型、DSSD模型分别提高了3.1%,1.9%。检测速度虽然不及SSD模型,但比DSSD要快上不少,达到了28 f×s-1,一般视频流为每秒25帧图像,因此,本文模型在提高检测精度的同时,可以满足实时性的要求。
4 结束语
基于传统SSD算法对小目标检测效果不佳,鲁棒性不佳,定位较差的问题,提出一种引入注意力机制和特征融合的算法,改进算法的识别精度,提高算法的鲁棒性,增强对小目标的检测精度。通过实验发现,本文算法对于小目标具有一定的识别能力,改善了目标漏检、定位不佳等问题,大幅度提升了算法的鲁棒性。下面我将逐步改进模型,在考虑改进高层级特征的基础上,减小计算量,改善其实时性,进一步提高本文算法各方面的性能。
参考文献
江超. 基于OpenCV的实时动态手势检测研究[J]. 软件, 2015, 36(6): 114-119
林王兵, 许燕, 韩飞, 吕超贤, 龚佳俊等. 实验室环境下的边缘检测技术研究综述[J]. 软件, 2015, 36(9): 29-32
张明军, 俞文静, 袁 志, 等. 视频中目标检测算法研究[J]. 软件, 2016, 37(4): 40-45
郭毓, 苏鹏飞, 吴益飞, 郭健. 基于Faster R-CNN的机器人目标检测及空间定位[J]. 华中科技大学学报(自然科学版), 2018, 46(12): 55-59.
高宗, 李少波, 陈济楠, 李政杰. 基于YOLO网络的行人检测方法[J]. 计算机工程, 2018, 44(05): 215-219+226.
GIRSHICK R, DONAHUE J, DARRELL T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation [C]// Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Columbus: IEEE, 2014: 580-587.
GIRSHICK R. Fast R-CNN [C]// Proceedings of the IEEE Conference on International Conference on Computer Vision. Boston: IEEE, 2015: 1440-1448.
REN S, HE K, GIRSHICK R, et al. Faster R-CNN: towards real-time object detection with region proposal networks [J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2017, 39(6): 1137-1149.
REDMON J, DIVVALA S, GIRSHICK R, et al. You only look once: unified, real-time object detection [C]// Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. New York: IEEE Press, 2016: 779-788.
LIU W, ANGUELOV D, ERHAN D, et al. SSD: single shot multibox detector [C]// Proceedings of European Conference on Computer Vision. Amsterdam: Springer International Publishing, 2016: 21-37.
趙秋实, 史燕中, 方 志, 等. 基于频繁集的伴随车辆检测算法研究[J]. 软件, 2016, 37(4): 69-73
洪奔奔, 管声启, 任浪, 等. 基于特征提取与匹配的带钢缺陷检测[J]. 软件, 2018, 39(9): 31-34
Fu C Y, Liu W, Range A, et al. DSSD: deconvolutional single shot detector [J]. arXiv preprint arXiv:1701.06659, 2017.
Jaderberg, Max, Karen Simonyan, and AndrewZisserman. Spatial transformer networks[C]. Advances in neural information processing systems. 2015.
Hu Jie, Li Shen, and Gang Sun. Squeeze-and-excitation networks. arXiv preprintarXiv:1709. 01507 (2017).
Wang, Fei, et al. Residual attentionnetwork for image classification. arXiv preprint arXiv:1704. 06904 (2017).
Zeiler M D, Taylor G W, Fergus R. Adaptive deconvolutional networks for mid and high level feature learning[C]// Proceedings of the IEEE International Conference on Computer Vision. 2011: 2018-2025.
Matthew D. Zeiler and Rob Fergus. Visualizing and understanding convolutional networks[C]//Proceedings of European Conference on Computer Vision. Springer Inter national Publishing, 2013: 818-883.
Wojna Z, Ferrari V, Guadarrama S, et al. The Devil is in the Decoder[J]. arXiv preprint arXiv: 1707. 05847, 2017.