目标检测系列(二)——R-CNN译文

Rich feature hierarchies for accurate object detection and semantic segmentation 2014

摘要

典型的PASCAL VOC 数据集上测试的目标检测性能的提升很微小,目前表现最好的方法是集成系统将多级底层特征和高层语义特征结合起来的方法。本文提出了一种简单且可扩展的检测方法且对2012年获得的最好的mPA指标的提升超过了30%,达到了53.3%,本文的方法有两点很关键:(1)可以将大容量的CNNs应用于自上而下的候选区域以便定位和分割对象,(2)当编辑训练数据稀缺时,监督辅助任务的预训练,之后进行特定领域的微调,可以显著提升性能。因为将候选区域和CNN结合起来故称为R-CNN(Region with CNN features)。

1. 引言

在过去的十多年中,SIFT和HOG在不同类别视觉识别任务中都取得了优秀的效果,但从2010~2012年,该两种方法及其集成方法对于典型的PASCAL VOC 数据集的目标检测任务仅仅带来的很小幅度的效果提升。

SIFT和HOG都是统计分块方向直方图特征,我们可以粗略地与 v1中的复杂细胞相关联比较,v1是灵长类动物视觉通路中的第一个皮层区域,但其识别的过程肯定发生在后面的几个阶段,这也表明可能存在对于识别过程更具信息性的用于计算特征的多级过程。

CNNs在上世纪90年代的时候应用很广泛,但因为SVM的兴起而逐渐被在多数领域被替代,2012年Krizhevsky等人提出的AlexNet在ILSVRC比赛中获得了冠军,并超越第二名10%以上,使得业界对CNN重燃希望,该网络是在包含120万有标记的图像训练所得,利用relu激活函数和dropout正则化方法。CNN取得了如此好的图像分类效果之后,人们开始探索如何利用其在PASCAL VOC上取得目标检测问题的好的效果。

此处我们将图像分类和目标检测联系起来进行分析,CNN可以显著提升在PASCAL VOC 数据集上的目标检测准确率,相比于其他简单的类似于利用HOG特征,本文聚焦于两个主要问题来分析:利用深度网络来进行目标定位,仅使用少量带注释的检测数据来训练高容量模型。

与图像分类不同的是,检测需要定位图像的所有目标,一种方法是将定位看成一个回归问题,然而有人证明了该方法在实际中并没有很好的效果,另一种方法是建立滑窗来检测目标。CNN在利用这两种方法在人脸和行人方面的检测就是主要利用这两种方法,为了保留高频分辨率的信息,CNNs一般只用卷积和池化层的叠加,然而本文的网络有五个卷积层,有非常大的感受域(195195像素)和步长(3232像素),这使得滑动窗口内的精确定位更加困难。

因此,我们利用“区域识别”的方法来解决CNN难以定位的问题,该方法在目标检测和语义分割方面都取得了较好的成绩。本文方法对于输入图像会产生大约2000个独立类别候选区域,利用CNN在每个候选区域产生相同长度的特征向量,之后用线性SVM对每个区域进行特定类别的划分,本文利用简单的方法来使得输入CNN的每个候选区域无论形状如何,特征都为固定的大小。图1展示了本文方法的概况。

在这里插入图片描述
本文将R-CNN和近些年来提出的 OverFeat 检测方法在包含200个类别的 ILSVRC2013 检测数据集上进行了详细的比较,OverFeat数据集利用滑窗CNN来检测,并且截止本文之前取得了 ILSVRC2013 最好的检测效果。本文的方法获得的mPA指数为31.4%,高于OverFeat方法所获得的24.3%。

检测过程的另一个难点在于有标签的数据量稀缺,不足以进行CNN的训练过程。通常用于解决该问题的方法是利用无监督的预训练,之后利用有监督的微调。本文的第二个贡献点在于使用利用大容量有标签的辅助训练集 ILSVRC 来进行有监督的预训练,之后利用小数据集 PASCAL 进行特定区域的微调,这是一种很有效的解决数据稀缺问题的方法。本文的实验中,微调的过程对mPA指数提升了约8%,进行微调之后,本文构建的网络的mPA达到了54%,高于基于HOG变换的目标检测所获得的33%,

