APP下载

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

2021-09-24刘洪江刘丽华吴继冰黄宏斌

计算机工程与科学 2021年8期
关键词:金字塔人脸尺度

刘洪江,王 懋,刘丽华,吴继冰,黄宏斌

(国防科技大学信息系统工程重点实验室,湖南 长沙 410073)

1 引言

目标检测是计算机视觉研究领域的核心问题之一,其任务是找出图像中所有感兴趣的目标,并确定它们的类别和位置。传统的目标检测方法由区域选择、特征提取和分类器分类3个步骤组成,其由于存在区域选择策略没有针对性、时间复杂度高、手工设计的特征鲁棒性较差等特点,使得检测效果不理想。自深度学习运用到目标检测之后,目标检测技术取得了巨大的突破,现最瞩目的2个方向是以R-CNN(Region-based Convolutional Neural Network)系列[1 - 3]为代表的基于候选框(Region Proposal)的两阶段深度学习目标检测算法,和以YOLO(You Only Look Ocnce)系列[4 - 6]为代表的基于回归方法的单阶段深度学习目标检测算法。目前基于深度学习的目标检测在视频目标实时检测、人脸识别、行人检测、车辆检测、交通标识检测和医学影像识别等领域有广泛的应用。近几年的研究,产生了大量目标检测的改进算法。这些算法在各类数据集上取得的效果逐渐提升,但除缺乏高质量标注数据集外,仍有很多暂未解决的问题,例如,(1)对于遮挡面积较大的目标和小目标的检测效果不理想;(2)不能很好地区分图像中与目标物体外形相似的非目标物体;(3)自动驾驶或汽车辅助驾驶等对实时处理能力要求较高的应用场景的检测速度和精度仍较低;(4)基于小样本训练的检测模型效果不理想;(5)检测算法的性能和轻量化检测模型等关键技术仍存在挑战。针对这些问题,研究人员已提出很多专门的优化方法,当前已有较多关于深度学习目标检测的综述[7 - 11],也有关于各种主流目标检测方法对小目标检测性能评估的文献[12],但针对小目标检测的综述不多,且随着方法的不断创新,许多新的方法在之前的综述中不曾涉及。本文将围绕深度学习小目标检测技术,首先分析小目标检测的应用需求及小目标检测困难的原因,然后论述当前各种提升小目标检测效果的方法,最后简要介绍目标检测常用数据集和小目标检测常用数据集。

2 小目标检测简介

目标检测中一般认为物体的尺寸相对于原始图像的尺寸较小时为小目标。部分数据集对小目标有明确的定义,例如,原始图像尺寸为1024*2048像素的行人数据集CityPerson,将高度小于75像素的目标定义为小目标。数据集MS COCO中小目标为像素小于32*32的物体。Zhu等[13]在其交通标志数据集中,将宽度占整个图像比例小于20%的目标定义为小目标。而数据集CamVid中则将sign symbol,pedestrian,pole和bicyclist定义为小目标类别,其它7种类别均定义为大目标。另一个数据集CityScapes采用同样的方式,将pole, traffic light, traffic sign, person, rider, motorcycle和bicycle定义为小目标类别,其它12种类别均定义为大目标。

2.1 小目标检测应用

小目标检测的用途广泛且起着重要作用,如自动驾驶车辆,需要精确地从图像中检测出小目标;在医学图像中,需越早越精准地完成大小可能只有几个像素的肿块或者肿瘤的早期检测;工业自动检测中,需要用精准的小目标检测技术定位物料表面小的视觉瑕疵;在遥感图像分析中,汽车、船与房子这些平均一个像素表示0.5~5 m的目标都需要被有效地检测出来。此外,还有诸如小人脸的检测、小人像的检测、交通标志的检测、公司logo的检测、红外图像中小目标的检测和风能发电站周边的鸟群检测等应用,因此非常有必要发展小目标检测技术。

2.2 小目标检测困难的原因

小目标的覆盖区域小,其分辨率低,图像模糊,携带的信息少,位置缺少多样性,特征(亮度、边缘信息等)比较浅,表达能力弱。各种目标检测方法对于小目标的检测都不能达到同大目标一样的精度,具体原因有以下几种。

2.2.1 卷积神经网络的卷积步幅较大

深度学习目标检测使用卷积神经网络CNN(Convolutional Neural Network)作为特征提取工具,在CNN中为了增大感受野,会使得CNN中的特征图(Feature Map)不断缩小,步幅的值很可能比小目标尺寸还大,导致小目标在网络卷积过程中很难传递到后面的深层网络中去[14]。

2.2.2 数据集的分布情况不理想

当前常用的目标检测数据集,如MS COCO,其中小目标的样本数量占比较少,且大目标和小目标的尺寸差异比较大,为网络适应目标带来了一定的困难。此外专门的小目标数据集,如tiny person,其一幅图像中小目标的数量可能较少,如小于20个,也可能较多,如超过100个,小目标密集程度的不同使得很难用统一的方法来提升小目标的检测效果。

2.2.3 模型泛化能力弱

模型通常使用分类数据集进行预训练,而分类数据集中物体目标通常相对较大,小目标检测数据集中的物体目标则较小,学习到的模型对小目标更难有效地泛化,存在较大的域转移现象[15]。

2.2.4 先验框的设置欠优

