分段反卷积改进SSD的目标检测算法

2021-07-08 08:27赵志浩尹震宇柴安颖李成蒙
小型微型计算机系统 2021年7期
关键词:尺度卷积精度

马 跃,赵志浩,2,尹震宇,樊 超,2,柴安颖,2,李成蒙,2

1(中国科学院 沈阳计算技术研究所,沈阳 110168)2(中国科学院大学,北京 100049)

1 引 言

目前,目标检测技术已经应用于安全领域、军事领域、交通领域、医疗领域以及生活领域等.目标检测主要是检测特定类别的目标是否在图像中,并寻找特定类别的目标在图像中的位置.如何提高目标检测预测的精度成为研究的热点,在目标检测中,小目标由于尺寸小,分辨率低,容易受噪声的影响,容易造成漏检和误检,所以如何提高小目标检测的精度一直是目标检测整体精度提高的重要环节.

早期的目标检测主要有Haar特征[1]、方向梯度直方图HOG(Histogram of Oriented Gradient)[2]、局部二值模式LBP[3](Local Binary Pattern)和分类器(SVM[4]、Adaboost[5]).由于目标种类繁多,姿态千变万化,以及各种目标之间的遮挡和光照问题,所以传统的目标检测方法的鲁棒性和实时性都很差.随着计算资源的发展,2012年AlexNet[6]崭露头角,其运用的深度学习技术也因为其算法检测精度高开始进入人们的视野.

目标检测算法基于深度学习大致分为两类,分别是双阶段目标检测算法和单阶段目标检测算法.双阶段目标检测算法在进行分类和定位前,先生成候选框,再将候选框通过神经网络算法进行预测.当前双阶段目标检测算法主要有RCNN系列,包括RCNN[7],Fast-RCNN[8],Faster-RCNN[9],Mask-RCNN[10]等.双阶段目标检测算法由于先生成候选框再进行预测,所以其检测精度高,但其需要两步策略,导致模型的复杂度大幅增加,从而降低了算法模型的预测速度.单阶段目标检测算法主要以SSD[11]系列和YOLO[12]系列为主.YOLO算法采用一个单独的CNN模型实现end-to-end的目标检测,在速度上具有很大优势,但检测图像中如果多于一个目标出现在其划分的同一个网格中,就会出现目标的漏检,所以其对目标的检测精度不高.随后SSD目标检测算法被提出,其主要运用anchor机制在不同尺度特征图上检测,卷积次数较少的浅层特征图用于检测小占比目标,提取语义信息较多的高层特征图用于检测大占比目标,充分运用了不同尺度特征图所包含的信息检测不同大小的目标,这样做的优点是即使在低分辨率的图像上也能有比较好的检测效果,但SSD模型并未解决对小目标检测的不友好.YOLO v2[13]算法去掉了全连接层,加入了新的卷积结构,每一个卷积层后添加batch normalization,在此基础上又加入了级联和Anchor Box,YOLO v2算法相比YOLO算法在检测更快速的同时,增强了检测精度.YOLO v3[14]算法在YOLO v2的基础上又进行了优化,借鉴了SSD算法的优点,利用了多个尺度的特征图对目标进行检测,所以YOLO v3相对YOLO v2检测精度有明显提升,但由于使用了全新更深层次的网络结构,其检测速度稍有不足.针对小占比目标的检测,相比之前的算法,YOLO v3算法有了明显提升.