本文的方法同样是很高效的,一个特定类的计算量相当于小矩阵向量乘积和贪婪非极大值抑制,此计算属性遵循所有类别共享的特征。

理解本文模型的劣势有利于提升其性能,所以我们和Hoiem等人的结果进行了对比分析,作为该分析的直接结果,我们证明简单的边界框回归方法可以显著减少定位误差是有误的模式。

在阐述具体技术细节之前,我们注意到由于R-CNN是基于区域而产生的,所以可以很自然的将其扩展到语义分割上,在很少的修改之后,我们同样达到了在PASCAL VOC 的分割任务上的有竞争力的效果,平均分割准确率为47.9%。

2. 利用R-CNN进行目标检测

本文的目标检测网络由三个部分组成,第一部分生成基于类别的候选区域,这些候选区域定义了候选检测器可用的候选检测集,第二部分是用于抽取每个区域的固定长度特征向量的深度卷积神经网络,第三部分是一系列同类型的线性SVM分类器。本节将介绍每个部分的设计和主要思想,介绍测试过程和参数学习过程,并呈现最终检测结果。
在这里插入图片描述

2.1 模型设计

候选区域: 目前已经有很多论文针对于产生不基于类别标签的候选区域的方法有了很多的介绍,包括对象性(objectness)、选择性搜索、不基于类别标签的物体候选区、受限参最小剪切、多尺度组合分组等。虽然R-CNN是与特定区域候选方法无关,但我们利用选择性搜索来实现与已有结果的比较。

特征抽取: 本文从每个候选区域中抽取4096维的特征向量,特征的计算是通过前向传播平均减去227*227 RGB图像后再级联5个卷积层和2个全连接层来得到的,文献[24] [25]更详细的介绍了框架结构。

为了计算候选区域的特征,我们必须首先将区域内的图像数据转换为能够和CNN兼容的形式(本文的网络需要输入图像大小固定为227*227像素),在任意形状的候选区域的许多变换中,我们选择最简单的。无论候选区域的大小和纵横比如何,我们都将其周围边框中的所有像素转化为所需要的大小。在像素数量大小转化之前,首先将密封的边界框进行扩张,使得转化后的大小为p像素,本文p=16,图2展示了随机采样的过程。
在这里插入图片描述

2.2 测试过程

测试过程中,我们在测试集上使用选择性搜索来抽取大约2000个候选区域。我们对每个候选区域进行大小转化,并将其前向传播至CNN来抽取特征,之后对于每个类,我们使用利用该类数据训练得到的SVM对每个提取的特征向量进行评分。给定图像中的所有已有得分的区域,应用贪婪非极大值抑制(对每个类别都独立),拒绝掉高于学习到的IoU的区域。

运行时间分析: 两个特性会使得检测过程较为高效,其一,所有类别的CNN参数共享,其二,由CNN所抽取到的特征向量用于最终分类步骤的维数较低。例如带有编码的空域金字塔。

参数共享的结果是用于计算候选区域和特征的时间分摊到了所有的类别中(GPU上是13s/image,CPU是53s/image),一个特定类别的计算是特征与SVM权重进行点积并非极大值抑制。事实上,一个图像的所有点积过程可以转化为一矩阵和矩阵之间的乘积,只需一次便可完成。特征矩阵是20004096,SVM权重矩阵为4096N,其中N是类别个数。

该分析说明R-CNN可以扩展为数千个对象类,而无需使用类似于哈希等技术。假如有100k个类别,最终的矩阵相乘的任务在现代多核CPU机器上仅仅需要10s便可完成。但效率的优势并不是完全源于候选区域和共享特征。UVA系统就是由于其高维特征所以慢两个数量级,且需要134GB的内存来存储100k线性预测器,而我们的低维特征仅需1.5GB。

R-CNN和最近的利用DPMs和hashing方法所获得的结果同样进行了比较,该方法当引入10k个错误标记的类别时,每张图像的运行时间为5min,在VOC 2007 上获得了16%的准确率。本文的方法,10k个检测器在CPU上运行约需要1min。