首先,一组非常多的先验框(Anchor Box)中只有一小部分与真实标注(Ground Truth)重叠,造成了正负样本之间较大的不平衡,降低了训练速度。其次,小目标和背景之间的尺寸也不均衡,用较小的感受野去关注其特征,则很难提取全局语义信息,用较大感受野去关注背景信息,则小目标的特征会丢失信息。同时物体的尺寸变化是连续的,而Anchor Box的设定尺寸是离散的。当某目标的尺寸接近于设定的Anchor Box大小时,该目标附近会产生较多Anchor Box,从而更容易被探测出来。然而,小目标的尺寸大小往往与Anchor Box尺寸相差较大,因而附近产生的Anchor Box也较少,从而降低了探测性能。最后,Anchor Box的使用需要许多超参数和设计选择,加大了计算难度[16]。

2.2.5 交并比阈值的设置欠优

小目标的候选边界框(Bounding Box)与Ground Truth之间的交并比IoU(Intersection over Union)较小,IoU阈值的大小直接影响正负样本的选取。而且进行目标检测之后选取冗余的Bounding Box时,IoU阈值的大小也会影响最终小目标的定位精度[17]。

3 小目标检测的优化方法

针对小目标检测困难因素的分析,当前有多种不同的应对策略,现就各种提升小目标检测性能的方法展开论述。

3.1 利用多尺度特性

最初的目标检测方法,是在网络的最后一层进行分类预测(图1a),由于目标的尺度不一,随着网络层数的增加,小目标的特征越来越少,因此这种方法对小目标的检测效果不理想。根据多尺度的特性对原始图像进行变换,可形成图像金字塔,对图像的Feature Map进行变换,会形成特征金字塔。

Figure 1 Network structure of common object detection methods图1 常见目标检测方法的网络结构

3.1.1 图像金字塔

针对不同尺度的目标,可通过对训练图像上采样得到多尺度的图像金字塔(图1b)。上采样能够加强小目标的细粒度特征,并优化小目标检测的定位和识别效果,得到了广泛应用[18 - 21]。但是,基于图像金字塔训练CNN模型对计算机的算力和内存都有非常高的要求,在后续的研究中多是对图像金字塔加以改进后再使用。Yang等[22]针对不同尺度的人脸检测,将3个不同尺度的检测器(10 px~40 px, 40 px~140 px, 140 px~1300 px)集成在同一个网络中,每个检测器只取样属于它应该处理范围的尺度,用于取代图像金字塔,在检测效率上有所提升。Singh等[23]提出了图像金字塔尺度归一化方法SNIP(Scale Normalization for Image Pyramids),通过改进的多尺度训练MST (Multi-Scale Training)来解决尺度不变性的问题。只考虑那些在指定尺度范围内的目标,对于大尺度的Feature Map,对应的区域生成网络RPN(Region Proposal Network)只负责预测被放大的小目标;对于小尺度的Feature Map,对应的RPN只负责预测被缩小的大目标。在训练时,每次回传那些大小在一个预先指定范围内Region Proposal的梯度,而忽略掉过大或者过小的Region Proposal;在测试时,建立大小不同的图像金字塔,在每幅图像上都运行这样一个检测器,同样只保留那些大小在指定范围内的输出结果,最终保证网络总是在同样尺度的物体上训练。这种方法弥补了MST虽然包含了各类目标的各种尺度,目标特征较多,但会出现极大或极小的目标,影响训练效果的不足。SNIP把一些极端的Region Proposal忽略掉,相对来说只保留了尺度大致一致的Region Proposal参与训练,这样每个尺度的图像的每个像素都要参与训练,导致训练过程较慢。基于SNIP,Singh等[24]以适当的比例处理chips(某个图像的某个尺度上的一系列固定大小及以恒定间隔、排布的小窗,每个小窗都可能包含一个或几个目标。在训练期间每幅图像生成的chips数量会根据场景复杂度而自适应地变化)周围的上下文区域,并将chips缩放到相同的尺度进行训练,使用较小尺度的chips进行训练,而不使用尺度较大的金字塔图像,在一定程度上减少了计算量。

3.1.2 特征金字塔

鉴于使用图像金字塔进行目标检测具有运算复杂度高、效率低和实时性差等缺点,且考虑浅层网络对小目标的检测更有利,因此特征金字塔方法的使用更为广泛。最基本的是SSD(Single Shot multiBox Detector)[25]和FPN(Feature Pyramid Networks)[26],后续许多对特征金字塔的改进策略都是基于这2种方法。SSD在网络多个层输出的Feature Map上进行目标分类预测,大尺度Feature Map(网络浅层)用来检测小目标,而小尺度Feature Map(网络深层)用来检测大目标,以同时兼顾大、中、小目标的检测精度,最后综合得出检测结果(图1c)。Kong等[27]基于SSD,将自底向上的多个Feature Map联合,生成特定尺度的特征,经由全局注意力模块[28]和局部重建模块,在不同的空间和尺度上提取任务相关的特征后,再在不同尺度上进行检测。此结构将底层表示和高层语义特征进行了整合,其结构高度非线性但计算速度更快。Jeong等[29]提出了3种利用特征金字塔中各层之间关系的方法:(1) 较低层中的特征映射通过Pooling连接到较高层的特征映射,使具有大接收域的分类器网络可以丰富目标检测的表示能力;(2)通过反卷积或上采样将上层的特征映射图连接到下层特征;(3)同时使用Pooling和反卷积。这种利用特征金字塔中各层之间关系的方法,改进了SSD不同尺度的Feature Map相互独立,缺少联系,使得同一目标在不同尺度上被多次检测的不足。Zhou等[30]提出了可缩放的目标检测网络STDN(Scale-Transferrable Detection Network),在SSD基础上加入比例转移模块STM(Scale-Transfer Module),先获得小尺度的Feature Map,再用尺度转换层通过减少Feature Map的通道个数,来获得大尺度的Feature Map。STDN在不增加任何参数和计算量的同时,达到了基于低分率Feature Map获得高分率Feature Map的效果,最终实现目标检测的正确率和速度的提升。Zhang等[31]基于SSD,利用语义分割强化浅层的特征信息,提出了新的单阶段检测算法,减弱了浅层基本视觉特征对小目标检测性能的影响。

