R-CNN论文翻译Rich feature hierarchies for accurate object detection and semantic segmentation

Abstract-摘要

物体检测在2014年前的表现停止不前,当时最好的算法是融合低级图片特征和高级上下文的复杂系统,本文的R-CNN作为简洁和易扩展的检测算法,相比于之前最好的算法mAP提升了30%,达到了53.3%。论文有两条核心观点:
1.为了定位和分割物体,将高能力的卷积网络应用到自下而上的区域建议中;
2.当训练数据较少,使用监督学习的预训练模型作为辅助工作+特定领域的微调模型,可以很大程度提升模型表现。
研究融合了region proposals和CNNs,因而命名为R-CNN。

1 Introduction-简介

主要讲述了物体检测在当时研究进展很小,以及CNN的相关发展,由于文章引用的之前的论文我没有读,所以不赘述了。这个研究表明CNN模型相比于之前的算法模型对于物体检测表现更为出色。研究聚焦两个问题:一是通过深层网络定位物体(object detection);二是通过少部分数据训练一个高能力的模型。
在以往的物体检测研究,有将其视为回归问题,有时建立滑动窗口检测器(sliding-window detector)。之前的滑动窗口应用为了保持高分辨率,通常只有两层卷积加池化层。而本研究的卷积网络有五层卷积。
为了解决上述挑战。研究在定位物体的输入做了改变,采用了区域识别‘recognition using region’。该研究将输入图片生成了大约2000个独立于类别的建议区域(将建议区域通过一种较为简单的方法wrap为相同大小,这种转换导致某些图片变化较大,也为后续研究提供了优化空间),然后从建议区域提取了特定长度的特征向量,接着应用线性SVM分类。这种算法相比于当时最好的算法Overfeat提升很大(24.3% to 31.4%)。
第二个挑战是标记数据较少。该研究解决的方法是使用监督的预训练(supervised pre-training。原文为unsupervised,结合后面应该是监督的预训练)+监督的微调(supervised fine tuning)。该研究中,fine tuning提升了mAP8%。相比于之前high-tuned的HOG模型提升了很大(33% to 54%)。同时研究鼓励读者探索将Krizhevsky的CNN模型作为特征提取器应用到各种识别任务(scene classification, fine-grained, sub-categorization, domain adaptation).
该研究在相比之前的研究是高效的,只在分类计算中有小型矩阵的运算和贪心的非极大值抑制计算(greedy non-maximum suppression)。由于所有分类的特征计算是共享的,所以这个计算部分相比于之前的区域特征计算少了两个数量级。
语义分割。由于R-CNN模型对于区域的操作,该研究将其扩展到语义分割领域,通过小的调整,在PASCAL VOC数据集具有竞争力的表现(47.9%)。
在这里插入图片描述

2 Object detection with C-RNN

物体检测系统包含三个模块。第一个模块生成独立于分类的建议区域;第二个模块从每个区域计算得到特定长度的特征向量;第三个模块是一组基于分类的线性的SVM分类器。

2.1 模型设计

区域建议 region proposals

在这里插入图片描述

feature extraction-特征提取

通过Krizhevsky的CNN模型前向传播计算获取4096个特征值组成的向量,CNN的输入是一个227x227的图片。该研究选择的最简单的图片转化方法,不考虑图片大小和横纵比将提取的区域转为227x227分辨率。在wrap前,展开了紧的bouding box,使得剪切的尺寸中有16个像素临近原始的box。关于这个细节我翻译不好,因为还不了解这个方法,这里我把原文贴上来。(Prior to warping, we dilate the tight bounding box so that at the warped size there are exactly p pixels of warped image context around the original box (we use p = 16).)

2.2 Test-time detection

