深度神经网络读书记录及Faster RCNN论文翻译

深度神经网络读书记录及Faster RCNN论文翻译

 

神经网络算法是一种试图模仿生物神经元和生物神经网络的行为来解决问题的方法。它是最近几年在图像处理中运用最广泛,效果最优秀的算法之一。它的发展历经数十年, 期间有过热潮也有过低谷。现在神经网络算法已经被广泛使用于如自然语言处理,图像识别[1,2],语义分割等方面。现在神经网络算法主要以深度学习方法出现。近几年神经网络算法的发展主要有一下三个原因:(1)计算机硬件计算处理能力的显著提高(2)并行计算技术的发展(3)机器学习理论及技术的长足进步[3]。

近年来,各种深度神经网络方法得到了广泛的关注。在最近的ImageNet大规模视觉识别的挑战(ilsvrc)比赛中,深度学习的方法已被参加者广泛采用并在多个项目中取得了最高的成绩。而已经有一些工作尝试阐明深度神经网络成功的数学原因[4],如学习表征不变性,全局最优性等。本文也将主要介绍神经网络中的深度神经网络在图像处理,尤其是计算机视觉中的一些应用。

本文的其余部分组织如下:第二部分本文将简要介绍神经网络的历史和早期发展过程。第三部分简要介绍受限玻尔兹曼机。第四部分介绍卷积神经网络(CNN)的组成,列出了其中的一些著名模型及其发展情况。本文还描述了这些模型的贡献和局限性。第五部分本文将介绍深度神经网络在实际中的一些应用。第六部分本文讨论了复现的Fast RCNN算法的特点和其他相关的目标识别算法。最后本文将讨论深度神经网络所面临的一些挑战以及未来可能的发展方向。

1.神经网络的早期发展

早期的神经网络模型由McCulloch 和 Pitts于1943年提出[5],而Hebb于1949年参考生物神经网络提出了一种无监督的学习方法,其基本思想为当神经元A重复多次同时和神经元B的兴奋时,两个神经元之间的连接将增强。1958年,Rosenblatt[6]提出了感知器模型,此时的神经网络经过简单的训练已经可以完成一些简单分类任务。Ivakhnenko等人[7]使用数据组方法(GMDH)训练神经网络,也许是第一个前向多层感知器的深度学习系统。

但是之后人们意识到感知器模型只能进行线性分类,因而无法应用于很多实际问题中。同时此时的计算机硬件也不足以用来处理大规模的神经网络,所以神经网络算法的发展进入了低谷期。

Dreyfus[8]用反向传播方法(BP)明确地通过调整控制权重来最小化成本函数。Werbos[9]首次将BP算法应用于神经网络中。Rumelhart, Hinton等人[10]推广了BP在神经网络中的应用并通过实验证明了多层神经网络的学习能力,使神经网络算法再次进入人们的视野。

Yann LeCun等人[11]于1989年提出了一种以BP进行更新的卷积神经网络(CNN)并介绍了一个手写数字数据集(MNIST)。这个数据集至今仍在初学者中被广泛的使用。同时他们[12]也说明了CNN在MNIST数据集下有良好的表现。1997年,Hochreiter和Schmidhuber[13]提出了长短期记忆网络(LSTM)。它可以获得一个极深的网络,克服了深度学习没有有效的预训练的问题。

此时也有一些人通过数学方法证明了,一个含有有限数量神经元的单层隐式前馈网络(即多层感知器)可以近似地逼近Rn的紧致子集上的连续函数。它不依赖于具体的激活函数的选择,而是多层前馈结构本身使神经网络作为通用逼近器的潜力[14]。

Geoffrey Hinton[15,16]等提出,一个无监督预训练的前向神经网络可以加速使用BP的有监督学习,并且用贪婪逐层预训练并使用BP算法有效训练了一个深度置信网络,使得MNIST数据集上的错误率下降到1.2%。这一技巧随后被研究人员推广到了许多不同的神经网络上,大大提高了模型在测试集上的泛化效果。

在这之后,深度神经网络多次在ImageNet比赛上夺得冠军,深度学习的热潮逐渐开始出现并一直延续至今。

2.受限玻尔兹曼机

玻尔兹曼机最初是用来学习二值向量上的任意概率分布。它是一种基于能量的模型。受限玻尔兹曼机(RBM)是由Hinton等人提出的[17]。相对于玻尔兹曼机,RBM要求可观测单元和隐藏单元构成一个二分图,即在可观测层内和隐藏层内没有链接。Hinton[18]又给出了一个详细的讲解并提供了一个训练RBMs的方法。Raiko等人[19]进一步讨论了训练RBMs的主要困难,其背后的原因,并提出了一种新的算法以解决这些困难

和普通的玻尔兹曼机一样,RBM也是基于能量的模型,能量函数由下式给出:

                                                                                                            (1)

其中为可见层向量,为隐藏层向量,和分别为可见层和隐藏层的偏置,为权重矩阵。为RBM的参数、和。

其联合概率分布由能量函数指定:

                                                                                                                (2)

其中为归一化因子。该方法期望获得最大的概率P,可以通过最大似然估计和对比散列(CD)方法计算结果。

一个著名的RBM改进方法是由Hinton提出的[20],该模型引入了修正线性单元(ReLU),用有噪声的ReLU模拟二进制单元保存相对强度信息。这个改进功能不仅在这个模型中取得了较好的成果,还广泛应用于各种以CNN为基础的方法。

利用RBM模块,发展出了以下的网络模式:深度置信网络(DBNs)、深度玻尔兹曼机(DBMS)和深度能量模型(DEM)。三种模型的比较如图1所示。

图1 三个不同网络的结构对比

深度置信网络(DBN)是由Hinton提出的。它是一种概率生成模型,它提供了可观测数据和标签的联合概率分布。一个DBN首先利用一个有效的逐层贪婪的学习策略来初始化的深层网络,然后微调所有的权重与期望输出。贪婪的学习过程主要有两个优点[21]:(1)产生一个适当的初始化网络,在一定程度上解决参数的选择可能会导致较差的局部最优解的困难;(2)它的培训是无监督的,这就消除了训练标记数据的必要性。然而,创造一个DBN模型是一个计算代价十分昂贵的计算任务。

深层玻尔兹曼机(DBM),是由Salakhutdinov等人提出的[22]。DBMs在网络的所有层之间都有无向连接。这种模型可以通过上下反馈来更清晰地处理模糊的输入,但是这种模型的优化更加耗时。

由Ngiam等人[23]介绍的深度能量模型(DEM)是一种训练深层模型的新方法。在底层隐藏层中,DEM有确定的底层隐藏单元,而在隐藏顶层中有随机隐藏单元。这种方法允许下层适应高层次的训练,产生更好的生成模型。该模型利用深度前向神经网络对能量函数进行建模,能够同时训练所有层。多层次的联合训练比贪婪逐层训练产生了一定的改进。但是学习的初始权重可能没有很好的收敛性。

3.卷积神经网络

卷积神经网络(CNN)是一种最著名的深层学习方法。它非常有效,也是各种计算机视觉应用中最常用的方法之一。

通用CNN结构的模型如图2所示。

图2 通用CNN结构图

一般来说,CNN由三个主要的神经层组成,它们是卷积层、池化层和完全连接层。不同的层次扮演不同的角色。在图2中,逐层显示了Alex等人[24]用于图像分类的通用CNN结构。网络训练分为两个阶段:前向阶段和后向阶段。首先,前一阶段的主要目标是用每个层中的当前参数(权重和偏置)来表示输入图像。然后利用预测输出计算对于标签真值的损失成本。其次,基于损失,后向阶段用链式规则计算每个参数的梯度。所有参数都是根据梯度更新的,并为下一步前向计算做准备。经过充分的迭代前向和后向阶段,网络学习才可以停止。

接下来,本文将首先介绍每一层的功能以及最新的发展情况,然后总结网络中常用的培训策略。最后,我们介绍了几种著名的CNN模型、衍生模型,并总结了在实际应用中使用这些模型的趋势。

3.1层次类型

一般来说,CNN是一种分层神经网络,其卷积层与池化层交替,接着是一些完全连接层(参见图2)。在这一部分中,将介绍这三个层的功能,并简要回顾这些层研究中出现的最新进展。

3.1.1.1卷积层

在卷积层,CNN利用各种核函数卷积的整个图像以及中间特征图,产生各种特征图,如图3所示。

图3 卷积层示意图

卷积运算有三个主要优点:1)同一特征图中的权重共享机制减少了参数的数目2)局部连通性学习了相邻像素之间的相关性3)对象位置的不变性。由于卷积运算所带来的好处,一些论文使用它作为完全连接层的替换,以加速学习过程[25]

3.1.1.2 池化层

一个池化层通常跟随在一个卷积层后,并被用于减少特征图的维数和神经网络的参数数量。与卷积层类似,池化层也是平移不变的,因为它们的计算考虑到邻近像素。平均池和最大池是最常用的策略。图4给出了最大池化过程的示例。对于8×8特征图,图的输出降低到4×4尺寸,其中最大池算子大小为2×2且步长为2。

图4 池化层示意图

对最大池化和平均池化方法,boureau等人[26]对它们的性能进行了详细的理论分析。Scherer等人[27]进一步对两种池化操作进行了比较,发现最大池可以加快收敛速度,选择优良的不变特征,提高泛化能力。

池化层是三层中最广泛研究的层。有两种与池化层相关的著名方法,每种方法都有不同的目的。

空间金字塔池(SPP)