SSD系列的特征金字塔对硬件的需求较高,于是Lin等[26]提出了另一种特征金字塔FPN(Feature Pyramid Networks for object detection)。FPN从底至上利用各个网络层对同一尺度图像不同维度的特征表达结构,参考多尺度Feature Map的特征信息,同时兼顾了较强的语义特征和位置特征,可以生成表达能力更强的Feature Map,供下一阶段的目标检测使用(图1d)。多尺度Feature Map是CNN中固有的过渡模块,堆叠多尺度Feature Map对算法复杂度的增加微乎其微。Liu等[32]基于FPN,提出了一种新颖的图像金字塔引导网络IPG-Net(Image Pyramid Guidance Network),其中包含1个基于图像金字塔引导的IPG子网络、1个融合模块和1个基于图像金字塔的骨干网络(Backbone)。IPG-Net使用图像金字塔来指导Backbone,以学习更好的检测特征,用于为神经网络模型的每一层提供更充足的空间信息。对于Backbone中的每一层,通过IPG子网络计算相应层级的图像金字塔特征,然后使用融合模块将图像金字塔特征融合到Backbone中,最终生成特征金字塔,有效地缓解了较深卷积层中的空间信息不足和小目标易丢失的问题。Zhao等[33]提出了多层特征金字塔网络MLFPN (Multi-Level Feature Pyramid Network),其首先利用特征融合模块融合浅层特征和深层特征以产生基本特征,为MLFPN提供多级语义信息;其次交替堆叠多个简化的U形模块TUM(Thinned U-shape Modules)和特征融合模块。每个TUM生成具有不同尺度的若干特征图,特征融合模块融合了基本特征和前一个TUM的最大输出特征图;最后通过比例缩放特征聚合模块将特征聚合为多级特征金字塔。将MLFPN集成到SSD架构中,得到新的模型,更好地进行了特征融合,改进了FPN中每个特征只由网络主干中的一层信息构成,不同尺度所选的特征不具备代表性(一幅图像上相同大小的物体,有的本身就很大,而有的是因为物体本身相对遥远)的不足。Hao等[34]针对多尺度人脸检测问题,先用全卷积网络输出一个固定维度的尺度直方图,并计算每个尺度对应的置信度,然后利用滑动平均滤波处理直方图向量可能存在的噪声,再利用非极大抑制[35]来寻找置信度最高的尺度,最后在这些特定的尺度上对人脸进行检测。这样不用在各个尺度下对人脸进行检测,检测速度进一步提升。Shen等[36]应用门限机制,基于一种能从零开始训练的检测器DSOD(learning Deeply Supervised Object Detectors from scratch)提出了一种根据中间层不同尺度动态调整监督强度的目标检测方法。由于小尺度上的目标很容易被细粒度特征(网络低层)检测到,从低层特征得来的信号应该被增强。大尺度上的目标很容易被粗粒度特征(网络高层)检测到,从高层特征得来的信号应该被增强。通过拼接高层的语义特征和低层的空间特征到单个金字塔层中,来提高检测效果。通过下采样将低水平的Feature Map中的信息传到当前层并与当前层拼接;通过上采样将高水平的语义信息传到当前层并与当前层拼接,在每个尺度的预测层中重复上述拼接操作。这种方法改善了特征金字塔只有一个尺度的特征表达,各层的特征相互独立,缺少关联,以及每层金字塔贡献出的监督信息固定的缺陷。Kim等[37]基于SPP-Net(Spatial Pyramid Pooling in deep convolutional Networks for visual recognition)[38],提出了一种并行特征金字塔网络,其通过加宽网络宽度而不是增加网络深度来构建,从而提升了大、中、小目标的检测效果。Liu等[39]提出了路径汇聚网络,通过自下而上的特征融合路径,取代FPN中自上而下的路径,可以增强在较低层中准确的定位信息流,建立底层特征和高层特征之间的信息路径,缩短高、低层特征融合的路径,从而增强整个特征层次架构。Li等[40]根据感受野大小对目标检测的影响,设计了三叉戟网络模块。对某个特定的网络结构,只改变不为1*1的卷积核,添加多个并行分支的网络结构来兼顾多个尺度,且各个分支共享权重。在主干网络的第1个预测层,连接语义分割模块SM(Segmentation Module),将主框架con4_3的输出和Ground Truth经过 SM,再返回到con4_3作为下一层的输入,以增强特征的语义信息。并将低层的语义分割结果融合到高层特征信息中,在每个预测层添加全局激活块[28],负责学习通道间的关系和通道的权重,增强了特征中重要的成分。Deng等[41]提出了扩展特征金字塔网络EFPN(Extended Feature Pyramid Network),它具有专门用于小目标检测的超高分辨率金字塔层。EFPN的顶部由4层金字塔构成,用于中型和大型目标检测,底部包含1个特征纹理迁移FTT(Feature Texture Transfer)模块、1个自上而下的路径和1个金字塔层,旨在捕获小目标的区域细节。FTT模块集成EFPN上的相应金字塔层中的语义内容和区域纹理,用于超分辨率特征并同时提取可信的区域细节。然后,类似FPN的自顶向下路径将FTT模块的输出向下传递,形成最终的扩展金字塔层。扩展的特征金字塔被馈送到后续的检测器,以进行进一步的目标定位和分类,在计算和存储上都具有高效性。