通过选择搜索获取2000个建议区域,wrap每个建议区域,然后通过CNN前向传播计算特征,通过SVM基于每个分类为特征值打分,获取了所有区域的分值,应用基于类别独立的贪心的非极大值抑制,如果一个区域与一个分数更高的区域iou(intersection-over-union)重叠部分超过一个阈值(threshold)。
Run-time analysis。检测是高效的,一是由于不同类别的CNN参数共享,二是CNN计算的特征向量是低维的,相比于其他算法,如spatial pyamid。特征矩阵2000x4096,SVM权重矩阵是4094xN。
这意味着R-CNN能够区分上千个物体类别而不需要调整其他合适的方法,即使10万个类别,结果矩阵也可以通过一个多核的CPU10秒计算完成。同时,模型系数的存储也只需要1.5G,相比于UVA系统134G提升很大。

2.3 Training

supervised pre-training。应用辅助数据集(ILSVRC2012)进行分类预训练(未使用bounding box)。训练结果检验与Krizhevsky的相似。由于训练过程简化,错误率略高于ILSVRC2012验证集的结果。
Domain-specific fine-tuning。为了是CNN适应转化过的建议窗口(wraped
proposal windows),使用转化过的窗口作为训练数据做fine-tuning,采用SGD(learning rate=0.001)做梯度更新,将CNN的1000个类别转化为N+1(1为背景)。将真值box作为positive,与真值box iou>=0.5和其他情况视为negative。在每个batch中,使用32个positive windows和96个background windows 组成一个大小为128的batch。
object category classfifiers。考虑一个多个分类器检测汽车,区域包含汽车明显是positive;如果是background region明显是negative样本。当一个区域部分包含一个汽车,应该如何判别呢?经过分析表明overlap 阈值应该为0.3,则视为positive,在阈值为0.5时发现,mAP降低了5个百分点。
特征提取后,采用线性SVM分类器。由于训练数据很大无法存到内存,采用标准的hard negative mining方法,该方法会在跑完所有图片后迅速收敛。文章在附录讨论了positive和negative样本的定义为何不同以及采用SVM而不是直接fine-tuningCNN通过softmax获取分类结果。

2.4 Results on PASCAL VOC 2012

关于R-CNN在PASCAL VOC 2012和ILSVRC2013数据集上与其他模型比较的结果如下图
在这里插入图片描述

3 可视化、分化训练和模型误差

3.1 可视化学习的特征

CNN第一层过滤器可以直接可视化并且易于理解,他们捕捉定向边缘和视觉颜色。Zeiler和Fergus呈现了一种反卷积的方法。本研究采用了一种简单的非参数方法直接的表明网络如何工作的。
在这里插入图片描述
方法是把一个单元作为物体检测器来输出特征,输入大量建议区域来计算激活值,将激活值按高到低排列,执行非极大值抑制,显示排在顶端的区域。让被选择的单元‘speak for itself’(为自己代言)通过看它激活了哪个输入。为了了解不同的视觉模式,研究避免了平均计算。
研究激活了第5层的pool,特征图为6x6x256维的向量,忽略边界,输入227x227,每个单元有一个195x195的接受域。通过下图6个单元的pool5 unit可以看出,每个单元捕捉的特征不同,有人物、点阵、文本、房子、镜面等,这些特征通过全连接层组合在一起。靠近中间的单元有几乎全局的视野,靠近边缘的单元有一个小的被剪切的视野。

3.2 Ablation studies 分化研究

本段探讨了CNN哪一层更适合做特征提取,基于数据集VOC2007。研究的变量包含是否fine tuning和层数pool5、fc6和fc7。具体结果如下表所示。
可以看出,fine-tuning对于fc6和fc7层提升大于pool5,说明pool5提取的特征是极限的,后续更多的提升来自于特定数据集的非线性分类器。研究也比较了其他的特征提取方法,如表所示。可以看出在多个种类表现均优于其他算法。
在这里插入图片描述

3.3 网络架构

本文的研究都是基于Krizhevsky的CNN网络架构(T-net),研究尝试了vgg16,后者具有均匀的结构由13层3x3的卷积网络和3层全连接层构成(O-net)。并且也将vgg16使用相同的数据集fine-tuning,结果表明O-net的mAP从58.5%提升到66%,但运行时间相比于T-net长了7倍。
在这里插入图片描述

