APP下载

基于深度学习的小目标检测算法综述

2020-06-22张新郭福亮梁英杰

软件导刊 2020年5期
关键词:小目标目标检测深度学习

张新 郭福亮 梁英杰

摘 要:由于小目标分辨率低、携带的信息少,现有基于深度学习的目标检测算法对小目标检测精度远远小于对大目标的检测精度。针对小目标检测精度问题,以基于深度学习的目标检测为切入点,系统总结了基于深度学习的目标检测代表算法,并以检测精度和检测速度为标准分析各种算法优缺点。将能有效提高小目标检测精度的方法进行分类汇总,介绍了各种方法的相关应用。针对目标检测及小目标检测存在的问题,对未来目标检测领域发展趋势进行了预测与展望。

关键词:目标检测;小目标;深度学习;RCNN;SSD;YOLO

DOI:10. 11907/rjdk. 191987 开放科学(资源服务)标识码(OSID):

中图分类号:TP312文献标识码:A 文章编号:1672-7800(2020)005-0276-05

0 引言

隨着人工智能应用研究不断发展,深度学习等方法也随之兴起,在目标检测、自然语言处理、语音识别等领域应用越来越广泛。相比于传统机器学习采用滑动窗口提取目标(如SIFT[1]、HOG[2]等视觉特征这种低效率方法),深度学习算法借助神经网络产生候选区域提取目标特征,大大提升了目标检测的精度和速率。但就像物理学中的乌云一般,目标检测也存在一片乌云,即小目标检测。小目标由于图像像素较少,包含的特征信息不明显,检测时常会出现漏检和误检情况,严重影响目标检测效果,是目标检测领域亟待解决的一个重难点问题。由于小目标检测算法大多是在现有检测算法上的改进与加强,因此本文首先总结现有深度学习目标检测算法的优缺点;然后对小目标检测改进算法进行分析,最后对未来小目标检测应用与发展进行展望。

1 基于深度学习的目标检测算法

自从AlexNet[3]获得ILSVRC2012挑战赛冠军后,用卷积神经网络进行分类成为主流。该算法以其简单的训练方法、较高的检测精度和不俗的检测速度迅速取代了传统的机器学习方法。如今基于深度学习的目标检测逐渐出现了不同分支,根据检测思想不同,可分为基于区域提取的检测方法和基于回归的检测方法,两种方法分别在检测准确率和检测速度上占据优势。

1.1 基于区域提取的检测方法

基于区域提取的检测方法首先通过选择性搜索[4](Selective Search)或RPN(Region Proposal Net)等方法提取出候选区域,然后利用回归等方法对候选区域进行分类和位置预测,代表算法有RCNN[5]、SPP-Net[6]、Fast RCNN[7]、Faster RCNN[8]和Mask RCNN[9]等。

1.1.1 RCNN

2014年,Girshick等提出了RCNN算法,在VOC 2007测试集上mAP达到了48%。2014年修改网络结构后又将mAP提升至66%,同时在ILSVRC 2013测试集上mAP达到了31.4%。RCNN算法主要包含4个步骤:①利用选择性搜索算法提取候选区域,将候选区域缩放至同一大小;②使用卷积神经网络提取候选区域特征;③SVM分类器对候选区域特征分类;④利用边框回归算法进行边框预测。RCNN算法作为第一个基于深度学习的较成熟算法,相比于传统机器学习算法有了很大进步,但其劣势也很明显:采用4个分离的步骤进行检测不适于端到端训练;每次检测都需要生成2 000多个候选框,每个候选框都需要一次卷积操作,重叠的候选框带来大量的重复计算,极大影响了检测速度。

1.1.2 SPP-Net

针对RCNN这一缺点,2014年何恺明等提出了空间金字塔池化网络进行了优化。传统的CNN网络由于连接了全连接层,因此需要对输入的图片尺寸进行裁剪或拉伸,以符合全连接层输入要求。但是在图片裁剪或拉伸过程中会扭曲图像,使目标特征有所变形。为解决这一问题,SPP-Net在CNN网络中加入了空间金字塔池化层(SPP)。不管输入尺寸如何,SPP都会将其输出固定为同一个尺寸,提高了图像的尺度不变性并降低了过拟合。采用SPP后,只需要对图像作一次卷积操作,通过计算原图与特征图的映射关系即可得到图像的候选区域,大幅缩减了算法的检测时间。但是SPP-Net的后续操作与RCNN类似,并未完全摆脱RCNN的影响。

