基于卷积神经网络的目标检测算法综述

2022-07-10 09:51农昌瑞杨智勇
兵器装备工程学报 2022年6期
关键词:卷积尺度精度

张 静,农昌瑞,杨智勇

(1.海军航空大学 航空基础学院, 山东 烟台 264001; 2.海军航空大学, 山东 烟台 264001;3.烟台理工学院, 山东 烟台 264001)

1 引言

以多目标分类与定位为主要任务的目标检测技术,不仅需要判断检测区域是否包含目标物体,同时还需要用外接矩形框将目标进行标记。近年来,随着计算机技术和卷积神经网络的快速发展,目标检测技术得到飞速发展,在交通监控跟踪、视频安防预警、无人机场景分析和机器人视觉等领域有着广泛的应用。

目标检测技术可分为传统目标检测技术和基于深度学习的目标检测技术。传统的目标检测技术,如VJ检测器、HOG检测器以及DPM检测器,利用手工特征提取方法获取目标特征,并采用传统的识别器完成目标分类,因此,存在特征表达能力弱、检测的准确率低、实时性差等问题。而基于深度学习的目标检测算法拥有强大的特征提取能力,同时具有检测精度高、速度快的优点。

基于卷积神经网络的目标检测算法,根据检测的思路不同以及有无锚点(anchor)可以分为基于锚点的(Anchor-based)目标检测算法和无锚点(Anchor-free)的目标检测算法。Anchor-based目标检测算法在特征图的每个特征点处,设置不同长宽比例的先验框(anchor-box),在此基础上进行筛选和调整,以获得最终的预测框,该类算法检测精度较高,但存在一定的冗余计算,因此检测速度较慢;Anchor-free目标检测算法摒弃了先验框的思路,通过预测关键点,以获得最终的预测框,这类算法的网络参数量小,检测速度快,但是精度不是很高。因此,若目标检测算法是采用锚点+先验框的检测思路获得预测框,则属于Anchor-based目标检测算法的范畴;若算法采用关键点预测的检测思路来获得预测框,则属于Anchor-free目标检测算法的范畴。近两年,还有新提出的基于变压器(Transformer)的目标检测算法,其引入注意力模块以增强特征表示能力,这类算法特征融合能力强,检测的准确率高,但训练的成本较大。

2 卷积神经网络的发展

卷积神经网络(convolution neural network,CNN)是深度学习中应用十分广泛的模型,是目标检测算法的重要组成部分,在目标检测算法中扮演特征提取器的角色,主要完成特征提取任务,输出包含丰富的特征信息的特征图,为后续目标检测中的分类与回归任务奠定基础。图1通过时间轴的方式将整个卷积神经网络的发展过程进行直观的展示,其中时间轴的上半部分是普通的卷积神经网络模型,下半部分是轻量化的卷积神经网络模型。

图1 CNN的发展历程示意图Fig.1 Development of CNN

Lecun教授提出了LeNet5 CNN网络,利用二维卷积进行图像处理, 由此开始了CNN的现代之路。Krizhevsky等提出了AlexNet网络,将计算机视觉领域的研究聚焦到了卷积神经网络与深度学习。2014年,出现了多种先进的框架,其中包括AlexNet的改进版本ZFNet,其将第一层卷积的卷积核与参数步长进行了调整,增强了特征提取能力;Christian提出的GoogLeNet,巧妙利用1×1卷积进行通道降维,解决了由于网络加深导致的参数量激增问题;Simonyan K提出的VGGNet,具有良好的迁移学习能力,其中的3×3卷积更是成为了后来的卷积神经网络结构的标配。

He等注意到网络加深引发的梯度消失问题,提出了ResNet短接网络结构,摆脱了深层网络的困扰,使得网络的深度达到了惊人的152层。随后还提出了ResNeXt和ResNet-D两个改进版本,其中ResNeXt将非残差边进行通道拆分,同时进行多路径卷积操作,最后将不同路径的输出进行相加合并;ResNet-D将ResNet中的7×7卷积替换成3个3×3卷积,以提取细节特征。

Bello等提出了最新的ResNet改版——ResNetRS,ResNetRS通过将训练与扩展策略相匹配,实现了训练速度、迁移学习能力等性能的大幅提升。同年,Ding等提出了RepVGG,其仅由3×3卷积与ReLU激活函数组成,通过简单的无分支结构进一步增强了VGG网络的特征提取性能。

