Deep Learning for Generic Object Detection: A Survey论文翻译

目录


文章调查了目标检测的很多方面:检测器框架,目标特征表示,目标特选区的生成,上下文模型,训练策略和评估矩阵。

目标检测分为特定目标的检测和普遍目标的检测

意图是希望我们的分类对于读者理解大量不同的策略的相似点和不同点有所帮助。

研究团体的对有结构的物体(汽车,脸,自行车,飞机)和有关节,相连通的物体(人,牛,马)更感兴趣,而对于无结构的物体(天空,草,云)没兴趣

这一篇文章中采用边界框作为普遍目标检测的评估方法。

2 目录

2.2 主要的挑战

普遍的目标检测的理想是发明一个通用的算法,这个算法可以实现两个相互竞争的目标,即高质量高精度和高效率。正如图像7所示,高质量检测器必须能精确的定位和识别图像和视频帧中的物体,例如现实世界中大量不同种类的物体可以被分辨出,例如来自同一类别的物体实例,受到内部类的外观变化影响,也可以被定位和识别(即有强鲁棒性)。高效率则要求在可接受的内存和存储器条件下整个检测任务可以被实时运行。

2.2.1 与精度有关的挑战

在检测精度上的挑战来源于1)内部类的巨大变化和2)大量的物体种类。
Deep Learning for Generic Object Detection: A Survey论文翻译

内部类的变化可以分为两类:内在因素和成像条件。对于内在因素,每个物体种类可以有许多不同的物体实例,可能有不同的颜色、纹理、材料、形状和尺寸,例如在图像7中的“椅子”种类。甚至在一个很细分的类,例如人类或马,物体实例可以以不同的姿势出现,会受到非刚性的变形或者服装的添加的影响。

未受限制的环境对物体外观有着巨大的影响,引起了成像条件的变化,例如光线(黎明,白天,黄昏,室内),物理位置,天气条件,相机,背景,照明,遮挡和观看距离。所有这些条件在物体外观上产生了巨大的不同,例如照明,姿势,比例,遮挡,杂乱,阴影,模糊和运动,示例如图7所示。进一步的挑战由数字化的产品,噪声衰减,低分辨率和滤波失真所带来。

除了内部类变化以外,物体种类的数量大概在10的4次方到5次方之间,要求检测器有着良好的辨别能力去区分细微的内部类变化,如图7所示(j)。在实践中,当前的检测器都将注意力集中在结构化的物体种类上,例如在数据集PASCAL VOC,ILSVRC和MS COCO的20,200和91物体种类。显然,在目前的标准数据集中,物体种类的数量远远小于人类可以识别的数量。

2.2.2 与效率和可扩展性有关的挑战

社交媒体网络和移动/可穿戴设备的流行导致分析可视数据的要求增加。可是,移动/可穿戴设备限制了计算能力和存储空间,而它们对于目标检测效率至关重要。

效率的挑战来源于定位和识别的需要,在大量的物体种类面前计算复杂性增加,和在单个图像中有大量的位置和尺寸,如图7(c,d)所示。

进一步的挑战是它的可扩展性:一个检测器应该能够处理之前没见过的物体,未知的情况和高数据率。当图像和种类的数量继续增加时,手工标注迫使它们依赖于弱监督策略是不可能的。

2.3 近二十年的发展

目标识别的早期研究是以模板匹配技术和简单的基于部分模型为基础的,它关注空间布局基本上是死板的,例如脸一样的特定物体。1990年之前,目标识别最先进的范例是基于几何表示,之后注意力从几何和先验模型转向了使用基于外观特征的统计分类器(例如Neural Networks, SVM和Adaboost)。这个成功的目标检测器家族为后来目标检测研究搭建起了舞台。
Deep Learning for Generic Object Detection: A Survey论文翻译

近些年目标检测的里程碑在图4中呈现,其中有两个主要时代(SIFT vs. DCNN)被加亮。外观特征从全局表示法转变为局部表示法,该表示法被设计为不受平移、缩放、旋转、光照、视点和遮挡变化的影响。手工局部不变特征得到了极大的普及,从SIFT特征开始,在基于使用局部描述符(例如Haar-like特征,SIFT,Shape Contexts,HOG,Local Binary Patterns(LBP),和区域协方差)的各种不同的视觉识别任务上得到发展。这些局部特征通常通过简单的连接和特征池化编码器(例如可视文字包方法,被Sivic和Zisserman,Csurka;BoW模型的SPM和Fisher向量)进行聚合。

很多年,手工局部描述符和可识别分类器的多级手工调谐管道主导了计算机视觉的许多领域,包括目标检测,直到2012年的转折点,DCNNs在图像分类上实现了破纪录的成果。

