付苗苗,邓淼磊,2,张德贤,2
1.河南工业大学 信息科学与工程学院,郑州 450001
2.河南省粮食信息处理国际联合实验室,郑州 450001
作为计算机视觉领域的研究热点,目标检测在遥感、自动驾驶等领域有着重要的应用。过去二十年目标检测是以传统机器学习和深度学习为主,传统算法存在精度低、速度慢、计算复杂等缺点,因此在2012年AlexNet[1]出现之后,目标检测算法开启了卷积神经网络CNN(convolutional neural network)为主的深度学习时代。基于深度学习的检测算法是根据滑动窗口和锚点(anchor)穷举出目标对象可能出现的所有边框(也称为锚框),然后进行分类和回归,锚框也被认为是检测模型获取高精度的重要组件之一,但是模型的性能和泛化能力也受到锚框设计的限制:(1)检测结果对于锚框个数、尺度、纵横比等超参十分敏感,模型需要对这些参数仔细微调;(2)基于锚的检测都是密集检测,锚框产生的计算繁琐复杂,增加时空成本;(3)锚框的尺度和长宽比都是预先定义的,不适用于形状变化较大的对象,尤其是小目标,模型的泛化能力低;(4)多数锚框都是背景类的负样本,因此算法容易存在正负样本不平衡问题。为了解决锚框带来的限制,近几年以FCOS、CornerNet为代表的无锚点碰撞检测成为了检测领域的研究热点,这类方法与基于锚点的检测算法相比,缩减超参数数量的同时提升了检测精度。
在无锚检测技术发展的同时,Transformer[2]也开始在CV(computer vision)领域大放异彩。早期Transformer在CV领域主要被用于序列信息挖掘(如视频任务的时序特征融合),2020年,Dosovitskiy等人[3]提出的ViT(visual transformer)开始扩大Transformer的使用范围,在图像分类、目标检测、语义分割、图像生成和增强等视觉任务都有着重要应用[4]。在Transformer出现之前,CNN一直都是目标检测任务的设计模式,但是CNN本身的特性(即卷积核的局部计算)会导致网络缺少对图像的全局理解,不能建模特征之间的依赖关系,无法充分利用上下文信息,而Transformer的自注意力机制可以建模对象间的远程依赖,轻松获取目标全局特征,不需要像CNN那样通过叠加大量卷积加深网络深度来建立图像全局联系,因此基于Transformer的目标检测算法也得到了研究者的广泛关注。
目前无锚检测和基于Transformer的检测是近几年的研究热点,国内有关这两类算法的综述文献较少,针对此情况,本文首先全面总结了深度学习时期的检测模型优缺点以及这些模型的实验结果,然后将近五年的检测算法按照基于Anchor-free检测和基于Transformer检测两种类型,从网络结构、优缺点、适用场景等方面进行归纳总结,介绍了目标检测常用数据集以及算法的应用现状,最后对目标检测未来的发展趋势进行了展望。如图1,按照传统算法、深度学习和Transformer三个角度对现有目标检测方法进行分类。
图1 目标检测算法分类图Fig.1 Classification diagram of object detection algorithm
Anchor机制在Faster R-CNN算法中首次提出,主要是为了解决Fast R-CNN在提取候选框时存在的冗余计算以及时空耗费等问题。Anchor继承了滑动窗口和区域提议的思想,将图像划分为离散的块,然后根据预定义的大小生成一系列边框,由Anchor生成的边框也称为锚框,然后根据具体规则将这些锚框分为正负样本,并为它们计算额外的偏移回归来修正边框位置。与滑动窗口和基于区域提议算法不同,它们是重复计算每个窗口或提议的特征,锚框是一种特征共享的滑动窗口,它利用CNN生成的特征图实现,避免重复的特征计算,加快了检测速度。锚框作为回归参考和分类候选,用于预测两阶段算法中的区域建议或是单阶段检测器的最终边框,已经被推广到多个算法中,如Faster R-CNN、YOLO v2等等,成为了现代检测器必不可少的组件。目前基于深度学习的检测算法多数都是基于区域提议和锚框进行分类回归,均属于Anchor-based算法,也有个别算法没有采用预定义边框,如Dense Box和YOLO v1,属于早期的Anchor-free算法。表1列举了经典的深度学习模型的性能对比[5-21],表2对这些算法进行分类并总结了优缺点[5-21]。
表1 基于深度学习的检测模型性能对比Table 1 Performance comparison of detection models based on deep learning
表2 基于深度学习的检测模型Table 2 Detection models based on deep learning
基于Anchor-based的算法在实现过程中存在泛化能力差、计算冗余、正负样本失衡等问题,针对这些缺陷,研究者们提出了许多无锚框检测算法,这类算法移除了预设锚框的过程,直接预测物体边框。无锚框检测算法按照算法特点可以划分为以下五种类型:基于关键点检测、基于密集预测、基于新的样本划分策略、基于稀疏先验框以及Anchor-free和Anchor-based相结合的算法。
1.2.1 基于关键点检测
基于关键点的目标检测算法主要包含提取关键点、分组配对以及分类预测三个步骤。在提取关键点阶段,采用卷积神经网络(如HourglassNet[22])提取关键点热图、嵌入向量及预测偏移等信息;在分组配对阶段,利用预定义的分组算法组合成对的关键点表示预测框,过滤掉不符合要求的错误框;段在分类预测阶使用已有的类别信息对产生的预测框进行标签分配和回归。
2018年,Law等人[23]提出的CornerNet是首个采用关键点(左上角点和右下角点)建模对象的算法,通过组合成对的角点表示预测框。该模型利用骨干网络输出角点热图同时预测角点的嵌入向量,然后使用关联嵌入法以向量之间的距离为依据分组角点组合预测框,采用角池化层丰富角点的边界信息,最后对角点组成的预测框进行分类和定位。CornerNet的精度相对单阶段算法有所提升,但推理速度过慢,无法满足实时交互需求,在分组角点时缺少物体内部信息,产生大量误检框。针对CornerNet效率低下问题,原作者继续优化提出CornerNet-lite[24],包含两个CornerNet变体:CornerNet-Saccade引入注意力机制有重点地处理图像像素,通过减少模型需要处理的像素个数提升检测效率,相比于CornerNet速度增加了6倍且精度提升了1%,实现了在不牺牲模型准确率的情况下提高速度;CornerNet-Squeeze借鉴SqueezeNet[25]和MobileNets[26]的思想,引入结构紧凑的轻量级骨干网络减少像素处理步骤,加速图像的前向处理,改善了原始Hourglass-104参数巨大、结构复杂的问题,在保证精度的情况下满足了实时检测速度,性能优于YOLO v3。但遗憾的是,两个变体结合的性能不理想,主要是因为CornerNet-Squeeeze紧凑的网络结构无法提供CornerNet-Saccade所需的精准特征图,存在一定的局限性。
针对CorneNet误检框问题,Duan等人[27]提出CenterNet,在角点基础上增加一个中心点表示对象,首先组合角点形成预测框,然后借助中心点探索预测框的内部区域,通过检测该内部区域是否存在同一类别的中心点来决定是否保留预测框,同时提出中心池化和级联角池化模块,前者有助于中心点具有更多可识别的视觉信息,后者为角点特征提供更加丰富的关联物体的边界信息。通过补充目标区域内部信息,CenterNet能够过滤掉大部分误检框,提高了精度和召回率,但是在目标密集场景中效果不好。
针对关键点分组算法,Dong等人[28]指出CornerNet分组角点采用的嵌入向量预测是基于外观特征的,网络会为相似物体预测相似的嵌入向量,因此即使相似物体距离较远也容易产生错误边框。对于CenterNet而言,虽然通过中心点过滤掉了错误边框,但是不能处理密集场景。为此,他们重新定义关键点分组算法,提出了CentripetalNet[28],基于向心偏移值实现角点配对,认为如果两个角点属于同一个目标边框,则它们的向心偏移值是相近的。CentripetalNet通过加入关键点的位置信息在很大程度上缓解了相似物体之间的错误配对问题,同时设计跨星形可变形卷积学习目标的上下文信息,丰富角点视觉特征。同年,Zhou等人[29]受到极值点注释边框的启发,提出了ExtremeNet[30]网络,借助拥有丰富特征信息的极值点和中心点表示边框,基于几何计算方式进行关键点分组,整个检测框架是完全基于外观的,但是关键点数量增加至5个,显著增加计算开销,通过暴力穷举所有可能的极值点组合,算法的复杂度大大增加。
1.2.2 基于密集预测
基于密集预测的检测算法以锚点替代锚框实现物体检测,检测点和点到边框的距离进行分类回归。作为全卷积无锚单级检测模型,FCOS[31]以逐像素方式预测对象实例,网络结构和RetinaNet一样,都是采用特征金字塔[32],不同的是,FCOS在采样过程中计算所有特征层每个位置到真实框四条边的距离作为回归目标值,然后根据每个特征层上设定好的阈值判断该回归目标值是否满足条件,若不满足则将对应位置作为负样本不进行边框回归,以这种多级预测方式在一定程度上缓解了重叠边框造成的歧义模糊问题;为了过滤掉那些远离目标中心点产生的低质量边框,FCOS在回归分支末尾增加了一个额外的center-ness分支降低这些边框的分数,从而使得这些低质量边框在后处理时有很大概率被过滤掉,提高召回率。FCOS网络结构简单,不涉及参数的启发式调整,但是以逐像素的方式预测影响检测速度。
与FCOS类似,FoveaBox[33]同样采用了特征金字塔,利用不同层级预测不同尺寸的目标,还引入超参数η控制不同特征层的重合度,进一步调整每个特征层的尺度范围,如此一来,FoveaBox可以将目标分配在多个特征层级上,增加每层的训练样本实现更稳健的预测。在定义正负样本时,FoveaBox把真实框映射在特征图上并进行缩放,缩放区域内的像素点被认为是正样本点,然后计算正样本点到真实框的距离进行边框预测。FoveaBox网络结构简单,性能更好,可以同时优化相邻特征层,但是在实现样本分类时,正样本区域通常只占一小部分,造成正负样本不平衡。
1.2.3 基于新的标签分配策略
2020年,Zhang等人[34]深入对比分析单阶段算法RetinaNet和无锚算法FCOS,发现二者的性能差异是由不同正负样本定义造成的,他们认为Anchor-based和Anchor-free算法的本质区别就在于此。为此,他们提出了同时适用于Anchor-based和Anchor-free算法的样本选择策略—自适应样本选择ATSS(adaptive training sample selection)[34],进行样本分配时首先对每个真实框,先在每个特征层级上基于L2距离选取k个较近锚框(或满足条件的锚点)作为候选正样本,然后计算这些候选正样本和真实框的IoU值,以这些IoU值的均值和方差之和为阈值,选择IoU值大于阈值的候选正样本作为最终正样本。ATSS实现了根据对象特征自动选择正负样本,但是阈值的确定还是依靠先验信息,对阈值的设计缺乏可解释性,调参痕迹较重[35]。
与ATSS不同,Sun等人[36]从目标检测的特点出发,他们认为就目标检测这种多任务(分类和定位)而言,仅依靠定位损失进行正负样本分配容易产生高置信度分数的重复边框,使得后处理成为必要组件,无法实现端到端检测。因此,他们将分类损失也加入到样本分配依据中,提出了最小代价分配策略,并在此基础上实现了检测器OneNet[36],基于最小的分类和定位损失之和为每个真实框分配正样本,实现了一对一分配,不需要NMS后处理,不存在人工设计准则。
1.2.4 基于稀疏先验
目前的目标检测算法都是密集检测(Faster R-CNN、YOLO等),尽管取得了较好的性能,但是也存在一些局限性,如产生冗余边框、标签的多对一分配问题等等。为了解决这些限制,Sun等人[37]提出完全的稀疏提议算法Sparse R-CNN,以少量的起始框预测所有目标对象,并且每个边框不需要和图像全局特征进行交互,实现了稀疏提议和稀疏特征交互两个特性。该模型的输入除了图像还包含一组固定数量的目标提议框和提议特征,前者作为区域提议,后者为这些区域提议编码更深层次的特征信息,二者是一一对应的,在网络中随着其他参数一起更新学习;同时提出动态实例交互头,提取每个提议框的特征然后将其送入专属检测头中,与对应的提议特征进行交互得到最终结果。Sparse R-CNN实现了预测框的一对一优化,不存在正负样本不均衡问题,也不需要NMS处理冗余框,但是网络结构复杂度增加,尽管精度较高,但对于工业和商业用途其收益和复杂度不成正比,部署起来较为困难。
1.2.5 Anchor-free和Anchor-based结合的算法
2019年,Zhu等人[38]指出与特征金字塔相结合的检测算法都是基于先验知识将锚框分配到各个特征层级上,然后根据锚框和真实框的交并比进行采样,这种启发式的特征选择所选的特征层对于目标来说可能不是最优的。特征选择无锚模块FSAF(fearure selection Anchor-free)[38]是由两个卷积层组成的Anchor-free分支,将其添加在RetinaNet的特征金字塔后面,在训练过程中计算目标在所有特征层级上Anchor-free分支损失函数的和,然后选择损失最小的特征层学习目标,实现了根据实例内容动态地为每个实例选择最合适的特征层级,而不仅仅是依靠目标边框的尺度大小,解决了Anchor对特征选择的限制。FSAF可以插入到具有特征金字塔的单级检测器中,也可以和Anchor-based分支并行增强特征实现更有效的预测,但是动态分配特征层时仅实现了物体尺度上的分配,没有实现空间位置分配,即没有决定具体应该由分配层的哪个边界框负责。
1.2.6 算法小结
基于Anchor-based的检测算法以铺设的锚框为检测起点,对锚框的类别和位置进行矫正,Anchor-free算法动机就是移除掉锚框、减少超参、增加灵活性。表3总结了各类Anchor-free算法在COCO数据集的表现;表4总结了算法的检测机制、优缺点及适用场景。结合表3和表4可以得出以下信息:(1)基于关键点算法先检测关键点,然后利用特定分组算法进行配对框定物体,是一种全新的检测流程,但是分组关键点拖累检测速度,效率低下。(2)基于密集预测方法主要是铺设锚点代替锚框检测物体,采用多尺度预测提高检测精度,减少大量超参数,简化计算,检测流程简单,检测速度相对较快。(3)ATSS和OneNet从不同角度解决正负样本不平衡问题,其中优化的ATSS甚至可以达到50.7%AP,远超之前的模型,OneNet在精度和速度方面有着很好的平衡,可以在保持精度的前提下去掉NMS后处理,简化网络结构,实现端到端检测。(4)作为第一个完全稀疏算法,Sparse R-CNN用最少的候选框获得了最高的精度,完美诠释了什么是少而精,但是对于工业用途来说其收益不足以抵消高复杂度,下一步研究是否能够优化网络结构解决高复杂度问题。(5)目前Anchor-free算法在不能保证精确回归的前提下,容易产生较大的误差,回归的边框坐标可能跟实际边框差距较大。由表3也可看出大部分算法的精度可以和两阶段算法相媲美,但是检测速度过慢,难以用于实时检测场景,个别算法拥有实时速度却不能保证高精度。尽管Anchor-free算法在性能上没有特别突出的表现,但是思想值得借鉴,后续可以研究如何将这些算法拓展到更多视觉任务中,探索更加优秀的网络结构提高模型性能。
表3 Anchor-free算法在COCO数据集的实验结果Table 3 Experimental results of Anchor-free algorithm on COCO dataset
表4 基于Anchor-free算法总结Table 4 Summary based on Anchor-free algorithm
基于Transformer的目标检测算法根据网络结构可以分为两类:基于Transformer的集合预测方法(Transformer neck)以及基于Transformer的骨干网络方法(Transformer backbone),前者是基于CNN提取特征、Transformer实现预测的网络结构,后者是采用Transformer作为骨干网络、CNN实现检测的网络结构。
1.3.1 Transformer neck
DETR(detection Transformer)[39]是首个基于Transformer的端到端检测模型,把对象检测看成直接集合预测问题,解耦了预测结果和目标位置的严格绑定关系。该模型采用CNN和Transformer的混合结构实现对象检测,训练时利用二分匹配损失函数实现预测框和真实框的一对一分配,有效地消除了NMS后处理需求。DETR在COCO数据集上获得了42.0%AP,与优化后的Faster R-CNN不相上下,但是由于注意力计算复杂等因素导致收敛速度慢,比Faster R-CNN慢了10~20倍,且小目标检测效果差。
2020年,Zhu等人[40]认为DETR的慢收敛主要是由于Transformer的注意力机制是对全局特征之间的密集关系建模,以至于需要长时间的训练才能关注到有意义的稀疏位置,为此提出deformable DETR,借助可变形卷积[41]思想通过在不同层级特征图上进行稀疏采样,使模型重点学习有意义的关键位置加快收敛速度,同时基于注意力机制聚合多尺度特征图之间的信息提升小目标 检测 精 度。2021年,Sun等 人[42]提 出encoder-only DETR缓解由解码器交叉注意力模块带来的DETR慢收敛问题,同时在此基础上提出TSP-FCOS和TSP-RCNN两种集合预测模型,制定新的二分匹配策略解决原始DETR由匈牙利损失造成的不稳定性,实现更快的集合预测训练加速收敛。
Transformer变体ACT(adaptive clustering transformer)[43]主要用于减少DETR因为高分辨率输入带来的计算成本,通过局部敏感哈希降低模型复杂度以及多任务知识蒸馏实现ACT和原始Transformer之间的无缝切换,模型的FLOPS(即浮点运算量)从DETR的73.4降低到ACT的58.2。
UP-DETR(unsupervised pre-trained DETR)[44]提出了随即查询补丁检测的前置任务来预训练DETR模型,以无监督方式预训练Transformer使其能够拥有优秀的视觉表征能力,预训练过程采取冻结CNN主干和补丁特征重构保证特征的分类判别性,设计对象查询shuffle和注意掩码方法实现多查询定位。在Pascal VOC中,相比DETR(300 epoch/54.1%AP),UP-DETR(150 epoch/56.1%AP)用更少时间获得了更高精度,在COCO中,UP-DETR实现了42.8%AP(300 epoch),可见无论数据集大小,UP-DETR都比DETR精度更高,收敛速度更快,证明了无监督预训练策略的可行性和有效性。
1.3.2 Transformer backbone
受到FPN、PANet[45]、BiFPN[46]等算法的启发,Zhang等人[47]创新性地将Transformer应用于特征融合中,提出用于密集预测任务的特征金字塔Transformer-FPT。该方法结合了非局部和多尺度特征,利用自注意力、自上而下交叉注意力和自下而上交叉通道注意三个注意力模块实现跨空间和跨尺度的非局部特征交互,可以将任意一个特征金字塔转换成另外一个大小相等但是语义信息更加丰富的金字塔。FPT可以作为密集预测任务的通用主干进一步提高模型性能,如基于FPT的BFP(bottom-up feature pyramid)模型在COCO数据集上获得42.6%AP以及40.3%mask AP,相比原始BFP分别有着8.5个百分点和6.0个百分点的增益,但是FPT的计算量和参数量都较大,后续可以研究简化模型,降低计算成本。
除了FPT这种局部增强的Transformer模型以外,研究人员也尝试采用CNN的层次化构建方法构建适用于CV的Transformer骨干模型。Liu等人[48]提出了一种带有分层结构的Transformer-swin Transformer,随着网络的加深逐步合并图像块构建层次化Transformer,可以作为通用的骨干网络,用于分类、检测、分割等视觉任务。该模型引入W-MSA(windows mutil-head self-attention)限制注意力计算仅在局部窗口执行,减少计算量,设计移动窗口SM-MSA(shift windows mutil-head self-attention)实现不同窗口之间的信息传递。就目标检测和实例分割任务而言,swin Transformer在COCO数据集上获得了58.7%box AP以及51.1%mask AP,达到了以往检测器从未有过的高度。原团队继续优化改进,于2021年提出了拥有30亿参数的大型视觉模型swin Transformer v2[49],该模型能够使用分辨率高达1 536×1 536的图像进行训练,采用后归一化技术解决模型训练不稳定问题,以及对数间隔连续位置偏置(Log-CPB)方法可以将低分辨率预训练模型转换为对应高分辨率模型,迁移到其他视觉任务中,训练过程稳定,GPU内存消耗少,在COCO数据集上,目标检测任务可以达到63.1%(+4.4%)box AP,实例分割任务上达到了54.4%(+3.3%)mask AP。
1.3.3 算法小结
基于Transformer的目标检测由于其优越的性能近两年得到了广泛关注,上述检测算法主要是利用Transformer的自注意力机制增强经典检测器的特定模块,如特征融合模块以及预测头部分。表5总结了基于Transformer的检测算法在特定数据集上的准确率和速度、优缺点以及适用场景。总结表5可以得到以下信息:(1)DETR的精度可以与两阶段算法相当,而且在精度速度之间有着很好的平衡,网络框架简单,但是训练时间太长,小目标检测效果差,后续的deformable DETR、ACT、TSP等算法都是针对这两个问题改进。(2)不同于DETR将目标检测重新设计为一组集合预测任务,FPT、swin Transformer v1和v2是设计Transformer作为目标检测模型的主干网络,将图像分割成图像块送入Transformer主干网络,根据图像的空间信息进行重组,然后通过CNN检测头进行最终预测。swin Transformer v1及v2接连刷新了目标检测基准数据集COCO,精度远超基于CNN的检测模型,但是模型复杂度相对较高,计算量较大。(3)基于Transformer的检测算法可以对目标建立远距离依赖从而轻松获取全局有效信息,解决CNN感受野有限的问题,从表中也可以看到这些算法获得了不错的性能。但是Transformer用于检测也存在一些不足,如计算效率问题,长距离关系建模带来计算成本平方式的增长,无法处理高分辨率图像,而且基于Transformer的模型参数量巨大,训练时间和推理速度相比CNN会较慢一些,这些不足为今后Transformer的改进提供了方向。
表5 基于Transformer的目标检测算法总结Table 5 Summary of Transformer-based target detection algorithms
1.3.4 Transformer在视觉领域的应用
除了目标检测,Transformer也可以应用于其他视觉任务。例如,DETR通过在解码器输出端增加一个mask head就可以实现全景分割任务;Wang等人[50]借鉴DETR思想,基于mask Transformer实现端到端的全景分割;文献[51]提出了一个新的实例序列匹配和分割策略,从相似性学习的角度对实例进行分割和跟踪,实现了端到端的视频实例分割;文献[52]将DETR用于行人检测,解决密集场景下目标漏检问题,实现了遮挡和密集场景下的端到端行人检测;文献[53]基于Transformer学习全局上下文信息提高曲线车道线检测性能。此外,Transformer还在姿态估计[54-55]、医疗图像分割[56]、点云学习[57]等计算机视觉任务表现出了巨大潜力。目前,Transformer在视觉领域的应用仍处于初步探索阶段,模型性能相比传统卷积可能没有太大提高,但是胜在网络结构新颖,有着无限的可能性,接下来可以针对各个任务的特点研究更适配视觉特性的Transformer,或者重新理解这些视觉任务,研究新的框架。未来,应该继续挖掘Transformer的潜能,将其更好地应用在视觉任务中。
构建大型且准确的数据集开发高效的目标检测算法是至关重要的,算法性能的优劣都是在特定数据集上进行评估的,目前检测领域除了常见的Pascal VOC、COCO等数据集,也陆续出现了一些公开数据集,按照类型将其划分为遥感图像数据集、无人机航拍数据集、密集行人检测数据集、水下物体数据集、交通标志数据集等。事实上,由于使用场景的不同,检测对象也不同,因此数据集的种类非常多,在表6中整理了一些较为常见的数据集。
表6 常用的目标检测数据集Table 6 Commonly used object detection datasets
作为计算机视觉领域的研究热点之一,目标检测在多个现实场景有着重要应用,涉及医学影像处理、人脸检测、遥感图像检测、红外图像处理、自动驾驶、缺陷检测等多个领域。研究者们针对特定领域的具体情况,在原有算法基础上加入优化技巧,或是融入能提高精度的网络结构来改进检测算法,以解决这些领域的实际问题。表7列举了上述检测算法在以下几个领域的具体应用情况[58-66]。
表7 目标检测算法应用相关文献Table 7 Related literature on application of target detection algorithms
目标检测是计算机视觉中一个非常重要的方向,具有复杂场景、复杂目标等特点,在生活中有着很好的应用前景。目前,基于深度学习的检测算法处于快速发展阶段,产生了许多新颖的理论、方法和应用;而基于Transformer的检测算法则处于初步探索阶段,模型性能有待提升,应用范围有待推广,因此还有着无限的可能性等待研究者们发掘。基于当前目标检测算法的研究现状,本章简要归纳未来的可研究方向:
(1)数据集问题。目标检测算法属于数据驱动型,算法的性能依托于数据集规模和质量,目前数据集的构建主要以人工标注为主,工作量大且成本高,因此如何以低成本代价获得更有效的数据标注,建立更加全面的数据集仍是一个待解决的重难点问题。同时基于Transformer的检测算法更是对数据集的规模有着很高的要求,训练时需要使用大量的数据才能获得高性能,未来能否在小型数据集上训练出高精度的Transformer模型也是一个值得研究的方向。
(2)多尺度问题。多尺度融合目前仍是检测领域的一个难点问题,目前已经提出了许多实现多尺度融合的算法,如FPN、BiFPN和PANet等,但是已有检测器都不能在多尺度之间达到一个很好的平衡,小目标和大目标之间的精度差距高达3倍。因此,提出新的多尺度融合策略,或是对现有算法进行改进实现多尺度目标之间的精度平衡也是一个有价值的研究方向。
(3)计算成本问题。基于Transformer的模型参数复杂度过高,导致在计算时间和处理数据所需的资源方面都有着过高的训练和推理代价,如DETR模型大约需要500 epoch的训练周期,而基于CNN的Faster R-CNN模型仅需要12 epoch的训练时间就可以达到同样的精度。因此,如何减少基于Transformer模型的训练时间、降低训练成本是未来可研究的一个重要方向。
(4)Transformer结构及应用问题。目前视觉任务中使用的Transformer模型都是直接从NLP中迁移的,结构遵循NLP中标准Transformer架构,在处理图像时不能像处理文本那样“得心应手”,未来可以探索更加匹配视觉任务的Transformer改进版本。同时,目前基于Transformer的检测算法在各类场景中的应用较少,且主要使用的是DETR算法,如文献[61]和[66],其他检测算法的应用场景还未涉及到,研究者们未来可以继续研究其他基于Transformer的检测算法的特点(如UP-DETR、swin Transformer等),然后应用到更多检测场景中,拓展Transformer的使用范围。
本文首先总结了经典的深度学习检测算法,然后从网络结构、优缺点、适用场景等方面归纳总结了基于Anchor-free和基于Transformer的目标检测模型,介绍了目标检测领域常用数据集以及这两类检测算法在一些领域的应用现状,最后对目标检测未来的可研究方向进行了展望。在深度学习的指导下,目标检测取得了极大的进步,但是目前最好的检测器性能还未达到理想状态,期望未来能开发更精确的实时检测器。