结合多特征融合与残差空洞卷积的小目标检测

2022-10-01 02:41尹群杰杨文柱冉梦影宋姝洁
计算机工程与设计 2022年9期
关键词:空洞残差卷积

尹群杰,杨文柱+,冉梦影,宋姝洁

(1.河北大学 网络空间安全与计算机学院,河北 保定 071002;2.河北大学 机器视觉工程研究中心,河北 保定 071002)

0 引 言

目标检测是当今计算机视觉领域中最活跃的研究课题之一,其本质是找出图片中物体的位置信息并判断出它的类别[1]。如今,随着视频监控、人脸识别、交通运输等方面在日常生活中的广泛应用,小目标检测已成为了目标检测中的难题之一,近年来,基于深度学习的方法在小目标检测等方面取得了明显进展[2-5]。

由于小目标本身在图像中所占像素相对较少,包含的特征也少,因而很难提取到足够多的有效特征,容易出现漏检问题,使得小目标的检测效果较差。早些年的目标检测器主要是基于手工设计的特征构建的,人们直接利用特征化的图像金字塔(如图1(a)所示)来检测各个比例的物体[6]。随着卷积神经网络的深入发展,Liu等提出了SSD[7],直接提取多个尺度的特征图,利用较浅层特征来检测较小的目标,利用较深层特征来检测较大的目标。但浅层特征缺乏足够的语义信息和上下文信息,直接利用其进行小目标检测效果不佳。基于此,目前常用的一种方法是将融合后的特征图直接进行预测(如图1(b)所示),如ION[8]、HyperNet[9]等。结合图1(a)、图1(b)的优点,Lin等[10]构建了特征金字塔网络(FPN),如图1(c)所示,利用自上而下的横向连接结构,提升低层特征图的语义信息,提高小目标检测的检测效果。但是多次下采样会丢失很多细节信息,于是Yu等[11]引入空洞卷积在不增加额外计算量的同时增强特征的语义信息。本文提出了一种结合多特征融合与残差空洞卷积的小目标检测算法。与SSD等近期的经典模型进行对比,实验结果表明,所提算法具有更高的准确率。

图1 多尺度特征学习模型

1 相关工作

1.1 SSD算法

SSD是一种端到端的单阶段目标检测算法,它不像两阶段目标检测算法那样先生成区域建议,再进行分类回归,而是采用卷积神经网络直接分辨出物体的类别,并对边界框进行回归。

原始的SSD使用VGG16作为骨干网络,并结合YOLO的回归思想和Faster RCNN中的Anchor boxes机制,提取多个尺度的特征图以实现多尺度特征检测,选取Conv4_3、Conv7、Conv8_2、Conv9_2、Conv10_2、Conv11_2卷积层作为特征图,并在这些特征图上分布不同尺度和比例的默认框,利用低层特征检测小目标,利用高层特征检测大目标。SSD在特征图上的每个锚点生成固定的且包括类别概率和定位信息的预测结果,然后再经过非极大值抑制(NMS)去除冗余的边界框。SSD低层特征图具有较高的分辨率,高分辨率特征会包含物体的位置信息,这对小目标检测有重大意义,但高层特征图所包含的位置信息不足,导致小目标检测效果不好,存在漏检问题。

基于此,本文结合SSD浅层特征图分辨率高、目标位置信息准确的优势,首先通过对低层特征图和高层特征图融合,进一步增强浅层特征图的语义信息。然后引入多分支残差空洞卷积模块,增强特征的多尺度上下文信息,以提高小目标检测性能。

1.2 空洞卷积