针对SSD算法,研究者们也从不同方面对其进行了大量改进.Liu W等在2017年针对SSD网络进行改进,提出了基于特征融合的DSSD[15]模型,利用高层特征和低层特征所提取的特征不同,使融合后的特征层具有更多的语义信息和细节信息,但融合后的特征层计算量大幅增加,所以检测速度有所下降.同时期,RSSD[16]、FSSD[17]和DSOD[18]也分别利用特征融合改进了SSD,在检测效果上都有不同程度的提升.RetinaNet[19]算法和RefineDet[20]算法在2018年被提出,FPN[21]结构被应用在RetinaNet结构中,构建了新型网络结构,RetinaNet基于特征金字塔结构提出了新的损失函数进行优化,利用多尺度特征对目标进行检测.同时期的RefineDet为了提高对小目标的检测能力,也引入了特征金字塔结构对目标进行检测.随后RFB[22]算法提出使用空洞卷积和多分支卷积增强模型对特征的提取能力,由于其主干网络使用相对较简单的VGG16,RFB算法不仅有较好的检测精度,也具有较快的检测速度.最近几年,针对不同领域特定目标的检测,国内也有部分算法[23]在各个领域开始应用,并具有很好的效果.阅读综述[24,25],本文基于SSD算法进行改进,选取了Pascal VOC2007测试集做验证,对比了输入尺度相差不大的SSD算法和DSSD算法各类别目标检测精度,选取了近年最新的单阶段经典目标检测算法比较了mAP值和FPS值,实验结果表明,相比SSD算法和DSSD算法,本文模型对小目标检测提升明显,相较近年经典的单阶段检测算法,在具备实时性的同时,也具备很高的检测精度.

2 相关工作

2.1 SSD模型结构

SSD是一种主流单阶段目标检测算法,算法的主干网络为VGG16,是一种多尺度特征图目标检测算法.SSD(本文提到的SSD和SSD300,输入尺度全为300×300)模型利用多尺度检测特征图检测不同尺度的目标,用于检测小目标的为主干网络中的Conv4_3,加上新增卷积层中提取的Conv7、Conv8_2、Conv9_2、Conv10_2、Conv11_2共同组成检测特征图对目标进行检测.充分利用多尺度特征图的优势,经过卷积次数较少的浅层特征图检测小目标,经过卷积次数多的深层特征图具有更多的语义信息检测大目标.

2.2 SSD模型的缺点分析

SSD模型经过层层卷积池化,低层特征图包含较多的细节边缘信息,但语义信息不足,高层特征图包含更多的语义信息,但细节信息丢失严重.因此,SSD模型利用多尺度检测,低层特征层检测小目标,高层特征层检测大占比目标,克服逐层抽样时特征的丢失.但是SSD模型仅利用主干网络中的Conv4_3层检测小目标,其虽然保留了细节信息,但语义信息却不充分,表征能力也不足,高层特征层有5层,但是由于层级高,对中等目标的部分特征丢失,这导致了SSD模型对中等占比目标和小占比目标的检测效果弱于大占比目标.本文通过分析SSD模型对于中小目标检测的缺点,提出基于分段反卷积改进SSD的SD-SSD模型.

2.3 反卷积

反卷积也叫做转置卷积,反卷积操作的主要目的是放大特征图,反卷积后的特征图与卷积前特征图不完全相同.小尺度特征图经过过多反卷积操作,细节信息丢失严重,噪声信息也增加的更多.卷积中丢失的特征图信息不能通过反卷积操作进行完全恢复.本文提出了分段反卷积的思想,在尽量少的增加噪声信息的同时,使特征图的特征信息更充分.

3 基于SSD模型改进的SD-SSD模型具体实现

本文SD-SSD模型基于SSD模型进行改进,主干网络利用相对简单的VGG16,VGG16在计算速度上和特征提取上都具有较好的效果.本文提出分段反卷积的思想,又在此基础上设计了新的融合结构,避免了反卷积次数过多噪声信息加入的同时,又弥补了低层特征层语义信息不足,高层特征层细节信息丢失过多.

针对SSD模型仅有主干网络中Conv4_3特征层检测中小占比目标,本文采用的多尺度检测提出了在不改变原有SSD检测尺度的情况下,加入更低层次的特征融合层Fusion_conv3_3对中小占比目标增强检测,以解决SSD对小目标检测的不足.为增强本文模型的泛化能力和鲁棒性,本文在SD-SSD模型中添加了Batch Normalization.本文提出的模型利用融合后的Fusion_conv3_3、Fusion_conv4_3、Fusion_conv7、Fusion_conv8_2、Fusion_conv9_2、Fusion_conv10_2、Conv11_2多尺度特征层进行检测多尺度目标,为充分利用SSD模型多尺度检测的优点,本文提出的模型除了新增加的Fusion_conv3_3,其它检测特征层尺度与SSD保持一致.本文模型结构如图1所示(其中©代表特征融合模块).