CNNs对于检测和定位的使用可以追溯到1990年代,目标检测通过使用一定数量的隐藏层,在受限制的领域(例如人脸识别)获得了成功。可是,近些年,更深的CNNs在更普遍的物体种类的检测上实现了破纪录的成就,当DCNNs在图像分类上的成功应用转移到了目标检测时,这一转变产生了Girshick的基于区域的CNN探测器这一里程碑式的成果。

深度检测器的成功严重依赖于巨大的训练数据和有着数百万甚至数十亿参数的网络。有着很高计算能力GPU的可用性和大规模检测数据集(例如ImageNet和MS COCO)在他们的成功中起着关键的作用。大数据集让研究者们可以在有着大内部类变化和类间相似的图像中关注更真实和更复杂的问题。可是,精确的标注需要大量的劳动力去获取,所以检测器必须思考可以解决标注困难的方法或者是可以用更少的训练数据集学习的方法。

研究团体开始向建立通用目的目标检测系统而努力,它可以检测很多的物体种类,能力可以和人类比肩。这是一个主要的挑战:根据认知科学家的说法,人类可以识别大约3000个入门级种类和总共30000视觉种类,并且可以通过领域专业知识区分的种类的数量是10的5次方。尽管过去这些年取得了巨大的进步,设计一个在104-105种类达到人类水平性能的精确的,鲁棒的,有效率的检测和识别系统,毫无疑问是一个无法解决的问题。

3. 深度学习的简要介绍

深度学习彻底变革了一系列的机器学习任务,从图像分类和视频处理到演讲识别和自然语言理解。在这样急速发展下,近些年有很多关于深度学习的调查文章。这些调查从不同的视角评论了深度学习技术,或者应用到医疗图像分析,自然语言处理,演讲识别系统和遥感。

卷积神经网络(CNNs),作为深度学习最具代表性的模型,能够利用自然信号的基础特性:翻译不变性,局部连接性和结构层次性。一个典型的CNN,如图8所示,有着层次结构,并且有很多层组成来学习多水平的抽象数据的特征表示。我们开始一个卷积
Deep Learning for Generic Object Detection: A Survey论文翻译

来自前层l-1的特征图的输入特征图x^(l-1) ,与一个二维的卷积核(或滤波器或权重)w进行卷积。这个卷积在后一层出现,受到一个非线性运算符σ,例如:

Deep Learning for Generic Object Detection: A Survey论文翻译

先是N^(l-1)个输入特征图xil-1与相对应的核wli,j,加上一个偏置项blj。这个元素智能非线性函数σ(·)对每一个元素来说是一个修正线性单元。
Deep Learning for Generic Object Detection: A Survey论文翻译

最后,对对应的特征图上采样/下采样进行池化。这三种运算(卷积,非线性激活,池化)在图8中呈现;CNNs有很多的层,一个被称为深度CNNs(DCNNs)的深度网络有着一个典型的DCNN结构,如图8(b)所示。

一个CNN中的大多数层由大量的特征图组成,在其中每一个像素就像一个神经元。在卷积层中的每个神经元与先前层的特征图通过一系列wi,j(本质上是一组二维过滤器)连接起来。正如图8所示,前面的CNN层主要由卷积和池化层组成,后面的CNN层通常是全连接层。从前面的层到后面的层,输入的图像被重复的卷积,在通过每一层时,接受野和支持域增加。通常,最开始的CNN层只能提取到低水平的特征(例如图像边缘),在后面的层中,可以提取到复杂度增加的更普遍的特征。

DCNNs有着大量的优势:一个层次分明的结构,可以学习具有多抽象级别数据的表示;具有学习非常复杂函数的能力,并且可以用很少的领域知识从数据中直接地、自动的学习特征表示。DCNNs得以成功的原因在于大规模标注数据集的可用性和GPUs的超高计算能力。

尽管有着巨大的成功,但已知的缺陷仍然存在。特别的,现在对标注后的训练数据和昂贵的计算资源特别需要;对于用来选择合适的学习参数和网络结构的能力和经验特别需要。训练后的网络的可解释性是很差的,它退化缺乏鲁棒性,并且DCNNs对攻击显示出严重的脆弱性,所有的这些缺陷限制了DCNNs在现实世界的应用。

4 数据集合性能评估

4.1 数据集

数据集在目标识别研究历史中扮演了一个非常重要的角色,不仅仅是衡量和比较相互竞争算法性能的共同基础,而且还推动这个领域去解决更复杂和更有挑战的问题。特别的,近些年,深度学习技术对于很多视觉识别问题带来了巨大的成功,并且大量的已标注数据集在这些成功中起着至关重要的作用。通过互联网上大量的图像使得建立一些综合的数据集成为可能,这些数据集通过获取丰富并且多样的物体,使得在目标识别中获取更好的性能。

