深度学习目标检测方法及其主流框架综述 下载: 3325次
1 引言
基于深度学习的目标检测作为机器视觉中重要的任务之一,在自动驾驶、图像分类、人脸检测、视觉搜索、目标跟踪与检测、医疗诊断等领域得到广泛的应用。文献[ 1]讨论了基于视觉的目标检测与跟踪的研究进展。文献[ 2]对基于深度学习的自动驾驶技术进行了归纳分析。针对道路车辆多目标检测和车型分类难等问题,文献[ 3-5]提出了基于深度学习的车辆检测算法。文献[ 6-7]针对行为理解和智能监控分别综述了基于深度学习的目标学习算法的研究进展。文献[ 8]对基于机器视觉的缺陷检测技术进行了归纳总结。传统的目标检测算法多是基于滑动窗口模型,对特征进行手工提取和匹配有着单一性、计算复杂、适用性不佳的缺点,检测效率和准确度较差。随着机器视觉的发展,基于深度学习的目标检测技术以网络结构简单高效的特点,超越了传统算法,准确度和效率大幅提升,逐渐成为当前的主流算法。
目标检测算法模型主要分为anchor-based类模型和anchor-free类模型,其中anchor-based类模型又分为基于回归的one-stage和基于候选框生成与分类的two-stage方法,one-stage方法不需要预生成候选框,只需要完成特征抽取、分类和定位回归三个任务;two-stage方法主要有4个任务:特征抽取、生成候选框、分类和定位回归。在检测性能上,one-stage方法检测速度更快,适合在移动终端等平台上使用,而two-stage方法需要生成目标候选区域,可获得较丰富的特征和较高的准确率,但检测速度比较慢。
基于以上分析,对基于深度学习的目标检测算法及主流神经网络框架进行总结和比较。梳理了主流卷积神经网络框架,分析了网络结构和算法性能及优缺点;从one-stage和two-stage两个方面对目标检测算法的anchor-based类模型进行深入分析;从anchor-free类模型早期探索、基于关键点和密集预测进行深入剖析;针对基于深度学习的目标检测算法的未来研究趋势和应用方向进行了思考和展望。
2 主流的卷积神经网络框架
2.1 LeNet
1998年,LeNet由在深度学习领域有着三巨头之一美誉的LeCun等[9]提出,这是最早、最著名的神经网络结构之一。LeNet主要用于识别手写字符,最高识别准确率为98%。LeNet奠定了现代卷积神经网络的基础。
2.2 AlexNet
为了增加LeNet网络的深度和广度,2012年,Krizhevsky等[10]设计了AlexNet网络,以极大的优势赢得了当年的ImageNet[11]大规模视觉识别挑战赛(ILSVRC),证明了复杂模型下卷积神经网络的有效性,建立了神经网络在计算机视觉领域中的主导地位。
AlexNet的结构和参数设置如
2.3 VGGNet
VGGNet[15]是由Google DeepMind公司和牛津大学计算机视觉组联合提出的深度卷积网络,它证明网络深度是影响性能的关键因素。该网络有着良好的泛化性能,易于移植到别的图像识别项目,并可下载VGGNet已经训练好的参数以实现良好的初始化权重操作。许多卷积神经网络都是基于VGGNet,如FCN[16](fully convolutional networks)、UNet[17]、SegNet[18]等。VGGNet版本很多,常用的是VGG16、VGG19网络。
VGG16的网络结构如
2.4 GoogLeNet
GoogLeNet是Szegedy等[19]提出的一种全新深度学习结构,网络结构和VGGNet类似,在主干卷积环节使用5个模块,模块之间使用步幅为2的3×3最大池化层以减小输出的高和宽。区别于VGG在不同层通过增加loss损失函数和inception结构两种方式,GoogLeNet的好处是很大程度上加深和加宽了网络,减少了参数量,将错误率降至6.656%,但该模型的计算复杂度高,修改通道数困难。
如
2.5 ResNet
2015年He等[20]提出ResNet网络,使用152层超深卷积神经网络对输入数据进行训练,取得较好的效果。ResNet网络在5个重要任务轨迹中都是最好的:对于ImageNet分类任务,错误率为3.57%;对于ImageNet检测任务,准确率超过第二名16%;对于ImageNet定位任务,准确率超过第二名27%;对于COCO检测任务,准确率超过第二名11%;对于COCO分割任务,准确率超过第二名12%。这让ResNet成为目前最好的卷积神经网络模型之一。
ResNet的创新点是:1)实现了深层的神经网络结构,解决了因不断深化神经网络而使得准确率达到饱和的问题;2)输入和输出能直接相连,这样学习残差就是整个网络的工作,很好地简化了学习目标与难度;3)ResNet是一种迁移性很好的网络结构,易于与其他网络集成。
2.6 DenseNet
Huang等[21]提出了DenseNet网络,主要构建模块是稠密块和过渡层。稠密块为稠密连接的highway的模块,过渡层为相邻2个稠密块的中间部分。稠密块定义输入和输出的连接方法,过渡层用于确定通道数。稠密块内部特征图大小必须一致,层级输入是多个字符串的连接,区别于ResNet的element-wise连接,内部每个节点代表BN+ReLU+Conv。
传统卷积神经网络中,如果有L层,就有L个连接,但在DenseNet中,每个稠密块都利用该模块中前面所有层的信息,如
3 Anchor-based类模型
目前主流的anchor-based类目标检测方法分为two-stage的目标检测算法和one-stage的目标检测算法。Two-stage方法将通过算法得到的一系列候选框作为样本,由卷积神经网络完成样本分类。One-stage方法没有生成候选框环节,直接把目标边框的定位问题转换为回归问题。在检测准确率和定位精确度上two-stage方法较优,而one-stage方法的检测速度更快。
图 7. 2013年11月至2019年10月目标检测算法总览
Fig. 7. Overview of target detection algorithms proposed from November 2013 to October 2019
3.1 Two-stage方法
3.1.1 R-CNN
2013年Girshick等[22]提出R-CNN(region-based convolutional neural networks),将PASCAL VOC2007测试集的mAP提高到了58.5%。经过改进的R-CNN将在该数据集上的mAP提高到66%,在ILSVRC 2013数据集上的mAP提高至31.4%。
R-CNN主要缺点:1)重复计算量大,约有2000个候选框的方案中,每个候选框都需要经过backbone网络单独提取特征,候选框会重叠,产生大量重复计算;2)训练测试复杂,候选区域获取、特征获取、分类和回归都是单独运行的,中间数据也是单独保存的;3)速度缓慢,前两个缺点是R-CNN速度慢的主要原因,难以满足实时性需求;4)输入图像大小的限制,输入图像大小被强制缩小为277 pixel×277 pixel,这将导致检测目标对象形变,使检测性能下降;5)需要进行SVM与特征回归的后期操作,并在SVM与特征回归期间不学习更新CNN特征。
R-CNN创新点:1)将大规模的卷积神经网络(CNNs)应用于自下而上的候选区域以定位和分割对象;2)当标记的训练集不足时,对辅助任务执行监督训练,然后执行特定任务的优化,提高模型性能。
3.1.2 SPP-Net
针对卷积神经网络重复运算和形状扭曲变形等问题,He等[24]基于R-CNN于2015年提出SPP-Net (Spatial Pyramid Pooling Networks)算法。SPP-Net舍弃了R-CNN在输入神经网络之前剪裁候选框和图像子块缩放操作,在卷积层与全连接层中间添加SPP (spatial pyramid pooling)结构,提升了候选框的生成速率,节省了计算开销。SPP-Net实现示意图如
SPP-Net缺点:1)与R-CNN设计相同,训练经历了多个阶段,中间特征数据也必须保存,增加了时间开销;2)分类网络的初始参数被承接到backbone网络中,并未针对检测问题进行优化;3)训练样本的大小不一致,这将增大候选框的ROI感受野,权重不能被神经网络快速更新;4)SPP中的微调只更新SPP层后面的全连接层,当网络很深时这样做难以奏效。
SPP-Net创新点:1)利用空间金字塔池化结构;2)对整张图片只进行一次特征提取,运算速度较快。
3.1.3 Fast R-CNN
针对SPP-Net存在的问题,Girshick等[25]于2015年提出Fast R-CNN (fast region-based convolutional neural networks),改进了ROI pooling层,将不同大小候选框的特征图采样成大小固定的特征。ROI池化层的功能和SPP层类似,但ROI更简单,仅采用单个尺度来划分网格和池化,该层可以直接执行求导操作,并直接将梯度传输到backbone网络。该算法针对在训练期间多阶段和特征重复计算造成的时间代价及中间特征数据需要存储造成的空间成本问题进行了研究,把深度网络与SVM分类相结合,构成multi-task模型,分类和回归由全连接层网络同时执行[26]。把R-CNN在PASCAL VOC2007数据集中训练的时间从84 h缩短到9.5 h,检测时间从45 s缩短到0.32 s。
3.1.4 Faster R-CNN
SPP-Net与Fast R-CNN都需要单独的候选区域模块,该模块运算量大。为了解决该问题,Ren等[27]在Fast R-CNN的基础上提出Faster R-CNN (faster region-based convolutional neural networks)算法。如
图 12. R-CNN,Fast R-CNN,Faster R-CNN实现过程对比
Fig. 12. Implementation process comparison of R-CNN, Fast R-CNN, and Faster R-CNN
表 1. R-CNN,Fast R-CNN,Faster R-CNN对比
Table 1. Comparison of R-CNN, Fast R-CNN, and Faster R-CNN
|
3.1.5 R-FCN
针对Faster R-CNN仅学习ROI池化层以前的卷积网络特征参数,2016年Dai等[29]基于FCN提出R-FCN方法,用基于位置敏感分布的卷积网络替换ROI池化层后的全连接网络[30-31],降低了ROI池化层后网络对各个样本区域的计算时间成本。R-FCN整个网络实现特征共享,缓解了目标分类对平移不变性的要求及目标检测对有平移变化要求之间的矛盾,主要不足是缺乏对候选区域全局信息与语义信息的利用。
R-FCN沿用了Faster R-CNN的框架结构,区别在于引入位置敏感的分图取代ROI-wise subnetwork,位置敏感的分图使用ROI Pooling来完成信息采样,融合分类与位置信息。R-FCN在PASCAL VOC2007上的准确率为79.5%,每个样本测试的平均时间为170 ms,比Faster R-CNN快2.5~20倍。R-FCN会在得到特征图谱时生成一个随着分类类别数线性增长的channel数,其好处是能提升目标检测精度,但检测速度会减小,实时性变差。
3.1.6 FPN
FPN(feature pyramid network)算法由Lin等[32]在2016年提出。FPN改进了CNN网络对特征的提取方式,让特征能更好地表达出图片各个维度的信息。低层特征只有较少的语义信息,但目标位置准确;高层特征拥有丰富的语义信息,但目标相对粗糙。FPN很好地将低层特征的高分辨率和高层特征的语义信息相结合,同时使用不同层的特征来实现预测。
FPN的预测是在各个特征层上独立执行,让深层特征经过上采样与低层特征进行融合,再用3×3的卷积核卷积各个合并结果,以消除上采样的混叠效应。FPN主要分为三步:1)从下到上不同维度的特征生成;2)从上到下对特征进行补充增强;3)输出的不同维度特征和CNN网络提取的特征之间的关联表达。
3.1.7 Mask R-CNN
针对two-stage方法中以R-CNN为代表存在检测速度慢的问题,2020年He等[33]提出Mask R-CNN算法。Faster R-CNN在进行ROI池化和下采样时对特征图大小都进行取整运算,这使检测任务,特别是语义分割这种像素级任务的精度深受影响。如
Mask R-CNN在实例分割和检测精度方面都达到当时的最高水准,即使其后的一些算法对其性能有所提高,但基本都保持在同一层次。该算法的最大缺陷是检测速度难以满足实时需要,标注代价过于昂贵也是实例分割面临的一大问题。
3.1.8 MegDet
基于CNN的物体检测研究一直在进步,从R-CNN到Fast/Faster R-CNN,再到Mask R-CNN,新的网络结构,新的范式或新的损失函数是主要的改进方式。然而目前的研究仍然缺乏对训练中的关键因素mini-batch的关注。
2017年Peng等[35]提出一种大mini-batch的目标检测算法MegDet,使用更大的mini-batch来训练网络,mini-batch大小从16增加到256,并且在训练时多块GPU能被高效地联合使用(在文献[ 35]中最多用了128块GPU),极大缩短了训练时间。同时,MegDet解决了Batch Normalization统计不准确的问题,建立了一种学习率的选择策略和跨GPU的批量标准化[36]方法,当二者被一起使用时,mini-batch物体检测器的训练时间减少,且可获得更高的检测准确度。
3.1.9 Two-stage目标检测相关改进工作
RCNN解决了为什么不用CNN进行分类的问题,但该方法要进行边界框回归操作和SVM 分类。Fast-RCNN解决了bounding box和label不能共同输出的问题,但选择搜索候选区域的时间太长,Faster-RCNN解决了选择搜索的问题。Mask-RCNN是一个灵活的框架,可以完成目标分类和检测、语义和实例分割、人体姿势识别等多种任务。之后的two-stage目标检测算法基本都离不开RCNN。如MR-CNN[37]联合三种方法来精修样本边框,提高了定位效果。HyperNet[38]综合网络低中高多个层级的特征形成Hyper特征图。CRAFT[39]在生成候选框和候选框分类两个阶段增加不同的分类器,对候选区域进行筛选和更准确的位置回归。A-Fast-RCNN[40]使用对抗学习机制,增强对遮挡与变形目标的检测效果。针对two-stage方法速度慢的问题,Light-Head R-CNN[41]设计一种新的两阶段检测结构。Cascade R-CNN[42]通过逐步提高判别正负样本的IoU(Intersection over Union)阈值,以保证在样本数不减少的前提下训练出高质量的检测器。SNIP[43]利用图片金字塔在训练期间减少尺寸差异,解决了检测数据集上尺寸极端变化的问题。NAS-FPN[44]是对RetinaNet框架的改进,NAS使用强化学习训练控制器,从给定的搜索空间里选择最优的模型架构。TridentNet[45]针对卷积核难以充分训练不同尺寸目标的问题,提出不同分支参数共享策略。
3.2 One-stage方法
3.2.1 OverFeat
2013年Sermanet等[46]提出OverFeat方法。OverFeat的候选框是通过滑动窗口和规则块获得,然后通过多尺度滑动窗口来改善检测结果,缓解了图像目标形状复杂、尺寸不同造成的特征学习困难问题。最后,利用卷积神经网络与回归模型对目标进行分类和定位。OverFeat是第一个同时处理分类、定位及目标检测多个计算机视觉任务的算法,mAP为24.3%的成绩夺得ILSVRC 2013任务3(分类+定位)的桂冠,但很快就被同期的R-CNN算法超越了。
3.2.2 YOLO
2015年Redmon等[47]提出了继承OverFeat的YOLO(you only look once)方法,其检测速度达到45张/s,速度优势让它成为了端到端的领跑者。YOLO与two-stage类检测方法的主要区别在于使用图像的全局信息来预测目标,将输入图像大小调整为固定的448 pixel×448 pixel,对不同位置的对象检测效果更好。输入样本会被分成7 pixel×7 pixel的网格,每个网格单元负责预测对象中心落在该网格中的目标。另一方面,YOLO只分析最后7 pixel×7 pixel的特征图谱,导致对小目标的检测质量不佳,难以区分多个目标在同一个网格单元的情况。
为了简化网络结构,YOLO去掉了提取候选框分支(proposal阶段),用一个无分支卷积网络来提取特征、回归候选框和分类,直接预测各网格内的边框坐标以及所有类别的置信度。训练时使用P-ReLU激活函数。YOLO的检测速度较Faster R-CNN提高了10倍,这一革新使得基于深度学习的目标检测算法满足实时性检测的需求。
3.2.3 SSD
针对YOLO算法定位精度差的问题, Liu等[48]提出了一种结合YOLO回归思想与Faster R-CNN的anchor box机制的SSD(single shot multi box detector)方法,使用VGG16基础网络作为特征提取网络,为检测不同尺度的目标,在前面卷积层输出的特征图中检测小的目标,大的目标则在后面卷积层传递的特征图中被检测。多尺度区域的局部特征图被用于回归整个图像上的所有位置边框,兼顾了Faster R-CNN算法边框定位准确和YOLO算法快速的优点。用PASCAL VOC2007数据集测试300 pixel×300 pixel的输入图像,取得59 frame/s的运算速度(Titan X的GPU)、76.8%的mAP的好成绩。
该方法的主要创新点包括多尺度特征检测、匹配策略、修改VGG16结构、加入atrous算法[49]等;其主要缺点:1)采用多层级特征分类,使末尾卷积层的感受野很大,导致小目标的特征较模糊,不利于检测;2)当没有候选区域时,难以回归,易导致不收敛问题。
3.2.4 DSSD
针对SSD算法难以检测小目标的问题, Fu等[50]提出了DSSD(de-convolutional single shot detector)方法。用ResNet101网络取代SSD的VGG16,增强了网络提取特征的能力。DSSD借鉴FPN的思路,利用反卷积结构从高维空间传递出图像的深层特征,合并浅层信息,让各层次之间的图像语义关系相结合。预测模块结构将各层次之间特征相结合,输出目标预测类别信息。DSSD有两个特殊结构:预测模块和反卷积模块,前者是为提高准确性和防止梯度直接流入ResNet主网络而采用增强每个子任务表现力的方法。
通过实验对比发现,DSSD对于小目标鲁棒性较差,主要有两个贡献:1)DSSD用ResNet网络取代SSD的VGG16,提取网络特征的能力得以提高;2)用反卷积层增加了大量上下文信息。
3.2.5 YOLOv2/YOLO9000
Redmon等[51]对YOLO网络结构进行了改进,提出了YOLOv2和YOLO9000方法。YOLOv2用Darknet19作为特征提取网络,并添加Batch Normalization进行预处理。该方法训练了一个高分辨率(448 pixel×448 pixel)的分类网络,提高了输入图像的分辨率,mAP提高4%。YOLO通过将单个网格单元合并成全连接层来预测边框,丢失较多的空间信息,不利于目标定位。YOLOv2对此进行了改进:1)增加候选框的预测并用强约束定位方法,使算法召回率有了很大提高;2)为更好地检测小目标,融合了图像细粒度特征,使浅层特征和深层特征相结合;3)YOLOv2借鉴Faster R-CNN的anchor机制,为得到更好的anchor模板,采用K-Means聚类方法来聚类计算训练集;4)为使模型更稳定,针对网格单元采取预测其相对坐标位置的方法,再用逻辑函数对ground truth进行归一化处理。
3.2.6 RetinaNet
One-stage方法的准确率不及two-stage方法是因为样本类别不均衡。由于one-stage方法中的交叉熵损失函数不能抵制类别极不平衡,所以RetinaNet[52]采用focal loss替换交叉熵损失函数,降低分类良好样本的分类损失,将训练重点放在一组稀疏的样本上,防止在训练期间大量易辨识的负例给检测器带来压制影响。
RetinaNet是为了评估分类损失的有效性而设计的,主要由ResNet、FPN及两个FCN子网络组成,效果最好的RetinaNet结构是以ResNet-101-FPN为基本框架,其在COCO测试集上的mAP为39.1%,速度为5 frame/s,精度超过同期所有two-stage的检测器。FPN针对ResNet中形成的多尺度特征进行强化,获得表达力更强、包含多尺度目标区域信息的特征图谱,最后在FPN的特征图谱集合上分别使用两个结构相同但不共享参数的FCN子网络,完成目标框类别分类和Bbox位置回归任务。
3.2.7 YOLOv3
YOLOv3[53]使用YOLOv2的Darknet53网络,并与FPN网络结构相结合,再由卷积网络得出预测结果。相应改进使YOLOv3与SSD相当的精确度下达到22.2 ms/张的速度,并在COCO test-dev上IoU的阈值为0.5时mAP值达到33.0%,与RetinaNet的结果相近,速度快了4倍,但整体模型变得更加复杂,与速度和精度相互制衡。
3.2.8 One-stage改进工作
YOLO核心是用整张图作为网络输入,直接在输出层回归边界框的位置和类别。YOLOv2舍弃了YOLO的全连接层,用anchor预测边界框。针对距离近的物体,YOLOv3有很好的鲁棒性,超越了SSD512。针对Faster RCNN只能在一层特征图上预测目标的问题,SSD在不同特征图上进行预测,其缺点是不同anchors的设置较麻烦。DSSD的核心思想是利用中间层的上下文信息,并提出了自己的预测模块。RetinaNet针对类别不均衡问题提出一种新的损失函数,即focal loss。关于One-stage的更多工作:G-CNN[54]避免直接从大量的候选框中搜索目标,解决了检测效率受限于proposal体量的问题。R-SSD[55]通过增加不同层特征之间的联系和特征金字塔中特征图的数量来缓解SSD中候选框对同一个对象进行重复检测和小目标检测效果不佳的问题。DSOD[56]也是对SSD的改进,用DenseNet网络提取特征,优化梯度消失、模型参数量大及输入图像信息缺失的问题。RON[57]综合两类方法的优点,对多尺度目标定位与负样本空间更加关注,能直接预测各个特征图谱所有位置的最后结果。STDN[58]提出利用尺度转移模块来获取不同分辨率的特征图,既不增加参数和计算量又实现了网络正确率和速度的提升。PFPNet[59]采用SSD的思想来保持运算速度,采用SPP的思想并用MSCA模块进行特征融合,提高了目标检测效果。M2Det[60]基于多级特征金字塔网络MLFPN,结合SSD,在COCO数据集上达到同样的精度时比YOLOv3运算速度更快。
4 Anchor-Free类模型
经典的YOLO方法是最早的Anchor-Free模型之一,最近较知名的Anchor-Free模型有FASF[61]、FCOS[62]、FoveaBox[63]等。下面将从早期探索、基于关键点、密集预测三个部分来介绍有代表性的Anchor-Free模型。
4.1 早期探索
DenseBox[64]于2015年9月在arxiv上被发布,DenseBox基于VGG19,主要贡献包括三点:1)证明了单个FCN网络可以检测出遮挡严重、多尺度的目标;2)提出了新的FCN模型,不需区域提议,可被用于训练端到端网络;3)结合了多任务学习,使精度进一步提高。
DenseBox与YOLO有以下区别:1)DenseBox用于人脸检测,检测类别有人脸和背景两类,而YOLO是通用检测,检测类别数超过两类;2)DenseBox是密集逐像素预测,而YOLO是先将图片网格化,再预测每个单元格;3)DenseBox的真值是由Bbox中心圆形区域来确定,而YOLO的真值是由Bbox中心点所在的单元格确定。
4.2 基于关键点
1) CornerNet与ExtremeNet
2018年,Law等[65]提出了CornerNet算法,主要贡献包括:1)通过检测Bbox的一对角点来检测目标;2)提出角合并(corner pooling),以更好地定位Bbox的角点。
ExtremeNet[66]提供了一种目标检测的新方向:先采用标准关键点估计网络来检测4个极值点和1个中心点,然后通过几何关系对提取到的关键点进行分组,一组极值点对应一个检测结果,使得目标检查问题转化成一个纯粹的基于外观信息的关键点估计问题,避开了区域分类和隐含特征学习。
CornerNet与ExtremeNet的区别在于:1)CornerNet用预测角点来检测目标,而ExtremeNet是用预测极值点和中心点来检测目标;2)CornerNet通过角点embedding之间的距离来判断是否为同一组关键点,而ExtremeNet通过枚举极值点、经过中心点判断4个极值点是否为一组。
2) CenterNet
CenterNet[67]模型的结构简单,用三种内部结构不同的网络进行目标检测,并用三个网络来输出预测值。在训练和检测中,如果两个物体在ground truth中的中心点重叠,会被当成一个物体。该模型的思想不仅可用于2D目标检测,而且只要略微扩展就可用于3D检测和人体姿态识别。这种轻量级的模型对于算力较小的嵌入式端平台有着一定的优势。
CenterNet相比CornerNet有了改进,其检测速度和精度相比one-stage和two-stage方法都有提高。CenterNet舍弃了anchor,没有正负anchor的判断。因每个目标只对应一个中心点,该中心点通过heatmap预测得到,所以不需NMS进行筛选,直接检测目标的中心点和大小。CenterNet没有FPN结构,所有中心点来自一个feature map,因此分辨率不能太低。
4.3 密集预测
1) FSAF
FSAF是一种目标探测器的特征选择anchor-free模块,它能添加具有FPN结构的single-shot探测器。FSAF模块打破了anchor-based检测的两个局限性:1)启发式引导特征选择;2)基于覆盖锚取样。FSAF在COCO数据集上的mAP达到44.6%。
FSAF是基于FPN的单阶段方法中的RetinaNet网络,如
2) FCOS
FCOS模型的结构主要包括FPN和box regression、classification、center-ness三个分支。其中center-ness分支可筛除低质量的预测,使性能得到巨大提升,但该分支的优化目标不稳定,训练时loss基本不降低,影响其他两个分支的预测。对于box regression分支的优化,由于FCOS完全不依赖anchor box,没有anchor先验,损失会略高于RetinaNet的回归部分,但为了保证算法效果,RetinaNet需要较多的anchors,存在正负样本类别不均衡问题,其优点是少了很多超参数,如anchor number、anchor size、anchor ratio等;在训练时,box regression分支省去了IoU计算,提速非常大,但它自身的计算时间较长。除此之外, center-ness targets和regression targets的优化也是值得研究的方向。 FCOS的主要优点:1)将检测和其他使用FCN的任务统一,重用这些任务的思想;2)proposal free和anchor free减少了超参数的设计;3)不使用trick,达到了单阶段检测的最佳性能;4)经过小的修改,可将其立即拓展到其他视觉任务上。
3) FoveaBox
FoveaBox的总体设计思想为anchor-free,无需定义anchor的相关参数,但其他参数不能缺少,如每层区域范围、正样本区域的缩放因子等。但在预测坐标方面,与DenseBox和UnitBox[68]不同,FoveaBox未直接学习目标中心到4个边的距离,而是学习一个预测坐标与真实坐标的映射关系。
FoveaBox包括基础网络和两个子网络,子网络分别用于预测分类和预测边界框。主干网络负责计算输入样本上的卷积特征图谱。第一个子网络对基础网络的输出进行逐像素分类;第二个子网络在对应位置上进行Bbox预测。与anchor-based的方案相比,FoveaBox有以下优点:1)在每个位置上只预测一个目标,因此输出空间为anchor-based方法的1/A,其中A是每个位置的anchor数量;2)没有位置定义,优化的目标更为直接;3)没有anchor,使用更灵活,检测网络更加简单直接,扩展性更好,FoveaBox在COCO数据集上的mAP为42.1%。
4.4 Anchor-Free类模型区别与改进总结
CenterNet精度高,核心思想是通过中心点抑制误检。用物体中心点对提取到的bounding box进行过滤,如果box的中间区域没有中心点,则认为此box不可靠。CenterNet用两个角点和一个中心点来表示,Objects as Points[69]用一个中心点和长、宽值来表示, FCOS用点到框的4个距离来表示,Grid-RCNN[70]用N×N个点来表示,ExtremeNet用4个极值点和1个中心点来表示。Objects as Points速度快,用中心点完成尽可能多的任务,通过检测中心点及预测各种长宽和offsets,不仅能进行二维检测,还能进行三维检测。CornerNet-Lite[71]是CornerNet的两种有效变体的组合:CornerNet-Saccade追求高准确率的同时,尽可能提高速度;CornerNet-Squeeze追求高实时性的同时,尽可能提高准确率。
FSAF、FCOS、FoveaBox的相同点包括:1)利用FPN来进行多尺度目标检测;2)将分类和回归解耦成2个子网络来处理;3)通过密集预测进行分类和回归。FSAF、FCOS、FoveaBox的区别在于:1)FSAF和FCOS是对到4个边界距离进行回归预测,而FoveaBox回归预测的是一个坐标转换;2)FSAF通过在线特征选择来提升性能,FCOS通过center-ness分支剔除低质量Bbox以提升性能,FoveaBox通过只预测目标中心区域来提升性能。
DenseBox、YOLO、FSAF、FCOS、FoveaBox的相同点是通过密集预测进行分类和回归,区别在于:1)DenseBox、YOLO只进行单尺度目标检测,而FSAF、FCOS、FoveaBox利用FPN进行多尺度目标检测;2)DenseBox、YOLO将分类和定位进行统一,而FSAF、FCOS、FoveaBox将分类和回归解耦成2个子网络来得到。
5 思考与展望
近年来目标检测的研究主要集中在特征表达增强上,为此相继提出了混合特征图、特征金字塔以及特征注意力单元等,并取得了较好的研究成果。但在目标检测的研究道路上还有很多需要解决的难题,下面将面临的问题和未来发展方向归纳为三方面:
1) 网络结构方面
基础网络结构的改进开发也是提高目标检测效果的重要途径之一。针对Backbone特征抽取器,可以考虑设计更有效的分类器。结合信息流和特征复用假设使网络层数不断加深,一直是 CNN 发展的主要方向之一。跨网络层连接特征图是卷积神经网络的核心范式,怎样使连接方式更有效也是研究的热点方向。
对于anchor-based、anchor-free类模型,可从以下方面进行改进:使ROI之间共享更多计算量,充分利用CNN提取的特征,从精简网络结构、模型压缩、优化IoU和损失函数、软硬件协同设计等方面减小复杂度,提升模型检测性能。对于anchor-based,预选框参数要根据具体的任务而定,调参费时费力,一定程度上抑制了模型的迁移能力。此外,anchor设定很重要,要最大可能地覆盖对象尺寸和宽高比,因anchor是提前设定的,训练期间不会自适应变化,对此让对象检测器自己学习anchor,成为了一种新的研究方向。新的实例分割方法anchor-free网络结构简单,期待其灵活性带来新的方法和思路,另外针对关键点定位组合的问题和在不使用ROI Pooling的情况下解决feature align问题可以进行更多的研究。
2) 信息融合方面
不同层级语义信息融合:神经网络的低层通常保留了比较多的细节特征;而高层通常有更好的语义特征,从低层特征图和高层语义能得到更多有助于目标检测的信息,分割与语义信息相结合,使之能得到更准确的预测边界框。所以不同层之间的特征融合也是一个研究热点。
场景信息的融合:目前的目标检测都是把前景从背景中脱离出来,这样场景信息没有被利用,场景信息有着丰富的环境上下文信息,深入分析和充分利用场景信息,可以获取场景的先验知识,减少复杂的背景和与目标相似物体的干扰;此外,利用场景信息为目标检测提供更多的线索,能提升检测与跟踪算法的准确性与鲁棒性。因此,对前景目标信息与背景信息的融合、目标状态与场景信息的融合的研究,将有益于优化算法实用性能。
多层级的与多维度的信息相结合:目前的追踪和检测算法一般是将时域和频域等特征的信息相结合来对运动目标进行检测,但是这些算法就维度和层级而言都比较单一,如何将时间和推理等多维度与特征和决策等多层级的、多源的、互补的信息相结合,以提高检测和追踪的效果也是研究者可以思考的方向。
3) 实际应用方面
小目标检测:实际应用中小目标作为一个重要的对象,其分辨率低,像素少,信息量少,训练数据难以标记,目前还没有出现对小目标检测效果比较好的算法。小目标检测一直是该领域具有挑战性的难题,当前小目标检测算法主要是对目标检测算法进行的优化和改进,这成为小目标检测研究的重点方向。
实际应用场景检测:目标检测应用到实际场景中时,怎样获得更多又全面的数据集是一大难题。对于运动目标的检测与跟踪,现有模型主要针对特定环境下的运动目标进行研究,难以应用到复杂的自然环境中去,未来可对该方向进行更多的研究;对于更多的实际应用,如复杂背景中的目标检测、多尺度目标检测、特定任务的目标检测等都将是该领域需要深入研究的课题。
6 结束语
在图像中搜索到感兴趣的对象并确定其大小和位置,即目标检测是机器视觉核心问题之一。各种对象呈现的方式千差万别(如不同的外观、姿态、形状)和采集数据时的环境不同(如光照、重叠等因素),使目标检测成为机器视觉领域中最富有挑战性的任务之一。回顾了机器视觉领域中基于深度学习的目标检测算法及主流框架。对该领域面临的难题和未来发展的方向进行了展望。随着研究人员对深度学习技术在各个图像领域应用的深入研究,新的理论和新的方法也在逐渐增多。基于回归思路的one-stage方法和基于候选框生成与分类的two-stage方法的结合,以及anchor-based类模型和anchor-free类模型的结合,获得了不错的进展,这为该领域的研究提供了较好的基础。
[1] 尹宏鹏, 陈波, 柴毅, 等. 基于视觉的目标检测与跟踪综述[J]. 自动化学报, 2016, 42(10): 1466-1489.
Yin H P, Chen B, Chai Y, et al. Vision-based object detection and tracking: a review[J]. Acta Automatica Sinica, 2016, 42(10): 1466-1489.
[2] 张新钰, 高洪波, 赵建辉, 等. 基于深度学习的自动驾驶技术综述[J]. 清华大学学报(自然科学版), 2018, 58(4): 438-444.
[3] 李汉冰, 徐春阳, 胡超超. 基于YOLOV3改进的实时车辆检测方法[J]. 激光与光电子学进展, 2020, 57(10): 101507.
[4] 李珣, 时斌斌, 刘洋, 等. 基于改进YOLOv2模型的多车辆目标识别方法[J]. 激光与光电子学进展, 2020, 57(10): 101010.
[5] 王得成, 陈向宁, 赵峰, 等. 基于卷积神经网络和RGB-D图像的车辆检测算法[J]. 激光与光电子学进展, 2019, 56(18): 181003.
[7] 黄凯奇, 陈晓棠, 康运锋, 等. 智能视频监控技术综述[J]. 计算机学报, 2015, 38(6): 1093-1118.
Huang K Q, Chen X T, Kang Y F, et al. Intelligent visual surveillance: a review[J]. Chinese Journal of Computers, 2015, 38(6): 1093-1118.
[8] 李少波, 杨静, 王铮, 等. 缺陷检测技术的发展与应用研究综述[J/OL]. ( 2019-04-04)[2019-11-26]. https:∥doi.org/10. 16383/j.aas.c180538.
Li SB, YangJ, WangZ, et al. and application of defect detection technology[J/OL]. ( 2019-04-04)[2019-11-26]. https:∥doi.org/10. 16383/j.aas.c180538.
[9] LeCun Y, Bottou L, Bengio Y, et al. Gradient-based learning applied to document recognition[J]. Proceedings of the IEEE, 1998, 86(11): 2278-2324.
[10] KrizhevskyA, SutskeverI, Hinton GE. ImageNet classification with deep convolutional neural networks[C]∥Proceedings of the 25th International Conference on Neural Information Processing Systems, December 3-6, 2012, Lake Tahoe, Nevada. New York: ACM, 2012, 1: 1097- 1105.
[11] Image data set[Online]. [2019-11-11].http:∥www.image-net.
[12] 杨观赐, 杨静, 李少波, 等. 基于Dopout与ADAM优化器的改进CNN算法[J]. 华中科技大学学报(自然科学版), 2018, 46(7): 122-127.
Yang G C, Yang J, Li S B, et al. Modified CNN algorithm based on Dropout and ADAM optimizer[J]. Journal of Huazhong University of Science and Technology (Natural Science Edition), 2018, 46(7): 122-127.
[13] NairV, Hinton GE. Rectified linear units improve restricted Boltzmann machines[C]∥Proceedings of the 27th International Conference on Machine Learning(ICML), Haifa, 2010: 807- 814.
[14] Yang J, Li S B, Gao Z, et al. Real-time recognition method for 0.8 cm darning needle and KR22 bearing based on convolution neural network and data increase[J]. Applied Sciences, 2018, 8(10): 1857.
[15] SimonyanK, Zisserman A. Very deep convolutional networks for large-scale image recognition[EB/OL]. ( 2014-09-04)[2019-11-26]. https:∥arxiv.org/abs/1409.1556v1.
[16] Shelhamer E, Long J, Darrell T. Fully convolutional networks for semantic segmentation[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(4): 640-651.
[17] RonnebergerO, FischerP, Brox T. U-Net: convolutional networks for biomedical image segmentation[EB/OL]. ( 2015-05-18)[2019-11-26]. https:∥arxiv.org/abs/1505. 04597.
[18] BadrinarayananV, HandaA, Cipolla R. SegNet: a deep convolutional encoder-decoder architecture for scene segmentation[EB/OL]. ( 2015-11-01)[2019-11-26]. http:∥de.arxiv.org/pdf/1511. 00561.
[19] SzegedyC, LiuW, JiaY, et al. ( 2014-09-17)[2019-11-26]. https:∥arxiv.org/abs/1409. 4842.
[20] HeK, ZhangX, RenS, et al. ( 2015-12-10)[2019-11-26]. https:∥ arxiv.org/abs/1512. 03385.
[21] HuangG, LiuZ, Laurens V DM, et al.( 2016-08-25)[2019-11-26]. https:∥arxiv.org/abs/1608. 06993.
[22] GirshickR, DonahueJ, DarrellT, et al. and semanticsegmentation[EB/OL]. ( 2013-11-11)[2019-11-26]. https:∥arxiv.org/abs/1311. 2524.
[23] van de Sande K E A, Uijlings J RR, GeversT, et al. Segmentation as selective search for object recognition[C]∥2011 International Conference on Computer Vision, November 6-13, 2011, Barcelona, Spain. IEEE, 2011: 154- 171.
[25] Girshick R. FastR-CNN[EB/OL]. ( 2015-04-30)[2019-11-26]. https:∥arxiv.org/abs/1504. 08083.
[26] ScholkopfB, PlattJ, Hofmann T. Multi-task feature learning[EB/OL]. ( 2006-12-04)[2019-11-26]. https:∥dl.acm.org/ citation.cfm?id=2976462.
[27] Ren S Q, He K M, Girshick R, et al. Faster R-CNN: towards real-time object detection with region proposal networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(6): 1137-1149.
[28] Hosang J, Benenson R, Dollar P, et al. What makes for effective detection proposals?[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2016, 38(4): 814-830.
[29] DaiJ, LiY, HeK, et al. ( 2016-05-20)[2019-11-26]. https:∥arxiv.org/abs/1605.06409?context=cs.
[30] AgrawalP, GirshickR, Malik J. Analyzing the performance of multi-layer neural networks for object recognition[EB/OL]. ( 2014-07-07)[2019-11-26]. https:∥arxiv.org/abs/1407. 1610.
[31] Hinton G E, Srivastava N, Krizhevsky A, et al. Improving neural networks by preventing co-adaptation of feature detectors[J]. Computer Science, 2012, 3(4): 212-223.
[32] Lin TY, DollarP, GirshickR, et al. ( 2016-12-09)[2019-11-26]. https:∥arxiv.org/abs/1612. 03144.
[33] He K M, Gkioxari G, Dollar P, et al. Mask R-CNN[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2020, 42(2): 386-397.
[34] XieS, GirshickR, DollarP, et al. ( 2016-11-16)[2019-11-26]. https:∥arxiv.org/abs/1611. 05431.
[35] PengC, XiaoT, Li ZM, et al. ( 2017-11-20)[2019-11-26]. https:∥arxiv.org/abs/1711. 07240.
[36] Qin L K, Gong Y F, Tang T Q, et al. Training deep nets with progressive batch normalization on multi-GPUs[J]. International Journal of Parallel Programming, 2019, 47(3): 373-387.
[37] GidarisS, Komodakis N. Object detection via a multi-region & semantic segmentation-aware CNN model[EB/OL]. ( 2015-05-07)[2019-11-26]. https:∥arxiv.org/abs/1505. 01749.
[38] KongT, Yao AB, Chen YR, et al. and joint objectdetection[EB/OL]. ( 2016-04-03)[2019-11-26]. https:∥arxiv.org/abs/1604. 00600.
[39] YangB, Yan JJ, ZhenL, et al. ( 2016-04-12)[2019-11-26]. https:∥arxiv.org/abs/1604. 03239.
[40] WangX, ShrivastavaA, Gupta A. A-Fast-RCNN: hard positive generation via adversary for object detection[EB/OL]. ( 2017-04-11)[2019-11-26]. https:∥arxiv.org/abs/1704. 03414.
[41] Li ZM, PengC, YuG, et al. ( 2017-11-20)[2019-11-26]. https:∥arxiv.org/abs/1711. 07264.
[42] Cai ZW, Vasconcelos N. Cascade R-CNN: delving into high quality object detection[EB/OL]. ( 2017-12-03)[2019-11-26]. https:∥arxiv.org/abs/1712. 00726.
[43] SinghB, Davis L S. An analysis of scale invariance in object detection-SNIP[EB/OL]. ( 2017-11-22)[2019-11-26]. https:∥arxiv.org/abs/1711. 08189.
[44] GhiasiG, Lin TY, PangR, et al. ( 2019-04-16)[2019-11-26]. https:∥arxiv.org/abs/1904. 07392.
[45] LiY, ChenY, WangN, et al. ( 2019-01-07)[2019-11-26]. https:∥arxiv.org/abs/1901.01892?context=cs. CV.
[46] SermanetP, EigenD, ZhangX, et al., localization and detection using convolutionalnetworks[EB/OL]. ( 2013-12-21)[2019-11-26]. https:∥arxiv.org/abs/1312. 6229.
[47] RedmonJ, DivvalaS, GirshickR, et al., real-time objectdetection[EB/OL]. ( 2015-06-08)[2019-11-26]. https:∥arxiv.org/abs/1506. 02640.
[48] LiuW, AnguelovD, ErhanD, et al.SSD: single shot MultiBox detector[M] ∥Computer Vision-ECCV 2016. Cham: Springer International Publishing, 2016: 21- 37.
[49] Chen L C, Papandreou G, Kokkinos I, et al. DeepLab: semantic image segmentation with deep convolutional nets, atrous convolution, and fully connected CRFs[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2018, 40(4): 834-848.
[50] Fu CY, LinW, RangaA, et al. ( 2017-01-23)[2019-11-26]. https:∥arxiv.org/abs/1701.06659v1.
[51] RedmonJ, FarhadiA. YOLO9000: better, faster, stronger[C]∥2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), July 21-26, 2017. Honolulu, HI. IEEE, 2017: 6517- 6525.
[52] Lin TY, GoyalP, GirshickR, et al. ( 2017-08-07)[2019-11-26]. https:∥arxiv.org/abs/1708.02002v2.
[53] RedmonJ, Farhadi A. YOLOv3: an incremental improvement[EB/OL]. ( 2018-04-08)[2019-11-26]. https:∥arxiv.org/abs/1804. 02767.
[54] NajibiM, RastegariM, Davis L S. G-CNN: an iterative grid based object detector[EB/OL]. ( 2015-12-24)[2019-11-26]. https:∥arxiv.org/abs/1512. 07729.
[55] JeongJ, ParkH, Kwak N. Enhancement of SSD by concatenating feature maps for object detection[EB/OL]. ( 2017-05-26)[2019-11-26]. https:∥arxiv.org/abs/1705.09587v1.
[56] Shen ZQ, LiuZ, LiG, et al. ( 2017-08-03)[2019-11-26]. https:∥arxiv.org/abs/1708.01241?context=cs. LG.
[57] KongT, Sun FC, Yao AB, et al. ( 2017-07-06)[2019-11-26]. https:∥arxiv.org/abs/1707.01691?context=cs.
[58] ZhouP, Ni BB, GengC, et al. ( 2019-04-05)[2019-11-26]. http:∥ openaccess.thecvf.com/content_cvpr_2018/papers/Zhou_Scale-Transferrable_Object_Detection_CVPR_2018_p- aper.pdf.
[59] Lin TY, DollarP, GirshickR, et al. ( 2016-12-09)[2019-11-26]. https:∥arxiv.org/abs/1612.03144?context=cs.
[60] Zhao QJ, ShengT, Wang YT, et al. ( 2018-11-12)[2019-11-26]. https:∥arxiv.org/abs/1811. 04533.
[61] Zhu CC, He YH, Savvides M. Feature selective anchor-free module for single-shot object detection[EB/OL]. ( 2019-03-02)[2019-11-26]. https:∥arxiv.org/abs/1903.00621v1.
[62] TianZ, Shen CH, ChenH, et al. ( 2019-04-02)[2019-11-26]. https:∥arxiv.org/abs/1904. 01355.
[63] KongT, Sun FC, Liu HP, et al. ( 2019-04-08)[2019-11-26]. https:∥arxiv.org/abs/1904. 03797.
[64] HuangL, YangY, DengY, et al. ( 2015-09-16)[2019-11-26]. https:∥arxiv.org/abs/1509. 04874.
[65] LawH, Deng J. CornerNet: detecting objects as paired keypoints[EB/OL]. ( 2018-08-03)[2019-11-26]. https:∥arxiv. org/abs/1808.01244v1.
[66] Zhou XY, Zhuo JC, Krähenbühl P. Bottom-up object detection by grouping extreme and centerpoints[EB/OL]. ( 2019-01-23)[2019-11-26]. https:∥arxiv.org/abs/1901.08043v1.
[67] Duan KW, BaiS, Xie LX, et al. ( 2019-04-17)[2019-11-26]. https:∥arxiv.org/abs/1904.08189?context=cs.
[68] Yu JH, JiangY, Wang ZY, et al. ( 2016-08-04)[2019-11-26]. https:∥arxiv.org/abs/1608. 01471.
[69] Zhou XY, Wang DQ, KrähenbühlP, et al. Objects as points[EB/OL].( 2019-04-16)[2019-11-26]. https:∥arxiv.org/abs/1904. 07850v1.
[70] LuX, Li BY, Yue YX, et al. ( 2018-11-29)[2019-11-26]. https:∥arxiv.org/abs/1811.12030v1.
[71] LawH, TengY, RussakovskyO, et al. ( 2019-04-180)[2019-11-26]. https:∥arxiv.org/abs/1904. 08900.
Article Outline
段仲静, 李少波, 胡建军, 杨静, 王铮. 深度学习目标检测方法及其主流框架综述[J]. 激光与光电子学进展, 2020, 57(12): 120005. Zhongjing Duan, Shaobo Li, Jianjun Hu, Jing Yang, Zheng Wang. Review of Deep Learning Based Object Detection Methods and Their Mainstream Frameworks[J]. Laser & Optoelectronics Progress, 2020, 57(12): 120005.