通常,基于CNN的方法需要固定大小的输入图像。这种限制可能会降低任意大小的图像的识别精度。为了消除这种限制,He等人[28]利用一般的CNN架构,但用空间金字塔池层替换了最后一个池层。空间金字塔池可以从任意的图像(或区域)提取固定长度的表示,产生灵活的解决方案,用于处理不同的尺度、大小、纵横比,并且可以应用于几乎任何CNN结构以提高这种结构的性能。

DEF池

处理变形是计算机视觉中的一个基本挑战,特别是在物体识别任务中。最大池化方法和平均池化方法在处理变形方面是有用的,但它们不能学习对象部分的变形约束和几何模型。为了更有效地处理变形,Ouyang等[29]引入了一种新的变形约束池层,称为DEF池层,通过学习视觉模式的变形来丰富深层模型。它可以在任何信息抽象级别上取代传统的最大池层。

由于池化策略的目的和程序不同,可以采用各种合并策略来提高CNN的表现。

3.1.1.3全连接层

如图2所示,在网络中的最后一个池化层之后,有几个完全连接的层将2d特征映射转换成一维特征向量,用于进一步的特征表示,如图5所示。

图5 全连接层示意图

全连接层和传统的神经网络一样运行,包含大约90%的CNN参数。它使神经网络形成一个预定义的长度向量。我们可以将向量转变到一定数量的类别中进行图像分类[24],或者将其作为后续处理的特征向量。

这些层的缺点是它们包含许多参数,这将导致大量的计算来训练它们。因此,用某种方法去除这些层或减少连接是一个很有前途的应用方向。例如,GoogLeNet[30]设计了一个又深又宽的网络而计算预算不变,通过从全连接转为到从松散连接的结构。

3.2训练策略

与浅学习相比,深层学习的优势在于它可以构建深层的体系结构来学习更多抽象的信息。然而,引入大量参数,也可能导致另一个问题:过度拟合。近年来,众多的正则化方法在预防过拟合问题出现。在这一部分中,我们将介绍其他一些可能影响训练性能的正则化技术。

3.1.2.1 Dropout和Dropconnect

Dropout是由Hinton等人提出的[31]。在每次训练的情况下,该算法将随机删除一半的特征检测器,以防止复杂的训练数据的共同适应和提高泛化能力。具体来说,由Warde-Farley等人的研究分析了Dropout的有效性,认为Dropout是一种非常有效的综合学习方法。

一个著名的对Dropout简化称为Dropconnect[32],它随机抛弃权重而不是激活。实验表明,尽管速度稍慢一些,它可以在各种标准方法上获得有竞争力的甚至更好的结果。图6给出了一个比较对于没有No-Drop,Dropout和Dropconnect网络。

图6 No-Drop,Dropout和Dropconnect网络示意图

3.1.2.2 数据扩充

当CNN被应用于视觉对象识别时,数据扩充常常被用来生成额外的数据,而不需要额外的标记成本。著名的AlexNet[24]利用数据扩充两种不同的形式:增强数据的第一种形式由生成图像转换(切成较小的块)和水平的翻转,第二形式包括改变训练图像的RGB通道的强度。Howard等人[33]以AlexNet为基础的模型和添加额外的转换,提高了图像的转化不变性和颜色不变性通过用额外像素延长图像群以及添加额外的颜色处理。Dosovitskiy等人[34]提出了一种基于数据增强的无监督特征学习方法:首先随机抽取一组图像块,并将每个图像块声明为一个代理类,然后通过对应的转化、尺度、颜色和对比度来扩展这些类。最后,它训练了一个CNN来区分这些代理类。网络学习的特点在各种分类任务中显示了良好的效果。

3.1.2.3预训练和微调

预训练是指用预先训练好的参数来初始化网络,而不是随机设置参数。它在基于CNN的模型中是非常流行的,由于其可以加快学习进程以及提高泛化能力。Erhan[35]等对现有的算法进行了大量的模拟,以发现为什么受过预训练的网络比传统方式训练的网络更好地工作。当AlexNet取得了优良的业绩并向公众公布,众多的方法选择由ImageNet2012训练的AlexNet作为基准深度模型,并根据他们的具体任务对参数使用微调。

精细调优是优化模型以适应特定任务和数据集的关键阶段。一般来说,微调需要新的训练数据集的类标签,用于计算损失函数。在这种情况下,除了依赖于新的数据集类的标签值最后输出层,新模型的所有层将根据预先训练好的模型进行初始化,如AlexNet,再将最后一层随机初始化。很多研究成果描述了如何有效地训练预训练模型,定义了一种新的方法来衡量某一层是一般的或特定的[36],即该层的特征如何从一个任务转移到另一个任务。他们得出结论,从几乎任意数量层中利用转移的特征来初始化网络,可以在微调到新数据集后提高泛化性能。

除了上述的正则化方法外,还有其他常用的方法,如权重衰减、权重捆绑等。权重衰减通过在成本函数中添加一个额外项来惩罚参数,防止它们精确地建模训练数据,因此有助于推广到新的示例。这些正则化训练技术并不是相互排斥的,它们可以结合起来提高性能。

4.深度神经网络的应用

深度学习在计算机视觉的各个领域得到了广泛的应用,如图像分类、目标检测、图像检索和语义分割以及人体姿态估计,这些都是图像理解的关键任务。在这一部分中,本文将简要概述深度学习的发展,特别是基于CNN的算法。

4.1图像分类

图像分类任务包括以特定的视觉对象类的可能性标记输入图像,如图7所示。

图7 图像分类结果图

在深度学习之前,也许图像分类中最常用的方法是基于视觉单词袋(BoW)[37]的方法,该方法首先将图像描述为量化视觉单词的直方图,然后将直方图送到分类器(通常为支持向量机(SVM))。这个方法是基于无序的统计,将空间几何包括为成BoW的描述。此后,该方法由将稀疏编码优化问题转变成字典的建立来进一步完善[38]。稀疏编码是深层学习中的基本算法之一,它比原手工设计的算法更具鉴别力,如:HOG[39]和LBP[40]

基于BOW的方法只涉及到视觉单词的数量,丢弃了图像的许多有价值的信息。通过Perronnin等人介绍的方法[41]克服了这个问题,并采用Fisher核提取高阶统计量,实现了优秀的图像分类结果。在这一阶段,研究者倾向于关注高阶统计量,这是深层学习的核心思想。

Krizhevsky等人[24]等人的成果为代表的大型物体识别中的一个转折点,证明CNN除了手写数字识别,也能做好自然图像分类。该Alexnet以top5 误差率15.3%的成绩赢得ILSVRC 2012比赛,这引发了大量增加的关于CNN的研究。在图8中,显示了2012年后在ImageNet测试数据中最先进的结果。

图8 近年各算法准确率图

OverFeat[42]提出了一种多尺度和滑动窗口的方法,可以发现图像的最优尺寸的同时,完成不同的任务,即分类、定位和检测。这个方法将top5的错误率降到了13.6%。Zeiler等人[43]介绍一个新的视觉技术,它着眼于中间特征层的功能和进一步的调整来适应一个新的模型,这比Alexnet表现更好,达到11.7%的top5错误率,并在ILSVRC 2013有最好的表现。

ILSVRC 2014见证了深度学习的普及,大多数参与者利用CNN作为他们的模型的基础。自从ILSVRC 2013误差几乎减少了一半,又一次重大进展已经发生在图像分类中。SPP网络模型[28]消除了固定输入图像大小的限制,尽管其设计不同,但仍能提高各种CNN体系结构的准确性。多分类SPP网进一步降低了top5错误率至8.06%,在ILSVRC 2014图像分类的挑战排名第三。随着CNN的经典模型的改进,另一个表现最好的模型共有的特点是架构变得更深,如googlenet[30]和VGG[44],分别取得了6.67%和7.32%的错误率。

尽管较大的模型具有潜在的能力,但是当有较小的训练数据集或过短的训练时间,它们会有过拟合与欠拟合的问题。最近,He等人[45]提出参数修正线性单元产生传统的修正激活单元,并推导出一种鲁棒的初始化方法。这个方法得到了4.94%的top5错误率并且首次超越人类的表现水平(5.1%)。

4.2目标检测

目标检测不同于图像分类任务,但与图像分类任务密切相关。对于图像分类,利用整幅图像作为输入,估计图像中物体的类别标签。对于目标检测,除了输出给定类的存在信息外,我们还需要估计实例的位置,如图19所示。如果输出框与真实对象有足够大的重叠,则检测窗口被认为是正确的。

图9 目标检测示例

在深度学习之前,可变形部件模型(DPM)[46]是最有效的目标检测方法。它利用可变形的部分模型,并以完全的方式检测图像上所有尺度和位置上的对象。结合后处理技术后,即轮廓预测和上下文评分,在VOC2007的测试集中取得了29.09%的平均精度。

随着深度学习方法(特别是基于CNN的方法)在图像分类任务上取得了最优秀的结果,研究人员开始将其转化为目标检测问题。当前成功的对象检测系统的一般模式是生成一个候选集,并使用CNN的特征进行分类。最具代表性的方法是由Girshick等人提出的RCNN方案[47]。它利用选择性搜索生成候选框,并为每个候选框提取CNN特性。然后将特征输入到SVM分类器中,以决定相关候选窗口是否包含对象。RCNN改进基准幅度较大,并成为许多其他有前途算法的基础模型。

来自RCNN算法主要分为两类:第一类是为了加快训练和测试过程。虽然RCNN具有良好的目标检测的准确性,但是它的计算量很大,因为它首先将每个候选框处理到相同的大小然后独立处理每个目标候选框。因此,一些著名的算法提高了它的效率,如SPP-net[28],FRCN[48],Faster RCNN[49],YOLO[50]等。这些算法检测物体的速度更快,而与最先进的基准有可相比的精确度。