最初提出空洞卷积是为了解决图像分割问题,在深度神经网络中为了增加感受野进行下采样,这样虽然能够增大感受野,但降低了空间分辨率的同时,丢失了小目标的部分细节信息,对小目标检测非常不利。后来Yu等发现空洞卷积可以在不增加参数的同时增大小目标特征的感受野,增强小目标特征。Li等[12]证实了增大感受野有利于开展目标分类任务。Tian等[13]和Liu等[14]的研究表明空洞卷积能够提升卷积层感受野大小,同时可以为网络提供更强的特征语义信息。文献[15,16]的研究表明通过空洞卷积可以提升对浅层特征的利用,实现多尺度的感受野,获得更高的检测精度,但这些框架对小目标检测仍然不尽人意。空洞卷积的基本原理是在传统卷积核的每个像素点之间插入值为0的像素,以改变卷积核大小,然后再进行正常卷积操作。其操作可以使模型学习到更多有效的语义信息,以解决外界因素对检测小目标的干扰,更好地识别小目标。于是本文利用空洞卷积的优势,构建多分支残差空洞卷积,每个分支采用不同空洞率的空洞卷积,使得单个特征图上具有多尺度特征信息,且在不增加额外参数计算的同时实现不同分支卷积的共享,提高小目标的性能。

2 本文方法

2.1 方法整体框架

本文提出的结合多特征融合与残差空洞卷积的小目标检测算法的整体结构框架,如图2所示。该方法延续SSD的骨干提取网络VGG16,利用多个尺度特征图进行预测的优点,引入多层特征融合模块(multi-layer feature fusion module,MFFM),首先将Conv7_2、Conv8_2与Conv4_3进行通道拼接(图中大写C表示通道拼接),将Conv8_2、Conv9_2与Conv7_2进行通道拼接,将Conv9_2、Conv10_2与Conv8_2进行通道拼接,以增强浅层特征的语义信息,进而得到具有丰富的细节信息和语义信息的浅层特征图。然后将融合后的特征图引入多分支残差空洞卷积模块(multi-branch residual dilated convolution module,MRDM),以增强特征的多尺度上下文信息,接着将多分支残差空洞卷积模块的输出和Conv9_2、Conv10_2、Conv11_2进行最终预测。由于更深层的特征图经过较多的下采样会产生大量噪声,不适用于小目标检测,因此这里只将前3个特征图进行特征增强。

图2 结合多特征融合与残差空洞卷积的小目标检测算法的整体网络框架

2.2 多层特征融合模块

SSD浅层特征的语义信息较弱,因而小目标特征表达不充分,而以往的特征融合方式将所有的特征图经过上采样与之前特征图进行融合的方式不仅会引入大量不利于小目标检测的噪声还会影响算法的检测速度。

为解决这些问题,本文提出了多层特征融合模块,将第n+1个特征图、第n+2个特征图和第n个特征图进行通道拼接,有效地结合了相邻特征层的语义信息,且减少了连续上采样所带来的不利噪声。多层特征融合模块的结构如图3所示,先对第n个特征图进行一个3×3的卷积,以保证当前特征图和后两个特征图具有相同的特征表示能力,同时将通道数减少为原来的四分之一,以减少模型的计算量,然后对第n+1个特征图和第n+2个特征图进行一个1×1的卷积,降低通道数,以减少计算量,接着将卷积后的特征图通过Relu层,对第n+1和n+2个特征图经过上采样,由于反卷积所采用的时间复杂度较大,因此本文采用双线性插值法将后两个特征图的尺寸变成和第n个特征图尺寸大小相同,最后对操作后的3个特征图进行通道拼接,传到下一个模块。该融合操作用数学公式表示为

fn=Cn{Un(fn+1,fn),Un(fn+2,fn),fn}

(1)

式中:fn表示第n个特征图; Cn(x1,x2,x3) 表示第x1个特征图、第x2个特征图和第x3个特征图进行通道拼接; Un(y1,y2) 表示特征图y1经过双线性插值法的上采样后和特征图y2尺寸大小相同。

多层特征融合模块的具体做法为:将Conv7_2、Conv8_2与Conv4_3融合,将Conv8_2、Conv9_2与Conv7_2融合,将Conv9_2、Conv10_2与Conv8_2融合。融合后特征图的维度大小分别为38×38×512、19×19×448、10×10×256。

图3 多层特征融合模块结构

2.3 多分支残差空洞卷积模块

由于SSD浅层特征未经过下采样,感受野大小受到了限制,无法捕获到丰富的细节信息和上下文信息,不利于小目标检测。而空洞卷积可以在不增加参数的同时增大特征图上每个点的感受野,捕获更多的多尺度上下文信息。