对于一般的目标检测,这里有四个著名的数据集:PASCAL VOC, ImageNet, MS COCO和Open Images。这些数据集的属性被总结在表3中,从这些数据集中挑选的样本图片在图9中展示。创建一个大规模的标注数据集有三步:确定一系列的目标种类;在互联网上收集表示被选择种类的各种候选图片;并通过设计众包策略对这些图片进行标注。考虑到空间局限性,我们向感兴趣的读者推荐原始论文,来获取这些数据集在构造和属性上的详细描述。

这四个数据集构成了他们各自检测挑战的支柱。每个挑战由一个公开可用的图片数据集,以及真实值标注和标准化评估软件,以及每年一度的比赛和相应的研讨会构成。表4中给出了在训练中图像和目标实例数量的统计,以及对于检测挑战的有效性和测试数据集。表2给出了在VOC, COCO, ILSVRC和Open Images检测数据集中出现最频繁的目标种类。 PASCAL VOC是一个多年致力于创建和维护一系列用于分类和目标检测的基准数据集,开创了以每年竞赛的形式对识别算法的标准化评估的先例。从2005只有4个类别开始,这个数据集增加到20个类别,并且这些类别都是日常生活中很平常的。自2009年以来,图像的数量每年都在增加,但是保留了以前所有的图片,以便可以逐年比较测试结果。由于更大的数据集(像ImageNet, MS COCO和Open Images)的可用性,PASCAL VOC逐渐的落伍了。

ILSVRC,全称是图像网络大规模视觉识别挑战,源于ImageNet,将PASCAL VOC的标准化训练和检测算法评估目标扩大了一个数量级以上,该数量超过了对象类别和图像的数量。ImageNet1000,是ImageNet的一个子集,有着1000个不同的目标类别和总共120万中图片,它被固定用来对ILSVRC图像分类挑战提供一个标准化基准。

MS COCO数据集是对于ImageNet数据集要求目标往往是大的,且位于正中的标准的回应,使得ImageNet数据集成为现实世界的非典型。为了推动对于更丰富图像的理解,研究者们创建了MS COCO数据库,它包含了普通物体们在他们的自然环境下每天的复杂景象,更贴近真实生活,在数据集中通过使用全分割实例来标注目标,这样来提供更精确的检测器评估。COCO目标检测挑战具有两个目标检测任务:要么使用边界框输出,要么使用目标实例分割输出。COCO介绍了三个新挑战:

  • 包含非常广泛的对象,包括高比例的小物体。
  • 目标是非图像化的,并且四周很杂乱或者有严重的遮掩。
  • 这个评估矩阵(见表5)鼓励更精准的目标定位。

就像ImageNet在它的时代一样,MS COCO成为了今天目标检测的标准。

OICOD(目标检测开放图像挑战)来源于Open Images V4(2019年已经是V5了),现在成为了最大的公开可用目标检测数据集。OICOD不同于先前的大规模目标检测数据集,比如ILSVRC和MS COCO,不仅仅类别,图片,边界框标注和实例分割掩膜标注的数量的显著增加,而且还包括标注过程。在ILSVRC和MS COCO中,数据集中所有类别的实例都是被详尽地注释,然而对于Open Images V4,一个分类器被应用到每张图片上,只有它们的标签分数足够高的才会被发送给人工验证。因此,在OICOD中,只有被人工证实正样本的目标实例才会被标注。

4.2 评估标准

对于评估检测算法性能有三个标准:检测速度(帧/秒),准确性,召回性。最常使用的度量标准是平均精度(AP),源自于精度和召回。AP通常在特定种类的情况下进行评估,例如对每个目标类别分别的计算。要比较所有目标类别的性能,平均了所有目标类别的mAP(平均精度均值)作为最终的性能衡量方法而被采用。对于这些度量标准的更多的细节可以在[68, 69, 234, 108]中找到

检测器测试图像I的标准输出是预测检测{(bj,cj,pj)},按目标j索引,边界框bj,预测的类别cj,和置信度pj。在下面两种情况下,一个预测检测结果(b,c,p)被认为是真正(TP:True Positive):

 预测的种类c等于真实值标签cg。
 重叠比率IOU(交集比合集)为

预测边界框b和真实值bg的IOU不小于预定义阈值ε。阈值ε一般设为0.5.
否则,它就会被认为是负正(FP:False Positive)。置信度p通常与一些阈值β比较来确定预测的类别标签c是否被接受。

基于精度和召回,对每个目标类别分别计算AP。对于一个给定了目标类别c和一个测试图片Ii, 表示检测器返回检测,依据置信度pij进行降序排列。每个检测(bij,pij)要么是TP,要么是FP,这个可以通过图10中的算法确定。基于TP和FP检测,精度P(β)和召回率R(β)可以作为置信度阈值β的一个函数来计算,所以通过改变置信度阈值,可以得到不同的组合(P,R),在原则上可以将精度视为召回率的一个函数,例如P®,从中可以找到平均精度(AP)。

