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

2023-09-29 05:51王永生姬嗣愚
计算机与数字工程 2023年6期
关键词:候选框网络结构卷积

王永生 姬嗣愚

(海军航空大学 烟台 264001)

1 引言

目标检测是计算机视觉的重要分支,主要任务是在给定的图片中精确找到物体所在位置,并标注出物体的类别,即包含了目标定位与目标分类两部分。在计算机视觉领域中的目标跟踪、图像分割、事件检测、场景理解等的任务都以目标检测作为基础[1]。

早期的目标检测算法大多是基于人工设计滤波器特征构建的。基本思路[2]如图1 所示,通过滑动窗口的方法对待检测图片提取候选框,接着进行特征提取,然后利用分类器进行分类判定。通过非极大值抑制(NMS)可以对候选框进行合并,消去重叠或冗余的候选框,输出最终结果。典型算法有2001年的V-J(Viola-Jones)检测算法[3~4]、2006年诞生的HOG+SVM 检测算法[5]和2008年诞生的DPM算法[6]等。然而,这种方法使得滑动窗口的计算量随着图像像素的增加呈指数增长,且手工设计的特征对于目标多样性的变化并没有很好的鲁棒性,检测效率和精度都不高。

图1 传统目标检测方法基本流程

近年来,由于深度学习不断发展,通过卷积神经网络(CNN)自动提取高层特征[7]的方法逐渐成为主流,不仅可以更好地表征复杂特征,而且准确率和实时性有了大幅提升,目前广泛应用于车辆检测与识别[8~9]、行人检测[10~11]以及飞机、舰船等各类目标的识别与检测[12~14]领域。根据检测过程中是否包含候选区域目标推荐这一过程,主要分为基于候选区域思想的Two-stage算法和基于回归思想的one-stage 算法。Two-stage 算法的检测过程包括:1)提取候选框特征信息;2)利用CNN 对候选框进行分类与位置回归。典型算法有R-CNN系列[15~18]、R-FCN[19]、Mask-RCNN[20]等。One-stage 算法在检测时直接产生目标的类别概率及位置坐标,不产生候选区域。典型算法有YOLO 系列[21~24]及SSD[25]、DSSD[26]、Retina Net[27]等。

本文对目前基于深度学习的主流的Two-stage目标检测算法和One-stage目标检测算法进行了综述,分析了相关算法的优劣,最后对目标检测算法做出了总结和展望。

2 基于候选区域的目标检测算法

基于候选区域的算法需要产生大量候选窗口再判断类别,这类算法精度较高但速度相对较慢,R-CNN 系列算法是典型的基于候选区域的目标检测算法。

2.1 R-CNN

R-CNN 算法采用基于AlexNet 网络层结构,采用选择性搜索(selective search)的方法替代滑动窗口生成候选区域,降低了信息的冗余度;然后统一将候选区域尺寸缩放(wrap)为227*227,利用CNN替代人工设计滤波器提取特征;最后用支持向量机(SVM)做分类和框回归,用线性回归模型修正候选框位置,完成目标检测,提高了检测精度与速度,其框架流程如图2 所示。但不足之处在于生成的所有候选区域都要逐个输入网络进行特征提取,训练速度慢,且缩放操作会改变图片形状,破坏原有信息,在后续操作中对精度产生不良影响。

图2 R-CNN框架流程图

2.2 Fast R-CNN

针对R-CNN 由于缩放导致破坏细节的问题,何凯明等人提出了SPP-Net,引入空间金字塔池化(SPP)层,使得在网络中输入任意尺寸的图片都会输出固定大小的特征图[28~29]。Fast R-CNN 结合了SPP 的思想对R-CNN 进行了改进,采用VGG 16 为主干网络[30],引入多任务损失函数,同时将边框回归加入CNN 网络进行训练[31~33]。Fast R-CNN 在得到卷积特征图后将所有候选区域输入ROI 池化层固定特征尺寸,送入全连接层后进行分类和边框回归,其框架流程如图3所示。但Fast R-CNN仍然采用选择性搜索产生候选区域,生成速度慢,被认为是整个检测过程的瓶颈。

图3 Fast R-CNN 框架流程图

2.3 Faster R-CNN