2.3 训练过程

有监督的预训练: 我们利用分类大数据集 ILSVRC2012 进行CNN的预训练,仅仅使用图像层面的标签注释,因为该数据集没有边界框的数据。预训练使用开源Caffe程序进行。简而言之,本文的CNN近似于Alexnet网络的性能,且获得了高出Alexnet 2.2 个百分点的top-1错误率,这种差异是由于本文训练过程的简化而造成的。

特定领域的微调: 为了使本文的网络适用于特定的新检测任务和新的有候选窗的领域,我们使用SGD来调节CNN的参数,除了利用随机初始化的(N+1)种分类层(N为目标类别,+1是由于背景)代替CNN的ImageNet特定1000种分类层之外,CNN的结构没有改变。对于VOC,N=20,对于ILSVRC2013,N=200。我们对所有的候选区域的IoU>=0.5的设定为正,对于其余的设定为负。SGD的初始学习率为0.001(是初始预训练的1/10),这就允许在不破坏初始化的情况下可以进行微调。对于SGD的迭代步骤,我们一致设定32个正值窗,96个背景窗,批大小为128。我们倾向于正窗口的抽样,因为与背景相比,它们更有价值,也更稀少。

目标类别分类: 假如我们要训练一个针对于汽车的二分类器,显而易见的是,包含汽车的图像区域应该被定义为正例,背景区域应该被定义为负例,但难点在于如何对于有汽车目标重合地方的如何标记。对于该问题,我们用IoU重叠率阈值来解决,低于阈值的区域设定为负,阈值通过网格搜索,在验证集中测试从{0,0.1,…,0.5}的效果,选择最好的作为阈值,且该过程需要严谨的实验过程。当设定为0.5时,mPA会降低5points,当设定为0的时候,mPA会降低4points,正例被定义为每类的真实(GT)边界框。

当特征抽取完成,我们将对于每个类都进行SVM分类器的学习,由于训练集相对于内存而言很大,所以作者用standard hard negative mining method。

2.4 PASCAL VOC 2010-2012 的实验结果

2.5 ILSVRC2013 的检测结果

3. 可视化,简化和错误模式

3.1 可视化学习的功能

第一层滤波器可以很直观的可视化且易于理解,能够捕捉到边缘方向和颜色信息,但是想要理解后面的层所学习的高级信息就略有困难了。Zeiler和Fergus等人在文献[42]在提出了一种可视化解卷积的方法,本文提出了一种简单的无参数的方法来直接展示出网络所学习到的东西。

主要思想是挑选网络中的特殊神经元,并将其当做一个单独的对象检测器来使用。我们计算了大量候选区域(约1000万)的神经元激活,进行激活后的从高到低排序,并执行非极大值抑制,之后显示得分最高的区域。本文方式通过准确显示它所触发的输入,让所选单元“说出自己”,我们避免求平均值以便查看不同视觉模式并深入了解由单元计算的不变性。

我们从pool5层开始可视化神经元,该层是对网络中第五层和最后一层卷积层的输出进行最大池化的层,pool5的特征图是66256=9216维。忽略掉边界的影响,此处输入为227227且每个pool5的神经元都有195195的感受域,中心pool5神经元有近似全局视野,边缘处的神经元视野较小。

图4中的每一行展示了pool5一个神经元激活后排名前16的图像,并且在VOC2017训练集上进行了微调,256个都具有特定功能的神经元中有6个是可视的,这些将用来展示网络所学到的东西,第二行的神经元主要检测狗狗的脸和点阵,对应于第三行的单元是红色斑点检测器,同时也有检测人脸和许多不同模式特点(文本和三角窗等)的检测器,该网络结构学习特征的过程包括少量的类别特征和形状、纹理、颜色、材质等特征的统计分布情况,之后和fc6层进行充分的连接整合,使得建立一个能够抽取大容量丰富特征的网络。

在这里插入图片描述

3.2 模型简化学习