为实现在微型化移动端与嵌入式平台中部署CNN模型,学者们在如何减少CNN模型参数量、降低CNN结构复杂度等方面也进行了深入研究。其中,SqueezeNet利用大量的1×1卷积核替换3×3卷积核,同时降低3×3卷积核的通道数量,以减少参数量。MobileNet系列网络提出使用深度可分离卷积、线性瓶颈、倒残差等模块,使得网络结构更轻便,检测速度更快。ShuffleNet系列提出用于分组卷积的通道混洗方法,进一步减少网络的参数。CSPNet提出基于增加信息流动的方法,一方面增强了CNN的学习能力,另一方面去除计算量瓶颈,降低了内存成本。

3 Anchor-based目标检测算法

Anchor-based目标检测算法通常可以分为基于区域与基于回归两大类。基于区域的算法利用2个网络分别实现分类与回归,故又称两级检测器(two-stage),主要包括RCNN系列算法、FPN算法和TridentNet算法。基于回归的算法则在一个网络中完成目标的分类与定位,故又称单级检测器(one-stage),主要包括YOLO系列算法、SSD系列算法和RetinaNet算法。

3.1 基于区域的目标检测算法

Girshick提出了R-CNN(regions with CNN features)算法,首次实现了深度学习在目标检测领域的应用。它首先通过选择搜索提取一组候选区域,随后使用在Image-Net上预训练的CNN模型实现特征提取,最后通过支持向量机(support vector machine,SVM)完成目标预测。RCNN由于存在大量的建议框与冗余特征,导致检测时间过长。

为解决上述问题,He等引入空间金字塔池,提出了空间金字塔池化网络(SPPNet)。SPPNet允许输入任意大小的图像,并且只需一次特征提取,便可生成不同尺度的特征。SPPNet虽然具有较高的检测速度,但是训练过程仍然是分阶段进行。

R.Girshick注意到RCNN与SPPNet存在的缺点,于2015年提出了Fast-RCNN算法。Fast-RCNN实现了分类和边界框回归的同步训练,提高了训练和检测的速度。但Fast-RCNN仍存在候选区域建议速度较慢的问题。

为解决上述问题,S.Ren等引入区域建议网络(region proposal network,RPN),提出了Faster-RCNN,很大程度上提高了区域建议的速度,其结构如图2所示。RPN在特征提取网络输出的特征图上进行窗口滑动,每个滑动窗口分别对应9个先验框,以获得候选框的类别与回归参数。Faster-RCNN虽然具有较高的检测精度,但其只在单个尺度进行预测,对于小目标的检测效果欠佳。

图2 Faster R-CNN结构示意图Fig.2 Structure of Faster-RCNN

为解决上述问题,Lin等提出了特征金字塔网络(feature pyramid networks,FPN)。FPN采用自顶向下的体系结构,通过融合不同分辨率的语义信息来丰富特征图的空间信息,同时在多个尺度的特征图上进行预测,对小目标的检测效果明显提高。

Cai等针对目标检测中预测框存在误差、容易出现噪声干扰等问题,提出了Cascade-RCNN。Cascade-RCNN通过级联的方式对网络进行训练,每个级联的网络设置不同的阈值,利用前一个网络输出作为下一个网络的输入,通过层层级联,逐步将网络的准确度进一步提高。

在多尺度问题上,Li等提出了全新的网络结构—TridentNet,如图3所示。TridentNet引入膨胀卷积(dilated convolution)改变感受野的大小,通过共享同一个特征图,构造不同感受野的多分支结构,以此来解决不同尺度的目标检测问题。

图3 TridentNet结构示意图Fig.3 Structure of TridentNet

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

YOLO(You Only Look Once)由R.Joseph等于2015年提出。它是引入深度学习后的第一个one-stage的目标检测算法,但 YOLO实际上是属于无锚点的目标检测算法的范畴。

R.Josep等提出了YOLOv2。YOLOv2在3×3卷积核之间使用1×1卷积来进行特征压缩并采用全局平均池化的方法进行预测,同时在每一个卷积层后引入批量归一化层(batch normalization),以解决反向传播过程中的梯度消失和梯度爆炸问题。但YOLOv2网络对于小目标的检测能力欠佳,检测的准确性不够高。