第二类主要是为了提高RCNN精度。“基于区域识别”模型的性能高度依赖于对象假设的质量。目前,有许多提出候选框的算法,如选择搜索[51],类独立的对象的建议[52],BING[53]和边缘箱[54]等。虽然这些方案很好地找到粗略的物体位置,但它们通常不能通过一个紧密的边缘框精确定位整个物体,这是检测错误的最大来源[55]。

这些方法的一个重要方向是将它们与语义分割技术结合起来。例如,UDS方法[56]将目标检测和语义分割过程统一在一个框架中,通过加强它们的一致性和集成的上下文信息。模型表现出对两个任务的良好性能。

还有一些方法试图以其他方式精确定位对象。例如,FGS[57]解决定位的问题,通过两种方法:1)开发了一个细粒度的搜索算法迭代优化对象位置;2)训练了一个有支持向量机结构的CNN分类器,目的是平衡分类和定位。这些方法的结合在两个具有挑战性的数据集上显示了良好的性能。

收集大量的图像标签比收集精确的边框标签更便宜和容易。因此,大规模对象检测的一个主要挑战是获取大量类别标记图像的困难。霍夫曼等人[58]提出了一种深度检测适配算法,以学习图像分类和目标检测之间的差异,将类别分类器转换为检测器,而没有边框注释数据。该方法具有对缺少边框注释的数千个类别进行检测的潜力。

除了算法本身,我们还可以观察到一些可以改善性能的因素:(1)较大的训练集;2)更深的基础模型;3)边界回归。

4.3语义分割

大量的研究者关注于语义分割任务,并取得可喜的进展。他们成功的主要原因来自于CNN模型,这些模型能够在大规模数据集上用预先训练好的网络处理像素级的预测。与图像级分类和对象级检测不同,语义分割要求具有二维空间分布的输出。其中基于CNN的方法可以概括如下:

(1)基于检测的分割。该方法基于从对象检测输出的候选框来分割图像。RCNN[47]和SDS[59]首先生成对象检测的区域建议,然后利用传统的方法来分割区域和分配像素到类标签从检测区域中。基于检测的分割的一个缺点是对象检测的额外开销很大。没有从原始图像中提取区域的Dei等人[60]设计了一个卷积特征屏蔽方法(CFM)直接从特征映射图提取有效候选框,作为卷积特征图只需要计算一次,但是候选框和对象检测引起的错误往往被传播到分割阶段。

(2)基于FCN-CRF分割。完全卷积网络(FCN),用更多的卷积层代替全连接层,是语义分割的一种流行的策略。Long等[61]定义了一种新的体系结构,它将来自深层、粗糙层的语义信息与浅层、精细层的外观信息相结合,以产生精确而详细的分割。

(3)弱监督的注释。除了分割模型的进步之外,一些工作集中于弱监督分割。Papandreou等人[62]研究了带有弱注释的训练数据(如边界框或图像级标签)的更具挑战性的分割。 同样,[63]中的BoxSup方法利用了边界框注释来估计分割,并用它们来迭代地更新网络。这些方法在将少量像素级注释图像与大量边框注释图像组合在一起训练时表现出色。

5.Fast RCNN算法及其他目标检测算法的对比

5.1 CNN

Krizhevsky等人提出了使用一种用于目标分类的深度神经网络,他们使用了八个带权层;前五层是卷积层,剩下三层是全连接层。最后一个全连接层的输出被送到一个1000-way的softmax层,其产生一个覆盖1000类标签的分布。这个网络将在ImageNet LSVRC-2010大赛中的120万张高清图像分为1000个不同的类别。对测试数据,他们得到了top-1误差率37.5%,以及top-5误差率17.0%,这个效果比之前最顶尖的算法都要好得多。该文章对传统的CNN网络做出了一些改进:在这个网络中使用了ReLU函数作为激活函数,该激活函数比传统的双曲函数等有更快的收敛性。而除了网络本身,该文章为了减少过拟合主要使用了两种方法:1.数据增强,保留标签的转换,人为地扩大数据集。2. “dropout”:它做的就是以0.5的概率将每个隐层神经元的输出设置为零。以这种方式“dropped out”的神经元既不利于前向传播,也不参与反向传播。所以每次提出一个输入,该神经网络就尝试一个不同的结构,但是所有这些结构之间共享权重。因为神经元不能依赖于其他特定神经元而存在,所以这种技术降低了神经元复杂的互适应关系。正因如此,要被迫学习更为鲁棒的特征。该方法极大的提高了图像分类的正确性,让深度神经网络方法进入了人们的视野。缺点也很明显,这种方法只能提出每个类别的概率,并不能明确目标的位置和数量。

5.2 RCNN

RCNN首先在目标识别用运用深度神经网络方法,它吸收了CNN分类网络的优点得到了较好的结果:

1.在图像中检测得到1000-2000个候选区域

在这个步骤中,寻找类无关候选区域的方法有很多,原文使用了选择性搜索的方法。

2.对每个区域,使用深度神经网络提取特征

由于CNN对输入图像的大小是确定的,所以对于上一个步骤中得到的候选区域,首先应当化为相同的大小。对于每个输入图像,CNN输出一个高维特征向量。

3.将这些特征向量送入一类的SVM分类,每类的SVM是一个二分类器

该步骤可以判断每个候选区域是否有目标,以及属于某一类。

4.使用边缘回归方法,精细修正候选框的位置

该步骤用一个简单的边界框回归阶段来提高定位性能。在使用一个特定类检测的SVM对每个选择性搜索候选值进行评分之后,使用特定类的边界框回归来预测用于检测的新边界框。

该算法主要对以下问题做出了改进:

(1) 很多目标检测的传统算法需要使用滑动窗遍历整幅图像,这很大程度上影响了算法的速度。而该文章将卷积神经网络应用到自下而上的候选区域选取方法中,来定位和分割对象;大大减少了需要计算的窗口数量,提高了检测的速度。

(2)一般详细标定出每张图片中,物体的类别和位置的数据集比较小,而标定每张图片中物体的类别的粗糙数据集较大。当标记的训练数据稀缺时,可以先使用一个有监督的预训练好的模型,再进行在特定的数据集上进行微调,可以产生一个显著的性能提高。

本文使用粗糙数据集进行预训练,而后用详细数据集调优参数。最后在检测库上评测。

RCNN有四个明显的不足之处:

1)该算法的训练是一个多步骤的模型,需要先提取候选区域,使用CNN提取特征,再用SVM分类,最后做边缘回归。

2)训练的时间和空间花费很高。该算法需要对每一个候选区域进行特征提取,而候选区域本身有大量的重叠,这就使该算法进行了很多不必要的运算。而独立的分类器和回归器需要存储大量的样本。

3)该算法需要对每一个候选区域进行特征提取,测试过程的实时性同样不能保证。

4)输入的图像的大小固定。

改进方法:1)用softmax网络代替SVM。2)先对图片进行卷积得到特征图,再计算每个区域的特征。

5.3 SPP Net

针对RCNN中输入图片大小不能改变的问题,He等人提出了SPP Net解决了全连接层输入神经元数量固定的问题。SPP的主要步骤如下:

1.首先通过选择性搜索,对待检测的图片进行搜索出2000个候选窗口。这一步和R-CNN一样。

2.特征提取阶段。这一步是和R-CNN最大的区别。这一步骤的具体操作如下:把整张待检测的图片,输入CNN中,进行一次性特征提取,得到特征图,然后在feature maps中找到各个候选框的区域,再对各个候选框采用金字塔空间池化,提取出固定长度的特征向量。而R-CNN输入的是每个候选框,然后在进入CNN。

3.最后一步也是和R-CNN一样,采用SVM算法进行特征向量分类识别。

两个网络的主要区别如下图所示:

图10 CNN(上方)和SPPNet(下方)的结构对比

CNN中针对输入神经元数量固定的问题是将输入图像扭曲到一个固定的输入。SPP-Net在最后一个卷积层后,接入了金字塔池化层,使用这种方式,可以让网络输入任意的图片,而且还会生成固定大小的输出。

金字塔池化层借鉴了BOF方法使用不同的模板,将提取出的特征放入不同的bin中,将这些bin形成的直方图作为特征输入最后的全连接层。由于bin的数量和模板的数量是一定的,所以得到的特征向量的长度也是固定的。

算法主要优点:

1.当网络输入的是一张任意大小的图片,可以一直进行卷积、池化,直到网络的倒数几层的时候,也就是我们即将与全连接层连接的时候,再使用金字塔池化,使得任意大小的特征图都能够转换成固定大小的特征向量。

2.因为SPP-Net只需要一次对整张图片进行特征提取,速度会大大提升。

主要缺点:像R-CNN一样它的训练网络是一个多阶段的网络,包括提取特征,对网络进行微调,训练SVM分类器和最后的边界回归。CNN提取的特征也需要写入磁盘中,这种操作很浪费空间。但与R-CNN不同,微调算法不能更新在空间金字塔池化之前的卷积层。这种固定的卷积层限制了深度网络的精度。

改进方法:1)用softmax网络代替SVM,节约空间资源。2)将得到的候选框用正方形代替,再根据不同的变长决定卷积核的大小,从而得到相同大小的特征图。

5.4 Fast RCNN

针对RCNN和SPP的缺点 Fast RCNN进行了一下的改进。

首先,使用softmax方法代替了SVM分类,将算法的(2)—(4)步相连接,使用同一个网络训练和学习,不需要将CNN提取的特征再次送入SVM,减少了训练中的空间花费。

