锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

2021年小目标检测最新研究综述 很全面值得收藏

时间:2023-02-20 23:00:00 apm接近传感器3213继电器tir传感器1545s3no接近传感器dubox系列连接器

摘要

长期以来,小目标检测一直是计算机视觉的难点和研究热点。在深度学习的推动下,小目标检测在国防安全、智能交通、工业自动化等领域取得了重大突破。为了进一步促进小目标检测的发展,全面总结了小目标检测算法,对现有算法进行了分类、分析和比较。首先,定义小目标,总结小目标检测面临的挑战。然后,重点阐述从数据增强、多尺度学习、上下文学习、生成对抗学习以及无锚机制等方面来提升小目标检测性能的方法,并分析了这些方法的优缺点和关联性。之后,对小目标数据集进行了全面介绍,并在一些常用的公共数据集中对现有算法进行了性能评估。最后,本文展望了小目标检测技术未来的发展方向。

关键词

小目标检测; 数据增强; 多尺度学习; 上下文学习; 对抗学习生成; 无锚机制

引 言

目标检测是计算机视觉领域的重要研究方向,也是其他复杂视觉任务的基础。目标检测作为图像理解和计算机视觉的基石,是解决更高层次视觉任务的基础,如分割、场景理解、目标跟踪、图像描述和事件检测。长期以来,小目标检测一直是目标检测的难点,旨在准确检测图像中可视化特征较少的小目标(32像素)×32像素以下的目标)。在现实场景中,由于小目标的存在,小目标检测具有广阔的应用前景,在自动驾驶、智能医疗、缺陷检测拍图像分析等领域发挥着重要作用。近年来,深度学习技术的快速发展为小目标检测注入了新鲜血液,成为研究热点。然而,与传统尺寸的目标相比,小目标通常缺乏足够的外观信息,因此很难区分它们与背景或类似的目标。在深度学习的推动下,虽然目标检测算法取得了重大突破,但对小目标的检测仍不尽如人意。目标检测公共数据集MS COCO1小目标和大目标在检测性能上存在显著差距,小目标的检测性能通常只有大目标的一半。由此可见,小目标检测仍然充满挑战。此外,真实场景复杂,通常存在光线剧烈变化、目标屏蔽、目标密切连接、目标规模变化等问题,这些因素对小目标特征的影响更大,进一步增加了小目标检测的难度。事实上,小目标检测具有重要的研究意义和应用价值。对于机场跑道,路上会有小物体,如帽子、螺钉、垫圈、钉子和保险丝。准确检测跑道上的小异物将避免重大航空事故和经济损失。对于自动驾驶,有必要从汽车的高分辨率场景照片中准确检测可能导致交通事故的小物体。对于工业自动化,还需要小目标检测来定位材料表面可见的小缺陷。对于卫星遥感图像,图像中的目标,如车、船,可能只有几十个甚至几个像素。卫星遥感图像中的小目标将有助于政府机构遏制毒品和人口贩运,寻找非法渔船,并执行禁止非法转运货物的规定。综上所述,小目标检测具有广泛的应用价值和重要的研究意义。对小目标测试的研究将有助于促进目标测试领域的发展,拓宽目标测试在现实世界中的应用场景,提高中国的科技创新水平,加快中国全面进入智能时代的步伐。