本文结合空洞卷积的优势,借鉴ResNet[17],设计了一个多分支残差空洞卷积模块,其结构如图4所示,首先每一个分支会先经过一个1×1的卷积,将通道数从t变为t/2(t为输入通道数),其目的是减少模型的计算量。其次采用不同扩张率对其进行卷积操作,其中,空洞卷积的卷积核大小在本研究中都设置为3×3,每个分支的扩张率从上到下设置为1、3、5,在不增加参数的情况下捕获不同尺度特征的上下文信息。接着利用1×1的卷积调整通道数的大小,与输入层进行跳跃连接,使得多分支残差空洞卷积模块更优化。然后将这3个经操作后的特征进行通道拼接,以整合不同尺度的上下文信息;最后再经过一个1×1的卷积将通道数恢复至t,传入最终的分类预测。

图4 多分支残差空洞卷积模块结构

经过空洞卷积后的卷积核实际大小和感受野大小的计算公式如式(2)、式(3)所示

k′=k+(k-1)(r-1)

(2)

(3)

其中,k′是经过空洞卷积后的卷积核实际大小;k为原始卷积核大小,在本研究中都将其设置为3×3;r为扩张率,其中r=1,2,3,…,n;Rn为第n层的每个像素点的感受野,si为第i层的步长,在本研究中步长都设为1,其中i=1,2,…,n。

表1展示的是多分支残差空洞卷积的结构设计,即各层加空洞卷积后卷积核及感受野的大小。其中,Layer表示层数;Kernel表示卷积核大小,k表示经过空洞卷积前卷积核大小,在本研究中将其设置为3×3,k′表示经过空洞卷积后卷积核的实际大小,第n层空洞卷积的卷积核实际大小为(4n-1)×(4n-1); Stride表示步长,本文都设置为1;Dilated rate表示扩张率;Padding表示特征像素点边框的填充个数,本文Padding设置为和扩张率相同大小;RF表示感受野大小,第n层经过空洞卷积后特征图上每个像素点的感受野变为(2n2+1)2。 随着n的不断增长,在不引入额外参数的同时,空洞卷积的卷积核大小在逐渐变大,感受野也在不断扩展。

表1 多分支残差空洞卷积的结构设计

在本文中,每一个分支采用不同扩张率,即1,3,5,可以循序渐进地捕获图像不同区域内的信息,得到多尺度特征信息,避免同一个扩张率造成的信息冗余或丢失,该模块可以实现不同分支卷积的共享,从而降低模型的复杂度。

3 实验结果与讨论

本文算法采用深度学习框架PyTorch-1.3.0,编程语言为Python_3.7,在Windows10操作系统下实现,GPU型号为NVIDIA GTX 1080,CUDA版本为10.1。先在ImageNet数据库上对骨干网络VGG16进行预训练,然后在PASCAL VOC2007和PASCAL VOC2012的训练集和验证集上进行训练,最后在VOC2007数据集上进行测试,本研究采用平均精度(mAP)指标进行评估。为了能够更好地展示出本文算法的性能,将本网络模型与当前流行的网络模型进行比较,同时将各个模块的组合进行比较,以展示出本网络模型更好的检测性能。

3.1 数据集介绍

本网络模型在PASCAL VOC数据集[18]上进行评估。该数据集共有两个版本,PASCAL VOC2007和PASCAL VOC2012,VOC2007包含2501个训练图像、2510个验证图像和5011个测试图像;VOC2012包含5717个训练图像,5823个验证图像和10 991个测试图像。数据集总共分4个大类、20个小类(加上背景共21类),具体类别如图5所示,预测时输出20个类别,分别为飞机、自行车、鸟、狗、公共汽车、火车、汽车、奶牛、盆栽、船、人、羊、椅子、马、沙发、餐桌、摩托车、瓶子、电视监视器、猫。PASCAL VOC数据集可以在http://host.robots.ox.ac.uk/pascal/VOC/公开获取,输入图像都固定为300×300像素大小。本文选取PASCAL VOC2007和VOC2012数据集中16 551张训练图像和验证图像作为训练集,并在VOC2007数据集的4952张测试图像上验证模型性能。

图5 PASCAL VOC数据集的类别样本