针对上述问题, YOLOv3被提出来了。YOLOv3采用更深的DarkNet-53提取更细粒的特征信息,采用FPN结构实现了多尺度预测,使用1×1卷积和Logistic激活函数替代Softmax分类层,更有效地进行数据拟合。YOLOv3在各项性能上取得了较大的提升,但是检测的精度与实时性仍有所欠缺。

针对大多数的目标检测算法存在实时性不足、训练成本较大等问题,Alexey等提出了YOLOv4,其结构如图4所示。YOLOv4采用先进的CSPDarknet53进行特征提取,采用SPP+PANet模块进一步增强特征的表达能力,同时将各种新提出的Tricks应用到网络的改进中,使得YOLOv4在训练成本降低的基础上,仍获得较高的检测精度与实时性能。

图4 YOLOv4结构示意图Fig.4 Structure of YOLOv4

Liu等提出了SSD(single shot multibox detector)模型,如图5所示。SSD在VGG-16后添加多个卷积层获得多尺度特征图用于预测,同时借鉴Faster-RCNN的锚框理念,针对不同尺度的特征图设置不同长宽比的先验框,以更好地检测不同大小的目标,减小训练的难度,对于有重叠区域或者距离较近的目标具有更优的检测效果。但SSD存在重复框较多,对小目标检测的鲁棒性不强等问题。

图5 SSD结构示意图Fig.5 Structure of SSD

Jeong等在SSD的基础上提出了RSSD(Rainbow Single Shot Detector)算法。RSSD通过rainbow concatenation的方式(即下采样pooling与上采样deconvolution相结合)对不同层的特征信息进行融合,并对特征图的数量进行了扩增,通过两方面的改进有效地解决了SSD存在的问题。

Lin等为解决基于回归的算法存在的“类不平衡”问题,提出了RetinaNet,其结构如图6所示。RetinaNet采用全新的Focal Loss损失函数,通过增加训练过程中样本数较少的类别的权重,缓解“类别不平衡”问题。RetinaNet将ResNet和FPN的组合结构作为主干特征提取网络,提取图像的多尺度特征信息,再利用回归方法直接进行分类,采用Focal Loss损失函数后有效提高了网络的检测精度。

图6 RetinaNet结构示意图Fig.6 Structure of RetinaNet

Anchor-based目标检测算法一直占据着目标检测领域的主导地位,从最初的RCNN一直发展到最新的YOLOv4,算法的参数量不断降低,检测速度与精度不断提升。

4 Anchor-free目标检测算法

Anchor-free目标检测算法,早在2015年已经有相关的研究成果,由于该领域的论文发表较晚于Fast-RCNN,且分类损失函数的优化不够好,因此发展相对缓慢。近年来,随着FPN与Focal Loss损失函数的出现,学者们对于Anchor-free检测算法的关注度日益增加。Anchor-free目标检测算法可以分为基于密集预测与基于关键点估计,基于密集预测的目标检测算法则是采用逐像素预测的方式完成检测;基于关键点估计的目标检测算法通过对中心点或角点的估计来实现目标的检测。

Huang等提出了DenseBox目标检测算法。DenseBox使用全卷积网络,实现了端到端的训练和识别,其采用两次线性插值进行上采样,并将其输出与卷积输出的特征图进行融合,实现了多尺度预测。DenseBox与YOLO一同作为无锚检测算法的早期探索,它的许多检测思想均早于基于锚点的算法。

4.1 基于密集预测的目标检测算法

Zhi等采用全卷积构造了FCOS(fully convolutional one-stage)目标检测算法框架,使用逐像素的预测方法。如图7所示,FCOS采用FPN架构,并增加了Center-ness分支来排除掉偏离目标中心较远的预测框,P6、P7在P5之后使用步长为2的卷积得到,而不是来自C5,以获得更强的特征语义,同时可以减少参数量。FCOS具有轻量化的结构,同时拥有较快的检测速度与较高的检测精度。

图7 FCOS结构示意图Fig.7 Structure of FCOS

