R-CNN论文翻译

Rich feature hierarchies for accurate object detection and semantic segmentation Tech report (v5)

丰富的特征层次结构,用于精确目标检测和语义分割技术报告v5

摘要

        在典型的PASCAL VOC数据集上测量的对象检测性能在过去几年中已经稳定下来。最好的方法是复杂的系统,通常将多个低级图像特征与高级语境相结合。在本文中,我们提出了一种简单可扩展的检测算法,相对于VOC2012的先前最佳结果,平均精度(mAP)提高了30%以上,达到53.3%的mAP。我们的方法结合了两个关键的改进:(1)可以将大容量卷积神经网络(CNN)应用于自下而上的区域提案,以便定位和分割对象。(2)当标记的训练数据稀缺时,对辅助任务进行训练,然后进行域特定的微调,可以显着提升性能。由于我们将区域提案与CNN相结合,所以我们称之为我们的方法R-CNN:具有CNN特征的区域。我们还将R-CNN与OverFeat进行比较,OverFeat是最近提出的基于类似CNN架构的滑动窗口检测器。我们发现R-CNN在20类的ILSVRC2013检测数据集上大幅超越OverFeat。完整系统的源代码在http://www.cs.berkeley.edu/~rbg/rcnn

目录

1 简介

2 用R-CNN进行目标检测

2.1 模块设计

2.1.1 区域提案

2.1.2 特征提取

2.2 测试

2.2.1 性能分析

2.3 训练

2.3.1 监督预训练

2.3.2 域特定的微调

2.3.3 目标类别分类器

2.4 PASCAL VOC 2010-12上的结果

2.5 ILSVRC2013检测结果

3 可视化,消融和错误模式

3.1 可视化学习到的特征

3.2 消融研究

3.2.1逐层分析性能,没有微调

3.2.2逐层分析性能,微调

3.2.3与近期特征学习方法的比较

3.3 网络架构

3.4检测错误分析

3.5 Bounding-box回归

3.6定性结果

4 ILSVRC2013检测数据集

4.1 数据集概述

4.2 区域提案

4.3 训练数据

4.4 验证和评估

4.5 消融实验

4.6 与OverFeat的关系

5 语义分割

6 结论

附录

A 目标区域提案转换

B 正负样本和softmax

C Bounding-box回归

D 额外的特征可视化

E 每个类别的分割结果

F 跨数据集冗余分析

G文档的更新日志