3.2 评价指标

本文使用两个评价指标来评估模型性能,分别为mAP、FPS。mAP是计算小目标检测算法检测精度的指标,mAP即对测试集进行评估,是测试集中的真实框和预测框是否被检测出来的指标。

mAP值是多个类别平均精确度(AP)的均值,AP是指利用精确率和召回率组成的PR曲线下面的面积,用公式表示为

(4)

式中: p(r) 为利用精确率为纵轴和召回率为横轴的点所画的PR曲线。

精确率和召回率的计算公式如式(5)、式(6)所示

(5)

(6)

其中,Pr表示正确识别出物体类别的边界框数量与识别到物体类别的边界框总数量的比值;Re为正确识别出物体类别的边界框数量与Ground Truth中边界框总数量的比值;PTP表示真实框和预测框IoU值大于设定阈值(本文设定为0.5)的边界框数量;PFP表示真实框和预测框的IoU值小于设定阈值的边界框数量;PFN表示未被检测到的Ground Truth的数量。

FPS(frames per second)是小目标检测算法中检测速度的指标,指网络模型每秒处理多少张图片。例如,某小目标检测算法平均处理一张图片所需的时间为0.02 s,则检测速度为1/0.02=50 FPS。

3.3 VOC2007上的实验结果

本文将PASCAL VOC2007和PASCAL VOC2012的训练集作为训练样本,且在PASCAL VOC2007测试集上进行测试。在本实验中,本文算法所采用的损失函数和数据增强策略与SSD算法相同,在训练过程中预测框的IoU设置为0.5,总迭代次数为200K次,采用10-3的初始学习率进行120K次迭代,随后在120K~160K次迭代使用10-4的学习率,对剩下的40K次迭代降低学习率到10-5,权重衰减和动量分别为0.0005、0.9,批次大小设置为16,输入图片大小为300×300。

表2展示的是本文所改进的方法和目前具有较好性能的目标检测算法的检测精度和检测速度,可以看出本文方法的检测精度已达到了78.6%mAP,每秒可以检测57.2帧图像。表中前3个为两阶段目标检测算法,剩下的为单阶段目标检测算法。从表中可以看出,本文方法的检测精度比使用VGG16骨干网络的Fast R-CNN高了8.6%mAP,检测速度快了51.2 FPS;比使用VGG16骨干网络的Faster R-CNN高5.4%mAP,检测速度快了50.2 FPS;比使用ResNet-50骨干网络的R-FCN高1.2%mAP,检测速度快了48.2 FPPS。所提算法的检测速度均远远高于两阶段目标检测算法。本文方法的检测精度比使用Darknet-19骨干网络的YOLOv2高5.2%mAP,比使用VGG16骨干网络的SSD300高1.4%mAP,比使用DS/64-192-48-1骨干网络的DSOD高0.9%mAP,但是检测速度高了39.8 FPS,和使用ResNet-101骨干网络的DSSD算法的检测精度虽然相同,但是检测速度高出了47.7 FPS。和使用相同骨干网络的DSSD相比,检测精度高了0.3%mAP,检测速度高出了53 FPS。可见本文方法要优于当前目标检测性能较好的算法模型。

表2 不同小目标检测算法性能的对比

为了能够直观地显示出所提算法的优越性,对本文算法及当前性能优异的小目标检测算法画出散点,如图6所示,横坐标表示为各个算法的检测速度,纵坐标表示为各个算法的检测精确度,性能越好的小目标检测算法越靠近右上角。由此可见,本文算法要比其它的目标检测算法的检测性能好。

图6 不同检测算法的检测速度和检测精度的散点图对比

为了更清楚地看出SSD、DSSD和本文方法在PASCAL VOC2007数据集上对各个类别精确度的差距,本文设计了一个柱状图,如图7所示,横轴表示数据集的类别,纵轴表示相应类别的精确度,图上所显示的精确度为本方法各个类别的精确度。从图中可知,本文方法与SSD相比,有15个类别远远超过了SSD,如飞机、奶牛等,提高了5个百分点以上,有3个类别的精确度和SSD相近,如自行车、公共汽车、盆栽,只有2个类别低于SSD,如绵羊和电视监视器。相对于具有相同骨干网络的DSSD,本文方法有12个类别的精确度大于DSSD,如飞机、鸟、船等。本文方法是在浅层特征图上进行改进,使其同时包含高分辨率图像和强语义信息,对小目标例如飞机、鸟、瓶子的检测均有大幅度提升。因此,本算法检测小目标的性能要比SSD算法和DSSD算法好。