第二,使用ROI Pooling层代替了空间金字塔池化层,使其可以正常的被微调,保证了网络的精度。ROI Pooling层的具体实现基于一个简单的方法:首先假设建议框对应特征图中的特征框大小为h×w,将其划分H×W个子窗口,每个子窗口大小为h/H×w/W,然后对每个子窗口采用max pooling下采样操作,每个子窗口只取一个最大值,则特征框最终池化为H×W的尺寸。这将各个大小不一的特征框转化为大小统一的数据。

第三,尝试使用SVD方法减少全连接层的参数,在实验中性能下降很少,但是可以节省大量的时间。

本文复现了Fast RCNN的算法进行了一些实验。由于实验条件和时间的限制,只能进行小规模的实验。下面是所得到的一些实验结果和实验分析。

(a)                              (b)

(c)                                  (d)

(e)

图11 Fast RCNN实验结果

由上面结果图上显示了检测出的类别和数量以及所用的时间(单位s),可以看出该算法对图像处理的速度已经极大的提高了,同时多个类别的准确性也很高,可以应用于实际中。

但是这个方法也有一些缺点,例如:1.该算法仍然没有将候选区域提取部分整合进网络中,而从原图像中提取数千个候选区域是十分耗时的。因为一般的候选区域的提取方法是不能在GPU上并行计算的,所以极大的限制了速度2.从图(a)(d)中可以看出,该算法在目标检测存在错误和遗漏。而图(b)(c)显示了该方法对目标大小,形状的变化以及遮挡的适应性不强。

改进方法:将候选区域的提取在高层特征图上利用神经网络实现,这样可以将整个算法都在GPU上并行计算,这样大大提高了计算的速度。同时可以使用尺度金字塔的方法,对图像进行不同程度的模糊,得到不同尺度上的目标。

5.5 Faster RCNN

目前最先进的目标检测网络需要先用区域建议算法推测目标位置,像SPPnet和Fast RCNN这些网络虽然已经减少了检测网络运行的时间,但是计算区域建议依然耗时较大。所以,在这样的瓶颈下,该文章作者将候选区域提取也交给CNN来做,这才提出了RPN(Region Proposal Network)区域建议网络用来提取检测区域,如下图所示。Faster RCNN能和整个检测网络共享全图的卷积特征,使得区域建议几乎不花时间。所以该文章主要解决了以下三个问题:1. 如何设计区域生成网络;2. 如何训练区域生成网络;3. 如何让区域生成网络和Fast RCNN网络共享特征提取网络

图12 三种网络简要结构对比

RPN的核心思想是使用CNN卷积神经网络直接产生候选区域,使用的方法本质上是在最后的卷积层的结果上用一个小窗口滑动一遍,因为anchor机制和边框回归可以得到多尺度多长宽比的候选区域。RPN网络也是全卷积网络,可以针对生成检测建议框的任务端到端的训练,能够同时预测出目标回归边界和目标分数。代价只是在CNN上额外增加了2个卷积层(全卷积层cls和reg)。

1.在特征图的每个滑动块位置编码生成一个特征向量。

2.在每一个位置对k个不同的anchor输出k个目标得分和目标回归边界,即在每个卷积映射位置输出这个位置上多种尺度(3种)和长宽比(3种)的k个(3*3=9)区域建议的目标得分和回归边界。

图13 PRN结构示意图

该方法的主要优点:将候选区域提出的步骤加入到深度神经网络中,避免了非并行计算对速度的影响。该方法加速了训练和检测的过程,并提出了有效的训练方法。

该方法对比RCNN方法在速度和准确性上都有大幅的提高但是该方法仍然只能给出一个目标存在的区域,不能给出像素级的分割。同时由于对特征的采集中仅使用了最后一层的结果,该算法对小目标的识别率不高。

改进方法:可以对原图像提取图像金字塔,在不同的尺度上对特征进行提取。同时在得到目标的包围框后可以使用GrabCut方法得到目标的像素级分割。

5.6 FPN

对比之前的深度网络,FPN 主要解决的是物体检测中的多尺度问题,通过简单的网络连接改变,在基本不增加原有模型计算量情况下,大幅度提升了小物体检测的性能。

现在常用的特征提取方法如图(b)所示,只是用了顶层的特征。在物体检测方面,有限计算量情况下,网络的深度越深,对应到原图像中的感受野就越大,造成的结果就是小物体的检测性能急剧下降。传统解决这个问题的思路包括:(1)多尺度训练和测试,又称图像金字塔,如图(a) 所示。目前几乎所有在 ImageNet 和 COCO 检测任务上取得好成绩的方法都使用了图像金字塔方法。然而这样的方法由于很高的时间及计算量消耗,难以在实际中应用。(2)特征分层,即每层分别预测对应的分辨率的检测结果。如图 (c) 所示。SSD 检测框架采用了类似的思想。这样的方法问题在于直接从不同分辨率下的特征层上学习相同的语义信息。而对于卷积神经网络而言,不同深度对应着不同层次的语义特征,浅层网络分辨率高,学的更多是细节特征,深层网络分辨率低,学的更多是语义特征。

图14 四种不同的特征提取结构

本文针对这些问题,提出了特征金字塔网络 FPN,如上图 (d) 所示,网络直接在原来的单向网络上做修改,每个分辨率的特征图引入后面一个分辨率缩放两倍的 特征图做 相应像素的相加操作。通过这样的连接,每一层预测所用的特征图都融合了不同分辨率、不同语义强度的特征。融合的不同分辨率的特征图分别用于做相应分辨率大小的物体检测。这样保证了每一层都有合适的分辨率以及强语义特征。同时,由于此方法只是在原网络基础上加上了额外连接,新的特征层的计算在实际应用中几乎不增加额外的时间和计算量。

该算法的主要优点:相对于图像金字塔方法,在增加较少的额外时间和计算量的基础上,利用多层特征融合的方法,极大的改善了对小目标检测的效果。

算法的主要缺点:多层特征的独立搜索带来了巨大搜索空间。如Faster RCNN算法仅在顶层的特征图上遍历检索,产生的anchor数量是有限的。而该算法需要使用滑动窗遍历检索对所有分辨率的特征图,而低一层的特征图又数倍大于高一层的特征图。这就导致该算法提出的anchor数量大量增加,对应的时间也增加了。

改进方法:是否可以考虑利用高层已经搜索到的特征位置,抑制底层相应位置的特征,减少搜索空间。

 

 

6.总结和展望

本文介绍了主流神经网络算法的构成和特点,主要介绍了神经网络中的深度神经网络在图像处理,尤其是图像分类,目标识别和语义分割中的一些应用。而且本文讨论本文复现的Fast RCNN算法的特点。

尽管迄今为止的结果令人振奋,但仍有很大的进展空间。例如,根本的理论基础还没有解释在什么条件下,各种网络将表现出色或超越其他方法,以及如何确定某个任务的最佳结构。

尽管用深层学习方法来解决计算机视觉任务方面取得了可喜的成果,但基本理论还没有被很好地理解,也没有明确的理解哪种体系结构应该比其他结构表现得更好。难以确定多少层,或者每层多少节点是适合一个特定的任务的结构。它还需要选择合理的参数如学习率、正则化的大小等。结构的设计一直是一个特定基础上确定的。为了更好地了解CNN结构的行为,Zeiler等人[43]开发了一种可视化技术,可以洞察中间特征层的功能。通过揭示可解释模式的特性,它为更好的结构设计带来了进一步的可能性。

较大的模型显示出更多的潜力,并已成为最近发展的趋势。然而,训练数据的短缺可能会限制这种模型的规模和学习能力,尤其是在获取完全标记数据时是很昂贵的。如何克服大量训练数据的需求以及如何有效地训练大型网络仍有待解决。

神经网络方法有着巨大的潜力,神经网络方法和生物神经网络的研究相互促进,相互借鉴。神经网络方法的下一次大发展一定会取得更辉煌的成果。

 

参  考  文  献

[1] Ciregan D, Meier U, Schmidhuber J. Multi-column deep neural networks for image classification[C]//Computer Vision and Pattern Recognition (CVPR), 2012 IEEE Conference on. IEEE, 2012: 3642-3649.

[2] Krizhevsky A, Sutskever I, Hinton G E. Imagenet classification with deep convolutional neural networks[C]//Advances in neural information processing systems. 2012: 1097-1105.

[3] Deng L. A tutorial survey of architectures, algorithms, and applications for deep learning[J]. APSIPA Transactions on Signal and Information Processing, 2014, 3.

[4] Vidal R, Bruna J, Giryes R, et al. Mathematics of Deep Learning[J]. arXiv preprint arXiv:1712.04741, 2017.

[5] McCulloch W S, Pitts W. A logical calculus of the ideas immanent in nervous activity[J]. The bulletin of mathematical biophysics, 1943, 5(4): 115-133.

[6] Rosenblatt F. The perceptron: A probabilistic model for information storage and organization in the brain[J]. Psychological review, 1958, 65(6): 386.

[7] Ivakhnenko A G. The Group Method of Data of Handling; A rival of the method of stochastic approximation[J]. Soviet Automatic Control, 1968, 13: 43-55.

[8] Dreyfus S. The computational solution of optimal control problems with time lag[J]. IEEE Transactions on Automatic Control, 1973, 18(4): 383-385.

[9] Werbos P J. Applications of advances in nonlinear sensitivity analysis[M]//System modeling and optimization. Springer, Berlin, Heidelberg, 1982: 762-770.

[10] Rumelhart D E, Hinton G E, Williams R J. Learning internal representations by error propagation[R]. California Univ San Diego La Jolla Inst for Cognitive Science, 1985.