1 简介

        特征很重要。各种视觉识别任务在过去的十年取得了很大的进步,这取决于SIFT[29]和HOG[7]的使用。但是如果我们观察典型的视觉识别任务的性能,如PASCAL VOC对象检测[15],会发现2010-2012年进展缓慢,仅通过组合不同模型和使用已有方法的变体来获得很小的改进。

        SIFT和HOG是块状方向直方图,一种可以大致与V1中的复合细胞,灵长类动物视觉途径中的第一皮质区域相关联的表示。但是我们也知道识别发生在后续的几个阶段,这表明可能存在层次化,多阶段的计算特征的过程,这些过程对于视觉识别更为有用。

        Fukushima的“神经认知机”[19]是一种受生物学启发的分层和偏移不变的模式识别模型,这只是一个早期的尝试。但是,神经认知机缺乏监督训练算法。卷积神经网络(CNN)是一类扩展神经认知机的模型,建立在Rumelhart等[33]、LeCun等[26]提出的通过反向传播进行的随机梯度下降的基础之上。

        CNN在20世纪90年代有广泛的使用(例如[27]),但是随着支持向量机的兴起,CNN已经逐渐淡出了公众视野。 2012年,Krizhevsky等[25]通过在ImageNet大型视觉识别挑战(ILSVRC)上显示出更高的图像分类准确度,重新唤起了人们对CNN的兴趣[9,10]。他们的成功是通过使用大型CNN训练120万张带标记图像,以及对LeCun的CNN(例如,max(x,0)非线性整流和“Dropout”正规化)的一些改进。

        ImageNet结果的重要性在ILSVRC 2012研讨会期间大有争议。核心问题可以归纳为一下几点:在多大程度上,CNN在ImageNet上的分类结果可以泛化到PASCAL VOC挑战上的目标检测结果?

        我们通过弥合图像分类和对象检测之间的差距来回答这个问题。本文首先提出,与基于更简单的HOG类特征的系统相比,CNN可以显著提高PASCAL VOC的目标检测性能。为了实现这一结果,我们主要关注两个问题:(1)使用深度网络定位目标;(2)只使用少量带标记的检测数据训练高容量模型。

        与图像分类不同,检测需要在图像中定位(可能是许多)目标。一种方法是将定位作为回归问题。然而,Szegedy等人与我们并行的工作[38],表明这种策略在实践中可能不会很好(他们在VOC 2007上的mAP为30.5%,而我们的方法达到了58.5%)。另一种方法是构建一个滑动窗口检测器。 CNN已经以这种方式被使用了至少二十年,通常是在受限物体上,如面部[32,40]和行人[35]。为了保持高空间分辨率,这些CNN通常只有两个卷积和池化层。我们也考虑了采用滑动窗口方法。然而,在我们的网络中,具有五个卷积层的单元在输入图像中具有非常大的接收场(195×195像素)和步长(32×32像素),这使得在滑动窗口内的精确定位成为公开的技术挑战。

        相反,我们通过在“识别使用区域”范式[21]中操作来解决CNN的定位问题,这已经成功实现了目标检测[39]和语义分割[5]。在测试时间,我们的方法为输入图像生成大约2000个类别无关的区域提案,使用CNN从每个提案中提取固定长度的特征向量,然后对每个区域进行类别特定的线性SVM分类。我们使用简单的技术(图像仿射变换)来计算每个区域提案的固定大小的CNN输入,而不管区域的形状。图1概述了我们的方法,并突出显示了一些结果。由于我们的系统将区域提案与CNN相结合,所以我们将方法命名为R-CNN:具有CNN特征的区域。

 【图1:目标检测系统概述。我们的系统(1)输入一张图像;(2)提取约2000个自下而上区域提案;(3)使用大的卷积神经网络(CNN)计算每个提案的特征;然后(4)使用类别特定的线性SVM。 R-CNN在PASCAL VOC 2010中实现了53.7%的平均精度(mAP)。相较之下,[39]使用了相同的区域提案,但是使用了空间金字塔和视像单词方法,达到了35.1%的mAP。主流的可变部件模型为33.4%。在200类的ILSVRC2013检测数据集上,R-CNN的mAP为31.4%,超过OverFeat很多[34],OverFeat先前最佳结果为24.3%。】

        在本文的更新版本中,我们通过在200类ILSVRC2013检测数据集上运行R-CNN,提供了R-CNN和最近提出的OverFeat[18]检测系统的比较。 OverFeat使用滑动窗口CNN进行检测,是目前在ILSVRC2013检测中性能最好的方法。我们的R-CNN明显优于OverFeat,mAP为31.4%,而OverFeat是24.3%。

        检测面临的第二个挑战是带标记的数据很少,目前可用的数量不足以训练大型CNN。这个问题的常规解决方案是使用无监督的预训练,然后进行辅助微调[35]。本文的第二个主要贡献是在大型辅助数据集(ILSVRC)上进行有监督预训练,然后对小数据集(PASCAL)进行域特定的微调,这是在数据稀缺时训练高容量CNN模型的有效范例。在我们的实验中,微调将检测的mAP性能提高了8个百分点。微调后,我们的系统在VOC 2010上实现了54%的mAP,而高度优化的基于HOG的可变部件模型(DPM)为33%[17,20]。Donahue等人同时进行的工作[12]表明可以使用Krizhevsky的CNN(无需微调)作为黑盒特征提取器,在多个识别任务(包括场景分类,细粒度子分类和域适配)中表现出色。

        我们的系统也很有效率。唯一的类特定计算是相当小的矩阵向量乘积和贪心的非极大值抑制。这种计算属性来自于所有样本共享的特征,并且比以前使用的区域特征维度还低两个数量级(参见[39])。

        了解我们的方法的失败模式对于改进它也是至关重要的,因此我们给出了由Hoiem等人22提出的的检测分析工具的结果。作为这一分析的中间后果,我们证明了一种简单的bounding-box回归方法可以显著地减少定位误差,这是主要的误差模式。

        在发掘技术细节之前,我们注意到,由于R-CNN在区域上运行,将其扩展到语义分割的任务是很自然的。经过少量的修改,我们也在PASCAL VOC分割任务中取得了有竞争力的成果,VOC 2011测试集的平均分割精度为47.9%。

2 用R-CNN进行目标检测

        我们的目标检测系统由三个模块组成。第一个生成类别无关区域提案。这些提案定义了可用于我们的检测器的候选检测集。第二个模块是从每个区域提取固定长度特征向量的大型卷积神经网络。第三个模块是一组特定类别的线性SVM。在本节中,我们介绍每个模块的设计思路,描述其测试时使用情况,详细介绍其参数的学习方式,并给出在PASCAL VOC 2010-12和ILSVRC2013上的检测结果。

2.1 模块设计