图1 SD-SSD模型结构图Fig.1 SD-SSD model structure diagram

3.1 特征融合结构

SSD在检测阶段首创了多尺度特征图检测,在不同尺度的特征图上实现了对不同尺度的目标进行检测,但由于单一特征层包含的信息相对较少,高层特征图经过层层卷积丢失了过多的细节信息,低层特征图经过的卷积次数较少,语义信息不充分.若只经过反卷积,虽然语义信息得到了保留,但也增加了部分噪声信息,特征层中的细节信息并不能恢复,其对中小占比目标的检测依旧不足.

本文提出的特征融合借鉴了DSSD模型融合结构,为降低参数量减少计算,又能实现特征检测层包含更多的特征信息,构建了新的融合结构,如图2中,A部分代表是反卷积部分,B部分代表正向卷积部分.A部分先经过反卷积进行维度的变换,再通过卷积核维度为1的卷积计算进行通道数的变换减少参数的计算量,然后经过BN和激活函数,再经过一层反卷积和BN、Relu,得到与B部分维度和通道数相同的特征层与B部分输出的特征层进行融合.图2中C代表融合模块,本文通过实验对比了3种融合方式,分别是特征值各元素相加求和、特征值各元素相乘求积和通道级联融合,最后选择了可提供更高精度的通道级联融合方式.特征级联融合完成后,利用卷积核维度为1的卷积计算进行通道数的转换,将通道数转化成与步骤B中正向卷积生成的特征层通道数目相同,最终生成新的融合后的特征层.为增强网络的泛化能力和鲁棒性,避免模型中权重偏置溢出,在网络中增加了BN层,模型中激活函数使用的是Relu非线性激活函数.

图2 特征融合结构图Fig.2 Feature fusion structure diagram

3.2 分段反卷积

DSSD模型为了克服SSD对小目标检测的不足,利用反卷积进行上采样,又引入残差结构与正向卷积特征层融合避免低层特征图卷积次数较少,特征提取不充分,高层特征层虽然提取到更多的语义特征,但边缘信息丢失过多的缺点.但由于DSSD网络模型中反卷积都起源于最末层特征层,其经过的层层反卷积,虽然能提取语义特征,也会造成细节特征丢失和过多噪声信息的加入,这也导致DSSD算法对目标检测的效果相对提升有限.本文提出的改进思想是将反卷积的过程分成3段,充分发挥反卷积的优势,避免反卷积的缺点,每段反卷积进行后与浅层特征层进行融合,融合后的特征层增加了特征的细节信息和语义信息,同时避免了反卷积次数过多导致噪声信息加入的问题.

分段反卷积具体实现如图1所示,反卷积操作的特征图从Conv11_2、Conv9_2、Conv7分别进行反卷积操作,生成新的特征图与其低两层特征图进行图2方式融合.3个分段反卷积后,融合生成了6个新的特征图与Conv11_2共同进行特征检测.

反卷积操作可以增大感受野,对特征图进行上采样,提取更多的语义信息用于图2中的特征融合.反卷积的计算公式如式(1).

d=s×(i-1)+k

(1)

在公式(1)中,k为卷积核的大小尺度,i为输入特征图分辨率的大小,s为卷积核每次移动的步长,d为输出特征图分辨率的大小.本文根据反卷积计算公式,为级联融合提供条件,将反卷积得到的特征图尺度与融合前特征图尺度保持一致.

3.3 改进的多尺度特征图检测