3.4 误差分析

为了解释模型的错误模式、理解fine-tuning如何影响结果以及将错误类型与DPM模型作比较,虽然这已经超出了本文的范围,有一些讨论如下:与DPM模型相比,R_CNN误差更多来自定位不准,而不是背景与物品类别混淆;fine-tuning并不会减低模型对物体检测的灵敏度(sensitivity to object characteristics),但大大提升了预测normalized AP的最大值和最小值,fine-tuning几乎提高了所有特征的鲁棒性。
在这里插入图片描述

3.5 bounding-box regression

通过误差分析,研究实现了减少定位误差的简单方法,受DPM模型中的bounding-box regression启发,研究训练了一个线性回归模型来预测一个新的检测窗口,为pool5特征计算提供一个可选择的搜索区域。具体方法在附录中。研究表明,该方法提升了mAP3到4个百分点。
在这里插入图片描述

3.6 定性结果

所有检测的准确率超过0.5

4 The ILSVR2013 detection dataset

4.1 Dataset overview

ILSVR2013数据集该如何运用,该数据集分为train(395918)、val(20121)、test(40152)。val和test与PASCAL VOC来自相同的图片分布,复杂性相似。val和test数据集也都做了注释(每个图片的200个类别都使用bounding-box做了标记)。train数据集更为复杂,并没有完全注释(数量太大)。这些数据集中,每一个类别都有一个格外的negative数据集,negative数据集是通过手工检查来保证他们不含相关联的图片。更多信息可以查看论文的注释。
数据集的这些特性代表着很多训练模型的机会,train不能用作hard negative mining,因为注释并不完全。基于大体的经验,我们的策略是严重依赖val数据集,使用train作为辅助的积极样本。为了在training和validation使用val,将val分为val1和val2,由于有些类别实例很少(最小的类别仅有31张图片),我们需要产生类比较平衡的分割。为了达到这样的目的,生成大量候补分割,并选择使最大相对类不平衡最小的分割,每个候补分割通过以VAL图像的类计数作为特征进行聚类生成的,然后进行随机局部搜索,来提高分割平衡。分割中有大约11%的最大相对不平衡和4%的中间相对不平衡。

4.2 Region proposals

采用与PASCAL数据集相同区域方法,为了解决选择区域并不是尺度不变的,做了一个微小的改变,在运行选择搜索前将图片resize为宽度500pixels。选择搜索的每张图片生成2403个区域建议以及91.6%的召回率,而PASCAL的召回率为98%,说明在区域建议阶段还有提升空间。

4.3 Training data

训练数据形成了一个图片和boxes的集合(包含选择搜索和真值),集合来自val1和train(每类至多N个真值boxes的类别),我们称为val1和trainN。训练后,在数据集val2检测mAP。
训练数据三个步骤:CNN fine-tuning,50k个iteration val1和trainN;SVM检测器训练,所有的真值boxes来自val1和trainN,被用作各自类别的积极例子,hard negative mining运行val1上的随机选择的5000张图片,研究表明hard negative mining运行整个val数据集相比于5000张图片,mAP仅仅下降了0.5,但是运行时间却削减了SVM一半的训练时间;bounding-box 在val1回归器训练。来自train的negative数据集没有使用,因为注释不完全。

4.4 Validation and evaluation

我们使用上面描述的训练数据验证了数据使用的不同选择以及fine-tuning和边界框回归对val2集的影响。所有的系统超参数如SVM C、填充、NMS阈值、bounding-box等与PASCAL数据集相同,显然一些超参数对于ILSVRC数据集来说是次优的。这项研究的目的也是在不进行大量调整的情况下,测试在ILSVRC上的CNN运行结果。我们提交了两个子任务,第一个子任务没有bounding-box回归,第二次提交的有bounding-box回归。对于这些提交,我们扩展了SVM和bounding-box回归器训练集,重新审视地使用val+train1k和val。我们使用了在val1+train1k上微调的cnn,以避免重新运行微调和特性计算。

