没有合适的资源?快使用搜索试试~ 我知道了~
arXiv:1908.03673v1 [cs.CV] 2019年8月深度学习在目标检测中的最新进展放大图片作者:Xiongwei Wua,Doyen Sahooa,Steven C.H.会海a,b新加坡管理大学SalesforceResearch Asia摘要目标检测是计算机视觉中一个基本的视觉识别问题,在过去的几十年里得到了广泛的研究。视觉对象检测的目的是在给定的图像中找到具有精确定位的特定目标类的对象,并为每个对象实例分配相应的类标签。由于基于深度学习的图像分类取得了巨大成功,近年来,使用深度学习的对象检测技术得到了积极研究在本文中,我们对深度学习视觉对象检测的最新进展进行了全面的通过回顾大量最近的相关文献,我们系统地分析了现有的目标检测框架,并将调查分为三个主要部分:(i)检测组件,(ii)学习策略,(iii)应用程序基准。在调查中,我们详细介绍了影响检测性能的各种因素,如检测器架构,特征学习,建议生成,采样策略等,最后,我们讨论了几个未来的方向,以促进和刺激未来的研究视觉对象检测与深度学习。关键词:目标检测,深度学习,深度卷积神经网络1. 介绍在计算机视觉领域,有几个基本的视觉识别问题:图像分类[1],对象检测和实例分割[2,3],以及语义分割[4](见图1)。特别是,图像分类(图1.1(a))的目的是识别给定图像中对象的语义类别 对象检测不仅识别对象类 别 , 而 且 通过边界框预 测 每个对象的 位 置 ( 图 1(b))。语义分割(图1(c))旨在预测逐像素分类器,为每个像素分配特定的类别标签,从而提供对图像更丰富的理解然而,与对象检测相反,语义分割不区分同一类别的多个对象。在对象检测和语义分割的交叉点上有一个相对较新的设置,名为*通讯作者邮箱:phdis.smu.edu.sg(吴雄伟),doyens.smu.edu.sg(Sahoo老前辈),chhoi@smu.edu.sg(StevenC.H. Hoi)(a) 图像分类(b)目标检测(c)语义分割(d)实例分割图1:计算机视觉中不同视觉识别任务的比较。(a)“图像分类”仅需要为图像分配类别标签;(b)“对象检测”不仅预测类别标签,而且通过边界框局部化每个对象实例;(c)“语义分割”旨在预测每个像素的类别标签,而不区分对象实例;(d)“实例分割”是物体检测的一种特殊设置,通过像素级分割掩模区分不同的物体实例。分割预印本提交给Elsevier 2019年8月13日2面具事实上,实例分割可以被视为对象检测的特殊设置,其中,期望像素级定位而不是通过边界框来在本调查中,我们将注意力集中在回顾基于深度学习的对象检测方面的主要工作。一个好的检测算法应该对语义线索以及图像的空间信息有很强的理解。事实上,对象检测是许多计算机视觉应用的基本步骤,例如人脸识别[5,6,7],行人检测[8,9,10],视频分析[11,12]和徽标检测。[13,14,15]。在早期阶段,在深度学习时代之前,对象检测的流水线分为三个步骤:i)建议生成; ii)特征向量提取;以及iii)区域分类。在建议生成期间,目标是搜索图像中可能包含对象的位置这些位置也被称为感兴趣区域(ROI)。一个直观的想法是用滑动窗口扫描整个图像[16,17,18,19,20]。为了捕获关于对象的多尺度和不同宽高比的信息,将输入图像调整为不同尺度,并且使用多尺度窗口在第二步中,在图像的每个位置上,从滑动窗口获得固定长度的特征向量,以捕获覆盖区域的判别该特征向量通常由低级视觉描述符编码,例如SIFT(尺度不变特征变换)[21]、Haar[22]、 HOG(直方图)[19]或SURF(加速旋转特征)[23],其对尺度、照明和旋转方差表现出一定的鲁棒性最后,在第三步中,区域分类器被学习以向覆盖区域分配分类标签。通常,这里使用支持向量机(SVM)[24],因为它们在小规模训练数据上表现良好。此外,在区域分类步骤中使用了一些分类技术,如bagging[25],cascade learning[20]和adaboost[26],从而进一步提高了检测精度。大多数成功的传统方法用于对象去-保护集中于仔细设计特征描述符以获得感兴趣区域的嵌入。在良好的特征表示以及强大的区域分类器的帮助下,Pascal VOC数据集[29](用于基准对象检测的公开数据集)取得了令人印象深刻的结果[27,28]值得注意的是,基于可变形零件的机器(DPM)[30],一种突破性的检测算法,在2007年,2008年和2009年的VOC挑战中三次获胜。DPM学习和集成多个零件模型与变形损失和挖掘硬否定的例子与潜在的SVM的歧视性训练。然而,在2008年至2012年期间,基于这些传统方法的Pascal VOC的进展已经变得渐进,从构建复杂的集合系统中获得的收益较小。这表明了这些传统探测器的局限性。最突出的是,这些限制包括:(i)在建议生成期间,生成了大量的建议,并且其中许多是冗余的;这导致在分类期间出现大量的误报。此外,窗口尺度是手动设计的,不能很好地匹配对象;(ii)特征描述符是基于低级视觉线索手工制作的[31,32,23],这使得难以在复杂上下文中捕获代表性语义信息。(iii)检测流水线的每一步都是单独设计和优化的,因此不能得到整个系统的全局最优解。在成功应用深度卷积神经网络(DCNN)进行图像分类[33,1]之后,基于深度学习技术的对象检测也取得了显着进展[34,2]。新的基于深度学习的算法比传统的检测算法有很大的优势。深度卷积神经网络是一种受生物启发的结构,用于计算分层特征。早期尝试构建这种用于图像分类的分层和空间不变模型是然而,这种早期的尝试缺乏有效的监督学习优化技术。基于此模型,Lecun et al.[36]第三十六话3R-CNN(Girshick etal. )(Ren etal. )YoloFSAF(Zhu etal. )(Redmon等人)Mask R-CNN(He etal. )CenterNet(Duan etal. )快速R-CNNFPNSSD(Girshick et al. )(Lin et al. )(Liu et al. )Yolo9000(Redmon和Farhadi)RetinaNet精炼检测CornerNetExtremeNet(Lin et al. )(Zhang et al. )(罗和邓)(Zhou etal. )FCOS(Tian etal.)VGGNet(Simonyan和Zisserman)沙漏(Newell etal. )ResNeXt(Lin et al. )DPN(Chen etSenet(Hu etal. )AlexNetGoogLeNet(Szegedy etal. )ResNet v2(He etal. )EfficientNet(Tan &Le)MobileNetNASNetOverFeat(Sermanet etal. )Faster R-CNNR-FCN(Dai etal. )DCN(Dai etal. )CascadeRCNN(Cai etal. )NAS-FPN(Ghiasi etal. )Detnas(Chen etal. )(Krizhevsky et al. )ResNet(He etal. )DenseNet(Huang etal. )(Howard etal. )(Zoph et al. )图2:自2012年以来,基于深度卷积神经网络的对象检测研究的主要里程碑。过去一年的趋势是设计基于无锚(红色)和AutoML(绿色)技术的对象检测器,这可能是未来两个重要的研究方向通过反向传播随机梯度下降(SGD)的方法对神经网络进行了优化,并在数字识别上表现出了很好的性能。然而,在那之后,深度卷积神经网络并没有被大量探索,支持向量机变得更加突出。这是因为深度学习有一些局限性:(i)缺乏大规模注释的训练数据,这会导致过拟合;(ii)有限的计算资源;(iii)与SVM相比,理论支持较弱。在2009年,Jia等人[37]收集了一个大规模的带注释的图像数据集ImageNet,其中包含120万张高分辨率图像,这使得使用大规模训练数据来训练深度模型成为可能。随着并行计算系统(如GPU集群)上计算资源的发展,2012年Krizhevsky等人。[33]使用ImageNet数据集训练了一个大型深度卷积模型,并与所有其他方法相比,在大规模视觉识别挑战(ILSVRC)上显示出显着的改进。在成功应用DCNN进行分类后,深度学习技术很快适应了其他视觉任务,并显示出与传统方法相比有希望的结果与传统检测器中使用的手工制作的描述符相比,深度卷积神经网络生成从原始像素到高级语义信息的分层特征表示,这些信息是从训练中自动学习的。在复杂的语境中表现出更强的区分性表达能力。此外,受益于强大的学习能力,深度卷积神经网络可以用更大的数据集获得更好的特征表示,而传统视觉描述符的学习能力是固定的,并且当更多数据变得可用时无法提高这些属性使得基于深度卷积神经网络设计对象检测算法成为可能,深度卷积神经网络可以以端到端的方式进行优化,具有更强大的特征表示能力。目前,基于深度学习的对象检测框架主要可以分为两类:(i)两阶段检测器,如基于区域的CNN(R-CNN)[2]及其变体[38,34,39]和(ii)一阶段检测器,如YOLO [40]及其变体[41,42]。两阶段检测器首先使用建议生成器来生成建议的稀疏集合并从每个建议中提取特征,然后使用区域分类器来预测所建议区域的类别。一级检测器直接对特征图的每个位置上的对象进行分类预测,而无需级联区域分类步骤。两阶段检测器通常可以实现更好的检测性能,并在公共基准测试中报告最先进的结果,而一阶段检测器的时间效率更高,对实时对象的4对象检测检测组件学习策略应用&基准检测设置检测范式骨干架构训练阶段应用边界框两级探测器VGG16、ResNet、DenseNet数据增强人脸检测不平衡采样MobileNet、ResNeXt本地化优化行人检测像素掩模单级探测器DetNet,沙漏网级联学习别人别人提案生成特征表示测试阶段公共基准传统的计算机视觉方法多尺度特征学习重复移除MSCOCO,PascalVOC,Open Images基于锚点的方法区域特征编码模型加速FDDB,宽面关键点方法上下文推理KITTI,ETH,CityPersons别人其他方法可变形特征学习图3:本调查中的主要方法分类我们将基于深度学习的对象检测的各种贡献分为三大类:检测组件,学习策略,应用程序和基准。我们将详细回顾这些类别。侦测图2还展示了2012年之后基于深度学习的对象检测技术的主要发展和里程碑。我们将涵盖这些关键技术的基本思想,并在调查中系统地分析它们。本调查的目标是全面了解基于深度学习的对象检测算法。图3显示了本调查中涉及的关键方法的分类。我们回顾了基于深度学习的对象检测的各种贡献,并将其分为三组:检测组件,学习策略和应用程序基准。对于检测组件,我们首先引入两个检测设置:边界框级别(bbox-level)和像素掩码级别(mask-level)定位。Bbox级算法需要用矩形包围盒定位目标,而Mask级算法需要更精确的像素级掩模来分割目标。接下来,我们总结了两个检测家族的代表性框架:两阶段检测和一阶段检测。然后,我们给出了一个详细的调查,每个检测组件,包括骨干架构,建议生成和特征学习。对于学习策略-由于检测器训练的困难性,我们首先强调了检测器学习策略的重要性,然后详细介绍了训练和测试阶段的优化技术。最后,我们回顾了一些现实世界中基于目标检测的应用,包括人脸检测,行人检测,徽标检测和视频分析。我们还讨论了这些检测任务的公开可用和常用的基准和评估指标。最后,我们展示了近年来在公共基准点上进行通用检测的最新结果我们希望我们的调查能为研究者和从业者提供及时的回顾,以进一步促进检测系统的研究。论文的其余部分组织如下:在第2节中,我们给出了一个标准的目标检测问题设置第3节列出了探测器组件的详细信息。然后在第四节中介绍了学习策略。第5节和第6节提供了用于实际应用和基准测试的检测算法。通用检测的最新结果见第7节。最后,我们在第8节中总结并讨论未来的方向。5、、、pred面积(bpredbgt)1Σλ2. 问题设置在本节中,我们将介绍基于深度学习的对象检测的正式问题设置对象检测涉及识别(例如,“object classification”)and是否为对象(即,IoU≥100;通常研究人员设置= 0。5)。对于对象检测,具有正确类别标签的预测以及成功的定位预测(满足IoU标准)被认为是积极的,否则它是消极的(e.g.、“位置回归”)任务。 物体探测器需要从背景中区分特定目标类的对象预测=Positiv e cpred =cgt 和IoU(b)pred,bgt)>在图像中对每个对象实例进行精确定位和正确的分类标签预测边界框或像素否则为负数(五)预测掩模以定位这些目标对象实例。更正式地说,假设我们给出了一个Nanno的集合,图像x1,x2,...,XN ,并且对于第i个图像xi,存在Mi个属于C类的带有注释的对象:对 于 通 用 对 象 检 测 问 题 评 估 , 使 用 C 类 的 平 均 精 度(mAP)进行评估,并且在诸如行人检测的真实世界场景中,使用不同的评估度量,这将在第5节中讨论。 在除了检测精度,推理速度也是一个重要因素。yi=,(ci,bi),(ci,bi),.,(ci),bi),(1)1 1 2 2Mi Mi是评价目标检测算法的重要指标。具体-实际上,如果我们希望检测视频流中的对象(实时其中,ci(ci∈C)和bi(边界框或像素的像素xel掩模,j j jobject)分别表示xi中第j个对象的类别和空间标签。检测器f由θ参数化。对于xi,预测yi与yi共享相同的格式:检测),因此必须有一个能够快速处理这些信息的检测器。因此,检测器效率也以每秒帧数(FPS)来评估,即,每秒能处理多少张图像通常一个探测器可以实现我pred我Pred1我Pred1我Pred2我Pred2),. ),(2)20 FPS的推理速度被认为是实时检测器。最后,设置损失函数l以优化检测器,如下:Nl(x,θ)=l(yi,x,y;θ)+ θ(三)3. 检测组件在本节中,我们将介绍ob的不同组件Ni=1普雷德岛我22物体检测 首先是关于物体检测其中第二项是正则化子,具有权衡参数λ。不同的损失函数,如softmax损失[38]和焦点损失[43]会影响最终的检测性能,我们将在第4节中讨论这些函数。在评估时,对象和预测之间的一个称为intersection-over-union(IoU)的度量用于评估本地化的质量(我们在这里省略索引i):IoU(bpred,bgt)=面积(bpredSTbgt)(4)y,=(c)在,b)、(c,b26检测(bbox级定位)和ii)实例段a-范例我们首先介绍了两种检测集的概念:bbox级和mask-level算法。然后,我们介绍了两种主要的目标检测范式:两阶段检测器和一阶段检测器。在这些范式下,检测器可以使用各种深度学习骨干架构、提案生成器和特征表示模块。3.1. 检测设置在对象检测中有两个设置:i)vanilla对象这里,bgt指的是地面实况bbox或掩码。设置IoU阈值,以确定预测是否紧密覆盖,像素级或掩模级定位(pixel-level or mask-levellocalization)。Vanilla对象检测已经得到了更广泛的研究,并被认为是7传统的检测设置,其中目标是通过矩形边界框来定位在vanilla对象检测算法中,仅需要bbox注释,并且在评估中,计算预测的边界框与地面真实值之间的IoU以测量性能。实例分段是一种相对较新的设置,它基于传统的检测设置。实例分割需要通过像素级掩码而不是粗略的矩形边界框来分割每个对象。实例分割由于像素级预测更加精确,对空间错位更加敏感,对空间信息的处理要求更高。实例分割的评估度量与bbox级检测几乎相同,除了对掩码预测执行IoU计算。虽然这两个检测设置略有不同,但后面介绍的主要组件大多可以由这两个设置共享。3.2. 检测范式目前最先进的深度学习对象检测器主要可以分为两大类:两阶段检测器和一阶段检测器。对于两阶段检测器,在第一阶段中,生成稀疏的建议集;并且在第二阶段中,通过深度卷积神经网络对生成的建议的特征向量进行编码,然后进行对象类预测。单阶段检测器没有单独的阶段用于建议生成(或学习建议生成)。它们通常将图像上的所有位置视为潜在对象,并尝试将每个感兴趣区域分类为背景或目标对象。两阶段检测器经常在许多公共基准数据集上报告最先进的结果。然而,它们通常在较低的推理速度方面不足单级检测器对于实时对象检测应用来说要快得多并且更理想,但是与两级检测器相比具有相对较差的性能。3.2.1. 两级探测器两阶段检测器将检测任务分为两个阶段:(i)建议生成;以及(ii)对这些进行预测提案在建议生成阶段,检测器将尝试识别图像中可能是对象的区域。这个想法是提出具有高召回率的区域,使得图像中的所有对象都属于这些建议区域中的至少一在第二阶段,使用基于深度学习的模型来用正确的分类标签对这些建议进行该区域可以是背景或来自预定义类别标签之一的对象。另外,模型可以细化由提议生成器建议的原始本地化。接下来,我们将回顾两阶段检测器中一些最有影响力的工作。R-CNN[2]是Girshick等人在2014年提出的一种开创性的两阶段对象检测器。与基于Pascal VOC 2010上具有40.4%mAP的传统检测框架Segmentary[44]的先前最先进的方法相比,R-CNN显著提高了检测性能并获得了53.7% mAP。R-CNN的流水线可以分为三个部分:i)建议生成,ii)特征提取和iii)区域分类。对于每个图像,R-CNN通过选择性搜索生成一组稀疏的建议(大约2,000个建议)[45],旨在拒绝可以容易地被识别为背景区域的区域。然后,每个建议被裁剪并调整大小为固定大小的区域,并通过深度卷积神经网络编码为(例如4,096维)特征向量,然后是one-vs-all SVM分类器。最后,使用前向特征作为输入来学习边界框回归量,以使原始提议紧密地约束对象。与传统的手工特征描述符相比,深度神经网络生成分层特征,并在不同层中捕获不同的尺度信息利用迁移学习的力量,R-CNN采用在ImageNet上预训练的卷积网络的权重。最后一个完全连接的层(FC层)被重新初始化以用于检测任务。然后,整个检测器在预先训练的模型上进行微调。这种从Imagenet数据集的知识转移提供了显著的性能增益。此外,R-CNN在训练前拒绝了大量简单的否定,8这有助于提高学习速度并减少误报。然而,R-CNN面临着一些关键的缺点:i)每个建议的特征都是通过深度卷积提取的网络分开(即,计算不共享),导致了大量重复的计算。因此,R-CNN的训练和测试非常耗时; ii)R-CNN的三个步骤(建议生成、特征提取和区域分类)是独立的组成部分,整个检测框架不能以端到端的方式进行优化,使得难以获得全局最优解;和iii)选择性搜索依赖于低级别的视觉线索,因此难以在复杂的上下文中生成高质量的建议。此外,它无法享受GPU加速的好处。受空间金字塔匹配(SPM)[46]思想的启发,He等人提出了SPP-net[47]来加速R-CNN以及学习更多的判别特征。SPP-net使用深度卷积网络从整个图像中计算特征图并提取固定长度的特征向量,而不是单独裁剪前向区域并将其输入CNN模型空间金字塔池(Spatial Pyramid Pooling,SPP)图层。SPP将特征图划分为N×N网格,用于多个N值(因此允许在不同的位置缩放),并对网格的每个单元执行池化,以给出特征向量。从每个N×N网格获得的特征向量被连接以给出该区域的表示。提取的特征被送入区域SVM分类器和边界框回归器。与RCNN相比,SPP层还可以在各种尺度和宽高比的图像/区域上工作,而无需对它们进行重新编码。因此,它不会遭受信息损失和不必要的几何失真。与R-CNN相比,SPP-net取得了更好的结果,并且推理速度明显然而,SPP网络的训练仍然是多阶段的,因此它不能端到端优化(并且需要额外的缓存存储器来存储提取的特征)。此外,SPP层没有将gra-propagation反向传播到卷积核,因此所有参数都是在SPP层被冻结之前这大大限制了深度骨干架构的学习能力。Girshick等人提出了Fast R-CNN[38],这是一种多任务学习检测器,它解决了SPP网络的这两个限制快速R-CNN(如SPP-Net)还计算了整个图像的特征图,并在特征图上提取了固定长度的区域特征。与SPP-net不同,Fast R-CNN使用ROI Pooling层来提取区域特征。ROI池化层是SPP的特殊情况,其仅采用单个尺度(即,仅一个值N×N网格)将提案划分为固定的除法的数量,以及反向传播到卷积核的误差信号。在特征提取之后,特征向量被馈送到两个兄弟输出层之前的一系列全连接层:分类层(cls)和回归层(reg)。分类层负责生成C+1类(C类加一个背景类)上的softmax概率,而回归层编码4个实值参数以细化边界框。在Fast RCNN中,特征提取、区域分类和边界框回归步骤都可以端到端优化,无需额外的缓存空间来存储特征(与SPP Net不同)。Fast R-CNN比R-CNN和SPP-net具有更好的检测精度,并且具有更好的训练和推理速度。尽管在学习检测器方面取得了进展,但提案生成步骤仍然依赖于传统方法,如选择性搜索[45]或边缘框[48],这些方法基于低级视觉线索,无法以数据驱动的方式学习为了解决这个问题,开发了更快的R-CNN[34],它依赖于一个新的建议生成器:区域建议网络(RPN)。这个建议生成器可以通过监督学习方法来学习。RPN是一个完全卷积的网络,它获取任意大小的图像,并在特征图的每个位置上生成一该网络使用n×n滑动窗口在特征图上滑动,并为每个位置生成一个特征向量。然后将特征向量馈送到两个兄弟输出分支,对象分类层(其分类提议是否是对象)和边界框回归层。然后将这些结果输入到实际对象的最终图层中9分类和边界框定位。RPN可以被插入到Fast R-CNN中,因此整个框架可以在训练数据上以端到端的方式进行优化。通过这种方式,RPN能够以数据驱动的方式生成建议,并且还能够享受深层骨干网络的辨别能力。更快的R-CNN能够在GPU上以5 FPS进行预测,并在许多公共基准数据集上取得了最先进的结果,例如Pascal VOC 2007,2012和MSCOCO。目前,有大量基于Faster R-CNN的检测器变体用于不同用途[49,39,50,51]。更快的R-CNN计算输入图像的特征图,并在特征图上提取区域特征,这在不同区域之间共享然而,计算在区域分类步骤中没有共享,其中每个特征向量仍然需要单独经历一这种额外的计算可能是非常大的,因为每个图像可能有数百个建议。简单地删除全连接层将导致检测性能的急剧下降,因为深度网络将减少propos的空间信息。Dai等人。[52]提出了基于区域的全卷积网络(R-FCN),它分担了区域分类步骤中的计算成本。R-FCN生成了一个位置敏感的得分地图,编码不同类别的相对位置信息,并使用一个位置敏感的ROI池层(PSROI池),通过编码每个目标区域的相对位置前特征向量保持了空间信息,因此与没有区域全连接层操作的Faster R-CNN相比,检测器实现了有竞争力的结果Faster R-CNN的另一个问题是它使用单个深层特征映射来进行最终预测。这使得难以检测不同尺度的物体。特别是,很难检测到小物体。在DCNN特征表示中,深层特征在语义上是强的但在空间上是弱的,而浅层特征在语义上是弱的但在空间上是强的。Lin等人[39]利用这一财产并提出了特征金字塔网络(FPN),其中包括-将深层特征与浅层特征相结合,以实现不同比例尺的特征图中的对象检测。其主要思想是用来自更深层的丰富语义信息来加强空间上强的浅层特征。FPN在检测多尺度物体方面取得了重大进展,并已广泛应用于许多其他领域,如视频检测[53,54]和人体姿势识别[55,56]。大多数实例分割算法都是从普通对象检测算法扩展而来的。早期的方法[57,58,59]通常生成片段建议,然后使用Fast RCNN进行片段分类。后来,Dai等人。[59]提出了一种名为“MNC”的多阶段算法这些早期的作品在多个阶段执行bbox和mask预测。为了使整个过程更加灵活,He等人。[3]提出了Mask R-CNN,它根据建议并行预测边界框和分割掩码,并报告了最先进的结果。基于Mask R-CNN,Huang等人。[60]提出了一种名为Mask Scoring R-CNN的掩模质量感知框架,该框架学习了预测掩模的质量并校准了掩模之间的未对准。质量和掩模置信度得分。图4给出了几个代表性两级检测器的检测框架的概述。3.2.2. 单级探测器与将检测流水线分为两部分的两阶段检测算法不同:建议生成和区域分类;一阶段检测器没有单独的建议生成阶段(或学习建议生成)。它们通常将图像上的所有位置视为潜在对象,并尝试将每个感兴趣区域分类为背景或目标对象。早期成功的基于深度学习的单阶段检测器之一是由Sermanet等人开发的[61]第六十一话壮举. OverFeat通过投射DCNN10阶段1存储所有区域Cache中的壮举SS提案作物区域SPP层…输入图像~2k建议使弯曲为每个区域CNN回归量C SVM为每个区域SS提案作物区域调整CNN输入~2k224x224特征第一阶段第二第一第二回归量C SVM将所有区域专长储存在缓存图像建议RCNN向量阶段2SPP-net第一阶段第二Faster RCNN第一第二特征图1x1CNN输入图像ConvPsROI池化RPN位置敏感特征图为每个区域R-FCNFast RCNN图4:用于通用对象检测的不同两阶段检测框架概述红色虚线矩形表示定义损失函数的输出分类器转换为完全卷积的对象检测器。对象检测可以被视为分类网络在输入的每个区域上输出预测在识别对象之后,学习边界框回归器以基于分类器的相同DCNN特征来细化预测区域为了检测多尺度目标,将输入图像缩放为多个尺度并输入网络。最后,所有尺度的预测与RCNN相比,OverFeat通过使用卷积层共享重叠区域的计算,显示出显著的速度优势,并且只需要通过网络进行单次传递。然而,分类器和回归器的训练是分开的,而不是联合优化的。后来,Redmon等人[40]开发了一种名为YOLO(YouOnly Look Once)的实时探测器。YOLO将对象检测视为回归问题,并将整个图像在空间上划分为固定数量的网格单元(例如,使用7×7网格)。每个细胞被认为是一个建议,以检测前-一个或多个物体的存在。在最初的实现中,每个单元被认为包含(最多)两个对象的中心对于每个单元格,进行预测,其中包括以下信息:该位置是否有对象,边界框坐标和大小(宽度和高度)以及对象的类别。整个框架是一个单一的网络,它省略了可以以端到端的方式优化的建议生成步骤。基于精心设计的轻量级架构,YOLO可以在45FPS进行预测,并通过更简化的主干达到155 FPS然而,YOLO面临着一些挑战:i)它在给定位置只能检测到两个物体,这使得它很难检测到小物体和拥挤的物体[40]。ii)仅使用最后一个特征图进行预测,这不适合预测多尺度和纵横比的对象。2016年,Liu等人提出了另一种单级探测器单次多盒探测器(SSD)[42],解决了YOLO的局限性。SSD还将图像划分为网格单元,但在每个网格单元中,生成一组具有多个尺度和纵横比的锚点来离散边界框的输出空间(与YOLO中采用的固定网格单元预测每个锚点都通过学习的特征图CNNROI层FCFC输入图像在每个空间位置CNN为每个区域RPN2 Softmax回归量回归量C+1 SoftmaxSS提案作物区域ROI层FCFC输入图像~2k建议为 每个区域CNNC+1 Softmax回归量C+1 Softmax回归量11分类器将分类概率分配为(C+1)。此外,SSD在多个特征图上预测物体,每个特征图根据其感受野负责检测一定规模的物体。为了检测大型物体并增加感受野,在原始主干架构中添加了几个额外的卷积特征图。通过端到端的训练方案,利用所有预测图上的定位损失和分类损失的加权和来优化整个网络。通过合并来自不同特征图的所有检测结果为了避免大量否定建议占据训练梯度,使用硬否定挖掘来训练检测器。密集的数据增强也被应用于提高检测精度。SSD实现了与Faster R-CNN相当的检测在没有建议生成来过滤容易的负样本的情况下,前景和背景之间的类别不平衡是一级检测器的严重问题。Lin等人。[43]提出了一个单阶段检测器RetinaNet,它以更灵活的方式解决了类不平衡问题。RetinaNet使用焦点损失来抑制容易负样本的梯度,而不是简单地丢弃它们。此外,他们使用特征金字塔网络来检测特征图不同层次的多尺度对象。他们提出的焦点损失比朴素的硬否定挖掘策略表现得好很多。Redmon 等 人 提 出 了 一 种 改 进 的 YOLO 版 本YOLOv2[41],它显著提高了检测性能,但仍保持了实时推理速度。YOLOv2采用了更强大的深度卷积骨干架构,该架构在更高分辨率的图像上进行了预训练,ImageNet(从224×224到448×448),因此权重学习者对捕捉细粒度的信息更敏感。此外,受SSD中使用的锚定策略的启发,YOLOv 2通过训练数据的k-means聚类(而不是手动设置这有助于减少本地化中的优化困难。最后,inte-使用批量归一化层[62]和多尺度训练技术进行光栅化,YOLOv2在当时取得了最先进的检测结果。以前的方法需要手动设计锚箱来训练检测器。后来开发了一系列无锚Law和Deng提出了一种新颖的无锚框架CornerNet[63],它将对象检测为一对角。在特征图的每个位置上,预测类热图、对嵌入和角偏移。类热图计算角的概率,角偏移量用于回归角的位置。这对嵌入用于将属于相同对象的一对角进行分组。在不依赖手动设计的锚点来匹配对象的情况下,CornerNet在MSCOCO数据集上获得了显着的改进。后来,基于关键点检测的一级检测器有几个其他变体[64,65]。图5给出了几个代表性一级检测器的不同检测框架的概述。3.3. 骨干架构R-CNN[2]表明,从大规模图像分类问题预训练的模型中采用卷积权重可以为训练检测器提供更丰富的语义信息,并提高检测性能。在后来的几年里,这种方法已经成为大多数物体探测器的默认策略。在本节中,我们将首先简要介绍深度卷积神经网络的基本概念,然后回顾一些广泛用于检测的架构。3.3.1. CNN的基本架构深度卷积神经网络(DCNN)是一种典型的深度神经网络,已被证明在视觉理解方面非常有效[36,33]。深度卷积神经网络通常由一系列卷积层、池化层、非线性激活层和全连接层(FC层)组成卷积层接受图像输入,并通过n×n个内核对其进行卷积,以生成特征图。12CNN调整大小为每个网格CLS Softmax回归输入图像特征向量特征图划分为nxn网格YoloSSD角落池化CLS热图配对嵌入角偏移每个空间位置右下角CornerNet RetinaNet图5:用于通用对象检测的不同单阶段检测框架概述红色矩形表示定义目标函数的输出所生成的特征图可以被视为多通道图像,并且每个通道表示关于图像的不同信息。特征图中的每个像素(称为神经元)都连接到前一个图中相邻神经元的一小部分,这被称为感受野。在生成特征图之后,应用非线性激活层。池层用于汇总感受野内的信号,以扩大感受野并降低计算成本。利用卷积层、池化层和非线性激活层的序列的组合,构建深度整个网络可以通过基于梯度的优化方法(随机梯度下降[66],Adam[67]等)通过定义的损失函数进行典型的卷积神经网络是AlexNet[33],它包含五个卷积层,三个最大池化层和三个全连接层。每个卷积层后面是ReLU[68]非线性激活层。3.3.2. 用于目标检测的在本节中,我们将回顾一些在对象检测任务中广泛使用的 具 有 最 先 进 结 果 的 架 构 , 例 如 VGG 16[34 , 38] ,ResNet[1,52], ResNeXt[43][63]第63话VGG16[69]是基于AlexNet开发的。VGG16由五组卷积层和三个FC层组成。前两组中有两个卷积层,接下来的三组中有三个卷积层。在每个组之间,应用最大池层以减少空间维度。VGG16表明,通过堆叠卷积层来增加网络深度可以提高模型然而,通过简单地堆叠卷积层将模型深度增加到20层性能显着下降,甚至在训练阶段也不如较浅的模型。基于这一观察,He等人[1]提出了ResNet,通过引入捷径连接来降低优化难度在这里,一个层可以跳过非线性变换,直接将值按原样传递给下一层(从而给我们一个隐式身份层)。这被给出为:xl+1=xl+fl+1(xl,θ)(6)其中xl是第l层中的输入特征,fl+1表示对输入xl的操作,例如卷积、归一化或非线性激活。fl+1(xl,θ)是对xl的残差函数,因此任何深层的特征图都可以看作是浅层激活与残差函数之和。捷径连接创建了一条高速公路,额外添加的功能图CNN转换转换转换Conv…Conv输入预测预测预测预测预测图像模块模块3x3转换3x3转换每个空间位置回归CLS Softmax左上角Conv预测模块CNN输入图像Conv预测模块额外添加的功能地图CNN转换转换Conv…输入特征特征特征特征特征图像金字塔金字塔金字塔金字塔…特征金字塔…预测模块预测模块预测预测模块模块预测模块ConvConv每个空间位置回归焦点损失13Ll+1l+1从深层到浅单元的梯度,从而显著降低训练难度。使用残差块有效地训练网络,模型深度可以增加(例如从16到152),允许我们训练非常高容量的模型。后来,He etal.[70]提出了ResNet的预激活变体他们的实验表明,适当的批量归一化排序[62]可以进一步优于原始ResNet。对ResNet的这种简单但有效的修改使得成功训练超过1000层的网络成为可能,并且由于深度的增加,仍然具有改进的性能。Huang等人认为,尽管ResNet通过快捷连接降低了训练难度,但它并没有充分利用分层的特征。在逐元素运算中,浅层中的原始特征被他们提出了DenseNet[71],它保留了浅层特征,并通过将输入与残差输出连接而不是按元素添加来改善信息流:xl+1=xl<$fl+1(xl,θ)(7)其中,n表示级联。Chen[72]等人认为,在DenseNet中,来自浅层的大多数新开发的特征都是重复的,并产生了很高的计算成本。结合ResNet和DenseNet的优点,他们提出了一种双路径网络(DPN),将xl信道分为两部分:xd和xr。 xd用于密集连接,ResNeXt使用组数来保持计算成本与原始ResNet一致,从训练数据中捕获更丰富的语义特征后来,Howard等人。[74]将坐标设置为等于每个特征图的通道数,并开发了Mo- bileNet。MobileNet显著降低了计算成本和参数数量,而分类精度没有显著损失。该模型是专为在移动平台上使用而设计的。除了增加模型深度之外,一些努力探索了增加模型宽度以提高学习能力的好处。Szegedy等人提出了GoogleNet,模块[75]在给定层的同一特征图上应用不同尺度的卷积核(1×1,3×3和5×5)。这样,它就捕捉到了多尺度特征和总结-将这些特征合并为输出特征图。 后来开发了该模型的更好版本,选择不同的卷积核设计[76],并引入残差块[77]。上面介绍的网络结构都是为图像分类而设计的。通常,这些在Im-ageNet上训练的模型被用作用于对象检测的模型的初始化然而,由于分类和检测任务之间的潜在冲突,直接将此预训练模型从分类应用到检测是次优的。具体而言,i)分类需要大的感受野,保持空间不变性。因此,多个下采样操作-l l ltion计算并且xr用于逐元素求和,(如池层)应用于减少要素具有非共享剩余学习分支fdFR. 最终地图分辨率生成的要素地图分辨率较低result是两个分支的连接输出:并且空间不变,并且具有大的感受野。然而,在检测中,需要高分辨率的空间信息,xl+1=(
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Python和Opencv的车牌识别系统实现
- 我的代码小部件库:统计、MySQL操作与树结构功能
- React初学者入门指南:快速构建并部署你的第一个应用
- Oddish:夜潜CSGO皮肤,智能爬虫技术解析
- 利用REST HaProxy实现haproxy.cfg配置的HTTP接口化
- LeetCode用例构造实践:CMake和GoogleTest的应用
- 快速搭建vulhub靶场:简化docker-compose与vulhub-master下载
- 天秤座术语表:glossariolibras项目安装与使用指南
- 从Vercel到Firebase的全栈Amazon克隆项目指南
- ANU PK大楼Studio 1的3D声效和Ambisonic技术体验
- C#实现的鼠标事件功能演示
- 掌握DP-10:LeetCode超级掉蛋与爆破气球
- C与SDL开发的游戏如何编译至WebAssembly平台
- CastorDOC开源应用程序:文档管理功能与Alfresco集成
- LeetCode用例构造与计算机科学基础:数据结构与设计模式
- 通过travis-nightly-builder实现自动化API与Rake任务构建
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功