SSD模型应用多尺度特征图预测,得益于不同尺度的特征图对不同尺度的目标具有比较好的效果,SSD算法准确度和速度都要比之前的算法好很多,但SSD算法对小目标的检测不友好,主要原因是用于检测小占比目标的特征图仅有主干网络中的Conv4_3.如图3所示,(a)图为原始图像,(b)图是Conv3_3输出特征图,(c)图是Conv4_3输出特征图,从特征图对比可以明显看出,经过卷积和池化较少的(b)图保留的边缘信息更加完整,但由于其经过的特征提取层较少,提取到的语义信息也不足.本文模型为解决对小目标检测的不足,新增加了保留细节信息更多的Conv3_3层与反卷积后的特征层融合作为新的检测特征层加强检测小目标,融合后的特征层既具有多次卷积提取到的语义信息,又融合了浅层特征图的边缘信息,所以其特征信息更加丰富.

图3 特征对比图Fig.3 Feature comparison chart

增加的Conv3_3层与反卷积融合后的特征层尺度大小为75×75,Conv4_3层与反卷积融合后的特征图尺度大小为38×38,因为这两层检测特征图都是由主干网络中的特征图融合而成,为减小特征检测层本身差异的影响,这两层融合后的特征层分别进行L2 Normalization[26]做通道归一化.

为最大程度的保留SSD模型多尺度特征图检测的优势,如表1中结构参数,Fusion_conv4_3、Fusion_conv7、Fusion_conv8_2、Fusion_conv9_2、Fusion_conv10_2、Conv11_2特征图保持检测尺度、长宽比和数目与SSD模型相同,对先验框的计算依旧采用同样的线性计算公式:

表1 多尺度特征图先验框Table 1 Multiscale feature map prior box

(2)

min_sizek=sk×input_size

(3)

max_sizek=sk+1×input_size

(4)

4 实验结果与分析

实验所用数据集为 PASCAL VOC 数据集,本文使用训练数据集共有20个类别,16551张图片,包含 VOC2007 和 VOC2012的训练集数据.利用VOC2007 数据集进行测试验证.实验使用深度学习框架为Caffe,显卡为 Nvidia GeForce GTX 1080Ti,运行环境为linux服务器.

4.1 训练与实验分析

实验训练使用预训练模型为VGG16模型,将图像输入尺度设置为300×300(以下提到的SD-SSD模型输入图像尺度都为300×300),模型共迭代训练16万次.模型训练Batch size设为25,初始学习率lr设为0.01,lr的衰减因子gamma为0.5,衰减策略为lr=lr×gamma,训练6万次、8万次、10万次、12万次、14万次分别对lr进行衰减策略生成新的学习率,模型优化方法为随机梯度下降法.

mAP(mean average precision)作为目标检测中常用衡量精度的指标,计算方法如公式(5)、公式(6)所示.

(5)

mAP=sum(AP)/N

(6)

其中r表示选取回归的阈值,P表示各个阈值下精度的数值,N表示类别的总数目.在本文模型下,经过对比各置信度阈值下的实验结果,当阈值为0.4,得到对各类别目标的检测效果最优,本文模型mAP值为81.60%,比SSD(输入尺度大小为300×300,本文也称其为SSD300)算法平均检测精度提高了4.30%,比DSSD(输入尺度大小为321×321,本文也称其为DSSD321)算法平均检测精度提高了3.0%.如表2所示,分别展示了本文算法SD-SSD模型在各个类别上与SSD300和DSSD321的对比.

表2 不同算法各个类别目标检测精度对比结果Table 2 Comparison results of object detection accuracy in different categories of different algorithms

对比各个类别目标检测精度,在VOC2007测试集上,本文提出的算法在输入图像尺度差异不大的情况下,相对SSD和DSSD模型各个类别的检测精度都有不同程度的提升,能够看出本文算法模型分段进行反卷积再做融合操作,融合后的特征图包含了经过多次卷积提取到的语义信息和低层特征图保留的细节信息,对目标检测起到了非常积极的作用,解决了SSD算法检测特征图信息不丰富的问题,避免了DSSD算法单一特征图反卷积次数过多导致噪声信息加入过多的问题.如图4所示,本文选取了7个小目标占比较多的类别作为对比展示,圆圈代表本文SD-SSD算法对7类目标的检测精度,相对于三角代表的SSD300算法和方框代表的DSSD321算法精度有明显提高,证明了本文加入不同长宽比例和更低层次的特征图进行融合后重复检测小目标具有显著效果.

