精华内容
下载资源
问答
  • SPPNet论文翻译

    2019-03-05 11:00:50
    论文的一个早先版本发布在ECCV2014上。基于这个工作,我们参加了ILSVRC 2014 [26],在38个团队中,取得了物体检测第2名和图像分类第3名的成绩。针对ILSVRC 2014我们也做了很多修改。我们将展示SPP-nets可以将更深...

    用于视觉识别的深度卷积网络空间金字塔池化方法

    Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition

    Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun

    摘要

    当前深度卷积神经网络(CNNs)都需要输入的图像尺寸固定(比如224×224)。这种人为的需要导致面对任意尺寸和比例的图像或子图像时降低识别的精度。本文中,我们给网络配上一个叫做“空间金字塔池化”(spatial pyramid pooling,)的池化策略以消除上述限制。这个我们称之为SPP-net的网络结构能够产生固定大小的表示(representation)而不关心输入图像的尺寸或比例。金字塔池化对物体的形变十分鲁棒。由于诸多优点,SPP-net可以普遍帮助改进各类基于CNN的图像分类方法。在ImageNet2012数据集上,SPP-net将各种CNN架构的精度都大幅提升,尽管这些架构有着各自不同的设计。在PASCAL VOC 2007和Caltech101数据集上,SPP-net使用单一全图像表示在没有调优的情况下都达到了最好成绩。SPP-net在物体检测上也表现突出。使用SPP-net,只需要从整张图片计算一次特征图(feature map),然后对任意尺寸的区域(子图像)进行特征池化以产生一个固定尺寸的表示用于训练检测器。这个方法避免了反复计算卷积特征。在处理测试图像时,我们的方法在VOC2007数据集上,达到相同或更好的性能情况下,比R-CNN方法快24-102倍。在ImageNet大规模视觉识别任务挑战(ILSVRC)2014上,我们的方法在物体检测上排名第2,在物体分类上排名第3,参赛的总共有38个组。本文也介绍了为了这个比赛所作的一些改进。

     

    1. 简介

    我们看到计算机视觉领域正在经历飞速的变化,这一切得益于深度卷积神经网络(CNNs)[1]和大规模的训练数据的出现[2]。近来深度网络对图像分类 [3][4][5][6],物体检测 [7][8][5]和其他识别任务 [9][10][11][12],甚至很多非识别类任务上都表现出了明显的性能提升。

    然而,这些技术再训练和测试时都有一个问题,这些流行的CNNs都需要输入的图像尺寸是固定的(比如224×224),这限制了输入图像的长宽比和缩放尺度。当遇到任意尺寸的图像是,都是先将图像适应成固定尺寸,方法包括裁剪[3][4]和变形[13][7],如图1(上)所示。但裁剪会导致信息的丢失,变形会导致位置信息的扭曲,就会影响识别的精度。另外,一个预先定义好的尺寸在物体是缩放可变的时候就不适用了。

    那么为什么CNNs需要一个固定的输入尺寸呢?CNN主要由两部分组成,卷积部分和其后的全连接部分。卷积部分通过滑窗进行计算,并输出代表激活的空间排布的特征图(feature map)(图2)。事实上,卷积并不需要固定的图像尺寸,他可以产生任意尺寸的特征图。而另一方面,根据定义,全连接层则需要固定的尺寸输入。因此固定尺寸的问题来源于全连接层,也是网络的最后阶段。本文引入一种空间金字塔池化( spatial pyramid pooling,SPP)层以移除对网络固定尺寸的限制。尤其是,将SPP层放在最后一个卷积层之后。SPP层对特征进行池化,并产生固定长度的输出,这个输出再喂给全连接层(或其他分类器)。换句话说,在网络层次的较后阶段(也就是卷积层和全连接层之间)进行某种信息“汇总”,可以避免在最开始的时候就进行裁剪或变形。图1(下)展示了引入SPP层之后的网络结构变化。我们称这种新型的网络结构为SPP-net。

    空间金字塔池化[14][15](普遍称谓:空间金字塔匹配spatial pyramid matching, SPM[15]),是一种词袋(Bag-of-Words, BoW)模型的扩展。池袋模型是计算机视觉领域最成功的方法之一。它将图像切分成粗糙到精细各种级别,然后整合其中的局部特征。在CNN之前,SPP一直是各大分类比赛[17][18][19]和检测比赛(比如[20])的冠军系统中的核心组件。对深度CNNs而言,SPP有几个突出的优点:1)SPP能在输入尺寸任意的情况下产生固定大小的输出,而以前的深度网络[3]中的滑窗池化(sliding window pooling)则不能;2)SPP使用了多级别的空间箱(bin),而滑窗池化则只用了一个窗口尺寸。多级池化对于物体的变形十分鲁棒[15];3)由于其对输入的灵活性,SPP可以池化从各种尺度抽取出来的特征。通过实验,我们将展示影响深度网络最终识别精度的所有这些因素。

    SPP-net不仅仅让测试阶段允许任意尺寸的输入能够产生表示(representations),也允许训练阶段的图像可以有各种尺寸和缩放尺度。使用各种尺寸的图像进行训练可以提高缩放不变性,以及减少过拟合。我们开发了一个简单的多尺度训练方法。为了实现一个单一的能够接受各种输入尺寸的网络,我们先使用分别训练固定输入尺寸的多个网络,这些网络之间共享权重(Parameters),然后再一起来代表这个单一网络(译者注:具体代表方式没有说清楚,看后面怎么说吧)。每个epoch,我们针对一个给定的输入尺寸进行网络训练,然后在下一个epoch再切换到另一个尺寸。实验表明,这种多尺度训练和传统的单一尺度训练一样可以瘦脸,并且能达到更好的测试精度。

    SPP的优点是与各类CNN设计是正交的。通过在ImageNet2012数据集上进行一系列可控的实验,我们发现SPP对[3][4][5]这些不同的CNN架构都有提升。这些架构有不同的特征数量、尺寸、滑动距离(strides)、深度或其他的设计。所以我们有理由推测SPP可以帮助提升更多复杂的(更大、更深)的卷积架构。SPP-net也做到了 Caltech101 [21]和Pascal VOC 2007 [22]上的最好结果,而只使用了一个全图像表示,且没有调优。

    在图像检测方面,SPP-net也表现优异。目前领先的方法是R-CNN[7],候选窗口的特征是借助深度神经网络进行抽取的。此方法在VOC和ImageNet数据集上都表现出了出色的检测精度。但R-CNN的特征计算十分耗时,因为他对每张图片中的上千个变形后的区域的像素反复调用CNN。本文中,我们展示了我们只需要在整张图片上运行一次卷积网络层(不关心窗口的数量),然后再使用SPP-net在特征图上抽取特征。这个方法缩减了上百倍的耗时。在特征图(而不是图像区域)上训练和运行检测器是一个很受欢迎的想法[23][24][20][5]。但SPP-net延续了深度CNN特征图的优势,也结合了SPP兼容任意窗口大小的灵活性,所以做到了出色的精度和效率。我们的实验中,基于SPP-net的系统(建立在R-CNN流水线上)比R-CNN计算特征要快24-120倍,而精度却更高。结合最新的推荐方法EdgeBoxes[25],我们的系统达到了每张图片处理0.5s的速度(全部步骤)。这使得我们的方法变得更加实用。

    本论文的一个早先版本发布在ECCV2014上。基于这个工作,我们参加了ILSVRC 2014 [26],在38个团队中,取得了物体检测第2名和图像分类第3名的成绩。针对ILSVRC 2014我们也做了很多修改。我们将展示SPP-nets可以将更深、更大的网络的性能显著提升。进一步,受检测框架驱动,我们发现借助灵活尺寸窗口对特征图进行多视角测试可以显著提高分类精度。本文对这些改动做了更加详细的说明。另外,我们将代码放在了以方便大家研究(http://research.microsoft.com/en-us/um/people/kahe/,译者注:已失效)

    2. 基于空间金字塔池化的深度网络

    2.1 卷积层和特征图

    在颇受欢迎的七层架构中[3][4]中,前五层是卷积层,其中一些后面跟着吃常委曾。从他们也使用滑窗的角度来看,这些池化层也可以认为是“卷积的”。最后两层是全连接的,跟着一个N路softmax输出,其中N是类别的数量。上述的深度网络需要一个固定大小的图像尺寸。然后,我们注意到,固定尺寸的要求仅仅是因为全连接层的存在导致的。另一方面,卷积层使用滑动的特征过滤器,它们的输出基本保持了原始输入的比例关系。它们的输出就是特征图[1]-它们不仅涉及响应的强度,还包括空间位置。图2中,我们可视化了一些特征图。这些特征图来自于conv5层的一些过滤器。图2(c)显示了ImageNet数据集中激活最强的若干图像。可以看到一个过滤器能够被一些语义内容激活。例如,第55个过滤器(图2,左下)对圆形十分敏感;第66层(图2,右上)对a^形状特别敏感;第118个过滤器(图2,右下)对a_形状非常敏感。这些输入图像中的形状会激活相应位置的特征图(图2中的箭头)。 值得注意的是,图2中生成的特征图并没有固定输入尺寸。深度卷积曾生成的特征图和传统方法[27][28]中的特征图很相似。这些传统方法中,SIFT向量[29]或图像碎片[28]被密集地抽取出来,在通过矢量量化[16][15][30],稀疏化[17][18]或Fisher核函数[19]进行编码。这些编码后的特征构成了特征图,然后通过词袋(BoW)[16]或空间金字塔[14][15]进行池化。类似的深度卷积的特征也可以这样做。

    2.2 空间金字塔池化层

    卷积层接受任意大小的输入,所以他们的输出也是各种大小。而分类器(SVM/softmax)或者全连接层UI需要固定的输入大小的向量。这种向量可以使用词袋方法[16]通过池化特征来生成。空间金字塔池化[14][15]对BoW进行了改进以便在池化过程中保留局部空间块(local spatial bins)中的空间保留。这些空间块的尺寸和图像的尺寸是成比例的,这样块的数量就是固定的了。而前述深度网络的滑窗池化则对依赖于输入图像的尺寸。

    为了让我们的神经网络适应任意尺寸的图像输入,我们用一个空间金字塔池化层替换掉了最优一个池化层(最后一个卷积层之后的pool5)。图3示例了这种方法。在每个空间块中,我们池化每个过滤器的响应(本文中采用了最大池化法)。空间金字塔的输出是一个kM维向量,M代表块的数量,k代表最后一层卷积层的过滤器的数量。这个固定维度的向量就是全连接层的输入。

    有了空间金字塔池化,输入图像就可以是任意尺寸了。不但允许任意比例关系,而且支持任意缩放尺度。我们也可以将输入图像缩放到任意尺度(例如min(w;h)=180,224,…)并且使用同一个深度网络。当输入图像处于不同的空间尺度时,带有相同大小卷积核的网络就可以在不同的尺度上抽取特征。跨多个尺度在传统方法中十分重要,比如SIFT向量就经常在多个尺度上进行抽取[29][27](受碎片和高斯过滤器的大小所决定)。我们接下来会说明多尺度在深度网络精度方面的重要作用。

    有趣的是,粗糙的金字塔级别只有一个块,覆盖了整张图像。这就是一个全局池化操作,当前有很多正在进行的工作正在研究它。[33]中,一个放在全连接层之后的全局平均池化被用来提高测试阶段的精确度;[34]中,一个全局最大池化用于弱监督物体识别。全局池化操作相当于传统的词袋方法。

    2.3 网络的训练

    理论上将,上述网络结构可以用标准的反向传播进行训练[1],与图像的大小无关。但实践中,GPU的实现(如cuda-convnet[3]和Caffe[35])更适合运行在固定输入图像上。接下来,我们描述我们的训练方法能够在保持空间金字塔池化行为的同时还能充分利用GPU的优势。

    单一尺寸训练

    如前人的工作一样,我们首先考虑接收裁剪成224×224图像的网络。裁剪的目的是数据增强。对于一个给定尺寸的图像,我们先计算空间金字塔池化所需要的块(bins)的大小。试想一个尺寸是axa(也就是13×13)的conv5之后特征图。对于nxn块的金字塔级,我们实现一个滑窗池化过程,窗口大小为win = 上取整[a/n],步幅str = 下取整[a/n]. 对于l层金字塔,我们实现l个这样的层。然后将l个层的输出进行连接输出给全连接层。图4展示了一个cuda卷积网络风格的3层金字塔的样例。(3×3, 2×2, 1×1)。

    单一尺寸训练的主要目的是开启多级别池化行为。实验表明这是获取精度的一个原因。

    多尺寸训练

    携带SPP的网络可以应用于任意尺寸,为了解决不同图像尺寸的训练问题,我们考虑一些预设好的尺寸。现在考虑这两个尺寸:180×180,224×224。我们使用缩放而不是裁剪,将前述的224

    的区域图像变成180大小。这样,不同尺度的区域仅仅是分辨率上的不同,而不是内容和布局上的不同。对于接受180输入的网络,我们实现另一个固定尺寸的网络。本例中,conv5输出的特征图尺寸是axa=10×10。我们仍然使用win = 上取整[a/n],str = 下取整[a/n],实现每个金字塔池化层。这个180网络的空间金字塔层的输出的大小就和224网络的一样了。

    这样,这个180网络就和224网络拥有一样的参数了。换句话说,训练过程中,我们通过使用共享参数的两个固定尺寸的网络实现了不同输入尺寸的SPP-net。

    为了降低从一个网络(比如224)向另一个网络(比如180)切换的开销,我们在每个网络上训练一个完整的epoch,然后在下一个完成的epoch再切换到另一个网络(权重保留)。依此往复。实验中我们发现多尺寸训练的收敛速度和单尺寸差不多。

    多尺寸训练的主要目的是在保证已经充分利用现在被较好优化的固定尺寸网络实现的同时,模拟不同的输入尺寸。除了上述两个尺度的实现,我们也在每个epoch中测试了不同的sxs输入,s是从180到224之间均匀选取的。后面将在实验部分报告这些测试的结果。

    注意,上面的单尺寸或多尺寸解析度只用于训练。在测试阶段,是直接对各种尺寸的图像应用SPP-net的。

    3 用于图像分类的SPP-NET

    3.1 ImageNet 2012分类实验

    我们在1000类别的Image2012训练集上训练了网络。我们的训练算法参照了前人的实践工作[3][4][36]。图像会被缩放,以便较小的维度是256,再从中间获得四个角裁出224×224。图像会通过水平翻转和颜色变换[3]进行数据增强。

    最后两层全连接层会使用Dropout[3]。learning rate起始值是0.01,当错误率停滞后就除以10。我们的实现基于公开的cuda-convnet源代码[3]和Caffe[35]。所有网络都是在单一GeForceGTX TitanGPU(6G内存)耗时二到四周训练的。

    3.1.1 基准网络架构

    SPP的优势是和使用的卷积神经网络无关。我研究了四种不同的网络架构[3][4][5](或他们的修改版),对所有这些架构,SPP都提升了准确度。基准架构如表1,简单介绍如下:

    – ZF-5:基于Zeiler和Fergus的“快速”模式[4]的网络架构。数字5代表5层卷积网络。

    – Convnet*-5:基于Krizhevsky等人工作[3]的修改。我们在conv2和conv3(而不是conv1和conv2)之后加入了两个池化层。这样,每一层之后的特征图就和ZF-5的尺寸一样了。

    – Overfeat-5/7:基于Overfeat论文[5],使用了[6]的修改。对比ZF-5/Convnet*-5,这个架构在最后一个池化层产生了更大的特征图(18×18而不是13×13)。还在conv3和后续的卷基层使用了更多的过滤器(512)。我们也研究了7层卷积网络,其中conv3和conv7结构一样。

    基准模型中,最后卷积层之后的池化层会产生6×6的特征图,然后跟着两个4096维度的全连接层,和一个1000路的softmax层。这些基准网络的表现参见表2(a),我们针对ZF-5进行了70个epoch,而其他的用了90个epoch。ZF-5的表现比[4]中报告的那个要好。增益主要来源于角落裁切来源于整张图片,[36]中也提到了这点。

    3.1.2 多层次池化提升准确度

    表2(b)中我们显示了使用单尺寸训练的结果。训练和测试尺寸都是224×224.这些网络中,卷积网络都和他们的基准网络有相同的结构,只是最后卷积层之后的池化层,被替换成了SPP层。表2中的结果我们使用了4层金字塔,f6x6, 3×3, 2×2, 1x1g(总共50个块)。为了公平比较,我们仍然使用标准的10-view预测法,每个view都是一个224×224的裁切。表2(b)中的结果显示了明显的性能提升。有趣的是,最大的提升(top-1 error,1.65%)来自于精度最高的网络架构。既然我们一直使用相同10个裁切view。这些提升只能是来自于多层次池化。

    值得注意的是多层次池化带来的提升不只是因为更多的参数;而是因为多层次池化对对象的变形和空间布局更加鲁棒[15]。为了说明这个,我们使用一个不同的4层金字塔(f4×4, 3×3, 2×2, 1×1g,供30个块)训练另一个ZF-5网络。这个网络有更少的参数,因为他的全连接层fc6有30×256维输入而不是36×256维。 网络的top-1/top-5错误率分别是35.06/14.04和50块的金字塔网络相近,明显好于非SPP基准网络(35.99/14.76)。

    3.1.3 多尺寸训练提升准确度

    表2(c)展示了多尺寸训练的结果。训练尺寸是224和180,测试尺寸是224。我们还使用标准的10-view预测法。所有架构的top-1/top-5错误率进一步下降。SPP-net(Overfeat-7)的Top-1 错误率降到29.68%,比非SPP网络低了2.33%,比单尺寸训练降低了0.68%。

    除了使用180和224两个尺寸,我们还随机选了[180;224]之间多个尺寸。SPP-net(Overfeat-7)的top1/5错误率是30.06%/10.96%。Top-1错误率比两尺寸版本有所下降,可能因为224这个尺寸(测试时用的尺寸)被更少的访问到。但结果仍然比但尺寸版本要好。

    之前的CNN解决方案[5][36]也处理了不同尺寸问题,但他们主要是基于测试。在Overfeat[5]和Howard的方法[36]中,单一网络在测试解决被应用于不同的尺度,然后将分支平均。Howard进一步在低/高两个分辨率图像区域上训练了两个不同的网络,然后平均分支。据我们所知,我们是第一个对不同尺寸训练单一网络的方法。

    3.1.4 全图像表示提升准确度

    接下来我们研究全图像视角的准确度。我们将图像保持比例不变的情况下缩放到min(w;h)=256。SPP-net应用到一整张图像上。为了公平比较,我们也计算中央224×224裁切这单一视图(上述评估都用过)的准确度。单视图比较的准确度见表3。验证了ZF-5/Overfeat-7,top-1错误率在全视图表示中全部下降。这说明保持完整内容的重要性。即使网络训练时只使用了正方形图像,却也可以很好地适应其他的比例。

    对比表2和表3我们发现,结合多种视图大体上要好于全图像视图。然而全视图图像的表示仍然有价值。首先,经验上看,我们发现(下节会讨论)即使结合几十个视图,额外增加两个全图像视角(带翻转)仍然可以提高准确度大约0.2%。其次,全图像视图从方法论上讲与传统方法[15][17][19]保持了一致,这些方法中对整张图像进行编码的SIFT向量被池化在一起。第三,在其他一些应用中,比如图像恢复[37],相似度评分需要图像表示而不是分类得分。一个全图像的表示就会成为首选。

    3.1.5 特征图上的多视图测试

    【略】

    3.2 Experiments on VOC 2007 Classification

    【略】

    3.3 Experiments on Caltech101

    【略】

    4 SPP-NET用于物体检测

    深度网络已经被用于物体检测。我们简要回顾一下最先进的R-CNN[7]。R-CNN首先使用选择性搜索[20]从每个图像中选出2000个候选窗口。然后将每个窗口中的图像区域变形到固定大小227×227。一个事先训练好的深度网络被用于抽取每个窗口的特征。然后用二分类的SVM分类器在这些特征上针对检测进行训练。R-CNN产生的引人注目的成果。但R-CNN在一张图像的2000个窗口上反复应用深度卷积网络,十分耗时。在测试阶段的特征抽取式主要的耗时瓶颈。

    我们将SPP-net应用于物体检测。只在整张图像上抽取一次特征。然后在每个特征图的候选窗口上应用空间金字塔池化,形成这个窗口的一个固定长度表示(见图5)。因为只应用一次卷积网络,我们的方法快得多。我们的方法是从特征图中直接抽取特征,而R-CNN则要从图像区域抽取。之前的一些工作中,可变性部件模型(Deformable Part Model, DPM)从HOG[24]特征图的窗口中抽取图像,选择性搜索方法[20]从SIFT编码后的特征图的窗口中抽取特征。Overfeat也是从卷积特征图中抽取特征,但需要预定义的窗口尺寸。作为对比,我们的特征抽取可以在任意尺寸的深度卷积特征图窗口上。

    4.1 检测算法

    我们使用选择性搜索[20]的“fast”模式对每张图片产生2000个候选窗口。然后缩放图像以满足min(w;h) = s,并且从整张图像中抽取特征图。我们暂时使用ZF-5的SPP-net模型(单一尺寸训练)。在每个候选窗口,我们使用一个4级空间金字塔(1×1, 2×2, 3×3, 6×6, 总共50块)。每个窗口将产生一个12800(256×50)维的表示。这些表示传递给网络的全连接层。然后我们针对每个分类训练一个二分线性SVM分类器。我们的SVN实现追随了[20][7]。我们使用真实标注的窗口去生成正例。负例是那些与正例窗口重叠不超过30%的窗口(使用IoU比例)。

    如果一个负例与另一个负例重叠超过70%就会被移除。我们使用标准的难负例挖掘算法(standard hard negative mining [23])训练SVM。这个步骤只迭代一次。对于全部20个分类训练SVM小于1个小时。测试阶段,训练器用来对候选窗口打分。然后在打分窗口上使用最大值抑制[23]算法(30%的阈值)。

    通过多尺度特征提取,我们的方法可以得到改进。将图像缩放成min(w;h) = s \belongs S = {480; 576; 688; 864; 1200 },然后针对每个尺度计算conv5的特征图。一个结合这些这些不同尺度特征的策略是逐个channel的池化。但我们从经验上发现另一个策略有更好的效果。对于每个候选窗口,我们选择一个单一尺度s \belongs S,令缩放后的候选窗口的像素数量接近与224×224。然后我们从这个尺度抽取的特征图去计算窗口的特征。如果这个预定义的尺度足够密集,窗口近似于正方形。我们的方法粗略地等效于将窗口缩放到224×224,然后再从中抽取特征。但我们的方法在每个尺度只计算一次特征图,不管有多少个候选窗口。

    我们参照[7]对预训练的网络进行了调优。由于对于任意尺寸的窗口,我们都是从conv5的特征图中吃画出特征来,为了简单起见,我们只调优全连接层。

    本例中,数据层接受conv5之后的固定长度的池化后的特征,后面跟着fc_{6,7}和一个新的21路(有一个负例类别)fc8层。fc8的权重使用高斯分布进行初始化σ=0.01。我们修正所有的learning rate为1e-4,再将全部三层调整为1e-5。调优过程中正例是与标注窗口重叠度达到[0.5, 1]的窗口,负例是重叠度为[0.1, 0.5)的。每个mini-batch,25%是正例。我们使用学习率1e-4训练了250k个minibatch,然后使用1e-5训练50k个minibatch。

    因为我们只调优fc层,所以训练非常的快,在GPU上只需要2个小时,不包括预缓存特征图所需要的1小时。另外,遵循[7],我们使用了约束框回归来后处理预测窗口。用于回归的特征也是conv5之后的池化后的特征。用于回归训练的是那些与标注窗口至少重叠50%的窗口。

    4.2 检测结果

    我们在Pascal VOC 2007数据集的检测任务上,评测了我们的方法。表9展示了我们的不同层的结果,使用了1-scale(s=688)或5-scale。R-CNN的结果见[7],他们使用了5个卷积层的AlexNet[3]。使用pool5层我们的结果是44.9%,R-CNN的结果是44.2%。但使用未调优的fc6层,我们的结果就不好。可能是我们的fc层针对图像区域进行了预训练,在检测案例中,他们用于特征图区域。而特征图区域在窗口框附近会有较强的激活,而图像的区域就不会这样。这种用法的不同是可以通过调优解决的。使用调优后的fc层,我们的结果就比R-CNN稍胜一筹。经过约束狂回归,我们的5-scale结果(59.2%)比R-CNN(58.5%)高0.7%。,而1-scale结果(58.0%)要差0.5%。

    表10中,我们进一步使用相同预训练的SPPnet模型(ZF-5)和R-CNN进行比较。本例中,我们的方法和R-CNN有相当的平均成绩。R-CNN的结果是通过预训练模型进行提升的。这是因为ZF-5比AlexNet有更好的架构,而且SPPnet是多层次池化(如果使用非SPP的ZF-5,R-CNN的结果就会下降)。表11表明了每个类别的结果。表也包含了其他方法。选择性搜索(SS)[20]在SIFT特征图上应用空间金字塔匹配。DPM[23]和Regionlet[39]都是基于HOG特征的[24]。Regionlet方法通过结合包含conv5的同步特征可以提升到46.1%。DetectorNet[40]训练一个深度网络,可以输出像素级的对象遮罩。这个方法仅仅需要对整张图片应用深度网络一次,和我们的方法一样。但他们的方法mAP比较低(30.5%)。

    4.3 复杂度和运行时间

    【略】

    4.4 用于检测的多模型结合

    模型结合对于提升CNN为基础的分类准确度有重要的提升作用[3]。我们提出一种简单的用于检测的结合方法。

    首先在ImageNet上预训练另一个网络,使用的结构都相同,只是随机初始化不同。然后我们重复上述的检测算法。表12(SPP-net(2))显示了这个网络的结果。他的mAP可以和第一名的网络相媲美(59.1%vs59.2%),并且在11个类别上要好于第一网络。

    给定两个模型,我们首先使用每个模型对测试图像的候选框进行打分。然后对并联的两个候选框集合上应用最大化抑制。一个方法比较置信的窗口就会压制另一个方法不太置信的窗口。通过这样的结合,mAP提升到了60.9%(表12)。结合方法在20类中的17个的表现要好于单个模型。这意味着双模型是互补的。

    我们进一步发现这个互补性主要是因为卷积层。我们尝试结合卷积模型完全相同的两个模型,则没有任何效果。

    4.5 ILSVRC 2014 Detection

    【略】

    5 结论

    SPP对于处理不同的尺度、尺寸和长宽比是十分灵活的解决方案。这些问题在视觉识别时非常重要,但深度网络中大家却很少考虑这个问题。我们建议使用空间金字塔池化层来训练深度网络。这种SPP-net在分类和检测任务上都表现出了出色的精度并显著加速了DNN为基础的检测任务。我们的研究也表明很多CV领域成熟的技术再基于深度网络的识别中仍然可以发挥重要的作用。

    展开全文
  • SPPNet论文翻译 译者:邓范鑫 我对物体检测的一篇重要著作SPPNet的论文的主要部分进行了翻译工作。SPPNet的初衷非常明晰,就是希望网络对输入的尺寸更加灵活,分析到卷积网络对尺寸并没有...
     
    

    原文:SPPNet论文翻译
    译者:邓范鑫

    我对物体检测的一篇重要著作SPPNet的论文的主要部分进行了翻译工作。SPPNet的初衷非常明晰,就是希望网络对输入的尺寸更加灵活,分析到卷积网络对尺寸并没有要求,固定尺寸的要求完全来源于全连接层部分,因而借助空间金字塔池化的方法来衔接两者,SPPNet在检测领域的重要贡献是避免了R-CNN的变形、重复计算等问题,在效果不衰减的情况下,大幅提高了识别速度。

    用于视觉识别的深度卷积网络空间金字塔池化方法

    Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition

    Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun

    摘要

    当前深度卷积神经网络(CNNs)都需要输入的图像尺寸固定(比如224×224)。这种人为的需要导致面对任意尺寸和比例的图像或子图像时降低识别的精度。本文中,我们给网络配上一个叫做“空间金字塔池化”(spatial pyramid pooling,)的池化策略以消除上述限制。这个我们称之为SPP-net的网络结构能够产生固定大小的表示(representation)而不关心输入图像的尺寸或比例。金字塔池化对物体的形变十分鲁棒。由于诸多优点,SPP-net可以普遍帮助改进各类基于CNN的图像分类方法。在ImageNet2012数据集上,SPP-net将各种CNN架构的精度都大幅提升,尽管这些架构有着各自不同的设计。在PASCAL VOC 2007和Caltech101数据集上,SPP-net使用单一全图像表示在没有调优的情况下都达到了最好成绩。SPP-net在物体检测上也表现突出。使用SPP-net,只需要从整张图片计算一次特征图(feature map),然后对任意尺寸的区域(子图像)进行特征池化以产生一个固定尺寸的表示用于训练检测器。这个方法避免了反复计算卷积特征。在处理测试图像时,我们的方法在VOC2007数据集上,达到相同或更好的性能情况下,比R-CNN方法快24-102倍。在ImageNet大规模视觉识别任务挑战(ILSVRC)2014上,我们的方法在物体检测上排名第2,在物体分类上排名第3,参赛的总共有38个组。本文也介绍了为了这个比赛所作的一些改进。

    1. 简介

    我们看到计算机视觉领域正在经历飞速的变化,这一切得益于深度卷积神经网络(CNNs)[1]和大规模的训练数据的出现[2]。近来深度网络对图像分类 [3][4][5][6],物体检测 [7][8][5]和其他识别任务 [9][10][11][12],甚至很多非识别类任务上都表现出了明显的性能提升。
    然而,这些技术再训练和测试时都有一个问题,这些流行的CNNs都需要输入的图像尺寸是固定的(比如224×224),这限制了输入图像的长宽比和缩放尺度。当遇到任意尺寸的图像是,都是先将图像适应成固定尺寸,方法包括裁剪[3][4]和变形[13][7],如图1(上)所示。但裁剪会导致信息的丢失,变形会导致位置信息的扭曲,就会影响识别的精度。另外,一个预先定义好的尺寸在物体是缩放可变的时候就不适用了。
    那么为什么CNNs需要一个固定的输入尺寸呢?CNN主要由两部分组成,卷积部分和其后的全连接部分。卷积部分通过滑窗进行计算,并输出代表激活的空间排布的特征图(feature map)(图2)。事实上,卷积并不需要固定的图像尺寸,他可以产生任意尺寸的特征图。而另一方面,根据定义,全连接层则需要固定的尺寸输入。因此固定尺寸的问题来源于全连接层,也是网络的最后阶段。本文引入一种空间金字塔池化( spatial pyramid pooling,SPP)层以移除对网络固定尺寸的限制。尤其是,将SPP层放在最后一个卷积层之后。SPP层对特征进行池化,并产生固定长度的输出,这个输出再喂给全连接层(或其他分类器)。换句话说,在网络层次的较后阶段(也就是卷积层和全连接层之间)进行某种信息“汇总”,可以避免在最开始的时候就进行裁剪或变形。图1(下)展示了引入SPP层之后的网络结构变化。我们称这种新型的网络结构为SPP-net。
    空间金字塔池化[14][15](普遍称谓:空间金字塔匹配spatial pyramid matching, SPM[15]),是一种词袋(Bag-of-Words, BoW)模型的扩展。池袋模型是计算机视觉领域最成功的方法之一。它将图像切分成粗糙到精细各种级别,然后整合其中的局部特征。在CNN之前,SPP一直是各大分类比赛[17][18][19]和检测比赛(比如[20])的冠军系统中的核心组件。对深度CNNs而言,SPP有几个突出的优点:1)SPP能在输入尺寸任意的情况下产生固定大小的输出,而以前的深度网络[3]中的滑窗池化(sliding window pooling)则不能;2)SPP使用了多级别的空间箱(bin),而滑窗池化则只用了一个窗口尺寸。多级池化对于物体的变形十分鲁棒[15];3)由于其对输入的灵活性,SPP可以池化从各种尺度抽取出来的特征。通过实验,我们将展示影响深度网络最终识别精度的所有这些因素。
    SPP-net不仅仅让测试阶段允许任意尺寸的输入能够产生表示(representations),也允许训练阶段的图像可以有各种尺寸和缩放尺度。使用各种尺寸的图像进行训练可以提高缩放不变性,以及减少过拟合。我们开发了一个简单的多尺度训练方法。为了实现一个单一的能够接受各种输入尺寸的网络,我们先使用分别训练固定输入尺寸的多个网络,这些网络之间共享权重(Parameters),然后再一起来代表这个单一网络(译者注:具体代表方式没有说清楚,看后面怎么说吧)。每个epoch,我们针对一个给定的输入尺寸进行网络训练,然后在下一个epoch再切换到另一个尺寸。实验表明,这种多尺度训练和传统的单一尺度训练一样可以瘦脸,并且能达到更好的测试精度。
    SPP的优点是与各类CNN设计是正交的。通过在ImageNet2012数据集上进行一系列可控的实验,我们发现SPP对[3][4][5]这些不同的CNN架构都有提升。这些架构有不同的特征数量、尺寸、滑动距离(strides)、深度或其他的设计。所以我们有理由推测SPP可以帮助提升更多复杂的(更大、更深)的卷积架构。SPP-net也做到了 Caltech101 [21]和Pascal VOC 2007 [22]上的最好结果,而只使用了一个全图像表示,且没有调优。
    在图像检测方面,SPP-net也表现优异。目前领先的方法是R-CNN[7],候选窗口的特征是借助深度神经网络进行抽取的。此方法在VOC和ImageNet数据集上都表现出了出色的检测精度。但R-CNN的特征计算十分耗时,因为他对每张图片中的上千个变形后的区域的像素反复调用CNN。本文中,我们展示了我们只需要在整张图片上运行一次卷积网络层(不关心窗口的数量),然后再使用SPP-net在特征图上抽取特征。这个方法缩减了上百倍的耗时。在特征图(而不是图像区域)上训练和运行检测器是一个很受欢迎的想法[23][24][20][5]。但SPP-net延续了深度CNN特征图的优势,也结合了SPP兼容任意窗口大小的灵活性,所以做到了出色的精度和效率。我们的实验中,基于SPP-net的系统(建立在R-CNN流水线上)比R-CNN计算特征要快24-120倍,而精度却更高。结合最新的推荐方法EdgeBoxes[25],我们的系统达到了每张图片处理0.5s的速度(全部步骤)。这使得我们的方法变得更加实用。
    本论文的一个早先版本发布在ECCV2014上。基于这个工作,我们参加了ILSVRC 2014 [26],在38个团队中,取得了物体检测第2名和图像分类第3名的成绩。针对ILSVRC 2014我们也做了很多修改。我们将展示SPP-nets可以将更深、更大的网络的性能显著提升。进一步,受检测框架驱动,我们发现借助灵活尺寸窗口对特征图进行多视角测试可以显著提高分类精度。本文对这些改动做了更加详细的说明。另外,我们将代码放在了以方便大家研究(http://research.microsoft.com/en-us/um/people/kahe/,译者注:已失效)

    2. 基于空间金字塔池化的深度网络

    2.1 卷积层和特征图

    在颇受欢迎的七层架构中[3][4]中,前五层是卷积层,其中一些后面跟着吃常委曾。从他们也使用滑窗的角度来看,这些池化层也可以认为是“卷积的”。最后两层是全连接的,跟着一个N路softmax输出,其中N是类别的数量。上述的深度网络需要一个固定大小的图像尺寸。然后,我们注意到,固定尺寸的要求仅仅是因为全连接层的存在导致的。另一方面,卷积层使用滑动的特征过滤器,它们的输出基本保持了原始输入的比例关系。它们的输出就是特征图[1]-它们不仅涉及响应的强度,还包括空间位置。图2中,我们可视化了一些特征图。这些特征图来自于conv5层的一些过滤器。图2(c)显示了ImageNet数据集中激活最强的若干图像。可以看到一个过滤器能够被一些语义内容激活。例如,第55个过滤器(图2,左下)对圆形十分敏感;第66层(图2,右上)对a^形状特别敏感;第118个过滤器(图2,右下)对a_形状非常敏感。这些输入图像中的形状会激活相应位置的特征图(图2中的箭头)。 值得注意的是,图2中生成的特征图并没有固定输入尺寸。深度卷积曾生成的特征图和传统方法[27][28]中的特征图很相似。这些传统方法中,SIFT向量[29]或图像碎片[28]被密集地抽取出来,在通过矢量量化[16][15][30],稀疏化[17][18]或Fisher核函数[19]进行编码。这些编码后的特征构成了特征图,然后通过词袋(BoW)[16]或空间金字塔[14][15]进行池化。类似的深度卷积的特征也可以这样做。

    2.2 空间金字塔池化层

    卷积层接受任意大小的输入,所以他们的输出也是各种大小。而分类器(SVM/softmax)或者全连接层UI需要固定的输入大小的向量。这种向量可以使用词袋方法[16]通过池化特征来生成。空间金字塔池化[14][15]对BoW进行了改进以便在池化过程中保留局部空间块(local spatial bins)中的空间保留。这些空间块的尺寸和图像的尺寸是成比例的,这样块的数量就是固定的了。而前述深度网络的滑窗池化则对依赖于输入图像的尺寸。
    为了让我们的神经网络适应任意尺寸的图像输入,我们用一个空间金字塔池化层替换掉了最优一个池化层(最后一个卷积层之后的pool5)。图3示例了这种方法。在每个空间块中,我们池化每个过滤器的响应(本文中采用了最大池化法)。空间金字塔的输出是一个kM维向量,M代表块的数量,k代表最后一层卷积层的过滤器的数量。这个固定维度的向量就是全连接层的输入。
    有了空间金字塔池化,输入图像就可以是任意尺寸了。不但允许任意比例关系,而且支持任意缩放尺度。我们也可以将输入图像缩放到任意尺度(例如min(w;h)=180,224,…)并且使用同一个深度网络。当输入图像处于不同的空间尺度时,带有相同大小卷积核的网络就可以在不同的尺度上抽取特征。跨多个尺度在传统方法中十分重要,比如SIFT向量就经常在多个尺度上进行抽取[29][27](受碎片和高斯过滤器的大小所决定)。我们接下来会说明多尺度在深度网络精度方面的重要作用。
    有趣的是,粗糙的金字塔级别只有一个块,覆盖了整张图像。这就是一个全局池化操作,当前有很多正在进行的工作正在研究它。[33]中,一个放在全连接层之后的全局平均池化被用来提高测试阶段的精确度;[34]中,一个全局最大池化用于弱监督物体识别。全局池化操作相当于传统的词袋方法。

    2.3 网络的训练

    理论上将,上述网络结构可以用标准的反向传播进行训练[1],与图像的大小无关。但实践中,GPU的实现(如cuda-convnet[3]和Caffe[35])更适合运行在固定输入图像上。接下来,我们描述我们的训练方法能够在保持空间金字塔池化行为的同时还能充分利用GPU的优势。
    单一尺寸训练
    如前人的工作一样,我们首先考虑接收裁剪成224×224图像的网络。裁剪的目的是数据增强。对于一个给定尺寸的图像,我们先计算空间金字塔池化所需要的块(bins)的大小。试想一个尺寸是axa(也就是13×13)的conv5之后特征图。对于nxn块的金字塔级,我们实现一个滑窗池化过程,窗口大小为win = 上取整[a/n],步幅str = 下取整[a/n]. 对于l层金字塔,我们实现l个这样的层。然后将l个层的输出进行连接输出给全连接层。图4展示了一个cuda卷积网络风格的3层金字塔的样例。(3×3, 2×2, 1×1)。
    单一尺寸训练的主要目的是开启多级别池化行为。实验表明这是获取精度的一个原因。
    多尺寸训练
    携带SPP的网络可以应用于任意尺寸,为了解决不同图像尺寸的训练问题,我们考虑一些预设好的尺寸。现在考虑这两个尺寸:180×180,224×224。我们使用缩放而不是裁剪,将前述的224
    的区域图像变成180大小。这样,不同尺度的区域仅仅是分辨率上的不同,而不是内容和布局上的不同。对于接受180输入的网络,我们实现另一个固定尺寸的网络。本例中,conv5输出的特征图尺寸是axa=10×10。我们仍然使用win = 上取整[a/n],str = 下取整[a/n],实现每个金字塔池化层。这个180网络的空间金字塔层的输出的大小就和224网络的一样了。
    这样,这个180网络就和224网络拥有一样的参数了。换句话说,训练过程中,我们通过使用共享参数的两个固定尺寸的网络实现了不同输入尺寸的SPP-net。
    为了降低从一个网络(比如224)向另一个网络(比如180)切换的开销,我们在每个网络上训练一个完整的epoch,然后在下一个完成的epoch再切换到另一个网络(权重保留)。依此往复。实验中我们发现多尺寸训练的收敛速度和单尺寸差不多。
    多尺寸训练的主要目的是在保证已经充分利用现在被较好优化的固定尺寸网络实现的同时,模拟不同的输入尺寸。除了上述两个尺度的实现,我们也在每个epoch中测试了不同的sxs输入,s是从180到224之间均匀选取的。后面将在实验部分报告这些测试的结果。
    注意,上面的单尺寸或多尺寸解析度只用于训练。在测试阶段,是直接对各种尺寸的图像应用SPP-net的。

    3 用于图像分类的SPP-NET

    3.1 ImageNet 2012分类实验

    我们在1000类别的Image2012训练集上训练了网络。我们的训练算法参照了前人的实践工作[3][4][36]。图像会被缩放,以便较小的维度是256,再从中间获得四个角裁出224×224。图像会通过水平翻转和颜色变换[3]进行数据增强。
    最后两层全连接层会使用Dropout[3]。learning rate起始值是0.01,当错误率停滞后就除以10。我们的实现基于公开的cuda-convnet源代码[3]和Caffe[35]。所有网络都是在单一GeForceGTX TitanGPU(6G内存)耗时二到四周训练的。

    3.1.1 基准网络架构

    SPP的优势是和使用的卷积神经网络无关。我研究了四种不同的网络架构[3][4][5](或他们的修改版),对所有这些架构,SPP都提升了准确度。基准架构如表1,简单介绍如下:
    – ZF-5:基于Zeiler和Fergus的“快速”模式[4]的网络架构。数字5代表5层卷积网络。
    – Convnet*-5:基于Krizhevsky等人工作[3]的修改。我们在conv2和conv3(而不是conv1和conv2)之后加入了两个池化层。这样,每一层之后的特征图就和ZF-5的尺寸一样了。
    – Overfeat-5/7:基于Overfeat论文[5],使用了[6]的修改。对比ZF-5/Convnet*-5,这个架构在最后一个池化层产生了更大的特征图(18×18而不是13×13)。还在conv3和后续的卷基层使用了更多的过滤器(512)。我们也研究了7层卷积网络,其中conv3和conv7结构一样。
    基准模型中,最后卷积层之后的池化层会产生6×6的特征图,然后跟着两个4096维度的全连接层,和一个1000路的softmax层。这些基准网络的表现参见表2(a),我们针对ZF-5进行了70个epoch,而其他的用了90个epoch。ZF-5的表现比[4]中报告的那个要好。增益主要来源于角落裁切来源于整张图片,[36]中也提到了这点。

    3.1.2 多层次池化提升准确度

    表2(b)中我们显示了使用单尺寸训练的结果。训练和测试尺寸都是224×224.这些网络中,卷积网络都和他们的基准网络有相同的结构,只是最后卷积层之后的池化层,被替换成了SPP层。表2中的结果我们使用了4层金字塔,f6x6, 3×3, 2×2, 1x1g(总共50个块)。为了公平比较,我们仍然使用标准的10-view预测法,每个view都是一个224×224的裁切。表2(b)中的结果显示了明显的性能提升。有趣的是,最大的提升(top-1 error,1.65%)来自于精度最高的网络架构。既然我们一直使用相同10个裁切view。这些提升只能是来自于多层次池化。
    值得注意的是多层次池化带来的提升不只是因为更多的参数;而是因为多层次池化对对象的变形和空间布局更加鲁棒[15]。为了说明这个,我们使用一个不同的4层金字塔(f4×4, 3×3, 2×2, 1×1g,供30个块)训练另一个ZF-5网络。这个网络有更少的参数,因为他的全连接层fc6有30×256维输入而不是36×256维。 网络的top-1/top-5错误率分别是35.06/14.04和50块的金字塔网络相近,明显好于非SPP基准网络(35.99/14.76)。

    3.1.3 多尺寸训练提升准确度

    表2(c)展示了多尺寸训练的结果。训练尺寸是224和180,测试尺寸是224。我们还使用标准的10-view预测法。所有架构的top-1/top-5错误率进一步下降。SPP-net(Overfeat-7)的Top-1 错误率降到29.68%,比非SPP网络低了2.33%,比单尺寸训练降低了0.68%。
    除了使用180和224两个尺寸,我们还随机选了[180;224]之间多个尺寸。SPP-net(Overfeat-7)的top1/5错误率是30.06%/10.96%。Top-1错误率比两尺寸版本有所下降,可能因为224这个尺寸(测试时用的尺寸)被更少的访问到。但结果仍然比但尺寸版本要好。
    之前的CNN解决方案[5][36]也处理了不同尺寸问题,但他们主要是基于测试。在Overfeat[5]和Howard的方法[36]中,单一网络在测试解决被应用于不同的尺度,然后将分支平均。Howard进一步在低/高两个分辨率图像区域上训练了两个不同的网络,然后平均分支。据我们所知,我们是第一个对不同尺寸训练单一网络的方法。
    3.1.4 全图像表示提升准确度
    接下来我们研究全图像视角的准确度。我们将图像保持比例不变的情况下缩放到min(w;h)=256。SPP-net应用到一整张图像上。为了公平比较,我们也计算中央224×224裁切这单一视图(上述评估都用过)的准确度。单视图比较的准确度见表3。验证了ZF-5/Overfeat-7,top-1错误率在全视图表示中全部下降。这说明保持完整内容的重要性。即使网络训练时只使用了正方形图像,却也可以很好地适应其他的比例。
    对比表2和表3我们发现,结合多种视图大体上要好于全图像视图。然而全视图图像的表示仍然有价值。首先,经验上看,我们发现(下节会讨论)即使结合几十个视图,额外增加两个全图像视角(带翻转)仍然可以提高准确度大约0.2%。其次,全图像视图从方法论上讲与传统方法[15][17][19]保持了一致,这些方法中对整张图像进行编码的SIFT向量被池化在一起。第三,在其他一些应用中,比如图像恢复[37],相似度评分需要图像表示而不是分类得分。一个全图像的表示就会成为首选。

    3.1.5 特征图上的多视图测试

    【略】

    3.2 Experiments on VOC 2007 Classification

    【略】

    3.3 Experiments on Caltech101

    【略】

    4 SPP-NET用于物体检测

    深度网络已经被用于物体检测。我们简要回顾一下最先进的R-CNN[7]。R-CNN首先使用选择性搜索[20]从每个图像中选出2000个候选窗口。然后将每个窗口中的图像区域变形到固定大小227×227。一个事先训练好的深度网络被用于抽取每个窗口的特征。然后用二分类的SVM分类器在这些特征上针对检测进行训练。R-CNN产生的引人注目的成果。但R-CNN在一张图像的2000个窗口上反复应用深度卷积网络,十分耗时。在测试阶段的特征抽取式主要的耗时瓶颈。
    我们将SPP-net应用于物体检测。只在整张图像上抽取一次特征。然后在每个特征图的候选窗口上应用空间金字塔池化,形成这个窗口的一个固定长度表示(见图5)。因为只应用一次卷积网络,我们的方法快得多。我们的方法是从特征图中直接抽取特征,而R-CNN则要从图像区域抽取。之前的一些工作中,可变性部件模型(Deformable Part Model, DPM)从HOG[24]特征图的窗口中抽取图像,选择性搜索方法[20]从SIFT编码后的特征图的窗口中抽取特征。Overfeat也是从卷积特征图中抽取特征,但需要预定义的窗口尺寸。作为对比,我们的特征抽取可以在任意尺寸的深度卷积特征图窗口上。

    4.1 检测算法

    我们使用选择性搜索[20]的“fast”模式对每张图片产生2000个候选窗口。然后缩放图像以满足min(w;h) = s,并且从整张图像中抽取特征图。我们暂时使用ZF-5的SPP-net模型(单一尺寸训练)。在每个候选窗口,我们使用一个4级空间金字塔(1×1, 2×2, 3×3, 6×6, 总共50块)。每个窗口将产生一个12800(256×50)维的表示。这些表示传递给网络的全连接层。然后我们针对每个分类训练一个二分线性SVM分类器。我们的SVN实现追随了[20][7]。我们使用真实标注的窗口去生成正例。负例是那些与正例窗口重叠不超过30%的窗口(使用IoU比例)。
    如果一个负例与另一个负例重叠超过70%就会被移除。我们使用标准的难负例挖掘算法(standard hard negative mining [23])训练SVM。这个步骤只迭代一次。对于全部20个分类训练SVM小于1个小时。测试阶段,训练器用来对候选窗口打分。然后在打分窗口上使用最大值抑制[23]算法(30%的阈值)。
    通过多尺度特征提取,我们的方法可以得到改进。将图像缩放成min(w;h) = s \belongs S = {480; 576; 688; 864; 1200 },然后针对每个尺度计算conv5的特征图。一个结合这些这些不同尺度特征的策略是逐个channel的池化。但我们从经验上发现另一个策略有更好的效果。对于每个候选窗口,我们选择一个单一尺度s \belongs S,令缩放后的候选窗口的像素数量接近与224×224。然后我们从这个尺度抽取的特征图去计算窗口的特征。如果这个预定义的尺度足够密集,窗口近似于正方形。我们的方法粗略地等效于将窗口缩放到224×224,然后再从中抽取特征。但我们的方法在每个尺度只计算一次特征图,不管有多少个候选窗口。
    我们参照[7]对预训练的网络进行了调优。由于对于任意尺寸的窗口,我们都是从conv5的特征图中吃画出特征来,为了简单起见,我们只调优全连接层。
    本例中,数据层接受conv5之后的固定长度的池化后的特征,后面跟着fc_{6,7}和一个新的21路(有一个负例类别)fc8层。fc8的权重使用高斯分布进行初始化σ=0.01。我们修正所有的learning rate为1e-4,再将全部三层调整为1e-5。调优过程中正例是与标注窗口重叠度达到[0.5, 1]的窗口,负例是重叠度为[0.1, 0.5)的。每个mini-batch,25%是正例。我们使用学习率1e-4训练了250k个minibatch,然后使用1e-5训练50k个minibatch。
    因为我们只调优fc层,所以训练非常的快,在GPU上只需要2个小时,不包括预缓存特征图所需要的1小时。另外,遵循[7],我们使用了约束框回归来后处理预测窗口。用于回归的特征也是conv5之后的池化后的特征。用于回归训练的是那些与标注窗口至少重叠50%的窗口。

    4.2 检测结果

    我们在Pascal VOC 2007数据集的检测任务上,评测了我们的方法。表9展示了我们的不同层的结果,使用了1-scale(s=688)或5-scale。R-CNN的结果见[7],他们使用了5个卷积层的AlexNet[3]。使用pool5层我们的结果是44.9%,R-CNN的结果是44.2%。但使用未调优的fc6层,我们的结果就不好。可能是我们的fc层针对图像区域进行了预训练,在检测案例中,他们用于特征图区域。而特征图区域在窗口框附近会有较强的激活,而图像的区域就不会这样。这种用法的不同是可以通过调优解决的。使用调优后的fc层,我们的结果就比R-CNN稍胜一筹。经过约束狂回归,我们的5-scale结果(59.2%)比R-CNN(58.5%)高0.7%。,而1-scale结果(58.0%)要差0.5%。
    表10中,我们进一步使用相同预训练的SPPnet模型(ZF-5)和R-CNN进行比较。本例中,我们的方法和R-CNN有相当的平均成绩。R-CNN的结果是通过预训练模型进行提升的。这是因为ZF-5比AlexNet有更好的架构,而且SPPnet是多层次池化(如果使用非SPP的ZF-5,R-CNN的结果就会下降)。表11表明了每个类别的结果。表也包含了其他方法。选择性搜索(SS)[20]在SIFT特征图上应用空间金字塔匹配。DPM[23]和Regionlet[39]都是基于HOG特征的[24]。Regionlet方法通过结合包含conv5的同步特征可以提升到46.1%。DetectorNet[40]训练一个深度网络,可以输出像素级的对象遮罩。这个方法仅仅需要对整张图片应用深度网络一次,和我们的方法一样。但他们的方法mAP比较低(30.5%)。

    4.3 复杂度和运行时间

    【略】

    4.4 用于检测的多模型结合

    模型结合对于提升CNN为基础的分类准确度有重要的提升作用[3]。我们提出一种简单的用于检测的结合方法。
    首先在ImageNet上预训练另一个网络,使用的结构都相同,只是随机初始化不同。然后我们重复上述的检测算法。表12(SPP-net(2))显示了这个网络的结果。他的mAP可以和第一名的网络相媲美(59.1%vs59.2%),并且在11个类别上要好于第一网络。
    给定两个模型,我们首先使用每个模型对测试图像的候选框进行打分。然后对并联的两个候选框集合上应用最大化抑制。一个方法比较置信的窗口就会压制另一个方法不太置信的窗口。通过这样的结合,mAP提升到了60.9%(表12)。结合方法在20类中的17个的表现要好于单个模型。这意味着双模型是互补的。
    我们进一步发现这个互补性主要是因为卷积层。我们尝试结合卷积模型完全相同的两个模型,则没有任何效果。

    4.5 ILSVRC 2014 Detection

    【略】

    5 结论

    SPP对于处理不同的尺度、尺寸和长宽比是十分灵活的解决方案。这些问题在视觉识别时非常重要,但深度网络中大家却很少考虑这个问题。我们建议使用空间金字塔池化层来训练深度网络。这种SPP-net在分类和检测任务上都表现出了出色的精度并显著加速了DNN为基础的检测任务。我们的研究也表明很多CV领域成熟的技术再基于深度网络的识别中仍然可以发挥重要的作用。

    文献

    [1] 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.
    [2] J. Deng, W. Dong, R. Socher, L.-J. Li, K. Li, and L. FeiFei, “Imagenet: A large-scale hierarchical image database,” in CVPR, 2009.
    [3] A. Krizhevsky, I. Sutskever, and G. Hinton, “Imagenet classification with deep convolutional neural networks,” in NIPS, 2012.
    [4] M. D. Zeiler and R. Fergus, “Visualizing and understanding convolutional neural networks,” arXiv:1311.2901, 2013.
    [5] P. Sermanet, D. Eigen, X. Zhang, M. Mathieu, R. Fergus, and Y. LeCun, “Overfeat: Integrated recognition, localization and detection using convolutional networks,” arXiv:1312.6229, 2013.
    [6] A. V. K. Chatfield, K. Simonyan and A. Zisserman, “Return of the devil in the details: Delving deep into convolutional nets,” in ArXiv:1405.3531, 2014.
    [7] R. Girshick, J. Donahue, T. Darrell, and J. Malik, “Rich feature hierarchies for accurate object detection and semantic segmentation,” in CVPR, 2014.
    [8] W. Y. Zou, X. Wang, M. Sun, and Y. Lin, “Generic object detection with dense neural patterns and regionlets,” in ArXiv:1404.4316, 2014.
    [9] A. S. Razavian, H. Azizpour, J. Sullivan, and S. Carlsson, “Cnn features off-the-shelf: An astounding baseline for recogniton,” in CVPR 2014, DeepVision Workshop, 2014.
    [10] Y. Taigman, M. Yang, M. Ranzato, and L. Wolf, “Deepface: Closing the gap to human-level performance in face verification,” in CVPR, 2014.
    [11] N. Zhang, M. Paluri, M. Ranzato, T. Darrell, and L. Bourdevr, “Panda: Pose aligned networks for deep attribute modeling,” in CVPR, 2014.
    [12] Y. Gong, L. Wang, R. Guo, and S. Lazebnik, “Multi-scale orderless pooling of deep convolutional activation features,” in ArXiv:1403.1840, 2014.
    [13] J. Donahue, Y. Jia, O. Vinyals, J. Hoffman, N. Zhang, E. Tzeng, and T. Darrell, “Decaf: A deep convolutional activation feature for generic visual recognition,” arXiv:1310.1531, 2013.
    [14] K. Grauman and T. Darrell, “The pyramid match kernel: Discriminative classification with sets of image features,” in ICCV, 2005.
    [15] S. Lazebnik, C. Schmid, and J. Ponce, “Beyond bags of features: Spatial pyramid matching for recognizing natural scene categories,” in CVPR, 2006.
    [16] J. Sivic and A. Zisserman, “Video google: a text retrieval approach to object matching in videos,” in ICCV, 2003.
    [17] J. Yang, K. Yu, Y. Gong, and T. Huang, “Linear spatial pyramid matching using sparse coding for image classification,” in CVPR, 2009.
    [18] J. Wang, J. Yang, K. Yu, F. Lv, T. Huang, and Y. Gong, “Localityconstrained linear coding for image classification,” in CVPR, 2010.
    [19] F. Perronnin, J. Sanchez, and T. Mensink, “Improving the fisher ´ kernel for large-scale image classification,” in ECCV, 2010.
    [20] K. E. van de Sande, J. R. Uijlings, T. Gevers, and A. W. Smeulders, “Segmentation as selective search for object recognition,” in ICCV, 2011.
    [21] L. Fei-Fei, R. Fergus, and P. Perona, “Learning generative visual models from few training examples: An incremental bayesian approach tested on 101 object categories,” CVIU, 2007.
    [22] M. Everingham, L. Van Gool, C. K. I. Williams, J. Winn, and A. Zisserman, “The PASCAL Visual Object Classes Challenge 2007 (VOC2007) Results,” 2007.
    [23] P. F. Felzenszwalb, R. B. Girshick, D. McAllester, and D. Ramanan, “Object detection with discriminatively trained partbased models,” PAMI, 2010.
    [24] N. Dalal and B. Triggs, “Histograms of oriented gradients for human detection,” in CVPR, 2005.
    [25] C. L. Zitnick and P. Dollar, “Edge boxes: Locating object ´ proposals from edges,” in ECCV, 2014.
    [26] O. Russakovsky, J. Deng, H. Su, J. Krause, S. Satheesh, S. Ma, Z. Huang, A. Karpathy, A. Khosla, M. Bernstein et al., “Imagenet large scale visual recognition challenge,” arXiv:1409.0575, 2014.
    [27] K. Chatfield, V. Lempitsky, A. Vedaldi, and A. Zisserman, “The devil is in the details: an evaluation of recent feature encoding methods,” in BMVC, 2011.
    [28] A. Coates and A. Ng, “The importance of encoding versus training with sparse coding and vector quantization,” in ICML, 2011.
    [29] D. G. Lowe, “Distinctive image features from scale-invariant keypoints,” IJCV, 2004.
    [30] J. C. van Gemert, J.-M. Geusebroek, C. J. Veenman, and A. W. Smeulders, “Kernel codebooks for scene categorization,” in ECCV, 2008.
    [31] M. Lin, Q. Chen, and S. Yan, “Network in network,” arXiv:1312.4400, 2013.
    [32] C. Szegedy, W. Liu, Y. Jia, P. Sermanet, S. Reed, D. Anguelov, D. Erhan, V. Vanhoucke, and A. Rabinovich, “Going deeper with convolutions,” arXiv:1409.4842, 2014.
    [33] K. Simonyan and A. Zisserman, “Very deep convolutional networks for large-scale image recognition,” arXiv:1409.1556, 2014.
    [34] M. Oquab, L. Bottou, I. Laptev, J. Sivic et al., “Learning and transferring mid-level image representations using convolutional neural networks,” in CVPR, 2014.
    [35] Y. Jia, “Caffe: An open source convolutional architecture for fast feature embedding,” http://caffe.berkeleyvision.org/, 2013.
    [36] A. G. Howard, “Some improvements on deep convolutional neural network based image classification,” ArXiv:1312.5402, 2013.
    [37] H. Jegou, F. Perronnin, M. Douze, J. Sanchez, P. Perez, and C. Schmid, “Aggregating local image descriptors into compact codes,” TPAMI, vol. 34, no. 9, pp. 1704–1716, 2012.
    [38] C.-C. Chang and C.-J. Lin, “Libsvm: a library for support vector machines,” ACM Transactions on Intelligent Systems and Technology (TIST), 2011.
    [39] X. Wang, M. Yang, S. Zhu, and Y. Lin, “Regionlets for generic object detection,” in ICCV, 2013.
    [40] C. Szegedy, A. Toshev, and D. Erhan, “Deep neural networks for object detection,” in NIPS, 2013.
    展开全文
  • SPPnet论文总结

    千次阅读 2016-10-15 17:14:10
    小菜看了SPPNet这篇论文之后,也是参考了前人的博客,结合自己的一些观点写了这篇论文总结。  这里参考的连接如下:  [http://blog.csdn.net/u013078356/article/details/50865183]  论文:  《Spatial ...

    小菜看了SPPNet这篇论文之后,也是参考了前人的博客,结合自己的一些观点写了这篇论文总结。 
    这里参考的连接如下: 
    [http://blog.csdn.net/u013078356/article/details/50865183] 
    论文: 
    《Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition》 
    本篇博文主要讲解大神何凯明2014年的paper:《Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition》,这篇paper主要的创新点在于提出了空间金字塔池化。paper主页:http://research.microsoft.com/en-us/um/people/kahe/eccv14sppnet/index.html 这个算法比R-CNN算法的速度快了n多倍。我们知道在现有的CNN中,对于结构已经确定的网络,需要输入一张固定大小的图片,比如224*224、32*32、96*96等。这样对于我们希望检测各种大小的图片的时候,需要经过裁剪,或者缩放等一系列操作,这样往往会降低识别检测的精度,于是paper提出了“空间金字塔池化”方法,这个算法的牛逼之处,在于使得我们构建的网络,可以输入任意大小的图片,不需要经过裁剪缩放等操作,只要你喜欢,任意大小的图片都可以。不仅如此,这个算法用了以后,精度也会有所提高,总之一句话:牛逼哄哄。

    1. Introduction


    在之前物体检测的文章,比如R-CNN中,他们都要求输入固定大小的图片,这些图片或者经过裁切(Crop)或者经过变形缩放(Warp),都在一定程度上导致图片信息的丢失和变形,限制了识别精确度。两种方式如下所示。 
    这里写图片描述 
    实上,在网络实现的过程中,卷积层是不需要输入固定大小的图片的,而且还可以生成任意大小的特征图,只是全连接层需要固定大小的输入。因此,固定长度的约束仅限于全连接层。在本文中提出了Spatial Pyramid Pooling layer 来解决这一问题,使用这种方式,可以让网络输入任意的图片,而且还会生成固定大小的输出。这样,整体的结构和之前的R-CNN有所不同。 
    这里写图片描述

    2. Spatital Pyramid Pooling


    在解释什么是空间金字塔池化之前,先一下什么是空间金字塔。这里的理解就是以不同大小的块来对图片提取特征,比如下面这张图: 
    这里写图片描述 
    分别是4*4,2*2,1*1大小的块,将这三张网格放到下面这张特征图上,就可以得到16+4+1=21种不同的切割方式,分别在每一个区域取最大池化,那么就可以得到21组特征。这种以不同的大小格子的组合方式来池化的过程就是空间金字塔池化(SPP)。 
    这里写图片描述
    现在,再来看这张完整的图像,因为卷积层输入的任意大小的图片,所以Conv5计算出的feature map也是任意大小的,现在经过SPP之后,就可以变成固定大小的输出了,以上图为例,一共可以输出(16+4+1)*256的特征,16+4+1表示空间盒的数量(Spatial bins),256则表示卷积核的数量。

    3. 物体检测


    带有SPP layer的网络叫做SPP-net,它在物体检测上跟R-CNN也有一定的区别。首先是特征提取上,速度提升了好多,R-CNN是直接从原始图片中提取特征,它在每张原始图片上提取2000个Region Proposal,然后对每一个候选区域框进行一次卷积计算,差不多要重复2000次,而SPP-net则是在卷积原始图像之后的特征图上提取候选区域的特征。所有的卷积计算只进行了一次,效率大大提高。 
    这里写图片描述 
    从这张图片上应该可以看到两者之间的计算差别。

    4. 算法应用之物体检测


    在SPP-Net还没出来之前,物体检测效果最牛逼的应该是RCNN算法了,下面跟大家简单讲一下R-CNN的总算法流程,简单回顾一下: 
    1、首先通过选择性搜索,对待检测的图片进行搜索出2000个候选窗口。 
    2、把这2k个候选窗口的图片都缩放到227*227,然后分别输入CNN中,每个候选窗台提取出一个特征向量,也就是说利用CNN进行提取特征向量。 
    3、把上面每个候选窗口的对应特征向量,利用SVM算法进行分类识别。 
    可以看到R-CNN计算量肯定很大,因为2k个候选窗口都要输入到CNN中,分别进行特征提取,计算量肯定不是一般的大。 
    接着回归正题,如何利用SPP-Net进行物体检测识别?具体算法的大体流程如下: 
    1、首先通过选择性搜索,对待检测的图片进行搜索出2000个候选窗口。这一步和R-CNN一样。 
    2、特征提取阶段。这一步就是和R-CNN最大的区别了,同样是用卷积神经网络进行特征提取,但是SPP-Net用的是金字塔池化。这一步骤的具体操作如下:把整张待检测的图片,输入CNN中,进行一次性特征提取,得到feature maps,然后在feature maps中找到各个候选框的区域,再对各个候选框采用金字塔空间池化,提取出固定长度的特征向量。而R-CNN输入的是每个候选框,然后在进入CNN,因为SPP-Net只需要一次对整张图片进行特征提取,速度是大大地快啊。江湖传说可一个提高100倍的速度,因为R-CNN就相当于遍历一个CNN两千次,而SPP-Net只需要遍历1次。 
    3、最后一步也是和R-CNN一样,采用SVM算法进行特征向量分类识别。 
    算法细节说明:看完上面的步骤二,我们会有一个疑问,那就是如何在feature maps中找到原始图片中候选框的对应区域?因为候选框是通过一整张原始的图片进行检测得到的,而feature maps的大小和原始图片的大小是不同的,feature maps是经过原始图片卷积、下采样等一系列操作后得到的。那么我们要如何在feature maps中找到对应的区域呢? 
    这个答案可以在文献中的最后面附录中找到答案: 
    APPENDIX A:Mapping a Window to Feature Maps。这个作者直接给出了一个很方便我们计算的公式:假设(x’,y’)表示特征图上的坐标点,坐标点(x,y)表示原输入图片上的点,那么它们之间有如下转换关系: 
    (x,y)=(S*x’,S*y’) 
    其中S的就是CNN中所有的strides的乘积。比如paper所用的ZF-5: 
    S=2*2*2*2=16 
    而对于Overfeat-5/7就是S=12,这个可以看一下下面的表格: 
    这里写图片描述
    需要注意的是Strides包含了池化、卷积的stride。自己计算一下Overfeat-5/7(前5层)是不是等于12。 
    反过来,我们希望通过(x,y)坐标求解(x’,y’),那么计算公式如下: 
    这里写图片描述

    因此我们输入原图片检测到的windows,可以得到每个矩形候选框的四个角点,然后我们再根据公式: 
    Left、Top: 这里写图片描述 
    Right、Bottom:这里写图片描述

    展开全文
  • 论文笔记】SPPnet

    2018-05-31 10:55:57
    论文链接 CNN模型在识别图片前需要将图片预处理(如裁剪,扭曲)成同样大小尺寸,流程如下图所示。这一步骤不仅繁琐而且由于尺寸变化可能会影响识别精度。 事实上卷积层、池化层、激活层可以适应任意尺寸图片,但...

    论文链接     

             CNN模型在识别图片前需要将图片预处理(如裁剪,扭曲)成同样大小尺寸,流程如下图所示。这一步骤不仅繁琐而且由于尺寸变化可能会影响识别精度。


            事实上卷积层、池化层、激活层可以适应任意尺寸图片,但用于分类的全连接层需要固定尺寸的输入。为了解决这一问题,SPPnet在特征提取层和全连接层中间添加了金字塔池化层 (SPP layer),使得任意尺寸的图片都生成固定长度的特征表示作为全连接层的输入。图片的尺寸制约问题得以解放,以原始尺寸参与训练及测试,模型的泛化性能会更好。


            其次SPPnet使用不同尺寸的池化操作得到由低到高级别的特征,使得识别性能更加健壮。此外在目标检测任务上,SPPnet大大缩短了检测时间,应用于R-CNN,网络可仅对全图做一次特征提取,再将特征映射到候选区域上,不同大小的候选区域都可以提取出固定大小的特征向量,避免了单独对候选区进行卷积操作重复提取特征。

            下图是SPP layer示意图,实际应用中会将最后一个卷积层的池化层替换为空间金字塔池化层,Spp layer以不同的粒度(一等分、四等分、十六等分)根据图片尺寸比例进行最大池化操作提取出固定数量的特征,以bag of words的形式将这些特征组合成为一个固定长度的特征向量,然后再将该固定长度的特征向量作为全连接层的输入进行分类任务。


    展开全文
  • 论文翻译】Fast R-CNN

    万次阅读 多人点赞 2017-12-05 09:24:57
    SPPnet相比,fast R-CNN训练VGG16网络比他快3倍,测试速度快10倍,并且更准确。Fast R-CNN的Python和C ++(使用Caffe)实现以MIT开源许可证发布在: https://github.com/rbgirshick/fast-rcnn 。 简介 ...
  • 目标检测——SPPNet【含全网最全翻译

    万次阅读 多人点赞 2019-02-27 10:36:22
    这篇文章比较长,我们也基于论文将其大体翻译了一下,伙伴们要耐心看呀! 那么让我们一起开始学习吧!先放上大佬的照片来镇楼: 0. 摘要 当前深度卷积神经网络(CNNs)都需输入固定的图像尺寸(fixed-...
  • R-FCN论文翻译——中英文对照

    千次阅读 2018-01-29 18:47:56
    文章作者:Tyan ...声明:作者翻译论文仅为学习,如有侵权请联系作者删除博文,谢谢! 翻译论文汇总:https://github.com/SnailTyan/deep-learning-papers-translation R-FCN: Object Detection via Regi...
  • Faster R-CNN论文翻译——中文版

    千次阅读 2018-01-22 18:41:45
    文章作者:Tyan ...声明:作者翻译论文仅为学习,如有侵权请联系作者删除博文,谢谢! 翻译论文汇总:https://github.com/SnailTyan/deep-learning-papers-translation Faster R-CNN: Towards Real-Time ...
  • SPPNET[15]证明,这种基于候选区域的探测器可以更有效地应用于在单个图像尺度上提取的特征图。最新和更精确的检测方法,如Fast R-CNN[11]和Faster R-CNN[29]提倡使用单尺度计算的特征,因为它在准确性和速度之间提供...
  • 文章作者:Tyan ...声明:作者翻译论文仅为学习,如有侵权请联系作者删除博文,谢谢! 翻译论文汇总:https://github.com/SnailTyan/deep-learning-papers-translation Feature Pyramid Networks for O...
  • Faster R-CNN论文翻译

    千次阅读 2017-11-07 19:15:49
    Faster R-CNN是互怼完了的好基友一起合作出来的巅峰之作,本文翻译的比例比较小,主要因为本paper是前述paper的一个简单改进,方法清晰,想法自然。什么想法?就是把那个一直明明应该换掉却一直被几位大神挤牙膏般地...
  • Faster R-CNN论文翻译——中英文对照

    万次阅读 多人点赞 2018-01-22 18:40:30
    文章作者:Tyan ...声明:作者翻译论文仅为学习,如有侵权请联系作者删除博文,谢谢! 翻译论文汇总:https://github.com/SnailTyan/deep-learning-papers-translation Faster R-CNN: Towards Real-Time ...
  • 大家好,我是小P,今天给大家带来得是经典目标检测文章SPP-Net的翻译和注释,希望大家喜欢和指点。。此外,对“对象检测”和”语义分割“感兴趣的小伙伴,欢迎加入对象检测群813221712讨论和交流,进群请看群公告! ...
  • Fast-RCNN论文翻译

    万次阅读 多人点赞 2018-03-14 08:57:49
    Fast-RCNN论文地址:Fast-RCNNFast-RCNN项目地址:https://github.com/rbgirshick/fast-rcnn摘要本文提出了一种快速的基于区域的卷积网络方法(fast R-CNN)用于目标检测。Fast R-CNN建立在以前使用的深卷积网络有效...
  • 文章作者:Tyan ...声明:作者翻译论文仅为学习,如有侵权请联系作者删除博文,谢谢! 翻译论文汇总:https://github.com/SnailTyan/deep-learning-papers-translation Feature Pyramid Networks for Obj...
  • 论文链接: https://arxiv.org/abs/1612.03144 Feature Pyramid Networks for Object Detection 0.摘要 特征金字塔是识别系统中用于检测不同尺度目标的基本组成部分。但是最近的深度学习对象检测器开始放弃使用...
  • 论文翻译与理解:Fast R-CNN

    千次阅读 2019-04-09 15:58:06
    论文中说使用L1损失对离群点更加鲁棒,与R-CNN和SPP使用的L2相比,相对不敏感,不易出现梯度爆炸的情况。 小批量采样。 在微调阶段,每次SGD训练有N=2张图像组成。我们使用从每张采样64个RoI,共128个RoI的mini...
  • fast-rcnn论文翻译

    万次阅读 2017-01-14 09:27:16
    由于本人英语能力有限,翻译得不起当的地方请各位指教。谢谢!
  • SPPNet网络模型

    2019-12-25 21:20:19
    上篇文章详细阐述了R-CNN网络模型,本篇本章本来准备阐述Fast-RCNN模型的,介于SPP-Net模型有许多技巧性的技术可以在不同模型上使用,所以本篇详细分析下SPP-Net ... SPPNet论文翻译:https://blog.csdn.net/mengduan...
  • RCNN学习笔记(7):Faster R-CNN 英文论文翻译笔记

    万次阅读 多人点赞 2016-04-27 11:51:40
    推测目标位置,像SPPnet[7]和Fast R-CNN[5]这些网络已经减少了检测网络的运行时间,这时计算区域建议就成了瓶颈问题。本文中,我们介绍一种 区域建议网络(Region Proposal Network, RPN) ,它和检测网络共享全图...
  • Fast R-CNN 论文翻译

    2020-04-12 13:44:32
    1.1 R-CNN与SPPnet: 基于区域的卷积网络方法(R-CNN)通过使用深度卷积网络来分类目标候选框,获得了很高的目标检测精度。然而,R-CNN具有显着的缺点: 1.训练过程是多阶段流水线:①R-CNN首先使用目标候选框对...
  • 目标检测之SSD:Single Shot MultiBoxDetector详论文翻译

    千次阅读 多人点赞 2018-04-10 21:51:46
    紫色标记是指org预印版论文与正式出版的区别,括号内的是与正式版不同的预印版内容,未用括号的紫色字体是正式版没有而只是预印版中的内容;文中的“^阿拉伯数字”代表脚注的标号,译文不列出,读者可以自行下载论文...
  • SPPNet论文翻译 《Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition》 Kaiming He 摘要: 当前深度卷积神经网络(CNNs)都需要输入的图像尺寸固定(比如224×224)。...
  • R-CNN:... SPPNet:http://www.dengfanxin.cn/?p=403 Fast R-CNN:https://alvinzhu.xyz/2017/10/10/fast-r-cnn/ Faster R-CNN:https://alvinzhu.xyz/2017/10/12/faster-r-cnn/...
  • 论文的一个早先版本发布在ECCV2014上。基于这个工作,我们参加了ILSVRC 2014 [26],在38个团队中,取得了物体检测第2名和图像分类第3名的成绩。针对ILSVRC 2014我们也做了很多修改。我们将展示SPP-nets可以将更深...
  • R-FCN论文翻译——中文版

    千次阅读 2018-01-29 18:48:44
    文章作者:Tyan ...声明:作者翻译论文仅为学习,如有侵权请联系作者删除博文,谢谢! 翻译论文汇总:https://github.com/SnailTyan/deep-learning-papers-translation R-FCN: Object Detection via Regi...
  • 目录FAST-RCNN论文翻译Abstract1.Introduction1.1. R−CNNR-CNNR−CNN and SPPnetSPPnetSPPnet1.2. Contributions2.Fast R-CNN architecture and training2.1. The RoIRoIRoI pooling layer FAST-RCNN论文翻译 注:...
  • SSD: Single Shot MultiBox Detector 作者及其团队等信息如下: 摘要    &...我们的方法命名为SSD,将边界框的

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 392
精华内容 156
关键字:

sppnet论文翻译