[11] LeCun Y, Boser B, Denker J S, et al. Backpropagation applied to handwritten zip code recognition[J]. Neural computation, 1989, 1(4): 541-551.

[12] LeCun Y, Boser B E, Denker J S, et al. Handwritten digit recognition with a back-propagation network[C]//Advances in neural information processing systems. 1990: 396-404.

[13] Hochreiter S, Schmidhuber J. Long short-term memory[J]. Neural computation, 1997, 9(8): 1735-1780.

[14] Csáji B C. Approximation with artificial neural networks[J]. Faculty of Sciences, Etvs Lornd University, Hungary, 2001, 24: 48.

[15] Hinton G E, Osindero S, Teh Y W. A fast learning algorithm for deep belief nets[J]. Neural computation, 2006, 18(7): 1527-1554.

[16] Hinton G E, Salakhutdinov R R. Reducing the dimensionality of data with neural networks[J]. science, 2006, 313(5786): 504-507.

[17] Hinton G E, Sejnowski T J. Learning and releaming in Boltzmann machines[J]. Parallel Distrilmted Processing, 1986, 1.

[18] Hinton G. A practical guide to training restricted Boltzmann machines[J]. Momentum, 2010, 9(1): 926.

[19] Cho K H, Raiko T, Ihler A T. Enhanced gradient and adaptive learning rate for training restricted Boltzmann machines[C]//Proceedings of the 28th International Conference on Machine Learning (ICML-11). 2011: 105-112.

[20] Nair V, Hinton G E. Rectified linear units improve restricted boltzmann machines[C]//Proceedings of the 27th international conference on machine learning (ICML-10). 2010: 807-814.

[21] Arel I, Rose D C, Karnowski T P. Deep machine learning-a new frontier in artificial intelligence research [research frontier][J]. IEEE computational intelligence magazine, 2010, 5(4): 13-18.

[22] Salakhutdinov R, Hinton G. Deep boltzmann machines[C]//Artificial Intelligence and Statistics. 2009: 448-455.

[23] Ngiam J, Chen Z, Koh P W, et al. Learning deep energy models[C]//Proceedings of the 28th International Conference on Machine Learning (ICML-11). 2011: 1105-1112.

[24] Krizhevsky A, Sutskever I, Hinton G E. Imagenet classification with deep convolutional neural networks[C]//Advances in neural information processing systems. 2012: 1097-1105.