3.2 利用特征上下文信息

在目标检测中,目标所在的特征上下文信息对目标的识别有很大帮助,比如一般情况下轮船周围的特征上下文信息是海洋或者港口,人脸周围的特征上下文信息是头发及衣物。Zagoruyko等[42]使用区域裁剪的方法,在原始的Region Proposal中心位置,裁剪4种不同倍数(×1,×1.5,×2,×4)的区域,然后进行RoI(Region of Interest)Pool- ing,将输出的信息拼接到一起,达到融合上下文信息的效果。Ren等[43]提出了一个循环滚动卷积结构来渐进地完成寻找合适的上下文信息的任务。Fu等[44]在SSD结构中添加了反卷积模块,从而引入空间上下文信息,使网络结构成“宽-窄-宽”的沙漏结构,增强了特征提取能力,较大提高了小目标检测的准确率。Samangouei等[45]提出了一种人脸放大网络,在RPN和RoI Pooling之间加入反卷积,对每个Region Proposal周围汇集上下文区域,以方便检测更精细的人脸。Bell等[46]在Fast R-CNN基础上,利用上下文和多尺度信息,提出了一种内外网结构。内部通过Skip Pooling连接不同卷积层输出的Feature Map,实现了多尺度特征的融合;外部通过空间递归神经网络整合了上下文信息。Hu等[47]基于“中心凹”描述子(模糊周边图像进行编码),对输入图像创建一个粗图像金字塔(×0.5,×1,×2),将缩放的图像输入到CNN中,以便在每个分辨率下预测模板响应。检测大目标时,使用×0.5分辨率的模板,检测小目标时,使用×2分辨率的模板,中间像素的则使用×1分辨率的模板。这种方法模拟人类视觉,获取了足够的上下文信息,并采用特定尺度混合检测器,应用于小人脸检测取得了较好的结果。而后Attia等[48]深入理解此方法,将其应用于图像中的人数统计并取得了较高精度。

3.3 优化Anchor Box设置策略

Faster R-CNN中的RPN,率先使用Anchor Box预选取目标,目前大部分目标检测方法都是基于Anchor的,仅少数目标检测方法不是基于Anchor的。对基于Anchor的目标检测方法,优化Anchor Box的设置策略可有效改善检测效果。Cai等[49]提出了多尺度卷积神经网络。在不同层Feature Map上设计不同尺度的检测器,使感受野匹配不同尺度的目标,这些互补的尺度探测器结合起来产生一个强大的多尺度目标探测器,弥补了Faster R-CNN 中RPN在所有的Feature Map都应用了多组大小相同的模板,导致模板匹配的规模不一致的缺陷。Yu等[50]基于图像金字塔效率太低以及基于Anchor的网络较复杂的原因,提出了一种基于Anchor的级联框架,将Anchor Box嵌入到图像金字塔中。使用一系列Anchor Box来处理小目标,避免了很大的CNN,在速度和效果上取得了一个不错的折衷。Chen等[51]通过修改RPN的 Anchor Box尺寸,并重新选择Feature Map的作用层来改善小目标的检测效果。Sommer等[52,53]都在遥感数据集车辆检测问题上,基于Faster R-CNN,评估了多种Region Proposal方案,通过修改Anchor Box参数,改善了小目标检测效果。Krishna等[54]同样针对RPN设置合适尺寸的Anchor Box以提升小目标检测性能。Eggert等[55]对Faster R-CNN中RPN选取Region Proposal的阶段进行改进,为选择合适的Anchor Box尺寸提供了启发式方法。Wang等[56]结合基于Anchor和不基于Anchor的方法来解决人脸检测任务中尺度差异大的问题,在网络的P3~P5层上添加基于Anchor的分支,在网络的P3层插入基于Anchor的分支,用来捕获那些基于Anchor的方法覆盖不到的尺度。Yang等[57]提出了一种灵活有效的Anchor Box生成机制MetaAnchor,用于目标检测框架,不同于之前的检测框架中使用预先设定的Anchor Box,MetaAnchor可以从任意自定义的预设Box中动态生成,且MetaAnchor可以适用于任何基于Anchor的目标检测框架。Zhang等[58]改进了基于Anchor的通用检测框架,提出了新的人脸检测方法S3FD(Single Shot Scale-invariant Face Detector)。对于网络结构中的6个检测层,使用不同尺度的Square Anchor,考虑人脸的长宽比约为1∶1,S3FD 的Anchor Box仅有1∶1 一种比例。此外在所有检测层上,Anchor Box的尺寸均为步幅的4倍,满足传播间隔相等原则,从而确保图像中不同尺寸的Anchor Box密度相同,使得不同大小人脸能够很好地与Anchor Box匹配上。Zhu等[59]针对人脸检测问题,证实检测召回率和IoU基本呈现正相关的关系,大尺寸人脸的召回率和交并比明显比小人脸的效果好,为此提出预期最大重叠分数,通过该指标来提高Ground Trouth与Anchor Box的IoU,进而提高与小人脸对应的Anchor Box被作为正样本的概率,从而提升检测到小人脸的可能性。Li等[60]提出一种新颖的端到端可训练的深度神经网络框架,它将语义分割和SSD结合到一个网络中,以检测自然场景下的多方向文本,用于更好地预测尺度和长宽比变换较大的文本框,有效缓和了文本检测时小文本特征太稀疏的问题。