3.4 模型简化实验

为了验证本文所设计的多层特征融合模块和多分支残差空洞卷积模块在SSD算法上的有效性,在PASCAL VOC数据集上进行模型简化实验,实验结果见表3。传统SSD算法的浅层特征缺乏足够的语义信息和上下文信息,检测精度可以达到77.2%mAP;在仅添加多层特征融合模块时,浅层特征得到了丰富的语义信息,检测精度提升了1个百分点;在仅添加多分支残差空洞卷积模块时,浅层特征增强了上下文信息,检测精度提升了0.4个百分点;当将两个模块同时添加时,增强了浅层特征的语义信息和上下文信息,检测精度达到78.6%mAP。检测精度的提升证实了本算法中多层特征融合模块和多分支残差空洞卷积模块的有效性。

表3 在VOC2007测试集上的模型简化实验结果

3.5 实验结果的可视化

为了更直观地看出本文方法的优势和细节,选取VOC2007测试集上8张包含不同类别的小目标图片,对分类分数高于0.5的类别进行可视化,如图8所示。图片中(a)、(c)列为SSD的可视化结果,(b)、(d)列为本文方法的可视化结果。将分类分数高于0.5的目标用边界框框住,同时在图片上方写出边界框所框物体的类别和得分情况。第一行图像给出了对动物的检测结果;第二行给出了对人和骑行工具的检测结果;第三行给出了对小船的检测结果;第四行给出了对物品的检测结果。从图8可以看出,第一行本文方法比SSD多检测出5个鸟和2个羊,且得分比原始的高;第二行本文方法比SSD多检测出3个人和2个自行车,且得分情况比SSD好;第三行本文方法比SSD多检测出4个船,且分类分数明显优于原始SSD;第四行本文方法比SSD多检测出3个盆栽和3个瓶子,且得分情况比SSD好。从图中可以看出传统的SSD算法在小船、羊等中小尺寸目标上检测效果较差,大部分目标还未检测出来,而改进后的方法对于在图像中所占比例较小的目标和被遮挡的物体都有所改善,而且物体得分情况明显要优于原始的SSD算法。这是因为本文方法提升了浅层特征的表示能力,得到了特征的强语义信息和多尺度上下文信息,将原本只包含高分辨率图像的浅层特征图融入了细节信息,在一定程度上降低了小目标的漏检率,提高小目标检测的鲁棒性。

图8 SSD和本文方法在PASCAL VOC2007测试集上的检测结果

4 结束语

本文提出了一种结合多特征融合与残差空洞卷积的小目标检测算法,设计了一个多层特征融合模块,将相邻的浅层特征进行融合,以增强特征图的语义信息,设计了一个多分支残差空洞卷积模块,通过建立多个不同扩张率的空洞卷积分支,在不丢失原始分辨率的同时增大特征图的感受野和上下文信息。实验结果表明,所提出的网络模型在保持实时速度的同时,精度亦优于当前目标检测性能较好的算法模型,可用于实时目标检测任务。但是该算法的检测精度和检测速度仍可以有所提升,在以后的工作中将对骨干网络VGG16进行修改,把DenseNet[23]引入上下文信息增强模块,同时收集包含更多小目标的数据集,以便进行训练和预测,进一步提高算法的检测效果。

猜你喜欢
空洞残差卷积
基于残差-注意力和LSTM的心律失常心拍分类方法研究
基于双向GRU与残差拟合的车辆跟驰建模
番茄出现空洞果的原因及防治措施
基于3D-Winograd的快速卷积算法设计及FPGA实现
基于残差学习的自适应无人机目标跟踪算法
如何避免想象作文空洞无“精神”
卷积神经网络的分析与设计
基于深度卷积的残差三生网络研究与应用
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法