无微调的层间级联的性能: 为了了解哪一层对于检测性能有着至关重要的作用,此处将分析CNN最后三层在VOC2007数据集上的结果,pool5层已经在3.1节中有了介绍,最后两层将在下面进行介绍。fc6是和pool5进行全连接的层,为了计算特征,pool5层的特征图(重排列为9216维特征)和2096*9216维的权重矩阵进行矩阵相乘,之后加上偏置向量,之后施加relu激活函数获得最终向量。

fc7层是网络的最后一层,通过将f6层的输出和4096*4096维的权重向量进行矩阵相乘,之后和偏置矩阵相加并通过relu激活函数即可获得最终结果。

下面我们将展示未进行微调的网络在PASCAL 上的结果,也就是用于测试的所有CNN参数仅仅在 ILSVRC 2012 上进行预训练。从分析结果可以看出,fc7层特征产生的错误多于fc6层(表2的1-3行)。这就意味着29%或者说约16.8千万的CNN参数可以被移除且不会导致mPA下降。更让人吃惊的是同时移除fc7和fc6的结果能获得更好的结果,pool5的特征只需要CNN参数总量的6%。CNN特征的表达力主要源于卷积层而不是耗费大量参数的全连接层,这就表明了对于任意大小的输入图像,计算所得的大量的特征图只在卷积层起作用。

有微调的层间级联的性能: 此处我们将介绍有微调过程的CNN网络在 VOC 2007 数据集上的效果。该步骤所带来的效果提升是显而易见的(表2中的4-6行)。微调过程将mPA参数提升了8个百分点,达到了54.2%。fc6、fc7的微调过程所带来的性能提升明显大于pool5中使用微调的结果,这点表明从ImageNet中学到的pool5的特征是更加具有泛化性的,并且大部分改进都是从学习特定领域的非线性分类器获得的。
在这里插入图片描述
和近期的特征学习方法比较: 与本文方法类似的学习特征的方法同样在PASCAL VOC 检测数据集上进行了测试,我们着重看看基于可变形模型的两种最新方法,同时为了进行更加完善的对比,我们也引入了基于标准HOG的DPM[20]所得到的结果。

DPM类型的第一种特征学习方法——DPM ST[28],利用“草图标记”概率的直方图增强HOG特征,直观地,草图标记是通过图像块中心的轮廓紧密的分布,通过随机森林在每个像素处计算草图标记概率,该森林经过训练以将35×35像素斑块分类为150个草图标记或背景之一。

第二种方法是DPM HSC[31],该方法将HOG拥稀疏编码直方图代替(Histogram of Sparse Codes,HSC),为了计算HSC,每个像素点的稀疏编码激活过程都是利用学习到的字典获得的。

所有的R-CNN变体都是从这三种DPM基准中衍生的,包括特征的学习过程。和最新的仅仅利用HOG特征的DPM作比较,本文的mPA比其高约20个百分点,54.2% vs. 33.7%。HOG和草图标记的结合比单独使用HOG方法高2.5个百分点,获得mPA为29.1%,使用HSC的方法比单独使用HOG方法高4个百分点,获得mPA为34.3%。

3.3 网络结构

本文网络结构是借鉴AlexNet的结构,且我们发现网络结构对R-CNN检测效果的影响很大,表3中展示了利用Simonyan and Zisserman[43] 所建立的16层CNN网络在VOC 2007上进行测试的结果。该网络是在ILSVRC 2014分类任务上表现最好的网络结构,由13层3*3大小的卷积核进行特征提取的卷积层、5层最大池化层及3层全连接层组成的结构,我们称OxfordNet为“O-Net”,称TorontoNet为“T-Net”。

3.4 检测错误分析

我们用Hoiem等人[23]建立的检测准确率分析工具对我们方法中易产生错误的点进行分析,这样有助于分析微调是如何带来效果的提升的并分析本文的方法和DMP方法的错误类型。图5和图6中有分析。

3.5 边界框的回归计算