3.4 优化IoU

IoU是2个区域的交并比,目标检测中IoU的阈值如果过高,会导致正样本质量很高但数量很少,样本比例不平衡的问题,如果IoU阈值较低,样本的数量会增加,但是样本的质量也会下降。Gidaris等[61]将初始的Bounding Box扩大常数倍后得到搜索区域,迭代计算搜索区域的每一行和每一列目标边界的条件概率,分别选择行和列中2个概率图的极大值得到目标边界,有效提升了Bounding Box与目标的吻合度,与不同的检测系统结合,效果都优于Bounding Box回归。Cai等[62]基于Faster R-CNN,设计了一个级联检测器,用不同的IoU递进优化检测性能,通过不断提高IoU的阈值,使得在保证样本数量的同时,也能使得样本的质量不下降,最后训练出高质量的检测器。该方法弥补了输入Region Proposal的 IoU分布需要与筛选的阈值相近才能获得较好的回归输出效果的缺陷(过高会导致过拟合,过低容易误检),在小目标检测效果上有着显著的提升。Liu等[63]基于SSD,同样采用不断提升IoU阈值的思想,设计了一种结构简单但有效的渐近定位拟合模块,通过叠加了一系列预测器,可以逐步演化SSD默认的Anchor,在提升定位精度的同时保证算法的速度优势,在行人检测问题上取得了较好的结果。

3.5 优化非极大抑制

非极大抑制NMS(Non-Maximum Suppression)[35]是在目标检测中对多个Region Proposal进行筛选,得到最佳的物体检测位置的方法。最初的NMS分为3步:(1)计算出每一个Region Proposal的Bounding Box的面积,得到相应的分数,然后根据分数进行排序;(3) 计算其余Bounding Box与当前最大分数的Bounding Box的IoU,去除IoU大于设定的阈值的Bounding Box;(2)重复上述过程,直至候选Bounding Box为空。 Bodla等[64]基于NMS,提出了Soft-NMS,Soft-NMS不直接将IoU大于阈值的Bounding Box的置信度设置为0,而是减小置信度,使这些Bounding Box仍然有机会被保留下来,从而避免了优良的Bound- ing Box被删除的情况,提高了mAP(mean Average Precision)。He等[65]认为NMS使用分数作为选择Region Proposal的方法不能选出符合真正目标位置的Region Proposal,于是使用标准差来代替分数,标准差越小,波动越小,越能代表准确的定位。Hosang等[66]提出了Conv-NMS,用神经网络来实现NMS,解决了传统的NMS因阈值设置不合理导致结果不稳定的问题。相比于最初的NMS,Conv-NMS可通过学习的方法来获得最佳的输出。Fang等[67]基于NMS提出了一种平滑NMS,其选择前k个分数的Bounding Box的平均值,代替最高分数的Bounding Box。Jiang等[16]提出一种用于准确目标定位的全新网络架构,将IoU置信度加入到目标检测的流程中,把定位问题从回归的方式改为基于优化的方式,预测检测到的Bounding Box和对应的Ground Truth之间的IoU,实现IoU引导 NMS的流程,从而防止定位更准确的边界框被抑制,有效解决了定位置信度与分类置信度不匹配的问题。

3.6 优化损失函数

损失函数是度量神经网络输出的预测值与实际值之间差距的一种方式,常见的损失函数有最小二乘损失函数、交叉熵损失函数等。不同的目标检测方法,根据网络结构的不同,会适当地修改损失函数。Chen等[68]通过统计分析发现,大多数目标检测算法在小目标检测上都有显著的性能下降,与小目标在图像中出现的比例低、训练阶段小目标对损失函数的贡献小有关系,于是提出了一种基于训练时反馈、然后提供新数据(将图像拼接起来)的方式改进训练。当目标对损失的贡献比例小于一定阈值时,即将拼接的图像加入下一次迭代的训练集。这种方法几乎不增加训练时间,但检测精度提升较明显。Yu等[69]使用了与DenseBox[70]类似的方法进行人脸检测,提出了UnitBox。DenseBox使用L2损失对Bounding Box定位,由于大目标的L2损失更容易大于小目标的L2损失,使得L2损失会使模型在训练过程中更偏向于尺寸更大的物体。UnitBox则使用了一种名为IoU loss的损失函数,其将位置信息作为一个整体进行训练,无论输入的样本是什么形式,得到的IoU loss值均介于[0,1],这种归一化的损失使模型具有更强的处理多尺度图像的能力,比L2收敛快,而且效果好。Guo等[71]提出了一个新的度量指标,通过计算不同类别之间邻边的长度与周长之比,量化邻近程度,通过量化空间邻接项的比率来除去目标尺寸引入的偏差,使得小目标也能对最终的损失做出贡献(当小目标的周长作分母时),弥补了小目标的损失对总的损失影响较小的不足。