Zhu等发现传统的基于锚点的算法在多尺度预测中,通常根据目标锚框的大小来选择相应尺度进行预测,导致目标无法在最优的尺度进行预测,为解决这一问题,于2019年提出了FSAF(Feature Selective Anchor-Free Module)。其在RetinaNet框架的基础上,添加FSAF分支,每一个样本在训练过程中分别求出不同分支的尺度loss值,随后根据loss值的大小来决定该样本的尺度分支,从而使得样本能够自动学习并选择最优的尺度分支进行训练。FSAF在检测速度较快的基础上,进一步提高了多尺度检测的精度。

Kong等提出了FoveaBox,其结构如图8所示。Kong等受到人眼结构启发,在训练与检测过程中对目标的中心区域给予更高的关注度,再由偏移量对中心区域进行修正获得最终的预测框。Foveabox通过对真实框上的点进行收缩扩展的方式来定义正负样本,不同特征层分别检测相应尺度的目标,且通过控制尺度系数来解决预测重叠的问题。Foveabox具有参数量少、检测速度快的优点,但检测精度不够高。

图8 Foveabox结构示意图Fig.8 Structure of Foveabox

4.2 基于关键点估计的目标检测算法

Law等提出了CornerNet算法,该算法利用一对关键点(即边界框的左上角和右下角)实现目标的定位,生成热点图与嵌入式向量。CornerNet算法由环面网络、角点热图、预测模块组成,如图9所示。环面网络(Hourglass)同时包含上采样和下采样过程,充分提取高低分辨率下的多尺度特征信息,通过2个环面网络堆叠生成两组热力图,分别对左上角点和右下角点进行预测。CornerNet摒弃了现有检测算法对锚框的需求,降低了整个检测网络的训练要求,研究人员能够选择和设计不同的特征提取网络,同时为了更好地对边框角点进行定位,还提出了全新的角点池化(corner pooling)方法,有效提高了检测精度。

图9 CornerNet结构示意图Fig.9 Structure of CornerNet

CornerNet算法只利用一对角点生成边界框,而生成区域的内部信息并没有被充分利用。Duan等针对这个问题进行了改进,于2019年提出了CenterNet算法。CenterNet增加了中心点作为边界框的生成依据,将左上角、右下角和中心点相结合对边界框作出取舍,如果一对角点定义的生成区域中包含中心点,则保留该预测框,否则弃掉。如果预测框与真实框的交并比较大,则认为该预测框的质量较高,中心关键点应该包含在该预测框中。为了提高角点与中心点的检测精度,CenterNet还提出了级联角点池化(Cascade corner pooling)和中心点池化(Center pooling),有效改善了各个关键点的生成,从而提升了检测效果。CenterNet的检测精度得到了有效的提高,但仍存在密集目标中关键点匹配不准确的问题。

为解决上述问题,Dong等提出了CentripetalNet。CentripetalNet在生成候选角点后,引入向心偏移法对角点进行匹配,并向心偏移对齐,以获得高质量的角点;随后采用全新的十字星(cross-star)可变形卷积模块,通过从角点到中心点的偏移量来学习偏移场,进行特征自适应,增强角点位置的视觉特征,以提高向心偏移模块的精度;最后还增加了分割掩模模块,能够在简单改进后直接应用到实例分割任务中。CentripetalNet能够实现端到端的训练,且具有较高的检测精度。

2021年,更快更强的CenterNet2被提出来了,其原理如图10所示。针对two-stage算法中标准的RPN不能很好的推断目标-背景的似然性,而one-stage算法具有较好的效果。为此,CenterNet2通过概率解释推导,将上述两类算法进行融合,设计了更高效的两阶段检测算法,其中,第一阶段是利用单级检测器预测未知类别的目标似然概率,第二阶段是利用两级检测器的后半部分进行条件分类,以获得准确类别的条件概率,最后将2个阶段的概率分数结合获得最终的预测结果。CenterNet2从一个较新的思路对网络进行优化,使得算法的检测精度有了更进一步的提升。

图10 CenterNet2原理示意图Fig.10 Structure of CenterNet2

Anchor-free目标检测算法提出的时间较早,但是发展较缓慢,一直到近几年才逐渐受到研究人员的关注,并取得了快速的发展,算法的检测精度与速度也有了较大的提升,特别是基于关键点估计的算法,通过丰富关键点的特征不断提高检测的精度。

5 基于Transformer的目标检测算法