[25] Szegedy C, Liu W, Jia Y, et al. Going deeper with convolutions[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2015: 1-9.

[26] Boureau Y L, Ponce J, LeCun Y. A theoretical analysis of feature pooling in visual recognition[C]//Proceedings of the 27th international conference on machine learning (ICML-10). 2010: 111-118.

[27] Scherer D, Müller A, Behnke S. Evaluation of pooling operations in convolutional architectures for object recognition[J]. Artificial Neural Networks–ICANN 2010, 2010: 92-101. 

[28] He K, Zhang X, Ren S, et al. Spatial pyramid pooling in deep convolutional networks for visual recognition[C]//European Conference on Computer Vision. Springer, Cham, 2014: 346-361.

[29] Ouyang W, Luo P, Zeng X, et al. Deepid-net: multi-stage and deformable deep convolutional neural networks for object detection[J]. arXiv preprint arXiv:1409.3505, 2014.

[30] Szegedy C, Liu W, Jia Y, et al. Going deeper with convolutions[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2015: 1-9.

[31] Hinton G E, Srivastava N, Krizhevsky A, et al. Improving neural networks by preventing co-adaptation of feature detectors[J]. arXiv preprint arXiv:1207.0580, 2012.

[32] Ba J, Frey B. Adaptive dropout for training deep neural networks[C]//Advances in Neural Information Processing Systems. 2013: 3084-3092.

[33] Howard A G. Some improvements on deep convolutional neural network based image classification[J]. arXiv preprint arXiv:1312.5402, 2013.

[34] Dosovitskiy A, Springenberg J T, Brox T. Unsupervised feature learning by augmenting single images[J]. arXiv preprint arXiv:1312.5242, 2013.

[35] Erhan D, Bengio Y, Courville A, et al. Why does unsupervised pre-training help deep learning?[J]. Journal of Machine Learning Research, 2010, 11(Feb): 625-660.

[36] Yosinski J, Clune J, Bengio Y, et al. How transferable are features in deep neural networks?[C]//Advances in neural information processing systems. 2014: 3320-3328.

[37] Csurka G, Dance C, Fan L, et al. Visual categorization with bags of keypoints[C]//Workshop on statistical learning in computer vision, ECCV. 2004, 1(1-22): 1-2.

[38] Lin Y, Lv F, Zhu S, et al. Large-scale image classification: fast feature extraction and svm training[C]//Computer Vision and Pattern Recognition (CVPR), 2011 IEEE Conference on. IEEE, 2011: 1689-1696.

[39] Dalal N, Triggs B. Histograms of oriented gradients for human detection[C]//Computer Vision and Pattern Recognition, 2005. CVPR 2005. IEEE Computer Society Conference on. IEEE, 2005, 1: 886-893.

[40] Wang X, Han T X, Yan S. An HOG-LBP human detector with partial occlusion handling[C]//Computer Vision, 2009 IEEE 12th International Conference on. IEEE, 2009: 32-39.

[41] Perronnin F, Sánchez J, Mensink T. Improving the fisher kernel for large-scale image classification[J]. Computer Vision–ECCV 2010, 2010: 143-156.

[42] Sermanet P, Eigen D, Zhang X, et al. Overfeat: Integrated recognition, localization and detection using convolutional networks[J]. arXiv preprint arXiv:1312.6229, 2013.

[43] Zeiler M D, Fergus R. Visualizing and understanding convolutional networks[C]//European conference on computer vision. Springer, Cham, 2014: 818-833.

[44] Simonyan K, Zisserman A. Very deep convolutional networks for large-scale image recognition[J]. arXiv preprint arXiv:1409.1556, 2014.

[45] He K, Zhang X, Ren S, et al. Delving deep into rectifiers: Surpassing human-level performance on imagenet classification[C]//Proceedings of the IEEE international conference on computer vision. 2015: 1026-1034.

[46] Felzenszwalb P F, Girshick R B, McAllester D, et al. Object detection with discriminatively trained part-based models[J]. IEEE transactions on pattern analysis and machine intelligence, 2010, 32(9): 1627-1645.

[47] Girshick R, Donahue J, Darrell T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2014: 580-587.

[48] Girshick R. Fast r-cnn[C]//Proceedings of the IEEE international conference on computer vision. 2015: 1440-1448.

[49] Ren S, He K, Girshick R, et al. Faster R-CNN: Towards real-time object detection with region proposal networks[C]//Advances in neural information processing systems. 2015: 91-99.

[50] Redmon J, Divvala S, Girshick R, et al. You only look once: Unified, real-time object detection[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016: 779-788.

[51] Uijlings J R R, Van De Sande K E A, Gevers T, et al. Selective search for object recognition[J]. International journal of computer vision, 2013, 104(2): 154-171.

[52] Endres I, Hoiem D. Category independent object proposals[J]. Computer Vision–ECCV 2010, 2010: 575-588.

[53] Cheng M M, Zhang Z, Lin W Y, et al. BING: Binarized normed gradients for objectness estimation at 300fps[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2014: 3286-3293.

[54] Zitnick C L, Dollár P. Edge boxes: Locating object proposals from edges[C]//European Conference on Computer Vision. Springer, Cham, 2014: 391-405.

[55] Hoiem D, Chodpathumwan Y, Dai Q. Diagnosing error in object detectors[J]. Computer Vision–ECCV 2012, 2012: 340-353.

[56] Dong J, Chen Q, Yan S, et al. Towards unified object detection and semantic segmentation[C]//European Conference on Computer Vision. Springer, Cham, 2014: 299-314.

[57] Zhang Y, Sohn K, Villegas R, et al. Improving object detection with deep convolutional networks via bayesian optimization and structured prediction[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2015: 249-258.

[58] Hoffman J, Guadarrama S, Tzeng E S, et al. LSDA: Large scale detection through adaptation[C]//Advances in Neural Information Processing Systems. 2014: 3536-3544.

[59] Hariharan B, Arbeláez P, Girshick R, et al. Simultaneous detection and segmentation[C]//European Conference on Computer Vision. Springer, Cham, 2014: 297-312.

[60] Dai J, He K, Sun J. Convolutional feature masking for joint object and stuff segmentation[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2015: 3992-4000.

[61] Long J, Shelhamer E, Darrell T. Fully convolutional networks for semantic segmentation[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2015: 3431-3440.

[62] Papandreou G, Chen L C, Murphy K, et al. Weakly-and semi-supervised learning of a DCNN for semantic image segmentation[J]. arXiv preprint arXiv:1502.02734, 2015.

[63] Dai J, He K, Sun J. Boxsup: Exploiting bounding boxes to supervise convolutional networks for semantic segmentation[C]//Proceedings of the IEEE International Conference on Computer Vision. 2015: 1635-1643.

 

 

 

Faster R-CNN: 使用区域建议网络的实时目标识别

Shaoqing Ren, Kaiming He, Ross Girshick, Jian Sun

 

摘要

目前最先进的目标检测网络需要先用区域建议算法推测目标位置,像SPPnet[7]和Fast R-CNN[5]这些网络已经减少了检测网络的运行时间,这时计算区域建议就成了瓶颈问题。本文中,我们介绍一种区域建议网络(RPN),它和检测网络共享全图的卷积特征,使得区域建议几乎不花时间。RPN是一个全卷积网络,在每个位置同时预测目标边界和目标得分。RPN是端到端训练的,生成高质量区域建议框,用于Fast R-CNN来检测。通过一种简单的交替运行优化方法,RPN和Fast R-CNN可以在训练时共享卷积特征。对于非常深的VGG-16模型[19],我们的检测系统在GPU上的帧率为5fps(包含所有步骤),在PASCAL VOC 2007和PASCAL VOC 2012上实现了最高的目标检测准确率(2007是73.2%mAP,2012是70.4%mAP),每个图像用了300个建议框。

1.引言

最近在目标检测中取得的进步都是由区域建议方法(例如[22])和基于区域的卷积神经网络(R-CNN)[6]取得的成功来推动的。基于区域的CNN在[6]中刚提出时在计算上消耗很大,幸好后来这个消耗通过建议框之间共享卷积[7,5]大大降低了。最近的Fast R-CNN[5]用非常深的网络[19]实现了近实时检测的速率,注意它忽略了生成区域建议框的时间。现在,建议框是最先进的检测系统中的计算瓶颈。 

区域建议方法典型地依赖于消耗小的特征和经济的获取方案。选择性搜索[22]是最流行的方法之一,它基于设计好的低级特征贪心地融合超级像素。与高效检测网络[5]相比,SS要慢一个数量级,CPU应用中大约每个图像2s。EdgeBoxes[24]在建议框质量和速度之间做出了目前最好的权衡,大约每个图像0.2s。但无论如何,区域建议步骤花费了和检测网络差不多的时间。 

Fast R-CNN利用了GPU,而区域建议方法是在CPU上实现的,这个运行时间的比较是不公平的。一种明显提速生成建议框的方法是在GPU上实现它,这是一种工程上很有效的解决方案,但这个方法忽略了其后的检测网络,因而也错失了共享计算的重要机会。 

本文中,我们改变了算法—用深度网络计算建议框—这是一种简洁有效的解决方案,建议框计算几乎不会给检测网络的计算带来消耗。为了这个目的,我们介绍新颖的区域建议网络,它与最先进的目标检测网络[7,5]共享卷积层。在测试时,通过共享卷积,计算建议框的边际成本是很小的(例如每个图像10ms)。 

我们观察发现,基于区域的检测器例如Fast R-CNN使用的卷积特征映射,同样可以用于生成区域建议。我们紧接着这些卷积特征增加两个额外的卷积层,构造RPN:第一个层把每个卷积映射位置编码为一个短的(例如256-d)特征向量,第二个层在每个卷积映射位置,输出这个位置上多种尺度和长宽比的k个区域建议的目标得分和回归边界(k=9是典型值)。 

我们的RPN是一种全卷积网络 [14],可以针对生成检测建议框的任务端到端地训练。为了统一RPN和Fast R-CNN[5]目标检测网络,我们提出一种简单的训练方案,即保持建议框固定,微调区域建议和微调目标检测之间交替进行。这个方案收敛很快,最后形成可让两个任务共享卷积特征的标准网络。 

我们在PASCAL VOC检测标准集[4]上评估我们的方法, fast R-CNN结合RPN的检测准确率超过了作为强大基准的fast R-CNN结合SS的方法。同时,我们的方法没有了SS测试时的计算负担,对于生成建议框的有效运行时间只有10毫秒。利用[19]中网络非常深的深度模型,我们的检测方法在GPU上依然有5fps的帧率(包括所有步骤),因此就速度和准确率(PASCAL VOC 2007上是73.2%mAP,PASCAL VOC 2012上是70.4%)而言,这是一个实用的目标检测系统。代码已公开。

2.相关工作

最近几篇文章中提出了用深度网络定位类确定或类不确定的包围盒[21, 18, 3, 20] 的方法。在OverFeat方法[18]中,训练全连接(fc)层,对假定只有一个目标的定位任务预测包围盒坐标。fc层再转入卷积层来检测多个类确定的目标。MultiBox方法[3, 20]从最后一个fc层同时预测多个(如800)包围盒的网络中生成区域建议,R-CNN[6]就是用的这个。他们的建议框网络应用于单个图像或多个大图像的切割部分(如224x224)[20]。我们在后文中讲我们的方法时会更深层次地讨论OverFeat和MultiBox。 

卷积的共享计算[18, 7, 2, 5]高效、精确,已经在视觉识别方面吸引了越来越多的注意。OverFeat论文[18]从图像金字塔计算卷积特征,用于分类、定位、检测。在共享的卷积特征映射上自适应大小的池化[7]能有效用于基于区域的目标检测[7, 16]和语义分割[2]。Fast R-CNN[5]实现了在共享卷积特征上训练的端到端检测器,显示出令人惊叹的准确率和速度。

3.区域建议网络

区域建议网络(RPN)将一个图像(任意大小)作为输入,输出矩形目标建议框的集合,每个框有一个目标得分。我们用全卷积网络[14]对这个过程构建模型,本章会详细描述。因为我们的最终目标是和Fast R-CNN目标检测网络[15]共享计算,所以假设这两个网络共享一系列卷积层。在实验中,我们详细研究Zeiler和Fergus的模型[23](ZF),它有5个可共享的卷积层,以及Simonyan和Zisserman的模型[19](VGG),它有13个可共享的卷积层。 

为了生成区域建议框,我们在最后一个共享的卷积层输出的卷积特征映射上滑动小网络,这个网络全连接到输入卷积特征映射的nxn的空间窗口上。每个滑动窗口映射到一个低维向量上(每个特征映射的一个滑动窗口对应一个数值)。这个向量输出给两个同级的全连接的层——包围盒回归层和包围盒分类层。本文中n=3,注意图像的有效感受野很大。图1(左)以这个小网络在某个位置的情况举了个例子。注意,由于小网络是滑动窗口的形式,所以全连接的层(n*n)被所有空间位置共享(指所有位置用来计算内积的n*n的层参数相同)。这种结构实现为n*n的卷积层,后接两个同级的1x1的卷积层(分别对应reg和cls),ReLU[15]应用于nxn卷积层的输出。

图1:左:区域建议网络(RPN)。右:用RPN建议框在PASCAL VOC 2007测试集上的检测实例。我们的方法可以在很大范围的尺度和长宽比中检测目标。

4.平移不变的anchor

在每一个滑动窗口的位置,我们同时预测k个区域建议,所以reg层有4k个输出,即k个box的坐标编码。cls层输出2k个得分,即对每个建议框是目标/非目标的估计概率(为简单起见,是用二类的softmax层实现的cls层,还可以用logistic回归来生成k个得分)。k个建议框被相应的k个称为anchor的box参数化。每个anchor以当前滑动窗口中心为中心,并对应一种尺度和长宽比,我们使用3种尺度和3种长宽比,这样在每一个滑动位置就有k=9个anchor。对于大小为W*H(典型值约2,400)的卷积特征映射,总共有W*H*k个anchor。我们的方法有一个重要特性,就是平移不变性,对anchor和对计算anchor相应的建议框的函数而言都是这样。 

作为比较,MultiBox方法[20]用k-means生成800个anchor,但不具有平移不变性。如果平移了图像中的目标,建议框也应该平移,也应该能用同样的函数预测建议框。此外,因为MultiBox的anchor不具有平移不变性,所以它需要(4+1)*800-d的输出层,而我们的方法只要(4+2)*9-d的输出层。我们的建议框层少一个数量级的参数(MultiBox用GoogleLeNet[20]需要2700万vs.RPN用VGG-16需要240万),这样在PASCAL VOC这种小数据集上出现过拟合的风险较小。

5.学习区域建议的损失函数

为了训练RPN,我们给每个anchor分配一个二进制的标签(是不是目标)。我们分配正标签给两类anchor:(i)与某个真实区域(GT)包围盒有最高的IoU(Intersection-over-Union,交集并集之比)重叠的anchor(也许不到0.7),(ii)与任意GT包围盒有大于0.7的IoU交叠的anchor。注意到一个GT包围盒可能分配正标签给多个anchor。我们分配负标签给与所有GT包围盒的IoU比率都低于0.3的anchor。非正非负的anchor对训练目标没有任何作用。 

有了这些定义,我们遵循Fast R-CNN[5]中的多任务损失,最小化目标函数。我们对一个图像的损失函数定义为 

这里,i是一个mini-batch中anchor的索引,Pi是anchor i是目标的预测概率。如果anchor为正,GT标签Pi* 就是1,如果anchor为负,Pi* 就是0。ti是一个向量,表示预测的包围盒的4个参数化坐标,ti* 是与正anchor对应的GT包围盒的坐标向量。分类损失*Lcls是两个类别(目标vs.非目标)的对数损失。对于回归损失*,我们用 来计算,其中R是[5]中定义的鲁棒的损失函数(smooth L1)。

Pi* Lreg这一项意味着只有正anchor(=1)才有回归损失,其他情况就没有(==0)。cls层和reg层的输出分别由{pi}和{ti}组成,这两项分别由Ncls和Nreg以及一个平衡权重λ归一化(早期实现及公开的代码中,λ=10,cls项的归一化值为mini-batch的大小,即Ncls=256,reg项的归一化值为anchor位置的数量,即Nreg~2,400,这样cls和reg项差不多是等权重的。 

对于回归,我们学习[6]采用4个坐标:

x,y,w,h指的是包围盒中心的(x, y)坐标、宽、高。变量x,xa,x*分别指预测的包围盒、anchor的包围盒、GT的包围盒(对y,w,h也是一样)的x坐标。可以理解为从anchor包围盒到附近的GT包围盒的包围盒回归。 

无论如何,我们用了一种与之前的基于特征映射的方法[7, 5]不同的方法实现了包围盒算法。在[7, 5]中,包围盒回归在从任意大小的区域中pooling到的特征上执行,回归权重是所有不同大小的区域共享的。在我们的方法中,用于回归的特征在特征映射中具有相同的空间大小(nxn)。考虑到各种不同的大小,需要学习一系列k个包围盒回归量。每一个回归量对应于一个尺度和长宽比,k个回归量之间不共享权重。因此,即使特征具有固定的尺寸/尺度,预测各种尺寸的包围盒仍然是可能的。

6.优化

RPN很自然地实现为全卷积网络[14],通过反向传播和随机梯度下降(SGD)[12]端到端训练。我们遵循[5]中的“image-centric”采样策略训练这个网络。每个小块由包含了许多正负样本的单个图像组成。我们可以优化所有anchor的损失函数,但是这会偏向于负样本,因为它们是主要的。因此,我们随机地在一个图像中采样256个anchor,计算小块的损失函数,其中采样的正负anchor的比例是1:1。如果一个图像中的正样本数小于128,我们就用负样本填补这个小块。 

我们通过从零均值标准差为0.01的高斯分布中获取的权重来随机初始化所有新层(最后一个卷积层其后的层),所有其他层(即共享的卷积层)是通过对ImageNet分类[17]预训练的模型来初始化的,这也是标准惯例[6]。我们调整ZF网络的所有层,以及conv3_1,并为VGG网络做准备,以节约内存[5]。我们在PASCAL数据集上对于60k个小块用的学习率为0.001,对于下一20k个小块用的学习率是0.0001。动量是0.9,权重衰减为0.0005[11]。我们的实现使用了Caffe[10]。

7.区域建议与目标检测共享卷积特征

迄今为止,我们已经描述了如何为生成区域建议训练网络,而没有考虑基于区域的目标检测CNN如何利用这些建议框。对于检测网络,我们采用Fast R-CNN[5],现在描述一种算法,学习由RPN和Fast R-CNN之间共享的卷积层。 

RPN和Fast R-CNN都是独立训练的,要用不同方式修改它们的卷积层。因此我们需要开发一种允许两个网络间共享卷积层的技术,而不是分别学习两个网络。注意到这不是仅仅定义一个包含了RPN和Fast R-CNN的单独网络,然后用反向传播联合优化它那么简单。原因是Fast R-CNN训练依赖于固定的目标建议框,而且并不清楚当同时改变建议机制时,学习Fast R-CNN会不会收敛。虽然这种联合优化在未来工作中是个有意思的问题,我们开发了一种实用的4步训练算法,通过交替优化来学习共享的特征。 

第一步,我们依上述训练RPN,该网络用ImageNet预训练的模型初始化,并端到端微调用于区域建议任务。第二步,我们利用第一步的RPN生成的建议框,由Fast R-CNN训练一个单独的检测网络,这个检测网络同样是由ImageNet预训练的模型初始化的,这时候两个网络还没有共享卷积层。第三步,我们用检测网络初始化RPN训练,但我们固定共享的卷积层,并且只微调RPN独有的层,现在两个网络共享卷积层了。第四步,保持共享的卷积层固定,微调Fast R-CNN的fc层。这样,两个网络共享相同的卷积层,构成一个统一的网络。

8.实现细节

我们训练、测试区域建议和目标检测网络都是在单一尺度的图像上[7, 5]。我们缩放图像,让它们的短边s=600像素[5]。多尺度特征提取可能提高准确率但是不利于速度与准确率之间的权衡[5]。我们也注意到ZF和VGG网络,对缩放后的图像在最后一个卷积层的总步长为16像素,这样相当于一个典型的PASCAL图像(~500x375)上大约10个像素(600/16=375/10)。即使是这样大的步长也取得了好结果,尽管若步长小点准确率可能得到进一步提高。 

对于anchor,我们用3个简单的尺度,包围盒面积为128x128,256x256,512x512,和3个简单的长宽比,1:1,1:2,2:1。注意到,在预测大建议框时,我们的算法考虑了使用大于基本感受野的anchor包围盒。这些预测不是不可能——只要看得见目标的中间部分,还是能大致推断出这个目标的范围。通过这个设计,我们的解决方案不需要多尺度特征或者多尺度滑动窗口来预测大的区域,节省了相当多的运行时间。图1(右)显示了我们的算法处理多种尺度和长宽比的能力。下表是用ZF网络对每个anchor学到的平均建议框大小(s=600)。

跨越图像边界的anchor包围盒要小心处理。在训练中,我们忽略所有跨越图像边界的anchor,这样它们不会对损失有影响。对于一个典型的1000x600的图像,差不多总共有20k(~60x40x9)anchor。忽略了跨越边界的anchor以后,每个图像只剩下6k个anchor需要训练了。如果跨越边界的异常值在训练时不忽略,就会带来又大又困难的修正误差项,训练也不会收敛。在测试时,我们还是应用全卷积的RPN到整个图像中,这可能生成跨越边界的建议框,我们将其裁剪到图像边缘位置。 
有些RPN建议框和其他建议框大量重叠,为了减少冗余,我们基于建议区域的cls得分,对其采用非极大值抑制(NMS)。我们固定对NMS的IoU阈值为0.7,这样每个图像只剩2k个建议区域。正如下面展示的,NMS不会影响最终的检测准确率,但是大幅地减少了建议框的数量。NMS之后,我们用建议区域中的top-N个来检测。在下文中,我们用2k个RPN建议框训练Fast R-CNN,但是在测试时会对不同数量的建议框进行评价。

4.实验

我们在PASCAL VOC2007检测基准[4]上综合评价我们的方法。此数据集包括20个目标类别,大约5k个trainval图像和5k个test图像。我们还对少数模型提供PASCAL VOC2012基准上的结果。对于ImageNet预训练网络,我们用“fast”版本的ZF网络[23],有5个卷积层和3个 fc层,公开的VGG-16 模型[19],有13 个卷积层和3 个fc层。我们主要评估检测的平均精度(mean Average Precision, mAP),因为这是对目标检测的实际度量标准(而不是侧重于目标建议框的代理度量)。 
表1(上)显示了使用各种区域建议的方法训练和测试时Fast R-CNN的结果。这些结果使用的是ZF网络。对于选择性搜索(SS)[22],我们用“fast”模式生成了2k个左右的SS建议框。对于EdgeBoxes(EB)[24],我们把默认的EB设置调整为0.7IoU生成建议框。SS的mAP 为58.7%,EB的mAP 为58.6%。RPN与Fast R-CNN实现了有竞争力的结果,当使用300个建议框时的mAP就有59.9%(对于RPN,建议框数量,如300,是一个图像产生建议框的最大数量。RPN可能产生更少的建议框,这样建议框的平均数量也更少了)。使用RPN实现了一个比用SS或EB更快的检测系统,因为有共享的卷积计算;建议框较少,也减少了区域方面的fc消耗。接下来,我们考虑RPN的几种消融,然后展示使用非常深的网络时,建议框质量的提高。

表1 PASCAL VOC2007年测试集的检测结果(在VOC2007 trainval训练)。该检测器是Fast R-CNN与ZF,但使用各种建议框方法进行训练和测试。

消融试验。为了研究RPN作为建议框方法的表现,我们进行了多次消融研究。首先,我们展示了RPN和Fast R-CNN检测网络之间共享卷积层的影响。要做到这一点,我们在4步训练过程中的第二步后停下来。使用分离的网络时的结果稍微降低为58.7%(RPN+ ZF,非共享,表1)。我们观察到,这是因为在第三步中,当调整过的检测器特征用于微调RPN时,建议框质量得到提高。 

接下来,我们理清了RPN在训练Fast R-CNN检测网络上的影响。为此,我们用2k个SS建议框和ZF网络训练了一个Fast R-CNN模型。我们固定这个检测器,通过改变测试时使用的建议区域,评估检测的mAP。在这些消融实验中,RPN不与检测器共享特征。 

在测试时用300个RPN建议框替换SS,mAP为56.8%。mAP的损失是训练/测试建议框之间的不一致所致。该结果作为以下比较的基准。 

有些奇怪的是,在测试时使用排名最高的100个建议框时,RPN仍然会取得有竞争力的结果(55.1%),表明这种高低排名的RPN建议框是准确的。另一种极端情况,使用排名最高的6k个RPN建议框(没有NMS)取得具有可比性的mAP(55.2%),这表明NMS不会降低检测mAP,反而可以减少误报。 

接下来,我们通过在测试时分别移除RPN的cls和reg中的一个,研究它们输出的作用。当在测试时移除cls层,我们从没有计算得分的区域随机抽取N个建议框。N =1k 时mAP几乎没有变化(55.8%),但当N=100则大大降低为44.6%。这表明,cls得分是排名最高的建议框准确的原因。 

另一方面,当在测试时移除reg层(这样的建议框就直接是anchor框了),mAP下降到52.1%。这表明,高品质的建议框主要归功于回归后的位置。单是anchor框不足以精确检测。 

我们还评估更强大的网络对RPN的建议框质量的作用。我们使用VGG-16训练RPN,并仍然使用上述SS+ZF检测器。mAP从56.8%(使用RPN+ZF)提高到59.2%(使用RPN+VGG)。这是一个满意的结果,因为它表明,RPN+VGG的建议框质量比RPN+ZF的更好。由于RPN+ZF的建议框是可与SS竞争的(训练和测试一致使用时都是58.7%),我们可以预期RPN+VGG比SS好。下面的实验证明这一假说。 

VGG-16的检测准确率与运行时间。表2展示了VGG-16对建议框和检测的结果。使用RPN+VGG,Fast R-CNN对不共享特征的结果是68.5%,比SS基准略高。如上所示,这是因为由RPN+VGG产生的建议框比SS更准确。不像预先定义的SS,RPN是实时训练的,能从更好的网络获益。对特征共享的变型,结果是69.9%——比强大的SS基准更好,建议框几乎无损耗。我们跟随[5],在PASCAL VOC2007 trainval和2012 trainval的并集上进一步训练RPN,mAP是73.2%。跟[5]一样在VOC 2007 trainval+test和VOC2012 trainval的并集上训练时,我们的方法在PASCAL VOC 2012测试集上(表3)有70.4%的mAP。

表2:在PASCAL VOC 2007测试集上的检测结果,检测器是Fast R-CNN和VGG16。训练数据:“07”:VOC2007 trainval,“07+12”:VOC 2007 trainval和VOC 2012 trainval的并集。对RPN,用于Fast R-CNN训练时的建议框是2k。这在[5]中有报告;利用本文所提供的仓库(repository),这个数字更高(68.0±0.3在6次运行中)。

表3:PASCAL VOC 2012测试集检测结果。检测器是Fast R-CNN和VGG16。训练数据:“07”:VOC 2007 trainval,“07++12”: VOC 2007 trainval+test和VOC 2012 trainval的并集。对RPN,用于Fast R-CNN训练时的建议框是2k。

表4中我们总结整个目标检测系统的运行时间。SS需要1~2秒,取决于图像内容(平均1.51s),采用VGG-16的Fast R-CNN在2k个SS建议框上需要320ms(若是用了SVD在fc层的话只用223ms[5])。我们采用VGG-16的系统生成建议框和检测一共只需要198ms。卷积层共享时,RPN只用10ms来计算附加的几层。由于建议框较少(300),我们的区域计算花费也很低。我们的系统采用ZF网络时的帧率为17fps。

表4: K40 GPU上的用时(ms),除了SS建议框是在CPU中进行评价的。“区域方面”包括NMS,pooling,fc和softmax。请参阅我们发布的代码运行时间的分析。

IoU召回率的分析。接下来,我们计算建议框与GT框在不同的IoU比例时的召回率。值得注意的是,该IoU召回率度量标准与最终的检测准确率只是松散[9, 8, 1]相关的。更适合用这个度量标准来诊断建议框方法,而不是对其进行评估。 

在图2中,我们展示使用300,1k,和2k个建议框的结果。我们将SS和EB作比较,并且这N个建议框是基于用这些方法生成的按置信度排名的前N个。该图显示,当建议框数量由2k下降到300时,RPN方法的表现很好。这就解释了使用少到300个建议框时,为什么RPN有良好的最终检测mAP。正如我们前面分析的,这个属性主要是归因于RPN的cls项。当建议框变少时,SS和EB的召回率下降的速度快于RPN。

图2:PASCAL VOC 2007测试集上的召回率 vs. IoU重叠率

单级的检测vs. 两级的建议框+检测。OverFeat论文[18]提出在卷积特征映射的滑动窗口上使用回归和分类的检测方法。OverFeat是一个单级的,类特定的检测流程,我们的是一个两级的,由类无关的建议框方法和类特定的检测组成的级联方法。在OverFeat中,区域方面的特征来自一个滑动窗口,对应一个尺度金字塔的一个长宽比。这些特征被用于同时确定物体的位置和类别。在RPN中,特征都来自相对于anchor的方形(3*3)滑动窗口和预测建议框,是不同的尺度和长宽比。虽然这两种方法都使用滑动窗口,区域建议任务只是RPN + Fast R-CNN的第一级——检测器致力于改进建议框。在我们级联方法的第二级,区域一级的特征自适应地从建议框进行pooling[7, 5],更如实地覆盖区域的特征。我们相信这些特征带来更准确的检测。 

为了比较单级和两级系统,我们通过单级的Fast R-CNN模拟OverFeat系统(因而也规避实现细节的其他差异)。在这个系统中,“建议框”是稠密滑动的,有3个尺度(128,256,512)和3个长宽比(1:1,1:2,2:1)。Fast R-CNN被训练来从这些滑动窗口预测特定类的得分和回归盒的位置。由于OverFeat系统采用多尺度的特征,我们也用由5个尺度中提取的卷积特征来评价。我们使用[7,5]中一样的5个尺度。 

表5比较了两级系统和两个单级系统的变体。使用ZF模型,单级系统具有53.9%的mAP。这比两级系统(58.7%)低4.8%。这个实验证明级联区域建议方法和目标检测的有效性。类似的观察报告在[5,13]中,在两篇论文中用滑动窗口取代SS区域建议都导致了约6%的下降。我们还注意到,单级系统比较慢,因为它有相当多的建议框要处理。

表5:单级检测vs.两级建议+检测。检测结果都是在PASCAL VOC2007测试集使用ZF模型和Fast R-CNN。RPN使用非共享的特征。

6.总结

我们对高效和准确的区域建议的生成提出了区域建议建议网络(RPN)。通过与其后的检测网络共享卷积特征,区域建议的步骤几乎是无损耗的。我们的方法使一个一致的,基于深度学习的目标检测系统以5-17 fps的速度运行。学到的RPN也改善了区域建议的质量,进而改善整个目标检测的准确性。

表6:Fast R-CNN检测器和VGG16在PASCAL VOC 2007测试集的结果。对于RPN,Fast R-CNN训练时的建议框是2k个。RPN*表示非共享特征的版本。*

表7:Fast R-CNN检测器和VGG16在PASCAL VOC 2012测试集的结果。对于RPN,Fast R-CNN训练时的建议框是2k个。

引用

[1] N. Chavali, H. Agrawal, A. Mahendru, and D. Batra. Object-Proposal Evaluation Protocol is ’Gameable’. arXiv: 1505.05836, 2015. 
[2] J. Dai, K. He, and J. Sun. Convolutional feature masking for joint object and stuff segmentation. In CVPR, 2015. 
[3] D. Erhan, C. Szegedy, A. Toshev, and D. Anguelov. Scalable object detection using deep neural networks. In CVPR, 2014. 
[4] M. Everingham, L. Van Gool, C. K. I. Williams, J. Winn, and A. Zisserman. The PASCAL Visual Object Classes Challenge 2007 (VOC2007) Results, 2007. 
[5] R. Girshick. Fast R-CNN. arXiv:1504.08083, 2015. 
[6] R. Girshick, J. Donahue, T. Darrell, and J. Malik. Rich feature hierarchies for accurate object detection and semantic segmentation. In CVPR, 2014. 
[7] K. He, X. Zhang, S. Ren, and J. Sun. Spatial pyramid pooling in deep convolutional networks for visual recognition. In ECCV. 2014. 
[8] J. Hosang, R. Benenson, P. Doll´ar, and B. Schiele. What makes for effective detection proposals? arXiv:1502.05082, 2015. 
[9] J. Hosang, R. Benenson, and B. Schiele. How good are detection proposals, really? In BMVC, 2014. 
[10] Y. Jia, E. Shelhamer, J. Donahue, S. Karayev, J. Long, R. Girshick, S. Guadarrama, and T. Darrell. Caffe: Convolutional architecture for fast feature embedding. arXiv:1408.5093, 2014. 
[11] A. Krizhevsky, I. Sutskever, and G. Hinton. Imagenet classification with deep convolutional neural networks. In NIPS, 2012. 
[12] Y. LeCun, B. Boser, J. S. Denker, D. Henderson, R. E. Howard,W. Hubbard, and L. D. Jackel. Backpropagation applied to handwritten zip code recognition. Neural computation, 1989. 
[13] K. Lenc and A. Vedaldi. R-CNN minus R. arXiv:1506.06981, 2015. 
[14] J. Long, E. Shelhamer, and T. Darrell. Fully convolutional networks for semantic segmentation. In CVPR, 2015. 
[15] V. Nair and G. E. Hinton. Rectified linear units improve restricted boltzmann machines. In ICML, 2010. 
[16] S. Ren, K. He, R. Girshick, X. Zhang, and J. Sun. Object detection networks on convolutional feature maps. arXiv:1504.06066, 2015. 
[17] O. Russakovsky, J. Deng, H. Su, J. Krause, S. Satheesh, S. Ma, Z. Huang, A. Karpathy, A. Khosla, M. Bernstein, A. C. Berg, and L. Fei-Fei. ImageNet Large Scale Visual Recognition Challenge. arXiv:1409.0575, 2014. 
[18] P. Sermanet, D. Eigen, X. Zhang, M. Mathieu, R. Fergus, and Y. LeCun. Overfeat: Integrated recognition, localization and detection using convolutional networks. In ICLR, 2014. 
[19] K. Simonyan and A. Zisserman. Very deep convolutional networks for large-scale image recognition. In ICLR, 2015. 
[20] C. Szegedy, S. Reed, D. Erhan, and D. Anguelov. Scalable, high-quality object detection. arXiv:1412.1441v2, 2015. 
[21] C. Szegedy, A. Toshev, and D. Erhan. Deep neural networks for object detection. In NIPS, 2013. 
[22] J. R. Uijlings, K. E. van de Sande, T. Gevers, and A.W. Smeulders. Selective search for object recognition. IJCV, 2013. 
[23] M. D. Zeiler and R. Fergus. Visualizing and understanding convolutional neural networks. In ECCV, 2014. 
[24] C. L. Zitnick and P. Doll´ar. Edge boxes: Locating object proposals from edges. In ECCV, 2014.

 

你可能感兴趣的:(深度学习)