自从介绍了MS COCO,更多的注意力被放在了边界框定位的精度上。没有使用一个固定的IOU阈值,MS COCO提出了一些度量标准(被总结在表5中)用于描述一个目标检测器的性能。例如,不同于传统方法,在0.5的单个IOU中计算mAP,APcoco是在0.05的步长中对值为0.5到0.95的多个IOU和所有目标种类求平均。因为在MS COCO中41%是小目标,24%是大目标,所以提出了度量标准APcocosmall,APcocomedium和APcocolarge。最后,表5总结了在PASCAL,ILSVRC和MS COCO目标检测挑战中使用的度量标准,和在[143]提出的Open Images挑战进行了度量修正。

5 检测框架

在物体特征表示和分类器识别中已经有了稳定的进展,正如从手工特征到学习DCNN特征的巨大变化。相反的,对于定位,基础的“滑动窗口”策略仍然是主流,尽管在努力的避免巨大的搜索。可是,窗口的数量很多,图像像素的数量也呈平方增长,并且搜索多尺度和多比例的需求进一步增加了搜索空间。因此,有效率的和有小的检测框架的设计在减少这些计算成本上扮演着重要的角色。通用采用的策略包括连接传递,共享特征计算和减少每个窗口的计算。

本节回顾检测框架,如图11和表11所示。自从深度学习进入这个领域,里程碑式的方法出现了,它被整合为两个主要的种类:

a) 两阶段检测框架,它包括一个预处理的步骤,用来生成目标候选区域;
b) 一阶段检测框架,或者是免区域提取框架,它有一个单个的不需要分割检测候选区域过程的提取方法。
第6节到第9节将会更加详细的讨论检测框架的基础的子问题,包括DCNN特征,检测候选框提取和上下文建模。

5.1 基于区域的框架(两阶段)

在基于区域框架中,从一张图像生成与类别无关的区域候选框,在从这些区域提取到CNN特征,然后使用特定种类分类器去确定这些候选框的类别标签。从图11可以看出,DetectorNet, OverFeat, MultiBox和RCNN独立地并且自发地建议使用CNNs作为普遍目标检测。

RCNN:受到由CNNs获取的突破性的图像分类结果和选择性搜索在区域候选框对于手工特征的成功,Girshick等人率先探索出CNNs可用于普遍目标检测,并将其发展为RCNN,RCNN整合了AlexNet和区域候选框选择性搜索。正如在图12中显示的那样,训练一个RCNN框架由多阶段步骤组成:

  • 区域候选框计算:未知类的区域建议,是可能包含目标的候选区域,通过选择性搜索获得。
  • CNN模型微调:从图像上裁剪下来,再调整成一样的尺寸的区域建议,被用来作为用于调整CNN模型的输入,预训练使用大规模的数据集,例如ImageNet。在这个阶段,所有与真实边框IOU值大于等于0.5的区域建议被定义为真实边框的正样本,而剩余的则为负样本。
  • 特定类的SVM分类器训练:一系列特定类别的线性SVM分类器被训练,它使用用CNN提取的固定长度特征,取代了通过微调学习的softmax分类器。对于训练SVM分类器,正样本被定义为每个类别的真实边框。一个与一个类的所有真实边框的IOU小于0.3的区域建议对于这个类来说就是负样本。注意被定义来训练SVM的正负样本是不同于用来调整CNN的正负样本。
  • 特定类别的边界框回归器训练:对每个带有CNN特征的目标类别学习边界框回归。

尽管实现了高质量的目标检测,但RCNN有显著的缺陷:

所有的这些缺点激发了持续的创新,推动了一系列改良后的检测框架,例如SPP-Net,Fast RCNN,Faster RCNN等等,如下:

SPPNet:在测试环节,CNN特征提取是RCNN检测方法的主要瓶颈,它要求从每张图像的成千上万调整后的区域候选框提取出CNN特征。结果,He等人提出将传统空间金字塔池化(SPP)加入CNN结构中。因为卷积层接受任意尺寸图像的输入,在CNNs中,仅仅是全连接层(FC)要求固定尺寸图像,因此He等人在最后一个卷积层的上面加入了一个SPP层来获取FC层的固定长度特征。加入SPPNet后,RCNN在没有牺牲任何检测质量的情况下获得了明显的加速,因为它只需要在整张图像上运行卷积层一次来生成任意尺寸的区域建议的固定长度特征。尽管SPPNet将RCNN的评估提升了几个数量级,但它并没有引起检测器训练的加速。而且,在SPPNet上微调并不能更新在SPP层之前的卷积层,这限制了非常深的网络的精度。