基于错误分析,我们应用一种简单的方法来减少定位的错误,参考DPM中所应用的边界框回归模式,我们训练一个线性回归模型来预测一个新的检测窗,用于搜索pool5的特征中的选择性候选区域。具体细节在附录C中,结果是表1、表2和图5,结果表明该简单的方法修复了大量错误定位的检测,对mPA提升了约3~4个百分点。

3.6 定性结果分析

图8和图9展示了在ILSVRC 2013 上的定性分析。每幅图都是从 val2 (验证集)数据集中随机采样而来的,且所有的检测器得到的检测结果的置信度都大于0.5。图10和图11对这些结果进行了定量的分析,我们选择这些图像的原因是每幅都包含有趣且令人惊喜的结果。

4. ILSVRC 2013 数据集检测结果分析

第二章中呈现了ILSVRC 2013数据集的检测结果,该数据集比 PASCAL VOC 的种类更繁杂,需要选择如何应用它,因为这些结论尤为重要,所以在本节我们将分析这些结果。

4.1 数据集概览

ILSVRC2013 检测数据集被分为三部分:训练集(395,918)、验证集(20,121)和测试集(40,152),括号中表示每个数据集中样本的个数。

验证集和测试集的图像数据分布是基本一致的,这些图像的场景类型和复杂度(目标个数、姿态变化、背景类型等)基本都是和PASCAL VOC 类似的。验证集和测试集的切分是带有详细的注释的,这也意味着200个类的每幅图中的所有对象都被用边界框进行了标记。训练集是从ILSVRC2013分类任务中抽取的,这些图像有更大的变化复杂度,并且偏向于选择具有单个中心对象的图像。不同于验证集和测试集,训练集数据由于数量庞大,故没有详尽的注释。并非每个训练数据样本都有详尽的标注,除了这些图像外,每个类还有一组额外的负例,手动检查负例以验证它们不包含其关联类的任何实例,负例数据集将不被使用。

该数据集划分的过程也体现了训练R-CNN的不同数据集的数量比例,训练的图像不能用难以分辨的负样本,因为该类样本无注释。负样本来源于何处?同时,训练数据与验证集和测试集的分布是不同的,训练图像是否应该被一直用?虽然我们还未彻底评估大量的选择,但我们根据之前的经验提出了看似最明显的方法。

我们的通用策略大部分严重依赖于验证集并利用了一些训练图像作为整理的辅助源。使用验证集的原因是为了训练集和测试集的效果更好,我们将验证集分为val1和val2,因为一些类别在验证集中的样本个数很少(最少的类有31个样本,最多的有100个样本),所以不同类间的样本平衡很重要。为了实现类间样本平衡,产量了大量的候选集划分方法,本文选择了利用最小的最大相对类不平衡的方法^2。每种候选的数据集区分方法都是将类别数量作为特征来进行区分,之后进行随机定位选择来提升划分的类间平衡性。此处应用的划分方法有11%的最大相对不平衡和4%的中值相对不平衡。

4.2 候选区域

我们应用同样的候选区域来进行PASCAL 的检测,选择性搜索[39]以其“最快的模式”在val1和val2及测试集中运行。值得一提的是,选择性搜索是不具有尺度缩放性的,故所选择的候选区域依赖于图像的分辨率。ILSVRC的图像大小是有很大的不同的,故在进行候选区域搜索之前,我们将所有图像都规范化到固定的宽度(500 像素)。验证集中,选择性搜索得到的2403个候选区域和真实候选框比较获得的的平均召回率为91.6%(IoU设定为0.5),该召回率明显比PASCAL的98%低,该结果表明在候选区域选择上还有很大的提升空间。

4.3 训练数据