Faster R-CNN 引进RPN 网络代替选择性搜索生成候选区域,提出anchor 的概念,用于检测同一位置上的多目标。输入图片经RPN 处理后,候选区域压缩到了大约300个,候选框数量大大降低[34]。Faster R-CNN 在RPN 层和全连接层均做过分类及候选框回归,提升了检测精度,其网络结构如图4所示。缺点在于ROI 池化层对网络平移不变性造成了不良影响,定位精度有所下降,且细节信息容易丢失,对小目标检测效果不好。

图4 Faster R-CNN网络结构图

2.4 基于区域思想的其他目标检测算法

在R-CNN 系列目标检测算法的基础上,研究人员提出了许多其他的优化方案。文献[19]提出了R-FCN 算法,在Faster R-CNN 的基础上,采用ResNet 为主干网络,提出全卷积化概念,提高网络共享能力;同时增加了位置敏感分数网络层,平衡平移可变性与平移不变性的矛盾。文献[35]提出了Libra R-CNN算法,通过在IoU上均匀采样,弥补了困难样本在线挖掘(OHEM)算法[36]对噪声数据十分敏感的缺陷,让样本更具有代表性;引入平衡特征金字塔,更有效地整合利用多尺度特征;改进损失函数,引导整体训练更好地收敛。文献[37]提出了Hyper Net算法,集合了多层的特征图得到超特征,提升了小目标检测能力。文献[20]提出了Mask R-CNN 算法,将Faster R-CNN 中的ROI pooling 层换成了ROI align 层,使用双线性插值方法保留精确的空间位置,同时增加了并行的mask 分支[38],对每个ROI生成一个像素级别的二进制掩码,提升了精确度。

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

基于回归思想的目标检测直接产生目标的类别概率及位置坐标,相比于Two-stage,网络结构更加简洁,检测速度快是其最大特点。

3.1 YOLO V1

在YOLO 算法中,输入图片被划分为S*S个网格,直接在每个网格中预测物体边框和类别,每个物体边框的预测都以整张图的特征作为输入,包含了充足的上下文信息,同时提升了检测速度。YOLO V1 借鉴了Google Net 的网络设计,不同的是,YOLO 采用1*1 卷积层和3*3 卷积层替代了inception module[39],其网络结构如图5 所示。其缺点在于设定一个网格只检测两个边界框,对于同一网格存在多类目标的问题无法很好地解决,且小目标及密集群体目标的定位效果不好。

图5 YOLO V1网络结构图

3.2 SSD

SSD 的基础网络为VGG16,采用多尺度特征图检测不同目标,靠前的卷积层生成大尺度特征图,提取细节信息,用于检测小目标,而靠后的卷积层用于检测大目标;同时借鉴了anchor 思想,设置不同尺度与宽高比的先验框作为最后输出预测框的基准,减少模型训练的难度。SSD 检测精度和速度都有提高,但SSD用于检测小目标的浅层卷积数目少,低层特征丢失多,且多尺度特征金字塔[40]将图像划分为不同尺度后再处理,增加了计算量。其网络结构如图6所示。

图6 SSD网络结构图

3.3 YOLO系列优化算法及扩展

针对YOLO V1 存在的不足,后续进行了许多改进。YOLO V2 采用DarkNet-19[41]网络,通过在卷积层后加入归一化指数层、对分类网络进行预训练、引入锚框机制和细粒度特征等方法,在保证速度的基础上,提高了检测精度。YOLO V3 采用DarkNet-53 网络,借鉴了特征金字塔(FPN)思想,对不同尺度特征图进行融合,在分类时利用Logistic loss代替Softmax loss,有效地提升了小目标的检测精度[42]。

2020 年,YOLO V4 正式提出,其改进方法包括输入端使用Mosaic数据增强方法、SAT 自对抗训练法和交叉小批量标准化(CmBN)法,极大地丰富了图像的上下文信息;同时采用更高效的CSPDarknet53 网络,引入Mish 激活函数和Dropblock,对主干网络进行改进;在颈部结构上,主要采用了SPP模块、FPN+PAN 的方式,提高特征提取能力;应用遗传算法时,选择最优的超参数,解决网格敏感性问题等。相比之前,YOLO V4 不再需要使用昂贵的GPU进行训练,大大降低了训练门槛。