3.7 结合生成对抗网络

生成对抗网络GAN(Generative Adversarial Network)[72]是近几年发展迅猛的深度学习分支,网络包含生成器网络(Generator)和判别器网络(Discriminator)2个分支,如图2所示。Generator用于接收一个随机噪声z后生成图像,Discriminator用于判别一幅图像是数据集中真实的图像还是Generator生成的图像。二者是相互博弈的过程,直至Discriminator判别出图像是真实和生成的概率相等为止。GAN用途广泛,包括图像生成、图像转换、图像风格迁移、图像修复和图像超分辨率等。将GAN与目标检测结合,对小目标检测有较好的提升效果。使用GAN进行目标检测主要是从图像的分辨率着手,提高原始图像的分辨率即为超分辨率SR(Super-Resolution)。

Figure 2 Structure of generative adversarial network图2 生成对抗网络的结构

Noh等[73]提出了一种小目标检测特征超分辨方法,在Faster R-CNN检测模型的基础上,引入4个附加组件(SR特征发生器、SR特征鉴别器、SR目标提取器和小预测器)。SR目标提取器在感受野扩展的每一层充分处理相对感受野,用于提取与低分辨率特征相似的高分辨率目标特征。SR特征发生器基于GAN的模型,利用SR目标提取器的特征作为目标,在SR特征鉴别器的引导下生成高分辨率的特征。对SR特征发生器增强的小Region Proposal,用小预测器进行分类并计算定位置信度。此方法对小、中、大目标的检测均有增强作用。Bai等[74]采用GAN直接从模糊的低分辨率人脸中生成清晰的高分辨率人脸,然后进行人脸检测,其中Generator用于生成高分辨率的图像,包含超分辨率网络和细化网络。超分辨率网络对小人脸进行小尺度上采样,在较大尺度上减小伪影,提高上采样图像质量。细化网络恢复上采样图像中缺失的一些细节,生成清晰的高分辨率图像进行分类。Discriminator后有2个分支,分别用于判断是生成图像还是真实图像,以及判断生成图像是人脸还是非人脸,从而增强人脸检测的鲁棒性,提升了无约束的环境下,模糊、侧脸和低分辨率等人脸的检测效果。Li等[75]提出了一种感知生成式对抗网络Perceptual GAN,其挖掘不同尺度目标间的结构关联,提高小目标的特征表示,使之与大目标类似。其中,Generator是一个深度残差特征生成模型,引入低层精细粒度的特征,将原始的较差的特征转换为高分辨率的特征;Discriminator一方面分辨小目标生成的高分辨率特征与真实大目标特征,另一方面使用感知损失提升检测率。Perceptual GAN可以为小目标生成类似大目标的超分特征,并且具有较高的检测精度,有效缓解了提高输入图像的分辨率会增加运算量,而多尺度特征表示结果不可控的问题。Rabbi等[76]基于EEGAN[77]和ESRGAN[78]提出一种新的边缘增强超分辨率生成对抗网络,用于遥感图像的小目标检测,并将超分辨率生成对抗网络与多种目标检测方法结合,在与Faster R-CNN结合时达到了最佳效果。Bai等[79]提出了一种端到端的多任务生成对抗网络MTGAN(Multitasking Triplet GAN)。在MTGAN中,Generator是一个超分辨率网络,可以更准确地检测小模糊图像。Discriminator是多任务网络,将实际图像与生成的高分辨率图像区分开来,同时预测对象类别并将对象位置进行回归。此外,为了使Generator恢复更多细节以便于检测,Discriminator中的分类和回归损失在训练期间反向传播到Generator中。在数据集MS COCO上进行的大量实验表明,MTGAN从模糊的小图像中恢复清晰的超分辨图像的有效性,特别是对于小目标物体,检测效果明显提升。

3.8 图像增强

数据增强有助于提高模型的鲁棒性,通常数据增强的方法有空间变换(水平和垂直翻转、裁剪、旋转、缩放、仿射变换等)、像素变换(添加噪声、模糊变换)、随机擦除、图像混合(Mix up、Cutout、CutMix、Mosaic)和利用GAN生成新图像等多种方式。而对小目标检测,常规的数据增强方法效果并不理想。Kisantal等[80]提出了2种对小目标数据增强的方法,即通过包含小目标的图像进行过采样(可设置不同的过采样比例)来解决包含小目标的图像数量少的问题,以及通过在每个包含小目标的图像中多次复制粘贴小目标来处理小目标在整幅图像中占比太少的问题,并确保复制目标时,不会和已经存在的目标有任何交叠。这增加了小目标位置的多样性,同时确保这些目标出现在正确的上下文中。Zhao等[81]将目标随机调整亮度和尺寸,然后使用Gao等[82]提出的方法将目标融合到背景中,以此增加小目标的数量。

3.9 优化目标检测网络结构