作为计算机视觉的基础研究,目标检测已经发表了许多优秀的综述。Zou2整理了400多篇关于目标检测技术发展的论文,包括历史里程碑检测器、检测框架、评价指标、数据集、加速技术和检测应用,系统全面地展示了目标检测领域的现状。Oksuz等3从类别不平衡、规模不平衡、空间不平衡、多任务损失优化不平衡四个不平衡问题出发,对现有的目标检测算法进行了深入总结。Zhao等4在对比总结目标检测中提到了小目标检测面临的挑战。Agawal等5在目标检测任务的主要挑战中,简要介绍了几种常用的小目标检测方法。Chen6以小目标检测为目标的四种支柱方法详细描述了五种具有代表性的网络,如多尺度表示、上下文信息、超分辨率、区域建议等方法,并介绍了一些小目标数据集。Tong7从多尺度学习、数据增强、培训策略、基于上下文的检测和基于生成对抗网络的检测五个维度,全面回顾了基于深度学习的小目标检测方法,并对当前经典的小目标检测算法进行了比较分析。Liu等8在总结和比较最近用于小目标测试的深度学习方法的基础上,还简要介绍了常规目标测试、人脸测试、航空图像目标测试和图像分割四个研究领域的相关技术。此外,还有文献9?10在中文综述中,对小目标检测领域进行了一定的总结。然而,文献2主要回顾一般目标检测算法,很少介绍小目标检测方法。文献3主要关注目标检测领域的不平衡。文献[4?5对目标检测领域进行了全面总结。虽然涉及到小目标检测问题,但没有全面总结和深入分析。文献[6?8是对小目标问题的总结,对小目标检测方法和性能评价进行了更全面的总结,但仍缺乏小目标的定义、难点分析和性能评价。文献[9?10作为中文小目标检测综述,对小目标检测领域进行了总结和综述,但对小目标检测方法的分类和分析仍不够深入。

与以往将小目标等同于传统目标或只关注特定应用场景的目标检测综述不同,本文系统、深入地分析和总结了小目标检测不可或缺、具有挑战性的研究领域。本文不仅解释了小目标的定义,还详细分析总结了小目标检测领域的挑战,重点介绍了数据增强、多规模学习、上下文学习、生成对抗学习、无锚机制等优化策略。此外,本文还对现有算法的检测性能进行了分析和比较。最后,简要总结了本文的内容,并讨论了小目标测试未来可能的研究方向和发展趋势。

1 小目标的定义和难点分析

1.1 小目标定义

不同的场景对小目标有不同的定义,目前还没有形成统一的标准。现有的小目标定义方法主要分为以下两类,即基于相对尺度和绝对尺度的定义。

(1)基于相对尺度的定义。也就是说,从目标和图像的相对比例来定义小目标。Chen等待11提出一个针对小目标的数据集,并定义了小目标:同一类别中所有目标实例的相对面积,即边界框面积与图像面积之比的中位数为0.08%~0.58%之间。本文还对小目标的定义提出了更具体的说法,如640像素×在480像素分辨率图像中,16像素×16像素到42像素×42像素的目标应考虑为小目标。除了Chen除了定义小目标外,还有以下几种常见的方法:(1)目标边界框的宽度和图像的宽度比小于一定值,更常见的比例值为0.1;(2)目标边界框面积与图像面积的比值开方小于一定值,通用值为0.03;(3)根据实际目标覆盖像素与图像总像素的比例定义小目标。

然而,基于相对规模的定义存在许多问题,例如,很难有效地评估模型对不同规模目标的检测性能。此外,该定义很容易受到数据预处理和模型结构的影响。

(2)基于绝对尺度的定义。从目标绝对像素的大小来定义小目标。目前最常见的定义来自目标检测领域的通用数据集——MS COCO将小目标定义为分辨率小于32像素×32像素的目标。为什么32像素×本文从两个方向思考了32像素。一个想法来自Torralba在12的研究中,人类可以有效地识别场景所需的彩色图像素大小为32像素×32像素,即小于32像素×人类很难识别32像素的目标。另一个想法来自于深度学习中神经网络本身的结构MS COCO同年发布的经典网络结构数据集第一部分VGG?Net13例如,从输入图像到全连接层的特征向量通过了5个最大池层,导致输入图像上最终特征向量对应的像素大小为32像素×32像素。因此,从不同特征提取难度的角度来看,可以考虑32像素×32像素是区分小目标和常规目标的定义标准。除了MS COCO此外,还有其他基于绝对规模的定义,如航空图像数据集DOTA14人脸检测数据集WIDER FACE15像素值在10, 50目标定义为小目标。行人识别数据集CityPersons16针对行人的特殊比例,将小目标定义为高度小于75像素的目标。基于航空图像的小行人数据集TinyPerson17将小目标定义为20, 32之间的目标,近一步将像素值范围在2, 20之间的目标被定义为小目标。

1.2 小目标检测面临的挑战

本文简要阐述了小目标的主流定义。通过这些定义,我们可以发现小目标像素的比例较小,覆盖面积较小,信息较少。这些特征在以前的评论或论文中也经常被提及,但很少分析和总结小目标测试的困难。接下来,本文将试图分析和总结小目标测试困难的原因及其面临的挑战。

(1) 功能少

无论是基于绝对尺度还是基于相对尺度的定义,与大/中尺度目标相比,小目标的分辨率都很低。分辨率低的小目标可视化信息少,难以提取具有识别能力的特征,容易受到环境因素的干扰,导致检测模型难以准确定位和识别小目标。

(2) 定位精度要求高

由于小目标在图像中覆盖面积小,其边界框的定位比大/中尺寸目标更具挑战性。在预测过程中,预测边界框偏移一个像素点对小目标误差的影响远高于大/中尺度目标。此外,基于锚定框架的探测器仍占绝大多数。在训练过程中,匹配小目标的锚定框架数量远低于大/中尺度目标,如图1显示,这进一步导致检测模型更注重大/中尺度目标的检测,难以检测小目标。IoU(Intersection over union)为交并比。

图1 与大/中尺度相比,小目标匹配的锚框数量较少

Fig.1 Small?size objects match with fewer anchors than large/medium objects

(3) 现有数据集中小目标所占比例较小

在目标检测领域,现有数据集大多针对大/中尺寸目标,对小目标的关注较少。MS COCO虽然小目标占比较高,但达到31.62%,但每幅图像包含的例子太多,小目标分布不均匀。同时,小目标不容易标记。一方面,小目标不容易被人类注意到,也很难标记;另一方面,小目标对标记误差更敏感。此外,现有的小目标数据集往往针对特定场景,如空中视野下的文献14图像、文献15人脸、文献1617针对行人,文献18针对交通灯,文献19针对乐谱音符,使用这些数据集训练的网络不适用于通用的小目标检测。总的来说,大规模的通用小目标数据集尚处于缺乏状态,现有的算法没有足够的先验信息进行学习,导致了小目标检测性能不足。

(4) 样本不均衡问题

为了定位目标在图像中的位置,现有的方法大多是预先在图像的每个位置生成一系列的锚框。在训练的过程中,通过设定固定的阈值来判断锚框属于正样本还是负样本。这种方式导致了模型训练过程中不同尺寸目标的正样本不均衡问题。当人工设定的锚框与小目标的真实边界框差异较大时,小目标的训练正样本将远远小于大/中尺度目标的正样本,这将导致训练的模型更加关注大/中尺度目标的检测,而忽略小目标的检测。如何解决锚框机制导致的小目标和大/中尺度目标样本不均衡问题也是当前面临的一大挑战。

(5) 小目标聚集问题

相对于大/中尺度目标,小目标具有更大概率产生聚集现象。当小目标聚集出现时,聚集区域相邻的小目标通过多次降采样后,反应到深层特征图上将聚合成一个点,导致检测模型无法区分。当同类小目标密集出现时,预测的边界框还可能会因后处理的非极大值抑制操作将大量正确预测的边界框过滤,从而导致漏检情况。另外,聚集区域的小目标之间边界框距离过近,还将导致边界框难以回归,模型难以收敛。

(6) 网络结构原因

在目标检测领域,现有算法的设计往往更为关注大/中尺度目标的检测性能。针对小目标特性的优化设计并不多,加之小目标自身特性所带来的难度,导致现有算法在小目标检测上普遍表现不佳。虽然无锚框的检测器设计是一个新的发展趋势,但是现有网络依旧是基于锚框的检测器占据主流,而锚框这一设计恰恰对小目标极不友好。此外,在现有网络的训练过程中,小目标由于训练样本占比少,对于损失函数的贡献少,从而进一步减弱了网络对于小目标的学习能力。

2 小目标检测研究思路

2.1 数据增强

数据增强是一种提升小目标检测性能的最简单和有效的方法,通过不同的数据增强策略可以扩充训练数据集的规模,丰富数据集的多样性,从而增强检测模型的鲁棒性和泛化能力。在相对早期的研究中,Yaeger等[20]通过使用扭曲变形、旋转和缩放等数据增强方法显著提升了手写体识别的精度。之后,数据增强中又衍生出了弹性变形[21]、随机裁剪[22]和平移[23]等策略。目前,这些数据增强策略已被广泛应用于目标检测中。

近些年来,基于深度学习的卷积神经网络在处理计算机视觉任务中获得了巨大的成功。深度学习的成功很大程度上归功于数据集的规模和质量,大规模和高质量的数据能够大幅度提升模型的泛化能力。数据增强策略在目标检测领域有着广泛应用,例如Fast R‑CNN[24]、Cascade R‑CNN[25]中使用的水平翻转,YOLO[26]、YOLO9000[27]中使用的调整图像曝光和饱和度,还有常被使用的CutOut[28]、MixUp[29]、CutMix[30]等方法。最近,更是有诸如马赛克增强(YOLOv4[31])、保持增强[32]等创新策略提出,但是这些数据增强策略主要是针对常规目标检测。

聚焦到小目标检测领域,小目标面临着分辨率低、可提取特征少、样本数量匮乏及分布不均匀等诸多挑战,数据增强的重要性愈发显著。近些年来,出现了一些适用于小目标的数据增强方法(表 1)。Yu等[17]在对数据的处理中,提出了尺度匹配策略,根据不同目标尺寸进行裁剪,缩小不同大小目标之间的差距,从而避免常规缩放操作中小目标信息易丢失的情形。Kisantal等[33]针对小目标覆盖的面积小、出现位置缺乏多样性、检测框与真值框之间的交并比远小于期望的阈值等问题,提出了一种复制增强的方法,通过在图像中多次复制粘贴小目标的方式来增加小目标的训练样本数,从而提升了小目标的检测性能。在Kisantal等的基础上,Chen等[34]在RRNet中提出了一种自适应重采样策略进行数据增强,这种策略基于预训练的语义分割网络对目标图像进行考虑上下文信息的复制,以解决简单复制过程中可能出现的背景不匹配和尺度不匹配问题,从而达到较好的数据增强效果。Chen等[35]则从小目标数量占比小、自身包含信息少等问题出发,在训练过程中对图像进行缩放与拼接,将数据集中的大尺寸目标转换为中等尺寸目标,中等尺寸目标转换为小尺寸目标,并在提高中/小尺寸目标的数量与质量的同时也兼顾考虑了计算成本。在针对小目标的特性设计对应的数据增强策略之外,Zoph等[36]超越了目标特性限制,提出了一种通过自适应学习方法例如强化学习选择最佳的数据增强策略,在小目标检测上获得了一定的性能提升。

表1 适用于小目标的5种数据增强方法

Table 1 Five data augmentation methods for small objects

编号 增强策略 主要内容 年份 发表 引用量
1

复制增强[33]

Artificial augmentation by copy pasting the small objects

通过对图像中的小目标的复制与粘贴操作进行数据增强 2019 arXiv 68
2

自适应采样[34]

AdaResampling

在文献[33]的基础上,考虑上下文信息进行复制,避免出现尺度不匹配和背景不匹配的问题 2019 ICCV 10
3

尺度匹配[17]

Scale match

通过尺度匹配策略对图像进行尺度变换,用作额外的数据补充

2020 WACV 14
4

缩放与拼接[35]

Component stitching

通过缩放拼接操作增加中/小尺寸目标的数量与质量

2020 arXiv 6
5

自学习数据增强[36]

Learning data augmentation strategies

通过强化学习选择最佳数据增强策略 2020 ECCV 105

数据增强这一策略虽然在一定程度上解决了小目标信息量少、缺乏外貌特征和纹理等问题,有效提高了网络的泛化能力,在最终检测性能上获得了较好的效果,但同时带来了计算成本的增加。而且在实际应用中,往往需要针对目标特性做出优化,设计不当的数据增强策略可能会引入新的噪声,损害特征提取的性能,这也给算法的设计带来了挑战。

2.2 多尺度学习

小目标与常规目标相比可利用的像素较少,难以提取到较好的特征,而且随着网络层数的增加,小目标的特征信息与位置信息也逐渐丢失,难以被网络检测。这些特性导致小目标同时需要深层语义信息与浅层表征信息,而多尺度学习将这两种相结合,是一种提升小目标检测性能的有效策略。

早期的多尺度检测有两个思路。一种是使用不同大小的卷积核通过不同的感受野大小来获取不同尺度的信息,但这种方法计算成本很高,而且感受野的尺度范围有限,Simonyan和Zisserman[13]提出使用多个小卷积核代替大卷积核具备巨大优势后,使用不同大小卷积核的方法逐渐被弃用。之后,Yu等[37]提出的空洞卷积和Dai等[38]提出的可变卷积又为这种通过不同感受野大小获取不同尺度信息的方法开拓了新的思路。另一种来自于图像处理领域的思路——图像金字塔[39],通过输入不同尺度的图像,对不同尺度大小的目标进行检测,这种方法在早期的目标检测中有所应用[40‑41](见图2(a))。但是,基于图像金字塔训练卷积神经网络模型对计算机算力和内存都有极高的要求。近些年来,图像金字塔在实际研究应用中较少被使用,仅有文献[42‑43]等方法针对数据集目标尺度差异过大等问题而使用。

图2 多尺度学习的4种方式

Fig.2 Four ways of multi‑scale learning

目标检测中的经典网络如Fast R‑CNN[24]、Faster R‑CNN[44]、SPPNet[45]和R‑FCN[46]等大多只是利用了深度神经网络的最后层来进行预测。然而,由于空间和细节特征信息的丢失,难以在深层特征图中检测小目标。在深度神经网络中,浅层的感受野更小,语义信息弱,上下文信息缺乏,但是可以获得更多空间和细节特征信息。从这一思路出发,Liu等[47]提出一种多尺度目标检测算法SSD(Single shot multibox detector),利用较浅层的特征图来检测较小的目标,而利用较深层的特征图来检测较大的目标,如图2(b)所示。Cai等[48]针对小目标信息少,难以匹配常规网络的问题,提出统一多尺度深度卷积神经网络,通过使用反卷积层来提高特征图的分辨率,在减少内存和计算成本的同时显著提升了小目标的检测性能。

针对小目标易受环境干扰问题,Bell等[49]为提出了ION(Inside‑outside network)目标检测方法,通过从不同尺度特征图中裁剪出同一感兴趣区域的特征,然后综合这些多尺特征来预测,以达到提升检测性能的目的。与ION的思想相似,Kong等[50]提出了一种有效的多尺度融合网络,即HyperNet,通过综合浅层的高分辨率特征和深层的语义特征以及中间层特征的信息显著提高了召回率,进而提高了小目标检测的性能(见图2(c))。这些方法能有效利用不同尺度的信息,是提升小目标特征表达的一种有效手段。但是,不同尺度之间存在大量重复计算,对于内存和计算成本的开销较大。

为节省计算资源并获得更好的特征融合效果,Lin等[51]结合单一特征映射、金字塔特征层次和综合特征的优点,提出了特征金字塔FPN(Feature Pyramid network)。FPN是目前最流行的多尺度网络,它引入了一种自底向上、自顶向下的网络结构,通过将相邻层的特征融合以达到特征增强的目的(见图2(d))。在FPN的基础上,Liang等[52]提出了一种深度特征金字塔网络,使用具有横向连接的特征金字塔结构加强小目标的语义特征,并辅以特别设计的锚框和损失函数训练网络。为了提高小目标的检测速度,Cao等[53]提出一种多层次特征融合算法,即特征融合SSD,在SSD的基础上引入上下文信息,较好地平衡了小目标检测的速度与精度。但是基于SSD的特征金字塔方法需要从网络的不同层中抽取不同尺度的特征图进行预测,难以充分融合不同尺度的特征。针对这一问题,Li和Zhou[54]提出一种特征融合单次多箱探测器,使用一个轻量级的特征融合模块,联系并融合各层特征到一个较大的尺度,然后在得到的特征图上构造特征金字塔用于检测,在牺牲较少速度的情形下提高了对小目标的检测性能。针对机场视频监控中的小目标识别准确率较低的问题,韩松臣等[55]提出了一种结合多尺度特征融合与在线难例挖掘的机场路面小目标检测方法,该方法采用ResNet‑101作为特征提取网络,并在该网络基础上建立了一个带有上采样的“自顶向下”的特征融合模块,以生成语义信息更加丰富的高分辨率特征图。

最近,多尺度特征融合这一方法又有了新的拓展,如Nayan等[56]针对小目标经过多层网络特征信息易丢失这一问题,提出了一种新的实时检测算法,该算法使用上采样和跳跃连接在训练过程中提取不同网络深度的多尺度特征,显著提高了小目标检测的检测精度与速度。Liu等[57]为了降低高分辨率图像的计算成本,提出了一种高分辨率检测网络,通过使用浅层网络处理高分辨率图像和深层网络处理低分辨率图像,在保留小目标尽可能多的位置信息同时提取了更多的语义信息,在降低计算成本的情形下提升了小目标的检测性能。Deng等[58]发现虽然多尺度融合可以有效提升小目标检测性能,但是不同尺度的特征耦合仍然会影响性能,于是提出了一种扩展特征金字塔网络,使用额外的高分辨率金字塔级专门用于小目标检测。

总体来说,多尺度特征融合同时考虑了浅层的表征信息和深层的语义信息,有利于小目标的特征提取,能够有效地提升小目标检测性能。然而,现有多尺度学习方法在提高检测性能的同时也增加了额外的计算量,并且在特征融合过程中难以避免干扰噪声的影响,这些问题导致了基于多尺度学习的小目标检测性能难以得到进一步提升。

2.3 上下文学习

在真实世界中,“目标与场景”和“目标与目标”之间通常存在一种共存关系,通过利用这种关系将有助于提升小目标的检测性能。在深度学习之前,已有研究[59]证明通过对上下文进行适当的建模可以提升目标检测性能,尤其是对于小目标这种外观特征不明显的目标。随着深度神经网络的广泛应用,一些研究也试图将目标周围的上下文集成到深度神经网络中,并取得了一定的成效。以下将从基于隐式上下文特征学习和基于显式上下文推理的目标检测两个方面对国内外研究现状及发展动态进行简要综述。

(1)基于隐式上下文特征学习的目标检测。隐式上下文特征是指目标区域周围的背景特征或者全局的场景特征。事实上,卷积神经网络中的卷积操作在一定程度上已经考虑了目标区域周围的隐式上下文特征。为了利用目标周围的上下文特征,Li等[60]提出一种基于多尺度上下文特征增强的目标检测方法,该方法首先在图像中生成一系列的目标候选区域,然后在目标周围生成不同尺度的上下文窗口,最后利用这些窗口中的特征来增强目标的特征表示(见图3(a))。随后,Zeng等[61]提出一种门控双向卷积神经网络,该网络同样在目标候选区域的基础上生成包含不同尺度上下文的支撑区域,不同之处在于该网络让不同尺度和分辨率的信息在生成的支撑区域之间相互传递,从而综合学习到最优的特征。为了更好地检测复杂环境下的微小人脸,Tang等[62]提出一种基于上下文的单阶段人脸检测方法,该方法设计了一种新的上下文锚框,在提取人脸特征的同时考虑了其周围的上下文信息,例如头部信息和身体信息。郑晨斌等[63]提出一种强化上下文模型网络,该网络利用双空洞卷积结构来节省参数量的同时,通过扩大有效感受野来强化浅层上下文信息,并在较少破坏原始目标检测网络的基础上灵活作用于网络中浅预测层。然而,这些方法大多依赖于上下文窗口的设计或受限于感受野的大小,可能会导致重要上下文信息的丢失。

图3 上下文在目标检测中的探索历程

Fig.3 Exploration of context in object detection

为了更加充分地利用上下文信息,一些方法尝试将全局的上下文信息融入到目标检测模型中(见 图3(b))。对于早期的目标检测算法,一种常用的集成全局上下文方法是通过构成场景元素的统计汇总,例如Gist[64]。Torralba等[65]提出通过计算全局场景的低级特征和目标的特征描述符的统计相关性来对视觉上下文建模。随后,Felzenszwalb等[66]提出一种基于混合多尺度可变形部件模型的目标检测方法。该方法通过引入上下文来对检测结果进行二次评分,从而进一步提升检测结果的可靠性。对于目前的基于深度学习的目标检测算法,主要通过较大的感受野、卷积特征的全局池化或把全局上下文看作一种序列信息3种方式来感知全局上下文。Bell等[49]提出基于循环神经网络的上下文传递方法,该方法利用循环神经网络从4个方向对整个图像中的上下文信息进行编码,并将得到的4个特征图进行串联,从而实现对全局上下文的感知。然而,该方法使模型变得复杂,并且模型的训练严重依赖于初始化参数的设置。Ouyang等[67]通过学习图像的分类得分,并将该得分作为补充的上下文特征来提升目标检测性能。为了提升候选区域的特征表示,Chen等[68]提出一种上下文微调网络,该网络首先通过计算相似度找到与目标区域相关的上下文区域,然后利用这些上下文区域的特征来增强目标区域特征。随后,Barnea等[69]将上下文的利用视为一个优化问题,讨论了上下文或其他类型的附加信息可以将检测分数提高到什么程度,并表明简单的共现性关系是最有效的上下文信息。此外,Chen等[70]提出一种层次上下文嵌入框架,该框架可以作为一个即插即用的组件,通过挖掘上下文线索来增强候选区域的特征表达,从而提升最终的检测性能。最近,张瑞琰等[71]提出了面向光学遥感目标的全局上下文检测模型,该模型通过全局上下文特征与目标中心点局部特征相结合的方式生成高分辨率热点图,并利用全局特征实现目标的预分类。此外,一些方法通过语义分割来利用全局上下文信息。He等[72]提出一种统一的实例分割框架,利用像素级的监督来优化检测器,并通过多任务的方式联合优化目标检测和实例分割模型。尽管通过语义分割可以显著提高检测性能,但是像素级的标注是非常昂贵的。鉴于此,Zhao等[73]提出一种生成伪分割标签的方法,通过利用伪分割标签来于优化检测器,并取得了不错的效果。进一步地,Zhang等[74]提出一种无监督的分割方法,在无像素级的标注下通过联合优化目标检测和分割来增强用于目标检测的特征图。目前,基于全局上下文的方法在目标检测上已经取得了较大的进展,但如何从全局场景中找到有利于提升小目标检测性能的上下文信息仍然是当前的研究难点。

(2)基于显式上下文推理的目标检测。显示上下文推理是指利用场景中明确的上下文信息来辅助推断目标的位置或类别,例如利用场景中天空区域与目标的上下文关系来推断目标的类别。上下文关系通常指场景中目标与场景或者目标与目标之间的约束和依赖关系(见图3(c))。为了利用上下文关系,Chen等[75]提出一种自适应上下文建模和迭代提升的方法,通过将一个任务的输出作为另一个任务的上下文来提升目标分类和检测性能。此后,Gupta等[76]提出一种基于空间上下文的目标检测方法。该方法能够准确地捕捉到上下文和感兴趣目标之间的空间关系,并且有效地利用了上下文区域的外观特征。进一步地,Liu等[77]提出一种结构推理网络,通过充分考虑场景上下文和目标之间的关系来提升目标的检测性能。为了利用先验知识,Xu等[78]在Faster R‑CNN[44]的基础上提出了一种Reasoning‑RCNN,通过构建知识图谱来编码上下文关系,并利用先验的上下文关系来影响目标检测。Chen等[79]提出了一种空间记忆网络,空间记忆实质上是将目标实例重新组合成一个伪图像表示,并将伪图像表示输入到卷积神经网络中进行目标关系推理,从而形成一种顺序推理体系结构。在注意力机制的基础上,Hu等[80]提出一种轻量级目标关系网络,通过引入不同物体之间的外观和几何结构关系来做约束,实现物体之间的关系建模。该网络无需额外的监督,并且易于嵌入到现有的网络中,可以有效地过滤冗余框,从而提升目标的检测性能。

近年来,基于上下文学习的方法得到了进一步发展。Lim等[81]提出一种利用上下文连接多尺度特征的方法,该方法中使用网络不同深度层级中的附加特征作为上下文,辅以注意力机制聚焦于图像中的目标,充分利用了目标的上下文信息,进而提升了实际场景中的小目标检测精度。针对室内小尺度人群检测面临的目标特征与背景特征重叠且边界难以区分的问题,Shen等[82]提出了一种室内人群检测网络框架,使用一种特征聚合模块(Feature aggregation module, FAM)通过融合和分解的操作来聚合上下文特征信息,为小尺度人群检测提供更多细节信息,进而显著提升了对于室内小尺度人群的检测性能。Fu等[83]提出了一种新颖的上下文推理方法,该方法对目标之间的固有语义和空间布局关系进行建模和推断,在提取小目标语义特征的同时尽可能保留其空间信息,有效解决了小目标的误检与漏检问题。为了提升目标的分类结果,Pato等[84]提出一种基于上下文的检测结果重打分方法,该方法通过循环神经网络和自注意力机制来传递候选区域之间的信息并生成上下文表示,然后利用得到的上下文来对检测结果进行二次评估。

基于上下文学习的方法充分利用了图像中与目标相关的信息,能够有效提升小目标检测的性能。但是,已有方法没有考虑到场景中的上下文信息可能匮乏的问题,同时没有针对性地利用场景中易于检测的结果来辅助小目标的检测。鉴于此,未来的研究方向可以从以下两个角度出发考虑:(1)构建基于类别语义池的上下文记忆模型,通过利用历史记忆的上下文来缓解当前图像中上下文信息匮乏的问题;(2)基于图推理的小目标检测,通过图模型和目标检测模型的结合来针对性地提升小目标的检测性能。

2.4 生成对抗学习

生成对抗学习的方法旨在通过将低分辨率小目标的特征映射成与高分辨率目标等价的特征,从而达到与尺寸较大目标同等的检测性能。前文所提到的数据增强、特征融合和上下文学习等方法虽然可以有效地提升小目标检测性能,但是这些方法带来的性能增益往往受限于计算成本。针对小目标分辨率低问题,Haris等[85]提出一种端到端的联合训练超分辨率和检测模型的方法,该方法一定程度上提升了低分辨率目标的检测性能。但是,这种方法对于训练数据集要求较高,并且对小目标检测性能的提升不足。

目前,一种有效的方法是通过结合生成对抗网络(Generative adversarial network, GAN)[86]来提高小目标的分辨率,缩小小目标与大/中尺度目标之间的特征差异,增强小目标的特征表达,进而提高小目标检测的性能。在Radford等[87]提出了DCGAN(Deep convolutional GAN)后,计算视觉的诸多任务开始利用生成对抗模型来解决具体任务中面临的问题。针对训练样本不足的问题,Sixt等[88]提出了RenderGAN,该网络通过对抗学习来生成更多的图像,从而达到数据增强的目的。为了增强检测模型的鲁棒性,Wang等[89]通过自动生成包含遮挡和变形特征的样本,以此提高对困难目标的检测性能。随后,Li等[90]提出了一种专门针对小目标检测的感知GAN方法,该方法通过生成器和鉴别器相互对抗的方式来学习小目标的高分辨率特征表示。在感知GAN中,生成器将小目标表征转换为与真实大目标足够相似的超分辨表征。同时,判别器与生成器对抗以识别生成的表征,并对生成器施加条件要求。该方法通过生成器和鉴别器相互对抗的方式来学习小目标的高分辨率特征表示。这项工作将小目标的表征提升为“超分辨”表征,实现了与大目标相似的特性,获得了更好的小目标检测性能。

近年来,基于GAN对小目标进行超分辨率重建的研究有所发展,Bai等[91]提出了一种针对小目标的多任务生成对抗网络(Multi‑task generative adversarial network, MTGAN)。在MTGAN中,生成器是一个超分辨率网络,可以将小模糊图像上采样到精细图像中,并恢复详细信息以便更准确地检测。判别器是多任务网络,区分真实图像与超分辨率图像并输出类别得分和边界框回归偏移量。此外,为了使生成器恢复更多细节以便于检测,判别器中的分类和回归损失在训练期间反向传播到生成器中。MTGAN由于能够从模糊的小目标中恢复清晰的超分辨目标,因此大幅度提升了小目标的检测性能。进一步地,针对现有的用于小目标检测的超分辨率模型存在缺乏直接的监督问题,Noh等[92]提出一种新的特征级别的超分辨率方法,该方法通过空洞卷积的方式使生成的高分辨率目标特征与特征提取器生成的低分辨率特征保持相同的感受野大小,从而避免了因感受野不匹配而生成错误超分特征的问题。此外,Deng等[58]设计了一种扩展特征金字塔网络,该网络通过设计的特征纹理模块生成超高分辨率的金字塔层,从而丰富了小目标的特征信息。

基于生成对抗模型的目标检测算法通过增强小目标的特征信息,可以显著提升检测性能。同时,利用生成对抗模型来超分小目标这一步骤无需任何特别的结构设计,能够轻易地将已有的生成对抗模型和检测模型相结合。但是,目前依旧面临两个无法避免的问题:(1)生成对抗网络难以训练,不易在生成器和鉴别器之间取得好的平衡;(2)生成器在训练过程中产生样本的多样性有限,训练到一定程度后对于性能的提升有限。

2.5 无锚机制

锚框机制在目标检测中扮演着重要的角色。许多先进的目标检测方法都是基于锚框机制而设计的,但是锚框这一设计对于小目标的检测极不友好。现有的锚框设计难以获得平衡小目标召回率与计算成本之间的矛盾,而且这种方式导致了小目标的正样本与大目标的正样本极度不均衡,使得模型更加关注于大目标的检测性能,从而忽视了小目标的检测。极端情况下,设计的锚框如果远远大于小目标,那么小目标将会出现无正样本的情况。小目标正样本的缺失,将使得算法只能学习到适用于较大目标的检测模型。此外,锚框的使用引入了大量的超参,比如锚框的数量、宽高比和大小等,使得网络难以训练,不易提升小目标的检测性能。近些年无锚机制的方法成为了研究热点,并在小目标检测上取得了较好效果。

一种摆脱锚框机制的思路是将目标检测任务转换为关键点的估计,即基于关键点的目标检测方法。基于关键点的目标检测方法主要包含两个大类:基于角点的检测和基于中心的检测。基于角点的检测器通过对从卷积特征图中学习到的角点分组来预测目标边界框。DeNet[93]将目标检测定义为估计目标4个角点的概率分布,包括左上角、右上角、左下角和右下角(见图4(a))。首先利用标注数据来训练卷积神经网络,然后利用该网络来预测角点分布。之后,利用角点分布和朴素贝叶斯分类器来确定每个角点对应的候选区域是否包含目标。在DeNet之后,Wang等[94]提出了一种新的使用角点和中心点之间的连接来表示目标的方法,命名为PLN(Point linking network)。PLN首先回归与DeNet相似的4个角点和目标的中心点,同时通过全卷积网络预测关键点两两之间是否相连,然后将角点及其相连的中心点组合起来生成目标边界框。PLN对于稠密目标和具有极端宽高比率目标表现良好。但是,当角点周围没有目标像素时,PLN由于感受野的限制将很难检测到角点。继PLN之后,Law等[95]提出了一种新的基于角点的检测算法,命名为CornerNet。CornerNet将目标检测问题转换为角点检测问题,首先预测所有目标的左上和右下的角点,然后将这些角点进行两两匹配,最后利用配对的角点生成目标的边界框。CornetNet的改进版本——CornerNet‑Lite[96],从减少处理的像素数量和减少在每个像素上进行的计算数量两个角度出发进行改进,有效解决了目标检测中的两个关键用例:在不牺牲精度的情况下提高效率以及实时效率的准确性。与基于锚框的检测器相比,CornerNet系列具有更简洁的检测框架,在提高检测效率的同时获得了更高的检测精度。但是,该系列仍然会因为错误的角点匹配预测出大量不正确的目标边界框。

图4 无锚机制的4种形式

Fig.4 Four ways of anchor‑free methods

为了进一步提高目标检测性能,Duan等[97]提出了一种基于中心预测的目标检测框架,称为CenterNet(见图4(b))。CenterNet首先预左上角和右下角的角点以及中心关键点,然后通过角点匹配确定边界框,最后利用预测的中心点消除角点不匹配引起的不正确的边界框。与CenterNet类似,Zhou等[98]通过对极值点和中心点进行匹配,提出了一种自下而上的目标检测网络,称为ExtremeNet。ExtremeNet首先使用一个标准的关键点估计网络来预测最上面、最下面、最左边、最右边的4个极值点和中心点,然后在5个点几何对齐的情况下对它们进行分组以生成边界框。但是ExtremeNet和CornerNet等基于关键点的检测网络都需要经过一个关键点分组阶段,这降低了算法整体的速度。针对这一问题,Zhou等[99]将目标建模为其一个单点,即边界框中心点,无需对构建点进行分组或其他后处理操作。然后在探测器使用关键点估计来查找中心点,并回归到所有其他对象属性,如大小、位置等。这一方法很好地平衡了检测的精度与速度。

近年来,基于关键点的目标检测方法又有了新的扩展。Yang等[100]提出了一种名为代表点(RepPoints)的检测方法,提供了更细粒度的表示方式,使得目标可以被更精细地界定。同时,这种方法能够自动学习目标的空间信息和局部语义特征,一定程度上提升了小目标检测的精度(见图4(c))。更进一步地,Kong等[101]受到人眼的中央凹(视网膜中央区域,集中了绝大多数的视锥细胞,负责视力的高清成像)启发,提出了一种直接预测目标存在的可能性和边界框坐标的方法,该方法首先预测目标存在的可能性,并生成类别敏感语义图,然后为每一个可能包含目标的位置生成未知类别的边界框。由于摆脱了锚框的限制,FoveaBox对于小目标等具有任意横纵比的目标具备良好的鲁棒性和泛化能力,并在检测精度上也得到了较大提升。与FoveaBox相似,Tian等[102]使用语义分割的思想来解决目标检测问题,提出了一种基于全卷积的单级目标检测器FCOS(Fully convolutional one‑stage),避免了基于锚框机制的方法中超参过多、难以训练的问题(见图4(d))。此外,实验表明将两阶段检测器的第一阶段任务换成FCOS来实现,也能有效提升检测性能。而后,Zhu等[103]将无锚机制用于改进特征金字塔中的特征分配问题,根据目标语义信息而不是锚框来为目标选择相应特征,同时提高了小目标检测的精度与速度。Zhang等[104]则从基于锚框机制与无锚机制的本质区别出发,即训练过程中对于正负样本的定义不同,提出了一种自适应训练样本选择策略,根据对象的统计特征自动选择正反样本。针对复杂的场景下小型船舶难以检测的问题,Fu等[105]提出了一种新的检测方法——特征平衡与细化网络,采用直接学习编码边界框的一般无锚策略,消除锚框对于检测性能的负面影响,并使用基于语义信息的注意力机制平衡不同层次的多个特征,达到了最先进的性能。为了更有效地处理无锚框架下的多尺度检测,Yang等[106]提出了一种基于特殊注意力机制的特征金字塔网络,该网络能够根据不同大小目标的特征生成特征金字塔,进而更好地处理多尺度目标检测问题,显著提升了小目标的检测性能。

2.6 其他优化策略

在小目标检测这一领域,除了前文所总结的几个大类外,还有诸多优秀的方法。针对小目标训练样本少的问题,Kisantal等[33]提出了一种过采样策略,通过增加小目标对于损失函数的贡献,以此提升小目标检测的性能。除了增加小目标样本权重这一思路之外,另一种思路则是通过增加专用于小目标的锚框数量来提高检测性能。Zhang等[107]提出了一种密集锚框策略,通过在一个感受野中心设计多个锚框来提升小目标的召回率。与密集锚框策略相近,Zhang等[108]设计了一种基于有效感受野和等比例区间界定锚框尺度的方法,并提出一种尺度补偿锚框匹配策略来提高小人脸目标的召回率。增加锚框数量对于提升小目标检测精度十分有效,同时也额外增加了巨大的计算成本。Eggert等[109]从锚框尺度的优化这一角度入手,通过推导小目标尺寸之间的联系,为小目标选择合适的锚框尺度,在商标检测上获得了较好的检测效果。之后,Wang等[110]提出了一种基于语义特征的引导锚定策略,通过同时预测目标中心可能存在的位置及目标的的尺度和纵横比,提高了小目标检测的性能。此外,这种策略可以集成到任何基于锚框的方法中。但是,这些改进没有实质性地平衡检测精度与计算成本之间的矛盾。

近些年来,随着计算资源的增加,越来越多的网络使用级联思想来平衡目标漏检率与误检率。级联这一思想来源已久[111],并在目标检测领域得到了广泛的应用。它采用了从粗到细的检测理念:用简单的计算过滤掉大多数简单的背景窗口,然后用复杂的窗口来处理那些更困难的窗口。随着深度学习时代的到来,Cai等[25]提出了经典网络Cascade R‑CNN,通过级联几个基于不同IoU阈值的检测网络达到不断优化预测结果的目的。之后,Li等[112]在Cascade R‑CNN的基础上进行了扩展,进一步提升了小目标检测性能。受到级联这一思想的启发,Liu等[113]提出了一种渐近定位策略,通过不断增加IoU阈值来提升行人检测的检测精度。另外,文献[114‑116]展现了级联网络在困难目标检测上的应用,也一定程度上提升了小目标的检测性能。

另外一种思路则是分阶段检测,通过不同层级之间的配合平衡漏检与误检之间的矛盾。Chen等[117]提出一种双重探测器,其中第一尺度探测器最大限度地检测小目标,第二尺度探测器则检测第一尺度探测器无法识别的物体。进一步地,Drenkow等[118]设计了一种更加高效的目标检测方法,该方法首先在低分辨率下检查整个场景,然后使用前一阶段生成的显著性地图指导后续高分辨率下的目标检测。这种方式很好地权衡了检测精度和检测速度。此外,文献[119‑121]针对空中视野图像中的困难目标识别进行了前后景的分割,区分出重要区域与非重要区域,在提高检测性能的同时也减少了计算成本。

优化损失函数也是一种提升小目标检测性能的有效方法。Redmon等[26]发现,在网络的训练过程中,小目标更容易受到随机误差的影响。随后,他们针对这一问题进行了改进[27],提出一种依据目标尺寸设定不同权重的损失函数,实现了小目标检测性能的提升。Lin等[122]则针对类别不均衡问题,在RetinaNet中提出了焦距损失,有效解决了训练过程中存在的前景‑背景类不平衡问题。进一步地,Zhang等[123]将级联思想与焦距损失相结合,提出了Cascade RetinaNet,进一步提高了小目标检测的精度。针对小目标容易出现的前景与背景不均衡问题,Deng等[58]则提出了一种考虑前景‑背景之间平衡的损失函数,通过全局重建损失和正样本块损失提高前景与背景的特征质量,进而提升了小目标检测的性能。

为了权衡考虑小目标的检测精度和速度,Sun等[124]提出了一种多接受域和小目标聚焦弱监督分割网络,通过使用多个接收域块来关注目标及其相邻背景,并依据不同空间位置设置权重,以达到增强特征可辨识性的目的。此外,Yoo等[125]将多目标检测任务重新表述为边界框的密度估计问题,提出了一种混合密度目标检测器,通过问题的转换避免了真值框与预测框匹配以及启发式锚框设计等繁琐过程,也一定程度上解决了前景与背景不平衡的问题。

3 数据集介绍及性能评估

在常规目标检测数据集上,现有研究对大/中尺寸的目标已取得了不错的成效。但是,小目标的检测仍然是不尽人意的,一方面是由小目标自身特性所导致的的,另一方面是因为常规目标检测数据集中小目标存在占比少、分布不均匀等问题。接下来本文将按照时间顺序简要介绍现有的小目标数据集(见表2),并在一些公用数据集上对现有算法进行性能评估(见表3~6)。这些数据可供研究人员参考,希望可以为小目标检测的研究发展贡献微薄之力。

表2 小目标检测数据集

Table 2 Small object detection datasets

名称 简介 年份 发表期刊 尺寸/(像素×像素) 类别

图像

数量

标注数/103 各部分占比/%
训练 验证 测试
BIRDSAI[126] 行人、动物检测 2020 WACV 640×480 8 164
TinyPerson[17] 小行人检测 2020 WACV 5 1 610 72.6 50 50
EuroCity Persons[127] 城市行人检测 2019 TPAMI 47 300 238 60 10 30
WiderPerson[128] 高密度行人检测 2019 TMM 13 382 400 60 7 33
DOTA[14] 空中图像检测 2018 CVPR 4 000×4 000 1 806 188 50 33 17
NightOwls[129] 夜间行人检测 2018 ACCV 1 024×640 4 40 279
DeepScores[19] 乐谱音符检测 2018 ICPR 220×120 123 30 000 80 000
Bosch Small Traffic Lights[18] 小交通灯检测 2017 ICRA 1 280×720 13 427 24 38 62
CityPersons[16] 行人检测 2017 CVPR 5 000 25 59.50 10 31.50
Tsinghua‑Tencent100K[131] 交通信号灯检测 2016 CVPR 2 000×2 000 45 100 000 66.67 33.33
WIDER FACE[15] 人脸检测 2016 CVPR 32 203 393.7 40 10 50
MS COCO[1] 复杂场景下的大型数据集 2014 ECCV 91 328 000 50 25 25
Caltech Pedestrian[132] 行人检测 2012 TPAMI 640×480 350
Penn‑Fudan Database[133] 行人检测 2007 ACCV 170 0.3

表3 MS COCO 数据集上的简要性能评估

Table 3 Performance evaluation on MS COCO dataset

年份
SSD[47] Res101 31.2 50.4 33.3 10.2 34.5 49.8 2016
RetinaNet[122] Res101‑FPN 39.1 59.1 42.3 21.8 42.7 50.2 2017
FPN[51] Res101‑FPN 36.2 59.1 39.0 18.2 39.0 48.2 2017
Mask R‑CNN[72] Res101‑FPN 38.2 60.3 41.7 20.1 41.1 50.2 2017
Deformable R‑FCN[38] Aligned‑Inception‑ResNet 37.5 58.0 40.8 19.4 40.1 52.5 2017
Cascade R‑CNN[25] Res101‑FPN 42.8 62.1 46.3 23.7 45.5 55.2 2018
YOLOv3[137] Darknet‑53 33.0 57.9 34.4 18.3 35.4 41.9 2018
FCOS[102] ResNeXt‑101 44.7 64.1 48.4 27.6 47.5 55.6 2019
DCNv2[138] Res101‑DeformableV2 46.0 67.9 50.8 27.8 49.1 59.5 2019
TridentNet[139] Res101 42.7 63.6 46.5 23.9 46.6 56.6 2019
Cascade+Rank‑NMS[140] Res101‑FPN 43.2 61.8 47.0 24.6 46.2 55.4 2019
ATSS[104] ResNeXt‑101 + DCN 50.7 68.9 56.3 33.2 52.9 62.4 2020
TSD[141] SENet154 + DCN 51.2 71.9 56.0 33.8 54.8 64.2 2020
Deformable DETR[142] ResNeXt‑101 + DCN 52.3 71.9 58.1 34.4 54.4 65.6 2020
HCE Cascade R‑CNN[70] Res101‑FPN 46.5 65.6 50.6 27.4 49.9 59.4 2020
EfficientDet[143] EfficientNet 55.1 74.3 59.9 2020
Scaled‑YOLOv4[134] CSP‑P7 55.4 73.3 60.7 38.1 59.5 67.4 2020

表4 WiderFace数据集上的简要性能评估

Table 4 Performance evaluation on WIDER FACE dataset

相关文章

方法名称 AP 年份 方法名称 AP 年份
Easy Medium Hard Easy Medium Hard
Faceness‑WIDER[144] 71.3 63.4 34.5 2015 Face R‑FCN[149] 94.7 93.5 84.7 2017
Faster R‑CNN[44] 84.0 72.4 34.7 2015 FAN[150] 95.3 94.2 88.8 2017
MSCNN[15] 69.1 64.0 42.4 2016 PSDNN[151] 60.5 60.5 39.6 2019
MTTCNN[145] 84.8 82.5 59.8 2016 FDNet[152] 95.3 94.2 88.8 2018
CMS‑RCNN[146] 89.9 87.4 62.4 2017 SRFACE[136] 94.4 93.3 87.3 2018
HR[147] 92.5 91.0 80.6 2017 LSC‑CNN[153] 57.3 70.1 68.9 2020
SSH[148] 93.1 92.1 84.5 2017 IENet[135] 96.1 94.7 89.6