R-CNN

目录

1、Introduction

2. Object detection with R-CNN

2.1. Module design

2.2. Test-time detection

2.3. Training

2.4. Results on PASCAL VOC 2010-12

3. Visualization, ablation, and modes of error

3.1. Visualizing learned features

3.2. Ablation studies

3.3. Detection error analysis

3.4. Bounding box regression

4. Semantic segmentation


R-CNN是Ross Girshick在《Rich feature hierarchies for accurate object detection and semantic segmentation》中提出来的。之所以取名叫R-CNN是因为将region propasals与CNN结合起来了。

R-CNN的核心见解是是:①将高容量卷积神经网络(CNN)应用于自下而上的区域建议,以便对对象进行定位和分割②当标记的训练数据不足时,进行监督辅助任务的预训练,然后进行特定领域的微调,可以带来显著的性能提升。

1、Introduction

在以往,视觉识别任务都是基于SIFT和HOG,在2010-2012期间,这些方法在PASCAL VOC上的性能提升缓慢。作者将SIFT和HOG这种块方向的直方图视作人脑初级视皮层V1(而还有V2、V3等),所以作者认为提取层次更加丰富的特征有助于视觉识别。neocognitron算是这种这方面的早期尝试,但是neocognitron缺乏监督学习算法。而LeCun等人的工作表明基于反向传播的随机梯度下降可以训练CNN。尤其是在12年ILSVRC上AlexNet取得了惊人的成绩。这一结果的重要性在ILSVRC 2012年研讨会期间引发了激烈的辩论。核心问题可以归结为:ImageNet上的CNN分类结果在多大程度上能够应用在PASCAL VOC的目标检测上?这篇文章回答了这个问题。

文章主要面临两个挑战:①AlexNet之前只用于分类,但是目标检测和分类不同,还要给出location,如何给出location②PASCAL VOC数据集包含的标注数据没有ImageNet那么多,如何训练AlexNet。

对挑战的应对:①为了保持图像的高分辨率,CNN一般只有两层,这时可以使用sliding window方法,但是随着网络加深,sliding window很难进行精确定位。为了解决这一问题,作者采用了recognition using regions方法。②在imageNet上对CNN进行预训练,然后在PASCAL VOC上进行微调。

R-CNN的工作流程如下:

2. Object detection with R-CNN

2.1. Module design

Region proposals.生成类别独立区域的方法很多,包括:objectness, selective search,category-independent object proposals, constrained parametric min-cuts (CPMC), multi-scale combinatorial grouping以及将CNN应用于间隔规则的方形作物来检测有丝分裂细胞,这是区域提案的一个特例。为了和其他人的工作进行比较采用了selective search方法。

Feature extraction.使用AlexNet从每个区域建议中提取4096维特征向量。由于CNN要求输入大小固定为227x227。无论候选区域的大小或宽高比如何,我们都会将其周围紧边界框中的所有像素扭曲为所需的大小。

2.2. Test-time detection

在测试时,使用selective search提取大约2000个区域建议(我们在所有实验中使用选择性搜索的“快速模式”)并扭曲至固定大小。然后通过CNN计算特征。对于每一类,我们使用为该类训练的支持向量机对提取的特征向量进行评分。在给定图像中所有得分区域的情况下,我们应用贪婪的非最大抑制(NMS)来拒绝掉一些和高分区域的IoU大于阈值的区域。

Run-time analysis.R-CNN由于参数共享和特征维度低的特点,所需的时间较少。

2.3. Training

Supervised pre-training.利用imageNet对AlexNet(1000分类)进行预训练

Domain-specific fine-tuning.对于选择搜索产生的推荐区域,如果其和真实标注的框的IoU>= 0.5就认为是正例,否则就是负例。在Pascal Voc上对AlexNet(21分类,即20个VOC类别+背景)进行微调。使用SGD在learning rate为0.001下进行优化,每轮SGD迭代统一使用32个正例窗口(跨所有类别)和96个背景窗口,即每个mini-batch的大小是128。另外我们倾向于采样正例窗口,因为和背景相比他们很稀少。

Object category classifiers.IoU<0.3为负例(在验证集上通过网格搜索得出的结论),ground-truth是正例,其余的丢弃。特征提取出来后,优化每个类的线性SVM。由于训练数据太大,使用了硬负挖掘(正负数量不平衡以及负例分布代表性不够的情况下,将棘手的分类错误的样本送回去继续训练,直到效果不再提示)加快收敛。

之所以fine-tuning和SVM阶段采取的IoU不一样是因为fine-tuning阶段需要大量的训练数据,所以IoU限制比较宽松,SVM可以适用于小样本训练,所以IoU要求更加严格。

之所以使用SVM进行分类而不是softmax是因为为了扩大数据集在fine-tuning阶段使用了IoU>= 0.5,限制比较宽松,这会导致定位准确度下降。所以使用了SVM来进行分类。

2.4. Results on PASCAL VOC 2010-12

简单来说就是优于其他已知的目标检测方法

3. Visualization, ablation, and modes of error

3.1. Visualizing learned features

计算抽取出来的区域提议(大约1000万)的单元激活,将提议从最高激活排序到最低激活,执行非最大抑制,然后显示得分最高的区域

3.2. Ablation studies

消融研究显示fine-tuning提升了模型的性能

3.3. Detection error analysis

使用Hoiem等开发的检测分析工具进行错误分析。R-CNN的错误明显更多地是由于定位不当造成的,而不是与背景或其他对象类混淆,这表明CNN的特征比HOG更具辨别力。松散的定位可能是由于我们使用自下而上的区域建议和从CNN的整体图像分类的预训练中学习到的位置不变性。第三列显示了我们的简单边界框回归方法如何修复许多定位错误。

3.4. Bounding box regression

训练了一个线性回归模型,在给定pool5特征的情况下预测一个新的检测窗口,以减小定位误差

4. Semantic segmentation

O2P使用CPMC为每张图像生成150个区域建议,然后使用支持向量回归(SVR)预测每个类的每个区域的质量。我们评估了在CPMC区域上计算特征的三种策略,所有这些策略都是从将区域周围的矩形窗口扭曲到227×227开始的。

第一种策略(full)忽略区域的形状,直接在扭曲的窗口上计算CNN特征,就像我们对检测所做的那样。但是,这些特征忽略了区域的非矩形形状。两个区域可能具有非常相似的边界框,但几乎没有重叠。

因此,第二种策略(fg)只计算区域前景蒙版上的CNN特征。我们用平均值输入替换背景,这样在平均值减去后背景区域为零。

第三种策略(full+fg)简单地将full和fg特征连接起来;我们的实验验证了它们的互补性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值