1.1.3 Fast RCNN

2015年Ren等提出了Fast RCNN算法。首先,将图片送入神经网络提取特征,利用Selective Search提取候选区域;然后,利用RoI Pooling将大小不同的输入池化为统一大小输出到全连接层;最后,对全连接输出的特征进行边框回归和分类。Fast RCNN算法的一个重要改进就是引入了类似于SPP-Net的RoI Pooling层。RoI Pooling将特征图像分割成W*H大小的网格,对每个网格做MaxPooling,将所有输出值组合起来便形成固定大小为W*H的特征图,避免了候选区域的缩放,也减少了算法的运行时间。将算法各步骤连接在一起,可以实现端到端的训练,不用像RCNN那样需要保存中间特征,节省了空间。但是Fast RCNN仍然采用Selective Search方法产生候选框,耗费了太多时间。

1.1.4 Faster RCNN

2015年Ren等提出了Faster RCNN算法,算法整体框架如图1所示。首先,使用卷积神经网络提取图片特征;其次,将图片特征送入RPN(Region Proposal Network)网络得到提取的区域;然后,将以上两步的结果送入RoI Pooling层综合提取边界框特征;最后,根据候选框特征预测物体的边界框和类别。相比于Fast RCNN算法,该算法较重要的改进点就是采用RPN代替Selective Search提取候选区域。RPN是一个全卷积网络,包含3个卷积层,采用滑动窗口机制遍历每个特征点,通过分类层和回归层后,输出特征点映射的原图区域是否为前景图像及相对坐标。算法另一个极为重要的改进就是先验框的引入。通过先验框,RPN可以产生大小不同的候选区域,应对大小不同的目标,这一方法被许多算法借鉴。

1.2 基于回归的目标检测算法

基于区域提取的目标检测算法需要提取候选区域并对其进行分类及边框预测,在时间上不能达到实时要求。基于回归的目标检测算法只需要对图片作一次卷积操作,然后直接在原始图像上通过回归的方法预测出目标的分类与位置,相比基于区域提取的目标检测算法在时间上有很大优势。

1.2.1 YOLO

2016年Redmon等[10]提出YOLO(You Only Look Once)算法。YOLO算法采用一个单独的卷积神经网络,将目标检测问题看成一个回归问题,实现了端到端的目标检测。YOLO算法首先将图片缩放至448×448大小,然后将其送入神经网络中,输出一个维度为S×S*(B×5+C)的张量,将输出的张量送入NMS得到最后的边界框和分类信息。其中,S为划分网格数,B为每个网格负责检测的目标個数,C为类别个数。YOLO算法将输入的图片划分为S×S个网格,如果一个目标的中心落在该网格中,则该网格负责检测这个目标。每个网格需要预测B个边界框信息,每个边界框信息包含边界框的位置信息及置信度,同时网格还需要预测各类目标的条件概率值。YOLO算法将检测看作回归问题,只作一次卷积操作,因此检测速度很快。但是YOLO算法由于划分尺度问题,对小目标的检测效果不太理想。若同时出现两个目标中心落在同一个网格中,算法就不能很好地检测出目标。

1.2.2 SSD

2016年Liu等[11]提出了SSD(Single Shot MultiBox Director)算法,吸收了Faster RCNN和YOLO算法中的许多优点,既有出色的检测精度也有很快的检测速度。SSD算法也采用了类似于YOLO的基于回归的方法,在一个网络中直接回归出物体的类别和位置。SSD取消了YOLO算法中的全连接层,直接采用卷积神经网络进行预测。算法在网络结构的不同层次上提取不同尺度的目标特征进行多尺度预测,利用大尺度检测小目标,小尺度检测大目标。算法借鉴了Faster RCNN中先验框的方法,采用不同尺度和长宽比的先验框,有效解决了YOLO算法在小目标检测上的不足。在网络结构上,算法选用VGG16作为基础网络,在VGG16的基础上新增卷积层来获得更多的特征图用于检测。除此之外,算法还采用空洞卷积提高卷积核的感受野。

1.2.3 YOLO v2