基于深度学习的目标检测算法都需要Backbone(AlexNet、VGGNet、ResNet、GoogLeNet等[83])。针对提升小目标检测的效果,除特征金字塔外,还有很多对网络结构优化的方法。Zhao等[78]针对红外小目标检测,提出一种轻量级卷积神经网络,其由目标提取模块和语义约束模块组成,目标提取模块是一个轻量级的图像分割网络,具有紧凑的操作和灵活的结构参数,以便进行有效的推理,用于从红外图像中提取小目标。语义约束模块是一种用于实现高层次分类任务的多层CNN,用于训练过程中对提取的目标图像进行分类。这能解决类不平衡导致的特征学习困难的问题,更好地减少了复杂背景引起的误报。Yang等[84]提出了一种三阶段级联全连接卷积神经网络。每一级都由一个多尺度的全卷积网络生成一个得分图,该网络在不同的位置和不同的尺度上生成分数。每升一级,人脸的Region Proposal数量和候选区域面积都会减少,通过逐渐放大脸部来更精确地进行识别,解决了人脸可能位于图像任意位置和存在不同规模的问题。Huang等[70]提出的DenseBox除了NMS部分,其余模块都为全卷积网络结构,也无需生成Region Proposal,是端到端的单阶段模型。对预处理的图像(保证人脸和足够的背景信息下对图像进行了剪切),采用图像金字塔,利用上采样层来保证分辨率相对较高的输出,同时运用了下采样使得在处理小目标和高度重合的目标上有很大的优势。Huang等[85]提出一种密集卷积网络,将每一层以前馈的方式连接到其它每一层,且每一层要从之前的所有层中获得额外的输入,并将其自身的特征图传到后续的所有层中,用来确保网络层中各层之间最大的信息流。相比于传统卷积网络,这种密集连接模式由于不需要重新学习冗余的Feature Map,因此需要的参数更少。Meng等[86]提出了一种检测小型交通标志的方法,将大图像分割成固定大小的小图像,然后输入基于SSD改进的小目标敏感神经网络中。同时它也用到了图像金字塔技术,缓解了大图像输入网络消耗内存及小目标检测效果不佳的问题。Cao等[87]针对检测道路上的汽车和行人等目标,提出了一种模块化的轻量级网络道路物体检测模型,其中包含2个基本模块以进行有效的计算,前一个模块利用带有小尺寸滤波器的更多卷积层来减少原始输入图像的信息丢失;后一个模块在常规卷积层之前使用逐点卷积层,以减少模型大小和计算量,同时确保了检测精度。Liu等[88]提出了多路径区域的卷积神经网络,将深度神经网络与经典学习结合在一起,是一种能同时应对大尺寸图像和小尺寸图像的两阶段级联人脸检测框架。第1阶段是多路径区域选取网络,以3种不同的比例选取脸部,同时利用卷积特征图的3个并行输出来预测多尺度候选脸部区域。第2阶段利用从候选脸部区域内部合并的深层面部特征,以及从围绕候选脸部区域的较大区域合并的深层上下文特征进行分类。Pang等[89]针对遥感图像中目标较小的问题,提出一种带有自主增强性的神经网络,其由Tiny-Net(一种轻量级的残差结构,能够从输入中高效地提取特征)、分类器和探测器组成。每幅图像会先分块输入Tiny-Net进行特征提取,再经过注意力机制模块进行加权处理,然后经过一个二分类器来判断该图像是否含有目标,得到有目标的图像后进行进一步的目标探测。同时在图像进入网络之前将其切分成小块,大尺度的图像被切割之后会产生大量不包含小目标的图片块,为了节省探测时间以及提升探测精度,采用二分类器将这些无目标图像块过滤掉。针对小目标,此网络从扩大感受野的角度出发,在基础网络提取特征之后,在池化过程中采取多尺度策略,从而达到多尺度融合来扩大感受野的效果。Yang等[90]提出了一种单级小目标检测器,采用较小的下采样因子来保持准确的位置信息,并通过在较深的网络层中为小目标引入新的膨胀残留块来保持较高的空间分辨率。此外,作者还提出了两分支扩张的特征注意模块,以扩大有效的接受区域,并为小密度和小分散目标检测提供有效的注意特征图,提升了遥感图像中分散或者聚集小物体的检测效果。Liu等[91]基于SSD引入了感受野模块RFB(Receptive Field Blcok),进行人类视觉系统的大小和离心率的模拟。RFB前一部分为Inception[92 - 95],使用具有不同内核的多分支池化层模拟多种尺寸的群感受野,后一部分的空洞卷积层再现了人类视觉系统中群感受野尺寸与离心率之间的关系。RFB结构后端会将不同尺寸和比例的卷积层输出进行连接,达到融合不同特征的目的。RFB不同尺度的特征融合,在扩大感受野的同时,也融合多个尺度的特征,增强了模型对于小目标的检测能力。 Deng等[96]提出了一种基于加权图像熵的小目标检测方法,利用多尺度灰度差值对局部熵值进行加权,然后进行自适应阈值运算,以提高场景中被干扰目标相对于背景的热强度与小目标相似情况下的信噪比,在红外图像检测中取得了较好的结果。Tang等[97]提出了一个上下文辅助的Single Shot人脸检测器PyramidBox,用于解决人脸检测的难题。PyramidBox在Backbone中添加了低层级的特征金字塔网络和1个上下文敏感预测模块。区别于FPN自顶向下的结构,PyramidBox通过从中间层开始自上而下的结构来构建低层级的特征金字塔网络,其感受野接近于输入尺寸而不是顶层的一半。上下文敏感预测模块在每个金字塔检测层中作为分支网络来得到最后的输出。PyramidBox可以更好地处理小的、模糊的和部分遮挡的人脸。Gao等[98]利用强化学习的思路,不断放大感兴趣区域进行目标检测,网络包含目标检测网络R-Net和强化学习检测网络Q-Net[99]。R-Net基于Faster R-CNN,对低分辨率图像进行粗糙目标检测,检测结果用于精度增益图的生成。Q-Net进行精细的目标检测,将生成的精度增益图作为输入,找一个最可能存在目标的位置,然后在原始图像中取相应的高分辨率图像作为网络下一次的输入,进行迭代直到满足指定结束条件。Sommer等[100]基于Faster R-CNN,重新设计了一种Backbone,取代原始网络中的VGG-16,专门用于小目标检测,在航拍图像数据集上的检测效果较Faster R-CNN要好。Liu等[101]提出了一种复合骨干网络,通过相邻Backbone之间的复合连接,合并功能更强大的Backbone,提高了目标检测器的性能。Hu等[102]针对道路上尺度变化大的车辆检测问题,提出了一种规模不敏感的网络SINet (Scale-Insensitive Network)。SINet中使用场景感知的RoI池化提取每个区域的特征并应用在CNN的多个层上,得到的池化特征最后加以连接,融合了高层和低层信息。这种方法改进了通常使用的RoI Pooling只是简单地复制特征值以符合预设特征长度,扭曲了小目标的原始结构的缺陷。此外,为了减轻训练不同尺度目标物(有很大的类内距离)的压力,SINet有多个分支对应于不同尺寸的Region Proposal,将不同分支得到的预测结果融合,得到最终的预测结果,有效地缓和了不同尺度车辆的类内距离通常非常大,使得网络难以使用相同权重表示不同尺度目标的不足。