2.1.1 区域提案

        各种最近的论文提供了生成类别无关区域提案的方法。例子包括:对象性[1],选择性搜索[39],类别无关对象提议[14],约束参数最小化(CPMC)[5],多尺度组合分组[3]和Cireşan等提出的[6],通过将CNN应用于特定间隔的方块来检测有丝分裂细胞,这是区域提案的特殊情况。具体的区域提案方法对于R-CNN是透明的,但是我们使用选择性搜索以便于与先前检测工作的对照比较(例如[39][41])。

2.1.2 特征提取

        我们使用Krizhevsky等人[25]提出的CNN的Caffe[24]实现,从每个区域提案中提取4096维特征向量。将减去像素平均值的227×227分辨率的RGB图像通过五个卷积层和两个全连接层向前传播来计算特征。可以参考[24,25]以获得更多的网络架构细节。

        为了计算区域提案的特征,我们必须首先将该区域中的图像数据转换为与CNN兼容的格式(其架构需要固定227×227像素大小的输入)。在许多可能的针对任意形状区域的变换中,我们选择最简单的。不管候选区域的大小或横纵比如何,我们将整个区域不保持横纵比缩放到所需的大小。在缩放之前,我们扩大了被缩放的区域,使得在缩放后,原始区域边界到现有区域边界宽度为p像素(我们使用p=16)。图2展示了缩放训练区域的随机抽样。其它的缩放方案在附录A中讨论。

图2:缩放后的VOC 2007训练样本

2.2 测试

        在测试时,我们对测试图像进行选择性搜索,以提取大约2000个区域提案(我们在所有实验中使用选择性搜索的“快速模式”)。然后缩放每个区域,并通过CNN向前传播,以计算特征。最后,对于每个类,我们使用针对该类训练的SVM来对每个提取的特征向量进行评分。给定图像中的所有区域的得分,我们应用贪婪非极大值抑制(每个类别独立进行),在训练时学习一个阈值,如果其与得分较高的区域的重叠部分(IoU)高于这个阈值,则丢弃这个区域。

2.2.1 性能分析

        两种性质使检测效率高。首先,所有CNN参数都在所有类别中共享。其次,与其他常见方法比较,由CNN计算出的特征向量是低维度的,例如具有空间金字塔和视像单词的方法。UVA检测系统[39]中使用的特征比我们(维度,360k对比4k)大两个数量级。

        这种共享的结果是计算区域建议和特征(GPU上的13秒/图像或CPU上的53秒/图像)的时间在所有类别上进行摊销。唯一的类特定计算是特征与SVM权重和非极大值抑制之间的点积。在实践中,图像的所有点积运算都被整合为单个矩阵与矩阵的相乘。特征矩阵通常为2000×4096,SVM权重矩阵为4096×N,其中N为类别数。

        分析表明,R-CNN可以扩展到数千个类,而不需要使用如散列这样的技术。即使有10万个类,在现代多核CPU上产生的矩阵乘法只需10秒。这种效率不仅仅是使用区域提案和共享特征的结果。由于其高维度特征,UVA系统的速度将会降低两个数量级,并且需要134GB的内存来存储10万个线性预测器。而对于低维度特征而言,仅需要1.5GB内存。

        将R-CNN与Dean等人最近的工作对比也是有趣的。使用DPM和散列的可扩展检测[8]。在引入1万个干扰类的情况下,每个图像的运行时间为5分钟,其在VOC 2007上的mAP约为16%。通过我们的方法,1万个检测器可以在CPU上运行大约一分钟,而且由于没有逼近,可以使mAP保持在59%(见3.2消融研究)。

2.3 训练

2.3.1 监督预训练

        我们仅通过使用图像级标记来区分性地对大型辅助数据集(ILSVRC2012分类)进行CNN预训练(此数据没有检测框标记)。使用开源的Caffe CNN库进行预训练[24]。简而言之,我们的CNN几乎符合Krizhevsky等人的论文中[25]的表现,在ILSVRC2012分类验证集上获得的top-1错误率高出2.2个百分点。这种差异是由于训练过程中的简化造成的。

2.3.2 域特定的微调

        为了使CNN适应新任务(检测)和新域(缩放的提案窗口),我们仅使用缩放后的区域提案继续进行CNN参数的随机梯度下降(SGD)训练。除了用随机初始化的(N + 1)路分类层(其中N是类别数,加1为背景)替换CNN的ImageNet特有的1000路分类层,CNN架构不变。对于VOC,N = 20,对于ILSVRC2013,N = 200。我们将所有区域提案与检测框真值IoU ≥0.5的区域作为正样本,其余的作为负样本。我们以0.001(初始学习率的1/10)的学习率开始SGD,这样可以在不破坏初始化的情况下进行微调。在每个SGD迭代中,我们统一采样32个正样本(在所有类别中)和96个负样本,以构建大小为128的小批量。将采样的正样本较少是因为它们与背景相比非常罕见。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值