梁 鸿,王庆玮,张 千,李传秀
中国石油大学(华东)计算机科学与技术学院,山东 青岛266580
计算机视觉起源于20 世纪80 年代的神经网络技术,并在近几年得到迅速发展[1]。计算机视觉主要是代替人眼进行图像的分类[2]、检测[3]以及分割[4],从工程的角度看它可以使基于人类视觉的任务实现自动化。目标检测作为计算机视觉的核心任务之一,主要对图片中所包含的多个不同的物体进行定位并给出其相应的边界框[5-6]。目标检测技术已经广泛应用于人脸检测[7-9]、自动驾驶[10-11]、工业生产[12-13]、航空航天[14-16]等领域。如图1所示,目标检测算法包括传统的目标检测算法和基于深度学习的目标检测算法。
图1 目标检测算法分类
传统的目标检测算法利用大小不同的滑动窗口选择出图像中可能存在目标的候选区域,然后使用手工设计的特征对这些区域进行特征提取,包括尺度不变特征变换(Scale-Invariant Feature Transform,SIFT)[17]、方向梯度直方图(Histogram of Oriented Gradient,HOG)[18]、可变形的组件模型(Deformable Part Model,DPM)[19]、局部二值模式(Local Binary Pattern,LBP)[20]等特征,最后将图像特征送到支持向量机(Support Vector Machine,SVM)[21]或迭代算法(Adaptive Boosting,Adaboost)[22]等分类器中进行分类并输出结果。由于传统的目标检测方法受滑动窗口大小和步长的影响,同时手工很难完美的构造出通用特征,场景不同用到的特征就会不同,存在着像窗口冗余、可迁移性差、时间复杂度高等不可避免的问题[23-24]。
1988 年,LeNet[25]作为第一个真正意义上的卷积神经网络模型被提出,为现代卷积神经网络奠定了基础,但由于当时条件限制,计算机硬件水平无法满足训练卷积神经网络的计算量,相比于传统的目标检测效果并没有飞跃的提升。直到2012 年,AlexNet[26]网络获得大规模视觉识别挑战赛(ImageNet Large Scale Visual Recognition Challenge,ILSVRC)的冠军,人们才开始认识到卷积神经网络在计算机视觉上的优势,此后传统的目标检测方法停滞不前逐渐退出了图像检测领域。
2014 年,Girshick 等人[27]提出的R-CNN 是利用候选区域和卷积神经网络进行目标检测的开山之作。此后,基于深度学习的目标检测方法主要分为两大类:像R-CNN、SPP-net[28]、Fast R-CNN[29]、Faster R-CNN[30]、RFCN[31]等属于基于候选区域的两阶段(Two Stage)目标检测算法。这类算法首先通过边界框搜索算法[32]或选择性搜索算法[33]生成一系列相应的候选区域,然后利用卷积神经网络从原图像中提取特征进行分类和定位。两阶段算法需要对每一个可能包括物体的候选区域进行检测,在物体检测和定位精度方面占有优势,但随之带来的问题是时间复杂度较高;像YOLO[34]、SSD[35]等属于基于回归的单阶段(One Stage)目标检测算法。这类算法将目标检测作为回归问题,不需要在图像中生成待检测候选框,通过回归模型直接得到目标的类别概率和位置坐标值[36]。单阶段算法在速度和时间效率上要优于两阶段算法,但会造成检测精度的下降。
针对目标检测中小目标检测精度低、效果不理想等问题[37],国内外众多学者开始致力于研究小目标检测技术。一些建立在现有目标检测基础之上的优化改进方法不断被提出,在一定程度上减少了对小目标进行检测时出现的漏检误检情况,提高了小目标的检测效果。本文通过分析基于深度学习的目标检测技术实际研究情况,介绍了小目标的尺度定义以及存在的技术难点,并对小目标检测技术的相关改进及技巧进行分类阐述,最后对小目标检测进行了总结与展望。
目前国际上关于小目标的概念还未有明确的定义。微软公司提出的MS COCO 数据集[38]中对小目标进行了绝对尺度的界定,当目标区域面积小于32×32个像素值时被认为是小目标;另外一种是相对尺度的定义,即目标尺寸的长宽占原图尺寸的0.1 时为小目标。所以,对于一幅416×416 分辨率的图像,从绝对尺度讲图像中具有20×30像素值的小鸟算作小目标,从相对尺度讲图像中一辆具有100×100 像素值的汽车也可以算作小目标。
表1为MS COCO实例分割挑战赛前十结果,表中APS、APM、APL三列的AP(Average Precision,平均精度)值分别代表MS COCO数据集中小尺度目标、中尺度目标、大尺度目标的实例分割平均精度值。可以看出小尺度目标的AP 值永远是最小的那个且仅为大尺度目标AP 值的一半左右,小目标的检测性能与中尺度以及大尺度目标相比仍存在着不可忽视的差距。
表1 MS COCO实例分割挑战赛前十结果
下面通过列举小目标检测中存在的主要技术难点,来说明造成小目标检测性能较差的诸多因素。
(1)缺少较大规模的小目标数据集的支持。目前用于图像分类、检测、分割等任务所用到的公共数据集,如MS COCO系列、ImageNet[39]、PASCAL VOC[40]系列大多是针对通常尺度大小的目标进行检测。PASCAL VOC数据集中待识别的20类物体大部分属于大尺度或者中尺度目标,和PASCAL VOC相比,MS COCO数据集中含有部分小尺度目标,但平均每幅图片包含实例目标数量多,导致小目标的分布并不均匀。此外,像WIDER FACE[41]、FDDB[42]数据集是专门针对小人脸检测构建的数据集,DOTA[43]、UCAS-AOD[44]数据集是用于航拍图像中小物体的数据集,不具有目标检测的通用性。
(2)复杂环境对小目标检测造成的干扰。目前小目标检测大多依托具体场景而存在,像军事监控[45]、航空海面[46]、油田井场[47]等复杂作业领域。在复杂的背景噪声下,小目标的信息会被其他较大物体噪声所掩盖,或与背景融为一体缺少明显的图像对比度[48],这也是造成小目标检测困难的因素之一。
(3)小目标分辨率低、像素占比少。对于小目标来说,其自身固有的低分辨率、仅占几个或几十个像素值等特性使其在目标检测时能提取到的有效信息十分有限,这是造成小目标检测效果差的根本原因。因此,在实际应用中,如何准确检测出烟头、手机、小尺度人脸等对于小目标检测技术来说极具挑战性。
(4)卷积神经网络对小目标的特征提取存在瓶颈。对于目前通用的目标检测模型来说,为了增大感受野都会经过几次下采样操作,同时对特征进行不断降维缩小特征图[49],但是由于小目标边缘信息模糊、语义信息少,经过CNN后导致小物体信息损失严重甚至无法传入目标检测器中。
针对文中上述提到的小目标检测存在的主要技术难点,国内外学者开始致力于研究基于深度学习的目标检测技术在涉及小目标检测方法上的相关改进及技巧。
针对小目标分辨率低、数据集的数量匮乏及分布不均匀等问题,研究表明对小目标做数据增强可以提高对小目标的检测效果。通过对训练集进行处理使其满足小目标检测所需的规模要求,然后采用不同的方法对数据进行处理使其达到数据增强的效果。
对输入图像做水平竖直方向的翻转旋转、随机裁剪、形状变化、图像缩放平移、颜色变换等[50-52]方法能在一定程度上提升模型在目标检测上的泛化性能。当图像中目标方向的改变不会影响其本身语义时,翻转和旋转是几何变换类中最常见的数据增强方法,但如在交通标志或数字识别中,“左转”和“右转”标志及数字“6”和“9”等数据的翻转旋转会赋予其错误的语义标签,此类方法便不再适用。对于大多数要求输入图像尺寸相同的网络模型,裁剪能将训练集中输入尺寸不同的数据固定为统一大小。图像的形状变化、缩放平移会造成图像失真,改变图像目标的位置或者占比,如果在图像背景色调相对单一或者进行目标中心检测时可以添加此类增强方法,但适用性不高。颜色变换可以均衡图片光线和色调,突出图像目标,但不建议应用于数据本身对颜色依赖性强敏感度高的任务中。对于上述的数据增强方法,具体使用哪种方法,使用顺序及次数是多少,如何组合才能达到最优的增强效果都值得探索。Google Brain 团队提出通过生成数据增强搜索空间[53],针对不同数据集自动化组合数据增强的方法,以此替代通过先验知识进行人为选取的方法。使用增强学习[54]作为搜索算法,将每两种图像的增强方法组合在一起作为一个子策略,按顺序随机分配给输入的每幅图片,并对该子策略的应用概率和幅度加以辅助。利用这种自动化搜索法丰富了数据集的多样性,对数据集有良好的迁移性能,为小目标检测提供了一种可以参考的数据增强方式。
当简单的基于基本图像处理的增强方式无法起到显著的效果,增加图像中小目标的样本数量是一种有效的数据增强方法。Kisanta等[55]提出使用过采样(Oversampling)和增强(Augmentation)的数据增强方法。首先通过调整训练集中小目标图像的数量使其达到训练所需的样本需求,再对图像中的小目标进行处理,先调整目标尺度(缩放范围为±20%)后进行旋转(旋转范围为±15°),复制后进行三次粘贴并保证不会覆盖已有目标的位置。通过这种方式使得图像中小目标数量增加,实验结果显示小目标的实例分割精度提高了9.7%,目标检测精度提高了7.1%。网络不再偏向于大尺度及中尺度目标,小目标对模型训练时产生的损失贡献更高,以此实现不同尺度目标之间的预测质量平衡。当小目标分布不均匀,且在训练时GPU 硬件条件有限时,YOLOv4[56]提出的Mosaic方法可以为小目标检测提供了一种新的数据增强方式。在每个批次训练时,随机将四张图像进行缩放,然后随机拼接成一张原图尺寸大小的图像。与此同时,Chen 等[57]同样提出一种将图像进行拼接的Stitcher 方法,不同的是在对图像拼接时随机使用的四张图像具有相同的尺寸。通过这种将四张不同语义信息拼接在一起的方式,大尺度和中尺度目标缩小为中尺度和小尺度目标,在没有带来明显计算量的同时,不仅增加了小目标的数量,丰富了小目标在训练集中的分布,也使模型的检测鲁棒性有所提升。
提高图像分辨率作为一种数据增强方式也可以为小目标检测提供更多的细节信息。对于一幅低分辨率图像,如果单纯地对图像进行放大,试图获取更大尺度的目标,图像可能会存在锯齿、模糊的情况。随着超分辨率技术的不断发展[58-59],将低分辨率的图片重建生成高分辨率图[60]被应用于小目标检测领域。2013年,Yang等人[61]提出一种基于局部图像结构超分辨率法对小目标人脸进行检测,将人脸分为面部器官、轮廓、平滑区三部分,对于给定的低分辨率(Low Resolution,LR)目标,通过图像匹配选取与器官最相似的样本,产生显著的边缘结构以及使用块匹配生成目标细节,以此来对LR 目标进行重建生成高分辨率(High Resolution,HR)目标。2016 年,谷歌提出一种名叫RAISR[62]的超分辨率技术,将大量低分辨率图片以及对应的高分辨率图片送给卷积神经网络去学习两者之间存在的映射关系。当图像质量得到增强,高分辨率的小目标数据集能为卷积网络提供更丰富的细节信息,对后续的小目标检测也能起一定推动作用。
数据增强能够在小目标检测中缓解小目标数据集不足、小目标数量不多、小目标数据集质量不高等因目标数据引起的问题。现有的卷积神经网络模型在进行图像分类或识别等任务时,几乎都利用了数据增强手段,通过大量的数据避免模型出现过拟合的现象。在选择此类方式时,要保证增强后的数据和原始数据在特性及语义方面保持一致,作为一种简单直接的提高模型性能的可迁移方式,可以根据上述不同应用条件设计出不同的增强方式应用于小目标检测。
现有的绝大多数小目标检测方法都是基于卷积神经网络对特征进行直接提取。卷积神经网络的浅层网络感受野小,空间分辨率较高目标位置准确,适合检测小目标,但是特征的语义信息表征能力弱,召回率低[63];深层网络虽然感受野大提取的语义信息越来越丰富,但由于小目标本身像素占比少,一般经过几次下采样处理后特征图不断减小,如当步长Sride为16时,32×32大小的区域在特征图中只有2×2大小,用于检测小目标的有效区域无法辨别。因此,利用卷积神经网络对特征进行直接提取可能会导致小目标的信息丢失,不利于对目标的定位[64-65]。如果两者能够取长补短进行融合,那么既能利用浅层网络的细节信息又能结合深层网络的语义信息,在得到较高召回率的同时对目标进行准确的分类和定位。
为能充分地将不同尺度的特征图进行融合以此解决卷积神经网络在特征提取时的瓶颈,文献[66]中Bell等人以Fast R-CNN为基础网络,提出一种Inside-Outside模型。Inside-Net提取Conv3、Conv4、Conv5卷积层对应的特征,通过对不同尺度的特征图进行连接,结合多个浅层特征图从而获得细粒度特征,以此实现多尺度特征的融合;Outside-Net 通过使用两个循环神经网络(Recurrent Neural Networks,RNN)[67]网络组成IRNN结构充分利用视觉识别中的上下文信息。实验结果显示,在COCO 数据集中小目标平均准确率从4.1%提高到7.0%,平均召回率从7.3%提高到10.7%。文献[68]同样结合RNN 网络提出RBC 框架,能够将特征图中聚合的上下文信息逐渐引入到边界框回归器中,在IOU阈值达到0.7 的条件下有效地对大目标和小目标进行检测,在具有挑战性的KITTI 车辆数据集检测中获得了最优的比赛结果。文献[69]中Eggert等人和文献[70]中Chen等人分别通过分析Faster R-CNN在小目标检测方面的不足,通过对候选区域生成网络进行改进,利用具有高分辨率的底层特征及上下文信息,相比于Faster RCNN可以更好地检测小目标。文献[71]中Kong 等人提出RON框架,在对多尺度目标进行定位时,使用反向连接的方法将具有细粒度信息的浅层特征和具有丰富语义的深层特征结合起来,通过多尺度表征的方式实现对不同尺度大小目标的检测,丰富浅层特征的语义信息使其更有效的对小目标进行检测。
图2 为几种常见的特征金字塔多尺度融合方式。FPN[72]网络模型的提出在一定程度上解决了多尺度检测问题,在没有带来明显计算负担的情况下增强了特征的表达能力,在小目标检测中取得了很大的进步。如图2(a)FPN尺度融合所示,通过FPN网络得到不同尺度的特征映射后,采用自顶向下和横向连接的方法,顶层的特征图在经过上采样后与下一层尺度大小相同的特征图进行融合,预测在特征融合后的每一层中独立进行。文献[73]通过改进Faster RCNN网络提出一种HyperNet模型,如图2(b)HyperNet尺度融合所示,将通过反卷积进行上采样的深层特征、中间层特征以及进行下采样的浅层特征整合到一起,作为Hyper特征用于生成候选区域和目标检测。HyperNet 通过将多层特征进行优势互补融合为一起,在生成高质量的候选区域的同时相比于Faster RCNN更擅长处理小目标。
图2 几种常见的特征金字塔多尺度融合方式
SSD[35]在对不同尺度大小的目标做预测时使用了不同层的特征信息。如图2(c)SSD尺度融合所示,SSD使用浅层信息预测小目标,高层信息预测大目标,但浅层语义信息表达能力弱,能学习到的语义信息十分有限。此后,为了更好的基于SSD 检测小目标,通过尺度融合借助上下文信息改进SSD 的方法不断被提出。文献[74]提出的DSSD模型在网络的后端使用了多个反卷积层[75]进行上采样,与SSD后面的卷积网络形成“宽-窄-宽”的非对称沙漏结构,通过与浅层网络的输出进行融合使网络各层间的语义信息相互结合,在一定程度上减少了SSD 在小目标检测时出现的误检和漏检情况。文献[76]提出的FSSD模型可以看作是SSD模型和FPN模型的结合,如图2(d)FSSD 尺度融合所示,FSSD 模型将不同尺度的特征图双线性插值[77]调整为相同尺度后进行融合,然后基于此融合后的特征层下采样生成特征金字塔结构,进行后续每层特征图的预测。文献[78]提出R-SSD 模型,采用结合下采样、反卷积的方式增加不同特征之间的联系,将不同层的特征图调整为同样尺寸后在浅层的特征图上融合高层语义信息,从而增强特征的表达能力。文献[79]提到的RefineDet 将Faster R-CNN和SSD 进行结合,同时引入类似FPN 网络的特征融合方法,也有效地提高了算法对小目标的检测精度。
YOLO 系列中的YOLOv2[80]和YOLOv3[81]以及最新的YOLOv4 同样使用了特征融合的思想。YOLOv2 对于输入的416×416 尺寸的图片,借助pass-through layer将浅层26×26×512 维度的特征图叠加特征连接到深层13×13×2 048 维度的特征图中,最后在13×13 大小的特征尺度进行预测。为了更好地检测小目标,YOLOv3继续沿用YOLOv2 特征融合的思想并加以改进。同时,YOLOv3与类似于FPN的网络结构相结合,不同于FPN网络的是YOLOv3 经过上采样后的特征之间进行的是通道方向的拼接。对于输入为416×416 尺寸的图片,YOLOv3 预测时针对大、中、小尺度目标对3 个尺度特征层(分别为13×13,26×26,52×52)进行图像细粒度特征融合,融合时借助52×52大小的浅层特征图对检测小目标非常有用。相比于YOLOv2算法,YOLOv3从单层预测5 种Bounding Box 变成每层预测3 种Bounding Box 且从不同的三层尺度特征图中独立进行,YOLOv3通过上采样高层特征与低层高分辨率特征相融合,在平均精度均值mAP0.5及小目标平均精度APS上取得了不错的效果。YOLOv4 在对特征进行融合时在FPN 的基础上提出改进的路径聚合网络PAN。考虑到浅层特征需要经过多层网络才可以传递到FPN网络的顶部,为了更好地获得浅层网络的细粒度特征和准确的定位信息,PAN在FPN层的后面添加了自下而上的特征金字塔,缩短了特征传递的距离。
此除此之外,2017 年Najibi 等人[82]提出SSH 模型,利用多尺度模块分别对大、中、小目标进行检测,不同尺寸的目标对于不同步长的检测模块,使用步长为8的检测模块通过特征融合及维度缩减的方式对小目标进行检测,同时通过扩大感受野使用多个3×3的卷积核引入上下文信息。文献[83]中提出通过构建稀疏离散图像金字塔结构从而融合多层特征,引入小目标周围的上下文信息生成具有固定感受野的多尺度模板。相比于不添加上下文信息,通过3倍扩充检测窗口检测效果有所提升;通过添加300像素固定感受野使得小目标检测误差减少了20%,由此可见充分利用上下文信息有利于辅助卷积神经网络检测小目标。
多尺度融合的方法主要是为了在增加小目标语义信息的同时丰富小目标的细节信息,对目标进行更加准确的分类和定位,以此提高小目标检测效果。但由于不同检测场景下的小目标的细节信息和语义信息各不相同,导致多尺度融合的方法存在着可迁移性差的问题,即在某种场景下使用的多尺度融合网络可能并不适用于其他场景下的小目标检测。因此,在具体场景进行小目标检测时,还需要根据小目标尺度大小、特征信息多少等情况来具体选取合适的网络进行多层神经网络的多尺度融合。
在引言部分提到传统的目标检测算法大多受滑动窗口的影响,需要逐位置的遍历滑窗产生不同的预设边框。随着深度学习的出现,锚框最初应用于Faster RCNN[30]模型,在一定程度上解决了遍历滑窗时造成的效率低等弊端。Faster RCNN 模型利用RPN(Region Proposal Networks,候选区域网络)生成候选检测框时,对于最小尺度为128×128的Anchor,其候选框平均大小要超过100×100,也就是设置的最小Anchor都要比待检测的小目标大很多,但如果为了检测小目标考虑将输入图像放大来匹配Anchor 时,可能会导致大目标不断放大从而没有对应的Anchor 进行检测。因此,从Faster RCNN 入手考虑对不同尺度的目标检测时,设计的Anchor要尽可能的覆盖训练集中的所有目标,也就是为每个目标都能匹配到一个或多个Anchor。
随着锚框技术的提出,Anchor 在SSD、YOLO 等主流目标检测网络中得到了广泛的应用。为了更好地检测小目标,SSD 针对不同的卷积层设计了不同尺寸的Anchor,对于浅层卷积Conv4_3 使用尺度为60 的6 种不同比例的小Anchor,对于深层卷积Conv10_2 及Conv11_2 使用尺度为{228,270}的4 种不同比例的大Anchor。通过这种在训练中根据目标尺度大小设置Anchor的方法,兼顾到小目标拥有的Anchor小且密集,大目标拥有的Anchor 大且稀疏,使SSD 相比于Faster RCNN 获得了更好的小目标检测效果。YOLO 利用全连接层的数据完成边框预测[34],将物体检测作为回归问题,但YOLO 会导致丢失较多的空间信息造成定位不准,不擅长对密集的小物体检测。YOLOv2[80]摒弃掉全连接层,引入Anchor 机制来预测Bounding Box。为了能有效减少初始损失,YOLOv2没有直接使用手工设计锚框尺寸,而是通过K-means 算法对训练集进行聚类[84]。通过聚类找到更符合数据集中目标大小分布特性的锚框尺寸,在一定程度上降低了边框回归的难度,收敛速度更快,更有助于网络训练。YOLOv3[81]同样利用聚类得到9个Anchor取代YOLOv2的5个Anchor,在特征图上小锚框的尺寸可以小至10×13,通过聚类平衡模型的复杂度和IOU 面积,对小物体检测性能有所提升。此后出现的YOLOv4 也同样借用了YOLOv3 的锚框机制。
此外,在主流目标检测框架的改进算法中同样用到了Anchor 提高小目标检测精度。文献[85]中通过分析小尺度目标与预训练模型尺度之间的关系,提出的SNIP框架对Anchor进行筛选,如果Ground Truth框位于给定的候选区域范围内,那么就判定为有效框(Valid Box),否则就为无效框(Invalid Box);如果Anchor 和某个Invalid Box 的重叠部分超过0.3,此Anchor 被判定为Invalid Anchor。同时SNIP 引入多尺度训练,对应3 种不同分辨率的图像。在训练时不对Invalid Anchor进行反向传播,而是有选择的挑选大小合适的目标进行梯度更新。因此,小目标总有机会落在合适的尺度范围内参与训练,以此实现目标尺度和特征的归一化,提高小尺度物体的检测效果。文献[86]为了提高小目标的召回率,同样提出一种新的稠密锚框策略。具体来说,Adensity=Ascale/Ainterval,其 中Adensity代 表Anchor 的 密 度,Ascale代 表Anchor 尺度,Ainterval代表Anchor 间隔。Ascale分别为32×32,64×64,128×128,256×256,512×512,Ainterval默认为32,32,32,64,128,则Adensity的值为1,2,4,4,4。显然,在不同尺度上Anchor 的密度是不一样的,在浅层网络上的小尺度锚框相比于深层网络的大尺度锚框要更稀疏。针对锚框密度不均衡的问题对浅层的小锚框进行密集化,例如对32×32的小尺度Anchor进行四倍的稠密化,保证不同尺度的Anchor具有一样的密度,以此提高小尺度目标召回率。文献[87]同样从Anchor角度出发,在网络模型中通过增大特征映射尺度来降低与特征映射相关的Anchor 的采样步长,以及在原有预定义的Anchor中心周围增加Anchor密度,使得与小目标Ground Truth 匹配的Anchor 数量增多,弥补了对小目标检测性能差的不足。文献[88]指出基于Anchor 的小目标人脸检测效果并不理想,如图3 目标匹配差异图所示,感受野、设计的Anchor 及小目标人脸之间存在着不匹配问题,小目标的尺寸远小于设计的Anchor。由于Anchor尺寸并不是连续的,而人脸的尺寸是连续的,这样会导致在某一设定的范围内可利用的Anchor 数量减少,过小或过大的目标无法匹配足够多的Anchor。如果一味的增加Anchor 用于检测小目标,由此带来的负样本数量的增加对于检测效果并不理想。因此,对不同特征层设置不同尺度的Anchor以此解决Anchor可用数量缺少的问题,对Anchor 的尺寸进行等比例间隔调整设置大小从16到512,使Anchor的尺度值大致可以覆盖有效感受野的范围,确保每个特征层都有相对应的Anchor,满足不同尺寸的目标都能匹配到合适的Anchor进而进行检测。
图3 目标匹配差异
锚框设计被广泛的应用于小目标检测,通过设计更符合数据集中目标大小分布特性的锚框,使锚框的尺度值大小尽可能的匹配覆盖有效感受野的范围,以此提高小目标的召回率,提升小目标检测效果。但由于小目标检测场景通常比较复杂、小目标类型众多,适用于检测某种小目标的锚框可能并不适合用于检测其他小目标;而如果增加锚框的数量来检测不同类型、大小的小目标,会导致负样本数量增加,造成误检率的提高。
交并比IOU(Intersection Over Union)是指目标预测边界框和真实边界框的交集和并集的比值,即物体Bounding Box与Ground Truth的重叠度[89],IOU的定义是为了衡量物体定位精度的一种标准。在目标检测中IOU的阈值默认设置为0.5,即只要IOU大于等于0.5就会被认为是正样本。如果IOU阈值设置较低,样本的质量就难以保证;为了获得高质量的正样本,可以调高IOU阈值,但样本数量就会降低导致正负样本出现比例不平衡[90],且较高的IOU阈值很容易丢失小尺度目标框。
针对上述问题,文献[91]提出了多阶段级联结构,通过不断调高IOU 的阈值使其在保证样本数量的同时不影响样本的质量,最后训练出了高质量的Cascade R-CNN 检测器。在3 个检测模型阶段逐步提高候选框的IOU阈值(阈值分别为0.5、0.6、0.7),当候选框阈值和训练阈值较为接近的时候,每经过一次回归样本就会越接近Ground Truth值以此适应多级分布,从而使前一个阶段重新采样过的候选框更能适应下一阶段,在解决训练出现的过拟合的同时获得满足对应阈值的样本,实验表明在基准检测器上使用Cascade R-CNN 结构在MS COCO数据集上取得了不错的检测效果,对小目标的检测精度也有所提升。与此同时,Liu 等[92]同样提出通过提高IOU 阈值来改进小目标行人检测的思想。在基于SSD 的行人检测中均使用单一的IOU 阈值进行训练来定义正负样本,为避免单阶段检测器的限制性,提出ALF 模块,采用级联网络的思想多步预测进行渐进定位,以ResNet-50 为基础网络,分别对原始图像进行8、16、32、64倍下采样提取多尺度特征图,每阶段使用回归的锚框而不是默认的锚框优化预测器,利用不断提升的IOU阈值训练多个定位模型产生更精确的定位,解决了单阶段检测模型SSD对行人检测的局限性,提高了小尺度行人的检测性能。
上述两种方法是根据级联思想,通过不断提高IOU阈值来获得高质量的正样本,能够在一定程度上提高小目标的检测效果,但存在随着IOU 阈值不断提高,匹配的Anchor数量减少,导致漏检的问题。而文献[88]中则是将IOU 阈值从0.5 降到0.35,使用降低阈值的方法先保证每个目标都能有足够的锚框检测。同时为了解决正样本增加导致样本质量得不到保证的问题,提出最大化背景标签的方法,在最底层分类时将背景分为多个类别而不是二分类,对IOU 大于0.1 的Anchor 进行排序,并对每个框预测3次背景值,取背景概率中最大的值作为最终背景,通过提高分类难度以此来解决正样本质量得不到保证的问题,提高了小目标的检测准确率。但此种方法可能会出现因IOU阈值过低,造成无效的正样本数量过多,从而导致误检率提高的问题。
对于不同的检测任务,如果待检测目标尺度之间相差不大,即数据集中大多为同一尺度目标时,可以适当降低IOU阈值再进行选取,对小目标特征实现最大程度的提取。在实际应用中,同一场景下的检测不可能只包含单一尺度的目标,存在不同目标尺度跨越相差较大的情况,如果固定IOU 阈值进行统一检测筛选,会带来样本不平衡的问题,小目标特征极有可能被严格的IOU阈值舍弃。因此,设置动态IOU阈值作为不同尺度目标检测更具普适性,根据不同的样本数量动态调整,当负样本数量过高时不断提高IOU阈值平衡样本数量,避免了直接设置过高的IOU阈值而造成的漏检,训练出来的模型泛化性更强。
2014 年,Goodfellow 等[93]提出的GAN(Generative Adversarial Net,生成式对抗网络)核心思想源于博弈论的纳什均衡,GAN 成为近两年深度学习领域比较热门的研究方向,广泛应用于图像超分重建[94-95]、表示学习[96-97]、风格转移[98-99]等任务中。GAN 网络主要有生成器(Generator,简称G)和鉴别器(Discriminator,简称D)两大组成部分,两者相互博弈各有各的作用。
对于检测小目标,文献[100]提出利用Perceptual GAN 来增强小目标的特征表达。传统的GAN 中生成器是学习从噪声分布到数据的映射,而Perceptual GAN则是负责寻找不同尺度物体间的结构关联,在生成器中通过引入低层精细粒度特征将原来较差的小目标特征转换为超分辨率的表达形式,使得生成器将小尺度目标以假乱真生成大尺度目标,通过缩小物体间的表示差异使小物体与大物体有相似的特征表示;辨别器用于判别是真实的物体特征还是通过生成器超分生成的特征。两个子网络交替训练最后达到平衡,在对Tsinghua-Tencent 100K 交通标志数据集[101]以及Caltech 行人数据集[102]的检测中提高了小目标的检测精度,具有优良的效果。
此外,文献[103]提出一种多任务生成式对抗网络MTGAN对小目标进行检测,此框架可以适用于现有的任何检测器。生成器G 借助超分辨率网络生成高质量的图像,判别器D判别是否为真实的图片还是超分生成的图片,同时判别器D的分类损失和回归损失经过反向传播回到生成器中,促使生成器G拥有更多的小物体图像细节信息。两者通过交替迭代对抗学习的训练方式,直到G 生成的数据以假乱真使得D 无法准确区分。MTGAN在小目标检测中AP值相比于基线检测器Faster-RCNN[30]及Mask-RCNN[104]增加了1.5%。
借助GAN 网络能够获得分辨率高、小目标特征信息明显的图像,并且能够增加数据集的规模,以此提高小目标检测的效果。但利用GAN网络进行小目标检测可能会出现训练不稳定的问题。具体来说,如果某一次G生成的结果中一些特征得到了D的认可,这时候G就会认为输出正确,会继续输出类似的结果,实际上G 生成的结果并不好,导致最终生成结果缺失特征不全,导致检测效果不好。因此,利用GAN 网络进行小目标检测适用于小目标类型单一、特征信息明显的场景。
基于深度学习的模型参数主要分为参数和超参数[105],参数通常在数据中自动获取,不需要人为设置,而超参数是模型外部的配置变量,通常需要人为设置。超参数主要包括学习率(learning rate)、批量尺寸大小(batch size)、迭代次数(epoch)、隐藏层数目层数、激活函数的选择、部分损失函数的可调系数以及正则化系数等。超参数调优是基于深度学习进行目标检测的关键一步,在小目标检测中更是需要借助参数调优组合选取出最优的超参数,进而发挥最大性能更好的检测小目标。
如表2,分别从实现机制和优缺点方面对手动调整、网格搜索、随机搜索及贝叶斯优化算法4种超参数调优方式进行分析。
相对于需要一定的知识和先前经验的手动调整方法,自动超参数调优方法可以更有效地为模型挑选出相对较优的超参数组合,但现有大多数自动超参数调优都未能摆脱固定的网络模型结构和数据集,自适应调节存在着在某种小目标检测中获得的最优超参数组合可能对另一种小目标检测模型并不适用,仍需要具体模型具体调优的问题。
表2 常见超参数调优对比
在上述几类能有效提高小目标检测精度的方法中,数据增强作为普适性最好的提高小目标检测效果的方法,能够用于不同的场景、不同类型的小目标检测,普适性较好;多尺度融合、锚框设计、IOU 阈值匹配、超参数调优也能够用于不同场景下的小目标检测,但是都存在着一定程度上的可迁移性问题,即在某一场景下设计的多尺度融合策略、锚框、IOU 阈值和超参数组合并不适合迁移用于其他场景;利用GAN 网络进行小目标检测则比较适用于具备一定的特殊条件的场景,其普适性较低。
小目标检测技术虽得到一定的发展但尚未成熟。文中提到的数据增强、多尺度融合等方法能够在一定程度上解决小目标分辨率低、卷积神经网络对小目标的特征提取丢失小目标信息等技术难点。但小目标检测技术仍面临复杂场景干扰、缺乏数据集支持等挑战。在针对小目标做改进时如何权衡检测速度和准确性也需要进一步考虑,做到具有良好的检测性能的同时降低算法复杂度,提高检测效率;另外,现有的小目标检测技术几乎都是针对特定的场景所设计,如专门针对小人脸识别或者专门针对小交通标志识别,检测技术的可迁移性较差,无法更好地适应小目标检测场景的变化。未来关于小目标检测技术的研究工作中,研究普适性较好的小目标检测技术,构建大规模的小目标数据集将成为研究重点。此外,研究可迁移性较好的多尺度融合网络、锚框、超参数组合等对现有的可以提高小目标检测效果的方法,进行进一步的改进也是研究重点之一。
基于深度学习的小目标检测是目标检测领域的重要分支,小目标检测广泛存在于智能医疗、人脸识别、工业生产、自动驾驶等各个领域。本文通过分析现有的深度学习目标检测算法,结合小目标定义及技术难点,然后对国内外学者提出的小目标检测改进优化方法进行分类总结,分别从数据增强、多尺度融合、锚框设计、IOU 阈值匹配等几个方面对现有的小目标检测方法进行阐述,并分析了各类方法的优缺点、适用场景、可迁移性等,最后探讨了未来发展趋势和可能的研究重点。虽然小目标技术目前仍存在较多挑战,但是随着对小目标检测技术的深入研究,以及卷积神经网络技术的进步,未来期待能够出现兼备检测效果和检测效率,可迁移性强的小目标检测技术。