2016年Redmon等[12]在YOLO基础上提出了YOLO v2算法。YOLO v2借鉴Faster RCNN中的anchor box思想,取代了YOLO中每个网格的B个边界框。不同于Faster RCNN的是,YOLO v2中边界框的尺寸是利用K-means聚类计算得出的。YOLO v2在采用先验框后,取消了网络结构中的全连接层,把网络输入尺寸调整为416×416,在经过32倍下采样后,图片分成13×13个网格。YOLO算法可以预测7×7×2个边界框,YOLO v2可以预测13×13×9个边界框,因此划分网格的尺度更细。YOLO v2算法在对小目标识别时准确率有了提升。另外由于没有了全连接层,因此YOLO v2可以使用多尺度训练的方式进行训练,可以输入大小尺度不同的图片以增加算法对不同尺度的适应能力。YOLO v2算法也采用了新的网络结构Darknet-19,具有比原网络更好的性能。

1.2.4 YOLO v3

2018年Redmon[13]等提出YOLO v3算法。YOLO v3借鉴了Faster RCNN和SSD中的许多优点。算法采用了新的网络结构Darknet-53,网络内部含有多个残差模块,可以减少梯度消失问题。算法采用32倍下采样、16倍下采样和8倍下采样的方式生成52×52,26×26,13×13三种大小不同的网格尺度,在多尺度上对目标进行预测,可以有效提升小目标的检测准确率。算法依然采用了先验框思想。但和YOLO v2不同的是,YOLO v3将9个先验框分给了3种不同的尺度,每种尺度有3个先验框。算法还采用了特征融合和上采样方法,将高层特征上采样后与低层特征融合,充分结合高低层的特征信息,提高了算法的检测准确率。通过这一系列改进,算法在目标检测准确率上有了进一步提升,但是速度上稍有损失。

1.3 算法对比

在目标检测中,比较常用的数据集有VOC2007、VOC2012和COCO。表1、表2为基于深度学习的目标检测算法在各数据集上的检测性能。

从表1、表2可以看出,基于区域提取的目标检测算法检测精度要高于基于回归的目标检测算法。同时也可以看出,各种算法对小目标的检测精度要远远小于大目标的检测精度。在检测速度上,基于回归的目标检测算法要远远超过基于区域提取的目标检测算法。

2 小目标检测方法

小目标由于分辨率低,图像模糊,携带的信息较少,导致特征表达能力弱,能提取到的特征很少,不利于小目标检测。因此,针对小目标特性,在对小目标检测识别时,通常会采用多尺度预测,利用低层特征信息检测小目标或通过上采样、反卷积,将高层特征放大,与低层特征融合,利用对抗生成网络不断生成和对抗,提高小目标质量。但这些方法相互之间不是独立的,一种算法中可以采用一种或多种方法提高小目标检测效果。

2.1 多尺度预测

不同网络层次上特征图所携带的信息不同,低层网络能更多地提取到目标的位置形状等信息,而高层网络能更好地提取目标的深层特征。对于小目标来说,位置等低层特征在检测中尤为重要。因此在检测时,将低层用于小目标检测,高层用于大目标检测,能更有效地提升目标检测效果。多尺度预测利用多层特征,在不同尺度的特征图上预测不同大小的目标。

多尺度预测的代表FPN就是在3种尺度上预测目标的。FPN[14]模型结构如图2所示。FPN由自底向上和自顶向下两个路径组成。自底向上的路径通常是提取特征的卷积网络。自底向上空间分辨率递减,检测到更多的高层结构,网络层语义值相应增加。FPN还采用横向连接,起到跳跃连接的作用,可以帮助检测器更好地预测位置。FPN采用的多尺度预测合理利用了低层特征和高层特征信息,有效提升了小目标的检测准确率。基于FPN的Faster RCNN在COCO数据集上[APS]达到了17.5%,比之前提升了5%。

Singh等[15]对COCO数据集尺度进行了分析,发现训练集和测试集的尺度分布存在很大差异。基于数据集分布的考虑,提出Scale Normalization for Image Pyramids (SNIP)模块,只对与预训练尺度相匹配的目标进行梯度回传。除此之外,作者还借鉴多尺度训练思想,引入图像金字塔处理数据集中不同尺寸的数据。SNIP算法在COCO数据集上[APS]达到了31.4%,比之前的算法有较大提升;Li等[16]在FPN基础上改进了特征融合方式,将FPN由底向上逐层上采样特征融合改为直接融合,检测时同样采用了多尺度预测方式,在不同网络层次对目标进行检测,在VOC07测试集上mAP达到了80.9%;赵亚男等[17]针对小目标检测精度不佳问题,以SSD和DSSD[18]为基础,设计融合模块实现Top-Down结构提取多尺度特征,提出了一种基于MFDSSD网络(Multi-scale Fusion Deconvolutional Single Shot Detector,MFDSSD)的小目标检测算法,在不同尺度的特征图上实现分类预测与位置回归,在TILDA数据集上检测精度为 78.2%mAP。