Fast RCNN:Girshick提出了Fast RCNN,这个方法解决了RCNN和SPPNet的一些问题,提升了他们检测的速度和质量。如图13所示,Fast RCNN能够实现检测器端到端的训练通过开发一个精简的训练过程,这个训练过程能够自发地学习一个softmax分类器和特定类别的边界框回归,而不是像RCNN/SPPNet一样分别地训练softmax分类器,SVM和边界框回归器。Fast RCNN采用了在区域建议之间共享卷积计算的方法,并且在最后的卷积层和第一个全连接层之间加入了一个Region of Interest(RoI)池化层来对每个区域建议提取一个固定长度的特征。本质上,RoI池化在特征层面进行调整来近似在图像层面的调整。从RoI池化层出来的特征数据进入一系列FC层,最终分支为两个输出层:对于目标种类预测的softmax概率和对于候选框调整的特定类别的边界框回归偏置。与RCNN/SPPNet,Fast RCNN极大的提升了效率——特别地在训练中*倍,测试快10倍。因此它有更高的检测质量,一个单个的训练过程就可以更新所有的网络层,并且对于特征缓存没有储存要求。

Faster RCNN:尽管Fast RCNN加快了检测过程,但是它仍然依赖于外部的区域建议,区域建议的计算作为Fast RCNN新的速度瓶颈而暴露出来。近些年的研究表明CNNs有显著的能力能够在卷积层定位目标,而这个能力在FC层会被削弱。因此,选择性搜索可以被一个用来生成区域建议的CNN替代。Ren等人提出的Faster RCNN框架提供了一个有效率的,精确的用来生成区域建议的区域建议网络(RPN)。他们利用同样的主干网络,使用来自最后的共享卷积层的特征去完成RPN的区域建议任务和Fast RCNN的区域分类任务,如图13所示。

RPN首先在每个卷积特征图位置(像素点)初始化k个不同尺寸和比例的参考框(也被称为anchors/锚框),锚框位置与图像内容无关,而从锚框提取的特征向量本身与图像内容有关。每个锚框被映射到一个较低维度的向量,然后进入两个兄弟FC层——一个目标类别分类层和一个边界框回归层。不同于Fast RCNN的检测,在RPN用于回归的特征和锚框是一样的形状,因此k个锚导致了k个回归器。RPN与Fast RCNN共享卷积特征,因此能够进行高效率区域建议的运算。事实上,RPN是一种全卷积网络(FCN);Faster RCNN因此是一个没有使用手工特征的纯粹基于CNN的框架。

使用VGG16模型,Faster RCNN可以在GPU上以5FPS的速度(包括所有环节)进行测试,而在PASCAL VOC 2007上实现最好的目标检测精度每张图像使用300候选框。在[229]中最初的Faster RCNN包含了几种交替训练阶段,后来在[230]中简化。

与Faster RCNN的发展一起发生的是,Lenc和Vedaldi对区域建议生成方法(例如选择性搜索)的作用提出了挑战,研究了在基于CNN检测器中区域建议生成的作用,然后发现CNNs在卷积层,而不是FC层中,对于精确的目标检测包含充分的几何信息。他们展示了建立仅依赖于CNNs的整合后的,更简单的和更快的目标检测器的可能性,并移除了区域建议生成方法(例如选择性搜索)。

RFCN(基于区域的全卷积网络):尽管Faster RCNN比Fast RCNN快一个数量级,但每个RoI(每个图像数百个RoI)仍需要应用区域子网的这一事实让Dai等人提出了RFCN检测器,这个检测器是全卷积(没有隐藏FC层),在整张图像上共享几乎所有的运算结果。正如图13所示,RFCN与Faster RCNN仅仅在RoI子网络上不同。在Faster RCNN中,RoI池化层之后的计算不能共享,所以Dai等人建议全部使用卷积层来建立一个共享的RoI子网络,并且在预测之前从最后一层卷积层特征中裁剪RoI。可是,Dai等人发现这个天真的设计被证明有很差的检测精度,采用更深的卷积层的想法对于种类的语义更加敏感,并且对于翻译不够敏感,然而,目标检测需要遵守翻译不变原则的位置表示。基于这个观察,Dai等人使用一堆专业的卷积层来作为FCN的输出,在其上加入了一个位置敏感的RoI池化层,构建了一组位置敏感的分数图。他们展示了使用ResNet101的RFCN通常在更快的运行时间可达到与Faster RCNN相当的精度。

Mask RCNN:He等人通过扩展Faster RCNN提出了Mask RCNN来应对像素目标实例分割。Mask RCNN同样采用了两阶段方法,第一阶段相同(RPN),但在第二阶段,在预测类别和边界框偏移的同时,Mask RCNN加入了一个分支,用来对每个RoI输出一个二位的掩膜。新的分支是一个在CNN特征图上面的全卷积网络(FCN)。为了去避免由原始的RoI池化层引起的不对齐问题,提出了RoIAlign层来维持像素级别的空间通信。将ResNeXt101-FPN作为主干网络,Mask RCNN实现了COCO目标实例分割和边界框目标检测的最好结果。它易于训练,泛化性强,并且只对Faster RCNN增加了一个很小的开销,运行速度为5FPS。