假设给你一堆包含一个或多个人物的图片,并且每一个人都给你一个bounding box做标记,如果要训练一个分类器去做分类的话,你的分类器需要既包含正训练样本(人)和负训练样本(背景)。
你通过观察bounding box去创建一个有用的正训练样本,那么怎么做才能创建一个有用的负训练样本呢?
一个很好的方式就是去在开始时随机创建一堆的bounding box候选框,并且不能与你的正样本有任何的重叠,把这些未与正样本重叠的新的bounding box作为你的负样本。
好了,这样你的正负样本都有了,可以训练可以用的分类器了,你用滑动窗口在你的训练图片上进行运行,但是你会发现你的分类器并不是很好用,分类的效果并不是很好,因为它会抛出一堆的错误的正样本(当检测到人时实际上却并不是实际的人),这就问题来了,你训练了一个用于分类的分类器,然而这个分类器却并不能达到你想要的效果,那么应该怎么办呢?
这个时候就要用的hard negative了,hard negative就是当你得到错误的检测patch时,会明确的从这个patch中创建一个负样本,并把这个负样本添加到你的训练集中去。当你重新训练你的分类器后,分类器会表现的更好,并且不会像之前那样产生多的错误的正样本。

为了训练网络,我们建立了一系列的图像和边框,其中包括来自val1的所有选择性搜索框和真实框以及来自训练集的每类的N个真实框(如果某个类的选择框比N少,则选择所有的框)。我们称该数据集和边框为 val1+trainN。

训练数据在R-CNN中的三个过程中需要用到:1)CNN微调,2)检测器的SVM训练,3)边界框回归训练。CNN微调是在val1+trainN上进行了50000次SGD迭代,并且参数设置和PASCAL完全相同。微调过程在NVIDIA Tesla K20 上利用Caffe花费13个小时完成。SVM训练,val1+trainN中的所有真实边界框在各自的类中都被当做正例。来自val1的5000个图像的随机选择子集被作为难以区分的负样本。最初的实验表明,从所有val1中找负样本而不是一个包含5000个图像的子集,会导致mPA下降0.5个百分点,同时将SVM的训练时间缩短一半。没有从训练集中抽取负样本是因为训练集中包含无标签的数据,其余的已确认为负样本的图像未被使用,边界框回归是在val1中训练的。

4.4 验证和预测

在将结果送审之前,我们将使用上述训练数据在val2上验证数据的选择、微调的效果和边界框回归。系统的所有参数(如SVM 的C,区域框的选择步长,NMS阈值,边界框回归超参数等)都和PASCAL中使用的完全相同。毋庸置疑的是,对于ILSVRC来说,许多超参数的选择并非最优的,但是我们的目的是在没有大量数据集调整的情况下载ILSVRC上获得初步的R-CNN。

4.5 简化学习

表4呈现了简化学习在不同训练数据、微调过程、边界框回归上的影响。首先可以看到的是,从val2中获得的mPA和测试集上获得的mPA非常相近,这说明val2的mPA参数对测试集有很好的指示作用。第一个结果20.9%,是R-CNN利用ILSVRC分类数据集预训练的CNN(无微调),并且可以访问val1中少量训练数据。将训练集扩展为val1+trainN可以将结果提升至24.1%,且当N从500扩展到1000时,没有本质的差别。利用从val1采样出的样本进行CNN微调可以将结果提升至26.5%,然而这就由于用于训练的正例太少而发生过拟合,将微调的数据集扩展至val1+train1k(train1k表示从训练集的每个类中选择1000个正例),mPA结果提升至了29.7%。边界框回归提升结果至31.0%,该方法是在PASCAL数据集中所有方法中对效果提升较少。

4.6 与OverFeat的关系

R-CNN和OverFeat有着奇妙的关系:OverFeat可以被看成R-CNN的特殊形式。假如利用多尺度金字塔的方形区域代替选择性搜索候选区域并且将每个类别的边界框回归改为单个的边界框回归,那么两个系统就是一样的(当然还有一些潜在的不同,CNN检测微调,使用SVM等等)。值得注意的是,OverFeat比R-CNN的速度更快,大约为其9倍,文献[34]中介绍到其提取每幅图像的特征仅需2s。该快速提取特征的功能源于OverFeat的滑窗是不基于图像层次来确定包围框的,所以重叠的框可以共享计算结果,通过在任意大小的输入数据上以卷积的方式运行整个网络来实现共享,对R-CNN的加速科技借鉴该种方法。

5. 语义分割