4.5 Ablation study 分化研究-控制变量

下表表示采用不同数据的训练数据、fine-tuning、和bounding-box回归对结果的影响。val2的验证结果和test数据集的结果相似,说明val2是预测测试集性能的良好指标。没有经过fine-tuning的CNN,访问了部分val1的数据结果为20.9%,将训练集扩展到val1+trainN发现达到24.1%(N等于500和1000区别不大)。使用val1对CNNfine-tuning,达到26.5%,可能存在过拟合。将fine-tuning扩展到val1+train1k(每个类别增加了1000个positive样本),提升到29.7%。bounding-box回归提升到31%,相比于PASCAL数据集有小小的提升。
在这里插入图片描述

4.6 Relationship to overfeat

R-CNN和OverFeat有着有趣的关系,OverFeat能被视为特殊情况下的R-CNN。我们将选择搜索区域建议替换为多尺度的规则正方形金字塔,并且改变每一类别bounding-box回归为单一bounding-box,两个系统就会十分相似。与R-CNN相比,OverFeat比R-CNN快了大约9倍。这是因为OverFeat的窗口没有被转化,因为很容易在重叠窗口共享计算,共享是以卷积方式运行整个网络来实现的。未来加速R-CNN的工作可以通过多种方式实现。

5 Semantic segmentation-语义分割

区域分类对于语义分割来说是一项标准的技术,能让我们应用R-CNN到PASCAL数据集上,为了与当前领先的语义分割系统O2P作比较。论文介绍了语义分割的相关算法,这里不赘述,因为没读过…
CNN feature for segmentation。研究评估了三种计算CPMC区域特征的策略。,三种策略都开始于将区域周围的矩形窗口wrap为227x227。第一个策略(fu)忽略区域的形状直接计算CNN的特征,就像我们在物体检测所做的一样,然而,这些特征忽略区域的费矩形形状。两个区域可能有相似的bounding-boxes,但几乎没有重叠,因此,第二策略(fg)只计算显著的mask,将背景替换为平均输入,所以背景区域转化后是零。第三种策略(fu+fg)简单连接了第一和第二种策略,我们的实验验证的他们的完整性。
下表表明了上述四种算法的平均准确率,在每一个算法中,fc6都略优于fc7,fg算法略优于fu算法,表明masked区域提供了更强的信号。fu和fg连接的算法准确率为47.9%,高于O2P算法的46.4%,这表明在给定fg特征下,fu依然提供了很高的信息量。值得一提的是,在一个核心上训练20SVRs的fu+fg特征花费一个小时,而O2P特征训练花费10个小时。
在这里插入图片描述
在下表中展现了VOC 2011测试集的结果,fc6(fu+fg)与两个baseline(R&P和O2P)相比,实现了11个类别的最高分割精度,跨类别平均为47.9%。通过fine-tuning还可能获取更好的性能。
在这里插入图片描述

6 Conclusion

近年来,目标检测算法停滞不前。性能最好的系统是将多个低级图像特征与来自对象检测器和场景分类的高级上下文结合在一起的复杂集合。本文提出了一种简单可扩展的对象检测算法,相比PASCAL数据集的最佳结果有30%的相对提升。
通过两点来达到上述结果。一是将高能力的卷积网络应用到自下而上的区域建议来定位和分割物体;二是一种在训练数据稀缺时训练大型CNN的模式。研究表明监督学习的预训练十分有效,通过辅助任务训练一个数据丰富的数据集,然后对数据稀缺的目标任务进行fine-tuning。文章推测,监督的预训练+特定领域的fine-tuning模式对于数据稀缺的视觉问题十分有效。
总结,研究通过组合计算机视觉和深度学习(自下而上的区域建议和卷积网络)来完成了以上结果,这两者不是对立的科学路线,两者是不可或缺的合作伙伴。

算是第一篇文章翻译下来,发现更重要的操作细节都在附录中,后面补上。
后面将有FastR-CNN FasterR-CNN MaskR-CNN。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值