3.4 基于回归思想的其他目标检测算法

文献[26]提出了DSSD 算法,采用ResNet 101作为主干网络,提取更深层次的特征,同时提出基于top down 的网络结构,用反卷积代替传统的双线性插值上采样,在预测阶段引入残差单元,优化候选框回归和分类任务输入的特征图。文献[27]提出了RetinaNet 网络架构,提出了Focal loss 损失函数,对样本给予不同权重,改善了正负样本不均衡的情况。文献[43]提出了RefineNet,框架模拟了Faster R-CNN 与SSD 相互融合的思路,但特征图不需要经过池化,而是直接通过中间模块TCB进行传递,提高了检测速度。文献[44]提出了M2Det,引入了多层次特征金字塔的概念,将基础网络得到的多尺度特征叠加组合,得到新的多层次多尺度特征,以聚合浅层信息定位能力强、深层信息分类能力强的特点。文献[45]提出了CornerNet,在预测目标物体时,通过左上角和右下角的两个关键点就可以组合出目标框。

4 结语

Two-stage 算法的优化手段主要归结为:1)优化候选区域的生成,如引入RPN 网络、特征金字塔等;2)更好地获取ROI 特征,主要方法有引入SPP层、ROI池化层、对多层特征图进行融合等;3)提高算法运行速度,主要通过提高候选区域的生成效率,整合网络结构,使模型中更多模块用作共享,不仅提高了检测精度,而且压缩了冗余空间。

One-stage 的优化手段主要归结为:1)提高主干网络效率,One-stage 采用不同的基础网络VGG16、DarkNet-19、CSPDarknet53 等,通过增加更多的层数和参数来增大感受野,增强目标检测能力;2)提高获取目标能力,通过提取多尺度特征信息、引入anchor思想等,降低背景误判率,提高目标检测精度;3)改进损失函数,用改进后的Logistic loss、Focal loss等损失函数,改善正负样本不均衡问题,提升小目标的检测精度。

表1 给出了典型的目标检测网络在VOC2007和COCO数据集的性能。

表1 典型目标检测网络性能对比

通过以上分析,对未来的目标检测算法的研究方向提出几点展望:

1)优化模型的颈部设计。目标检测算法一般由在ImageNet 预训练的骨架(backbone)和用来预测对象类别和边界框的头部(head)两部分组成,颈部指在骨架和头部之间插入的用来收集不同阶段的特征图的结构,如FPN、PAN 等。在今后的研究中,可以通过优化颈部结构设计,提高目标检测效率。

2)开发更加高效的骨架或模型。近年,一些研究人员对新的骨架和模型研究取得了进展,提出了DetNet[46],DetNAS[47]等网络结构,SpineNet[48],Hit-Detector[49]等模型,这些方法在不同程度上对目标检测提供了积极影响。因此,开发新的基础网络或新模型也是未来目标检测的研究方向。

3)模型轻量化,压缩冗余空间。YOLO V4 可以适应于单GPU 训练,大大提高了效率。此外,还有一些轻量化的网络结构,如SqueezeNet[50]、MobileNet[51~52]、ShuffleNet[53~54]等。轻量化模型可以提高目标检测实时性,降低计算机资源开销,提高实际运用能力,将成为未来的重点研究方向之一。

目前,基于深度学习的目标检测算法不断兴起,本文对目前主流的一些算法进行了综述,首先简单介绍了传统目标检测算法的流程与不足,接着对基于区域思想和基于回归思想两大类目标检测算法分别进行了分析,最后对未来的目标检测算法提出了展望,在深度学习理论的发展下,目标检测一定会取得更大的进步。

猜你喜欢
候选框网络结构卷积
重定位非极大值抑制算法
面向自然场景文本检测的改进NMS算法
基于3D-Winograd的快速卷积算法设计及FPGA实现
基于Soft-NMS的候选框去冗余加速器设计*
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
一种针对特定目标的提议算法
基于互信息的贝叶斯网络结构学习
知识网络结构维对于创新绩效的作用机制——远程创新搜寻的中介作用
沪港通下A+ H股票网络结构演化的实证分析