Transformer是一种新型的神经网络结构,其主要利用注意力机制捕获全局的上下文信息,实现远距离信息融合,从而提取更有效的特征提取。Transformer在自然语言处理(natural language processing,NLP)中取得了巨大的成功,受此启发,图像领域的学者尝试将其应用到计算机视觉任务中,并在目标检测中取得重大进展,本节对其中的DETR(图11)、D-DETR和ACT目标检测算法进行介绍。

Carion等提出的DETR(detection transformer),是基于Transformer的目标检测框架先驱,其结构如图11所示。DETR将目标检测视为简单的集预测问题,消除了传统的锚点生成与非极大抑制(non maximum suppression,NMS)组件,实现了简单且完全的端到端的目标检测。DETR利用CNN网络提取的图像特征,并将特征维度压缩成一维;在将特征输入编码器-解码器转换器之前,对特征进行固定位置编码;解码器使用多头自注意力机制(multi-head attention mechanism),在每个解码层并行解码个对象,产生个输出;最后通过前馈神经网络(FFNs)进行目标类别的识别与边界框回归。

图11 DETR框架图Fig.11 Structure of DETR

DETR的训练时间较长且对小目标的检测性能不足,同年,Zhu等提出了D-DETR(Deformable-DETR),采用可变形注意力模块(deformable attention module)代替DETR中的多头注意力机制,可变形注意力模块只关注参考点周围的小部分关键区域,能够有效降低计算复杂度,加快训练过程的收敛速度,同时,可变形注意力模块融合多尺度特征的能力很强。D-DETR相比DETR,训练成本降低了10倍,检测速度提高了1.6倍。

Zheng等在DETR的基础上提出了一种自适应聚类变压器(adaptive clustering transformer,ACT),其能在不需要任何训练过程的情况下降低预训练的计算成本。ACT使用局部敏感哈希(locality sensitive hashing,LSH)方法自适应地对特性进行聚类,并使用原型键交互在查询键交互附近进行聚类。ACT代替了预先训练的DETR模型的自我注意模块,不需要任何再训练。该方法大大降低了计算成本,但精度却略有降低。ACT还利用多任务知识提取(multi-task knowledge distillation,MTKD)方法可以进一步减缓性能的下降,该方法利用DETR提取ACT模块,并进行几次微调,进一步提高ACT的性能,并在性能和计算之间取得更好的平衡。

6 不同目标检测算法比较

本文对不同类型的目标检测算法进行了介绍,不同算法之间的性能存在较大差异,表1列举了几种典型的目标检测算法。

表1 典型的目标检测算法总结Table 1 Typical object detection algorithm summary

续表(表1)

Anchor-based检测算法中,两类算法在检测速度与精度上各有优势,基于区域的算法具有较高的检测精度,而基于回归的算法则是具有较高的检测速度。Anchor-free检测算法结构轻便、实时性能良好,其中基于密集预测的算法的检测速度明显低于基于关键点估计的算法,但其检测精度略优于后者。基于变压器的目标检测算法作为后起之秀,检测精度与速度与主流的算法基本相当,但训练的成本比较高。

因此,对于实时性要求不高的应用场景(如高空电力线路巡检、医学影像检测等),可以优先选择TridentNet等two-stage算法,或者选择Foveabox等基于密集预测的算法;对于实时性能要求较高的场景(如火灾监控检测、高空作业在线检测等),可以选择YOLOv4等one-stage算法,或者CenterNet2等基于关键点估计的算法;对于模型轻量化与实时性较高的应用场景(如无人机探测、自动驾驶目标检测),可以选择CenterNet2等算法;对于数据较充足的应用场景(如行人检测、车辆监控检测等),可以选择新颖的基于变压器的检测算法。

7 未来展望

虽然目标检测在过去的20年取得了显著成就,在各领域中得到广泛的应用,但仍存在许多难点问题,下面从4个方面展望目标检测未来的研究方向。