链式级联网络和级联RCNN:级联的本质是利用多级的分类器来学习更多的判别分类器,例如前阶段丢掉大量的简单负样本,来让后阶段可以将注意力放在处理更困难的样本上。两阶段目标检测可以被认为是一个级联,第一个检测器移除大量的背景,第二个阶段则对剩下的区域进行分类。近些年,在链式级联网络中提出了端到端学习多于两个的级联分类器和用于普遍目标检测的DCNNs,在Cascade RCNN得到扩展,最近被用在自发目标检测和实例分割上,赢得了COCO 2018检测挑战。

Light Head RCNN:为了进一步增加RFCN的检测速度,Li等人提出了Light Head RCNN,让检测网络的头部尽可能轻来减少RoI运算。特别地,Li等人用一个卷积来生成通道数少的小特征图(例如COCO的490个通道),一个开销小的RCNN子网络,导致了速度和精度的完美平衡。

5.2 联合(一阶段)框架

5.1节中,基于区域的策略从RCNN以后一直占据主导地位,例如流行基准数据集最好的结果都是基于Faster RCNN。然而,基于区域的方法对于现在的移动和可穿戴设备(限制了存储和计算能力)来说,计算量太庞大了。因此,没有去优化复杂的基于区域流程的单个组件,研究者们开始开发联合检测策略。

联合流程指的是一个结构,在整体设置中它通过单个前馈CNN可以直接从整张图片中预测出类别概率和边界框偏移,而不涉及区域建议生成或位置分类和特征重采样,将所有的计算封装在一个单个网络中。因为整个结构是一个单个网络,它可以在检测性能上直接端对端优化。

DetectorNet:Szegedy等人率先研究出了用于目标检测的CNNs。DetectorNet将目标检测作为一个目标边界框掩膜的回归问题。他们使用AlexNet,用一个回归层替换了最后的softmax分类器层。给定一个图像窗口,他们使用一个网络在一个粗网格中去预测前景像素,并使用四个其他网络去预测目标的上、下、左和右半部分。然后分组过程将预测的掩膜转换为检测到的边界框。网络需要对每个目标类型和掩膜类型进行训练,并且不能扩展到多个类。DetectorNet必须要对图像进行多次裁剪,对于每个裁剪结果的每个部分要运行多个网络,因此这使得它很慢。

OverFeat:由Sermanet等人提出,(如图14所示),被认为是基于全卷积深度网络的第一种单级目标检测器之一。它也是最具影响力的目标检测框架之一,赢得了ILSVRC2013的定位和检测竞赛。OverFeat通过网络中的全卷积层的一个向前传递来执行目标检测,如图14(a)所示。在测试时目标检测的关键步骤可以被总结如下:

  • 通过在多尺度图像上的滑动窗口,执行目标分类,生成目标候选区。
  • 通过最大偏置池化,增加预测的数量。
  • 边界框回归。
  • 结合预测结果。

OverFeat的速度很快,但是精度低于RCNN,因为在那时训练全卷积网络有点困难。速度优势来源于在全卷积网络中重叠窗口的共享卷积运算。OverFeat与后来的框架(例如YOLO和SSD)很相似,除了OverFeat中的分类器和回归器是按顺序训练的。

YOLO:YOLO比起Fast RCNN,有更多的定位错误,是由于边界框位置,尺度和比例的粗糙划分导致的。正如在[227]中讨论的那样,YOLO可能不能定位一些物体,特别是小物体,可能是因为粗糙的网格划分和每个网格只包含一个物体。对于在每张图像有很多物体的数据集上,YOLO能多大程度上转化为好的性能还不清楚。

YOLOv2和YOLO9000:…YOLO9000通过在ImageNet分类数据集和COCO检测数据集上使用一种联合优化方法,来结合多个来源的数据,可以实时检测超过9000个目标种类。

SSD:SSD有效地结合了Faster RCNN的RPN,YOLO和多尺度卷积特征的想法。使得在保持高检测质量的同时,实现高检测速度。

CornerNet:Law等人提出了CornerNet,它把边界框目标检测定义为检测左上角和右下角的关键点。

6 目标表示

好的特征表示在目标检测中非常重要。(而特征表示的优化则是通过对CNNs改进来实现的。我说的)

6.1 流行的CNN架构

AlexNet, ZFNet VGGNet , GoogLeNet, Inception series, ResNet , DenseNet and SENet,被总结在表6,在图15中可以看到随时间的改进。 架构发展的趋势是越来越深。…正如表6中所示,例如AlexNet,OverFeat,ZFNet和VGGNet的网络尽管它的层数很少,但是有非常多的参数。因为很大一部分参数来自于FC层。更 新的网络,例如Inception,ResNet和DenseNet,虽然层数很深,通过避免使用FC层,实际上只有很少的参数。

6.2 提升目标表示的方法