2.2 反卷积、上采样

小目标在图像中所占像素较少,而且轮廓比较粗糙。如果能提高图像特征的分辨率,使小目标的特征变大,对小目标检测是有帮助的。将反卷积和上采样应用在网络中可以提高特征图尺寸,通过与低层特征融合可提高特征的表达力,更好地预测小目标。

Fu等[19]针对SSD对小目标检测效果不好的缺点,将SSD改进成DSSD。DSSD将SSD中的VGG16网络化成了更深的ResNet101,可以提取更深层次的目标特征。添加了新的回归预测模块,利用残差模块消除梯度消失问题。在SSD添加的辅助卷积层后又添加了反卷积层,将高层信息与低层特征融合,使特征图同时拥有高层和低层特征信息。该算法在 VOC2007数据集上mAP达到了81.5%;Harish Krishna等[20]在Faster RCNN基础上对分辨率低的小目标所在候选区域作超分辨率处理,提高了特征质量及小目标检测准确率;Jonathan等[21]提出了全卷积FCN(Fully Convolutional Networks)网络,舍弃了全连接层,对堆叠后的特征图进行上采样,使其与原图大小一致。对上采样后的堆叠特征图,在其映射到原图位置的像素点上作分类预测,这样可以基于原图作出精细的图像分割。对于小目标检测,可以通过像素点分类,作出更精细的位置划分;Mate等[22]通过分析COCO数据集中小目标物体的数量,发现小目标检测率低的原因之一是训练数据中缺少小目标表示,因此提出了一种基于复制粘贴小对象的增强算法。除此之外还在训练过程中对包含小物体的图像进行过采样,轻松提升了小目标物体的检测性能,相比于Mask RCNN在小目标上的检测准确率提升了7%;针对SSD网络中用于预测的特征图没有再利用问题,范钦民[23]在SSD的基础上将部分高层特征图进行反卷积,以“element-sum”操作与低层特征图进行融合形成新的特征图,提出了AFFSSD,在COCO数据集上小目标检测精度得到了提高;吴天舒[24]针对SSD对小目标检测能力不足的问题,在SSD算法中引入转置卷积结构,将低分辨率高语义信息特征图与高分辨率低语义信息特征图相融合,增强低层特征提取能力,提高SSD算法的平均精准度。

2.3 GAN

在目标检测上,对于GAN的应用主要是通过生成模块将小目标低质量的分辨率提高到高分辨率水平,然后利用辨别模块不断识别高分辨率图像,两者不断竞争对抗以提高小目标检测能力。

Li等[25]提出了使用感知生成网络提取小目标检测准确率的方法。PGAN包含两个子网络,分别是生成网络和感知分辨网络。生成网络通过引入网络低层细粒度的特征将其转化为高分辨率特征,分辨网络一方面分辨出高分辨率特征与真实大目标特征之间的关系,另一方面使用感知损失提高目标检测率。通过上述网络,PGAN可以挖掘不同尺度物体间的结构关联,提高小物体的特征表示,该方法在小目标检测准确率和召回率上均优于Faster RCNN。针对小目标的高层特征包含信息不足的问题,黄继鹏[26]提出了一种基于条件生成式对抗网络(CGAN)的小目标数据增强算法。CGAN可以生成小目标与常规目标之间的残差,并利用残差强化小目标特征,应用该方法提升Faster RCNN对小目标的检测精度;Bai等[27]提出了一种端到端的多任务生成对抗网络(MTGAN)。MTGAN生成的模块可以将小目标的模糊图像采样生成高分辨率图像,并恢复详细信息以便更准确地检测。辨别模块可以区分生成的高分辨率图像真假,并输出每个超分辨率图像块的对象类别得分和边框回归偏移量。在COCO数据集上,该方法对小目标有良好的检测效果。

3 总结与展望