区域分类是解决语义分割的一种方法,可以允许我们应用R-CNN来解决PASCAL VOC 分割上的挑战。为了将其结果和最近的有代表性的语义分割系统(O2P “second-order pooling”)[34]进行比较,我们用[34]的开源框架。O2P利用CPMC来对每幅图产生150个候选区域并且估计每个区域的得分,对于每个类,利用支持向量回归(SVR)。该方法取得优秀效果的原因在于CPMC区域是统计了得分的,并且进行了多级特征的二阶池化,同时可以注意到Farabet等人[16]最近给出了一些将CNN当做多尺度的像素级分类器的有标记的处理复杂场景数据集的好的结果。

根据[2,4]来扩展PASCAL分割训练集,使得其包含更多的注释,规划决策和超参数在VOC 2011验证集上进行了交叉验证,最终的结果只评估了一次。

用于分割的CNN特征: 我们估计了三种策略来计算CPMC区域上的特征,所有的方法都是从一个完整包围227*227区域的方形窗来开始的,第一种方法(full)忽略了区域的形状并直接计算出了窗内的CNN特征。然鹅,这类特征忽略了非矩形的区域。两个边界框可能非常相似但仅有极少的重叠,因此,第二种方法(fg)仅仅利用区域的前景上计算CNN的特征,利用输入的均值代替背景,所以背景区域在做差之后值为0,。第三章策略(full+fg)简单的级联了full和fg特征,并且用实验验证了它们的互补性。

在VOC 2011上的结果: 表5给出了本文方法在VOC2011上的效果和O2P方法效果的对比,在每个特征的计算中,fc6层总是优于fc7层,以下讨论fc6的特征。fg特征较优于full特征,这表明覆盖区域的形状提供了较强的信号,与视觉更匹配。然而,full+fg的平均准确率达到了47.9%,我们的结果有4.2%的优势,表明即使给出了fg功能,完整特征提供的上下文也非常有用,注意,我们训练20个SVRs的full+fg特征在单个芯片的机器上需要花费一个小时来进行训练,而在O2P上需要训练10个小时以上。
在这里插入图片描述
表6中展示了在VOC 2011测试集上的结果,将我们的最好的结果fc6(full+fg)和两个较好的基准进行了比较,本文的方法达到了21个类中的11个最好的分割准确率。最好的分割准确率为47.9%,是通过类间平均获得的。通过微调可以获得更好的效果。

6. 结论

近年来,目标检测的效果提升有所停滞,取得最优效果的系统是复杂的多级底层图像特征和高层语义特征的集成方法,本文提出的简单且可扩展的目标检测方法在PASCAL VOC 2012 数据集上比目前最好效果提升了约30%。

获得该优秀效果主要源于两方面,其一是为了定位和分割目标,应用了高容量的卷积神经网络自顶向下的进行候选区域搜索。其二是当有标记的训练数据稀缺时的CNN训练模式。我们也验证了有监督的预训练一个网络是很高效的,利用丰富的辅助数据(如图像分类的数据)来预训练,利用目标数据进行微调。据我们推测,“有监督的预训练/特定领域的微调”模式将会是解决目标数据稀缺的一个很高效的方法。

7. 总结

步骤一:训练(或下载)一个分类模型(AlexNet等)
在这里插入图片描述
步骤二:对该模型作微调,将分类数从1000改为20,去掉最后一个全连接层

在这里插入图片描述
步骤三:特征提取

  • 提取图像的所有候选框
  • 对于每个区域,修正区域大小为相同的大小,适合CNN的输入,做一次前向运算,将第五个池化层的输出(就是候选框提取的特征)
    在这里插入图片描述
    步骤四:训练一个SVM训练器(二分类)来判断该候选框物体的类别,每个类别对应一个SVM分类器,判断是否属于该类别,属于就是positive,不属于就是negative

在这里插入图片描述

步骤五:使用回归器精细修正候选框位置,对于每个类,训练一个线性回归模型去判断该框是否表现完美。

在这里插入图片描述

发布了152 篇原创文章 · 获赞 716 · 访问量 69万+

猜你喜欢

转载自blog.csdn.net/jiaoyangwm/article/details/89004066
今日推荐