对于多尺度的问题,一个经典的策略是在缩放后的输入图像上运行检测器,这样可以更精确的检测,可是,这也受到了相应的时间和内存的限制。

6.2.1 解决目标尺寸不一致

大量的方法被提出,他们通过利用多个CNN层来提升检测精度,大致分为三种多尺度目标检测:

  • 用结合多个CNN层的特征进行检测;

  • 在多个层上进行检测;
    RBFNet将SSD的后面的卷积层替换为一个接受域块,提升了特征的可识别性和鲁棒性。

  • 上述两种方法的结合。

    早期的工作,例如FPN,DSSD,TDM,ZIP,RON和RefineDet依据主干固有的多尺度和金字塔结构,构建了特征金字塔,并且取得了令人鼓舞的成果。正如图17中所示,这些方法都非常相似,都包含一个自上而下网络,横向连接来供应标准的自下而上的前馈网络。特别地,在一个自下而上传递后,最后的高水平语义特征被自上而下网络回传,在横向处理之后,与中间层的自下而上特征结合起来,这被结合起来的特征被用来进行检测。正如图17所示(a2-e2),这些网络主要的不同是基于简单特征融合块(FFB)的设计不同,FFB用来处理来自不同层特征的连接和多层特征的结合。

    FPN,作为一个普遍特征提取器,在包括目标检测和实例分割多种应用上表现出巨大的提升。使用了FPN的Faster RCNN在COCO检测数据集上实现了最好的效果。STDN使用DenseNet来结合不同层的特征,设计了一个缩放转换模块来获取不同分辨率的特征图。这个缩放转换模块可以直接嵌入DenseNet,只增加一点点开销。

    最近很多成果,例如PANet,FPR,DetNet和M2Det,如图17所示,建议用不同的方法改进像FPN的金字塔结构。基于FPN,Liu等人设计了PANet(如图17所示),加入了其他的自下向上路径,与自低水平到高水平进行干净的横向连接,为了为了去缩短信息路径和增强特征金字塔。然后,一个自适应特征池化被提出,来增强每个候选区所有特征水平的特征。另外,在建议子网络中,一个获取每个建议的不同视图的补充分支被创建来进一步提升掩膜预测。这些额外的步骤仅仅带来了很少的计算开销,但是很有效,使得PANet在COCO 2017挑战实例分割任务和目标检测中分别获得第一和第二的成绩。Kong等人提出的FPR明确地将特征金字塔构建过程重新定义为特征重新配置函数,以一种非线性和高效率的方式。正如图17所示,没有使用一个自上向下路径来从最高层向下(如FPN一样)传播强语义特征,FPR首先通过自适应连接从主干网络的多个层中提取特征,然后设计了一个更复杂的FFB模块(图17 h2)来对所有的尺度传播强语义信息。Zhao等人提出了一个多级别特征金字塔网络(MLFPN)去建立对于检测不同尺度目标更加有效地特征金字塔。作者通过将MLFPN整合进SSD,提出了M2Det,实现了比其他一阶段检测器更好的检测性能。

6.3 处理其他的同类间不同

强有力的目标表示应该结合区别性和鲁棒性。大量的工作致力于处理目标尺度的改变,正如6.2.1节所述。正如2.2节讨论和图6总结的一样,目标检测仍然需要对现实世界的变化鲁棒,而不仅仅是尺度,因此,我们将其分为了三类:

  • 几何转换
  • 遮掩
  • 图像退化。

为了处理这些类内变化,最直接的方法是让训练数据集有着非常充足的变化;例如,通过加入在不同方位旋转的物体来训练数据,可以实现对于旋转的鲁棒性。鲁棒性通常可以这个方法实现,但会有昂贵的训练开销和复杂的模型参数。因此,研究者们对于这些问题提出了替换的解决方法:

  • 几何转换的处理:DCNNs是本身受到对于输入数据几何转换缺少空间不变性的能力的限制。局部最大池化层的引用使得DCNNs能够享受一些翻译不变性,可是中间的特征图对于输入数据大的集合转换并不是不变的。因此,很多的方法被提出来增强鲁棒性,旨在于学习不变的CNN表示(关于不同转换种类,例如尺寸,旋转,或两个都有)。一个有代表性的成果是空间转换网络(STN),它介绍了一种新的可学习模块,通过一个全局的参数转换来处理缩放,裁剪,旋转和非刚性的变形。STN现在被用在旋转的文本检测、旋转的人脸检测和普遍的目标检测。

  • 虽然旋转不变形在某些应用上,例如场景文本检、人脸检测和航空成像,更有吸引力。但这里对关注与旋转不变形的普遍检测工作仍有限制,因为流行的基准检测数据集(例如PASCAL
    VOC,ImageNet,COCO)事实上不存在旋转后的图像。