图4 7类小目标classes-mAP对比图Fig.4 Comparison chart of 7 small object classes-mAP

目标检测算法整体性能的评估除了检测精度外,FPS值表示检测速度,通常也作为一种衡量标准.如表3所示,在本文介绍的实验环境下,选取了近年来部分整体性能较好且输入尺寸相差不大的单阶段目标检测算法模型与本文模型比较.

表3 VOC2007 测试集上测试结果Table 3 Test results on VOC2007 test dataset

图5是当前主流的单阶段目标检测算法整体性能对比图.图中横坐标是每秒算法检测的图片帧数,纵坐标是各算法的检测精度mAP值.从图中可以看出,DSSD(输入尺度为321×321)模型由于采用了辅助卷积、反卷积,又引入了残差模块进行特征融合,其检测精度明显高于未采用融合结构的SSD(输入尺度为300×300)模型,但由于其采用了更深层次的主干网络,又加入了残差模型融合,所以其检测速度大幅弱于SSD模型.由于本文模型采用的主干网络为卷积层数较少且特征提取效果较好的VGG16网络,从图5可以明显看出,本文模型检测速度大幅度领先于同样引入了融合的DSSD模型;由于采用了分段反卷积和新的融合结构丰富了检测特征层的信息,利用改进的多尺度特征检测层增强对小占比目标的检测,本文模型的检测精度要优于SSD模型.本文模型增强了对小目标的检测,丰富了检测特征层的信息,在本文用到的测试集上,本文模型在检测精度上高于最近提出的YOLOv3(输入尺度为320×320)模型、RefineDet模型和RFB(输入尺度为300×300)模型,相比新提出的Retinanet模型也具有速度上的领先.

图5 算法速度精度对比图Fig.5 Algorithm FPS and mAP comparison chart

4.2 检测效果对比展示

图6是部分图片在SSD300算法模型和本文提出的SD-SSD算法模型效果对比图.

图6 检测结果对比Fig.6 Comparison of test results

从图6(a)和图6(b)中的检测结果可以看出,本文提出的SD-SSD目标检测算法基于SSD300算法进行改进,相对SSD300目标检测算法对小目标检测更友好,基本不会出现漏检和误检情况,在很大程度上提高了对小目标的检测,并且在复杂场景下不仅对小目标检测更友好,对大目标和中等目标的识别准确率也更高,对目标的定位也更准确.

5 结束语

基于当前SSD目标检测算法,为进一步提升目标检测的效果,本文算法提出了分段反卷积结构降低了噪声信息加入,又采用了新的融合结构对高层特征图和低层特征图进行融合,丰富了检测特征层的信息,为减小了小占比目标的误检和漏检,加入了不同长宽比例的候选框和多尺度特征图对小占比目标增强检测.在本文用到的公开测试集上进行测试验证,改进的算法模型对小占比目标的检测效果提升尤为显著,整体检测mAP值也达到了81.60%,检测速度也优于当前大部分主流算法.

在本文算法模型的基础上,下一步可以在一些特定场景下应用此算法检测特定的目标做轻微的改动,也可就如何进行轻量化网络,实现终端设备的运行做深入研究.

猜你喜欢
尺度卷积精度
基于不同快速星历的GAMIT解算精度分析
数字化无模铸造五轴精密成形机精度检验项目分析与研究
基于全卷积神经网络的猪背膘厚快速准确测定
环境史衰败论叙事的正误及其评判尺度
基于FPGA的卷积神经网络加速优化方法
基于图像处理与卷积神经网络的零件识别
基于深度卷积网络与空洞卷积融合的人群计数
近似边界精度信息熵的属性约简
以长时间尺度看世界
9