基于深度学习的目标检测算法因其优良的性能在许多方面取代传统机器学习方法成为人们的首选。近几年人们不断提升目标检测精度,小目标检测准确率也有了明显提升。但相比于大目标,小目标检测依然是一个难点。随着目标检测应用场景的逐渐扩大,对于小目标检测的需求也会越来越大。如何提高小目标检测精度将成为目标检测领域的研究方向。

基于深度学习的目标检测两个分支,即基于区域提取的目标检测和基于回归的目标检测分别在检测准确率和检测速度上占据优势,但即便是检测速度更快的基于回归的目标检测也无法满足工业需求。现有的检测效果大多是建立在实验室环境下的,性能出色的CPU和GPU为目标检测提供了良好的保证。一个好的成果并不应该属于实验室,应该有更广泛的应用场景。随着人工智能应用领域的不断扩展,无人机、智能机器人或军工等领域都有目标检测需求。但在工业嵌入式设备中,更多采用了轻量级CPU或FPGA设备。如何讓现有目标检测算法在这些设备上更好地运行,将现有算法真正做到工业级应用,还有很多问题需要解决。

4 結语

按照基于深度学习的目标检测算法分类,本文系统地介绍了基于区域提取的目标检测算法和基于回归的目标检测算法。在此基础上重点关注了小目标检测改进方法,并将小目标检测与现有目标检测的改进方法进行了分类汇总。最后对小目标检测未来的应用和发展方向作了展望。总体来看,小目标检测在检测精度上依然存在不足,是目标检测的未来研究方向。

参考文献:

[1] LOWE D G. Distinctive image features from scale-invariant keypoints [J]. International Journal of Computer Vision,2004,60( 2):91-110.

[2] DALAL N,TRIGGS B. Histograms of oriented gradients for human detection [C]. IEEE Computer Society Conference on Computer Vision&Pattern Recognition,2005.

[3] KRIZHEVSKY A,SUTSKEVER I,HINTON G E. Imagenet classification with deep convolutional neural networks[C]. International Conference on Neural Information Processing Systems,2012: 1097-1105.

[4] UIJLINGS J R R, K E A,VAN DE SANDE,et al. Selective search for object recognition[J]. International Journal of Computer Vision, 2013, 104(2):154-171.

[5] GIRSHICK R,DONAHUE J,DARRELL T,et al. Rich feature hierarchies for accurate object detection and semantic segmentation[C].  Computer Vision and Pattern Recognition, 2014.

[6] HE K M,ZHANG X Y,REN S Q. Spatial pyramid pooling in deep convolutional networks for visual recognition[C]. IEEE Transactions on Pattern Analysis & Machine Intelligence,2014.

[7] GIRSHICK R. Fast R-CNN[C]. IEEE International Conference on Computer Vision (ICCV), 2015.

[8] REN S Q,HE K M,GIRSHICK R,et al. Faster R-CNN:towards real-time object detection with region proposal networks[C]. Proc of Conference on Neural Information Processing Systems. [S.I.]:NIPS Press,2015:1-15.

[9] HE K,GKIOXARI G,DOLLAR P,et al. Mask R-CNN[C]. IEEE Conference on Computer Vision and Pattern Gecognition,Washington DC:IEEE Computer Society, 2018.

[10] 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. [S.I.]:IEEE.2016:779-788.

[11] LIU W, ANGUELOV D, ERHAN D, et al. SSD:single shot multibox detector [C]. Proc of IEEE Conference on Computer Vision and Pattern Recognition. [S.I. ]:CVPR Press,2016:13-17.

[12] REDMON J,FARHADI A. YOLO9000: better,faster,stronger[J]. IEEE Conference on Computer Vision and Pattern Recognition (CVPR),2016(6):6517-6525.

[13] REDMON J,FARHADI A. YOLOv3:an incremental improvement[C]. IEEE Conference on Computer Vision and Pattern Recognition, arXiv preprint:1804.02767, 2018.

[14] LIN T Y,DOLLAR P,GIRSHICK R,et al. Feature pyramid networks for object detection[C]. IEEE Conference on Computer Vision and Pattern Recognition,2017: 936-944.

猜你喜欢

小目标目标检测深度学习
MOOC与翻转课堂融合的深度学习场域建构
大数据技术在反恐怖主义中的应用展望
刷爆朋友圈的“小目标”真的有用吗
月入两万元的家庭,如何制定理财“小目标”
移动机器人图像目标识别
田溯宁的安全“小目标”