遮掩的处理:在现实世界中,由于目标实例的信息丢失,图像遮掩是很普遍的。一个可变形组件的想法可以用来解决遮掩,所以提出通过给特别死板的几何结构增加灵活性,让可变形RoI池化和可变形卷积来解决遮掩。经过了这些努力,遮掩问题远没有得到解决,将GANs应用到这个问题可能会是一个有前途的研究方向。

图像退化的处理:图像噪声在现实世界很多应用中都十分常见。对于我们现在的知识,解决这个问题是一项非常有限制的工作。

7 上下文模型

在物理世界中,可视的物体通常与其他相关的物体共存在一个特殊的环境中。很多不同种类的上下文在[58,78]得到讨论,并且被大致地划分为三个种类:

  1. 语义上下文:
  2. 空间上下文:
  3. 尺寸上下文:

7.1 全局上下文

全局上下文指的是图像或者场景层次的上下文,它可以作为目标检测的提示(例如,一个卧室里会预测出一张床的存在)。在DeepIDNet中,图像分类得分被用来作为上下文特征,并且将之与目标检测得分连接起来提高了检测结果。在ION中,Bell等人提出使用空间周期性神经网络来在整张图像上探索上下文信息。在SegDeepM中,Zhu等人提出了一个Markov(马尔可夫)随机场模型给每个检测的外观和上下文打分,让每个候选框在一堆目标分割建议中选择一个分割,并对他们的一致性进行打分。

7.2 局部上下文

局部上下文考虑局部邻近物体之间的关系,和一个物体与其所在环境区域之间的关系。通常,建模物体关系是非常有挑战的,要求对不同类别,位置,尺寸等的边界框进行推理。明确地建模目标关系的深度学习研究是相当受限制的,其中有代表性的有空间内存网络(SMN),目标关系网络和结构推理网络。

更广泛的方法是用一个更简单的想法来应对上下文挑战:扩大检测窗口尺寸来提取一些形式的局部上下文。有代表性的方法包括MRCNN,Gated BiDirectional CNN(GBDNet)

8 检测建议的方法

近年来,基于目标建议方法的DCNN大致分为了两类:基于边界框和基于目标分割,代表性的方法总结在表9中。

边界框建议方法最好的例子是由Ren等人的RPN方法,如图19中所示。RPN通过在最后共享的卷积层中滑动一个小网络来预测目标建议。

目标分割建议方法旨在于生成与目标相对应的分割建议。分割建议比边界框建议信息量更大,并且在目标实例分割方面更进一步。此外,使用实例分割监督可以提升边界框目标检测的性能。先驱的成果DeepMask,由Pinheiro等人提出,它用一个深度网络直接从未加工的图像数据中学习到分割建议。与RPN相似,经过大量共享的卷积层之后,DeepMask把网络分为了两个分支,来预测未知类掩膜和一个联合的目标得分

9 其他的问题

数据增强。执行数据增强来学习DCNNs通常被认为对视觉识别很重要。但是,应用了数据增强之后,训练所要求的时间也会极大的增加。数据增强可以完整地合成新的训练图像,可以很难保证合成的图像对于真实的图像泛化得很好。

新颖的训练策略。检测目标是在一个非常大的尺寸变化中进行的,特别是对于非常小的目标的检测,是一个关键的挑战。在[120,175]中可以看到,图像分辨率对检测精度有非常大的影响,因此,在数据增强中缩放是最被广泛使用的的,因为更高的分辨率增加了检测小目标的可能性。

减少定位错误。在目标检测中,IOU是最受欢迎的评估标准,IOU的阈值来定义正样本和负样本。边界框对于铰接的对象只是一个大概的近似值,因此,背景像素几乎不变的包含在一个边界框中,这样影响了分类和定位的精度。定位错误来源于不足够的重叠(小于要求的IOU阈值)或者重复的检测。通常地,后处理步骤(像NMS)被用来消除重复的检测。

这里有一些方法旨在于提升检测性能来减少定位错误。MRCNN介绍了迭代的边界框回归,在这里一个RCNN被应用多次。CRAFT和AttractioNet使用一个多级检测子网络来生成精确的建议,来发送给Fast RCNN。

不平衡类处理。不像图像分类,目标检测有另外独一无二的问题:标注的目标实例的数量与背景样本(图像区域不属于任何类)的数量之间的严重的不平衡问题。大多数背景样本是简单负样本,可以这些不平衡可能让训练效率特别低下,大量的简单负样本往往淹没训练。

10 总结

10.3 未来研究的方向

  1. 开放世界学习
  2. 更好和更有效率的检测框架
  3. 简洁和有效率的CNN特征
  4. 自动神经架构搜索
  5. 目标实例分割
  6. 弱监督检测
  7. Few/Zero Shot Object Detection
  8. 其他形态的目标检测
  9. 通用目标检测
上一篇:Java泛型、泛型方法详解


下一篇:C#循环程序设计2(多重循环)(EduCoder实训题目)