1) 弱监督目标检测问题。目前,主流的目标检测算法的训练严重依赖大量的人工标注数据,标注过程耗时、低效且成本昂贵,严重阻碍了目标检测算法的发展与应用。弱监督目标检测方法(WSOD)正是为了解决这一问题,即训练一个只包含图像级标注而不包含边界框标注的检测器。而弱监督目标检测面临不确定条件下的训练所带来的挑战,主要包括训练标签不精确、背景噪声干扰、训练样本多样性有限、训练样本不足等。针对这些问题,可以通过在弱监督学习过程中嵌入有用的先验知识,或者通过将学习过程分阶段进行强化训练等方式,以增强弱监督学习能力。最近提出的WSOD方法如类激活映射,它利用可视化的效果展示了CNN即使在图像级标签训练下也能保持良好的的定位效果。还有一些研究认为WSOD是对候选区域进行比较的过程,筛选出信息丰富的候选区域,利用图像标签对其进行训练。另外一种WSOD方法就是对图像进行遮挡,如果检测得分下降的幅度很大,则目标被覆盖的概率很高。

2) 轻量化的实时目标检测问题。提高模型的检测速度,使其能够在移动设备上顺畅运行。一些重要应用,比如智能摄像头、人脸识别移动端、智能汽车等,要求模型在轻量化的基础上实现高精度、实时性的检测效果。轻量化的实施目标检测方法,最核心的难点问题就是如何在减轻模型结构复杂度的前提下提高检测精度。在近年的研究中,主要采用轻量化的主干网络或者提高分类网络性能来构建轻量化的目标检测模型,如MobileNetV2-SSDLite、Tiny-DSOD和ThunderNet等,可以在低帧率下实现移动设备的部署,NanoDet是目前实时检测性能最好、工程应用价值较大的目标检测算法。此外还可以使用更高效的神经网络算子,如最新的内卷(involution)神经网络算子,在微观粒度对算力进行了重新调配,将有限的算力调整到最佳的性能上,能够更高效地完成特征提取。

3) 小目标检测问题。在大型场景中,小目标可能只有几个像素,如何提高对该类型目标的检测能力是一个巨大的挑战,这方面的潜在应用包括自动驾驶中的远处行人与近处小目标检测、医学中的早期肿瘤等细微症状的检测、使用无人机对重要军事目标进行探测等。随着越来越复杂的系统被部署在现实世界中,小目标的检测和分割也是一个研究的重点。小目标的检测可以通过增加输入图像的分辨率,或融合高分辨率特征和低分辨率图像中的高维特征,也可对包含小目标的图像进行过采样。近年的研究中,FPN采用多尺度特征融合之后的结果预测,对小目标检测有一定作用;ALFNet针对行人检测采用渐进定位拟合模块,采用递增方式调整IoU的阈值,渐进式对多个定位模块进行训练,以提高对行人的定位精度;还有在感知生成式对抗网络中用低层精细粒度,对特征表达较弱的原始征进行补充,将其转换成高质量的特征,以提高小目标的检测性能。

4) 开放世界的目标检测问题。人类有一种辨别环境中未知事物的本能,当最终获得相应的知识时,对这些未知事物的内在好奇心有助于进一步了解它们,有学者根据这个思想提出了一个新颖的检测任务:开放世界目标检测。现有的目标检测要求所有检测的类别在训练阶段都是已知的,当出现未知类别时,就无法检测出来而被认为是背景。开放世界目标检测方法能够在没有显式监督的情况下识别未知目标,当将这些已识别的目标的标签提供给模型进行知识升级时,便可学习到真实的标签类别,同时也不会忘记之前训练中已分类的目标(即无需从头开始进行训练)。这种全新的检测思想在未来也将是一个研究的重点。在开放世界检测领域,Abhijit等首先提出了用于图像识别的开放世界配置,利用已知和未知样本并存,而不是根据一组固定的类别来训练分类器。Federico等研究开放世界的人脸识别学习,而Hu等提出使用一个已知类的样本集来将它们与一个新样本进行匹配,并在与所有已知类的低匹配情况下拒绝它。Joseph等首次提出了开放世界目标检测算法(ORE),构建了基于对比聚类、未知感知建议网络和基于能源的未知识别网络。

猜你喜欢
卷积尺度精度
基于不同快速星历的GAMIT解算精度分析
数字化无模铸造五轴精密成形机精度检验项目分析与研究
基于全卷积神经网络的猪背膘厚快速准确测定
环境史衰败论叙事的正误及其评判尺度
基于FPGA的卷积神经网络加速优化方法
基于图像处理与卷积神经网络的零件识别
基于深度卷积网络与空洞卷积融合的人群计数
近似边界精度信息熵的属性约简
以长时间尺度看世界
9