3.10 其它方法

目标检测通常也和其它领域的知识相结合,且取得了较好的结果,这些方法对小目标检测效果的提升也有很大的帮助。Yi等[103]提出了一种基于领域知识和直觉知识[104]的循环注意力网络,将图像的特征图输入到此网络中,以细粒度的方式提高特征图的特征表示能力,用学习到的领域知识和直觉知识增强对小目标的检测。Ji等[105,106]将Attention[107]引入CNN中,用于显著目标检测。Hu等[108]也受Attention的启发,提出了一种Relation Module,在目标特征中融合目标之间的关联性信息,特别是位置关系,以此提高检测效果。Carion等[109]提出了基于Transformer[110]的端到端目标检测,没有了NMS后处理步骤,也不需要Anchor Box,并取得了比Faster R-CNN更优的效果。Yu等[111]提出一种对预训练数据进行尺度匹配的方法,利用外部数据集中目标尺度的统计直方图和任务数据集中目标尺度的统计直方图分布相似,把尺度调整后的外部数据集加入训练集以训练算法模型,缓解了用于网络预训练的数据集和用于检测器学习的数据集之间存在的尺度失配问题,有效改进了小目标的检测效果。Gao等[82]提出了一种红外图像小目标检测方法,先将传统的红外图像模型推广为基于局部Patch构造的红外图像模型;然后在新模型的基础上将小目标检测归结为低秩稀疏矩阵恢复的优化问题,利用稳定的主分量跟踪有效地解决了该优化问题;最后采用一种简单的自适应分割方法对目标图像进行分割,并对分割结果进行后处理,进一步细化了分割结果。Shen等[36]提出了从零开始深度有监督学习目标检测器。此外还有一些其它领域的知识用于目标检测中,如小样本学习和零样本学习、高阶统计表示、网络结构搜索和马尔可夫随机场等,都是提升小目标检测效果的有力工具。在语义分割、文本检测等任务中,对小目标提取的技术也可用于小目标检测当中,因此小目标的检测技术虽然还欠成熟,但改进途径广泛,有极大的研究空间。

4 常用小目标检测数据集

在计算机视觉领域,有许多公开的数据集,以及对这些数据进行整理的网站。这些数据集按类型划分,可分为人脸数据、行人或其它物种外观数据、医学影像数据、遥感数据、红外监测数据、X-光扫描数据、街景数据和自动驾驶数据等。按研究类型可分为目标检测、目标分类、目标识别、目标跟踪、语义分割、实例分割、文本检测、文本识别、显著性检测、视频监控、3D检测和人体姿态等类别。常用的数据集有CIFAR10、Open Images、ImageNet、Tiny Images、CoPhIR、LSUN和COCO等,这些数据集包含的类别较多,目标尺度变化大。小目标存在较多的数据集通常为人脸数据集、道路交通标识数据集和遥感图像数据集等。表1和表2为部分小目标数据集统计。

Table 1 Part of the face data sets information表1 部分人脸数据集信息

Table 2 Part of the remote sensing image data sets information表2 部分遥感图像数据集信息

5 结束语

本文全面论述了基于深度学习的小目标检测研究现状,先描述了小目标检测的应用场景及重要性,然后分析了小目标检测困难的主要原因。针对这些原因,从多尺度特性、特征上下文信息、Anchor Box的设置策略、优化IoU/NMS及损失函数、结合使用GAN方法、图像增强、优化目标检测网络结构,及其它等多个方面详细论述了提升小目标检测效果的方法,最后介绍了当前主要的目标检测数据集和部分小目标检测数据集。

目标检测研究是计算机视觉和模式识别中备受青睐的热点,当前的小目标检测方法正在逐步克服各种困难,但仍需广大学者共同努力,朝着更多的研究方向发展。

猜你喜欢

金字塔人脸尺度
“金字塔”
有特点的人脸
一起学画人脸
财产的五大尺度和五重应对
Great Vacation Places
海上有座“金字塔”
三国漫——人脸解锁
神秘金字塔
宇宙的尺度
9