R-CNN

R-CNN (Regions with CNN features)

r-rcnn ——包括两个关键点:
(1)可以将高容量卷积神经网络(CNN)应用于自下而上的区域提议(region proposals),以便对对象进行定位和分割。(2)当标记的训练数据很少时,监督的预训练作为辅助任务,然后进行特定领域的微调,产生显着的性能提升。

论文中提到了传统的方法在视觉识别中发展缓慢。由于传统方法使用HOG、SIFT、DPM等方法提取特征,然后使用SVM进行分类。其中,获取到的表征可以粗略与灵长类动物视觉通路中的皮层区域相联系。但是识别往往发生在下游的几个阶段,所以视觉识别中更多特征信息的获取可能是是分层级的、多阶段的过程。

R-cnn的实现需要解决两个问题:一、使用深度网络定位目标;二、使用少量带标注的数据训练高容量的模型。

检测问题需要定位图像中的物体的位置,一种解决思路是将定位看做一个回归问题(但是实践效果不理想)。另一种是利用一个滑动窗口检测器,使用两层卷积和下采样层。

在这里作者也考虑采用滑动窗口的方法,但是使用了5个卷积层,输入图像中strides为(32*32),receptive fields。这使得滑动窗口范例内的精准定位成为可能。

作者在2009年的一片cvpr的文章中已经论证了,以区域识别物体是可行的,可以进行目标检测和实例分割。《Recognition using regions》In CVPR, 2009. 2


图中显示的就是作者提出的R-CNN的整个流程:

首先,他们为输入图像生成大约2000个与类别无关的区域提议。然后,使用affine image warping为cnn产生固定长度的输入(忽视了region proposal的形状),再使用CNN从每个提议中提取固定长度的特征向量,然后使用类别特定的线性SVM对每个区域进行分类。

关于标记数据稀少的问题(可能不足以训练大型CNN):之前的做法是使用无监督的预训练方法,而现在是使用有监督的finetuning。

传统的方法:例如,HOG它是简单的,使用其获取的特征也更加直观一些(尽管人类的视觉发现的规律可能是错误的)。那么从CNN中获取的表征(representation)学到了什么表现形式呢?学到的表征的关键是密集连接层,超过5400万的的参数是关键吗?不是,因为去掉94%的参数,检测精度只是适度的下降了。但是通过探索卷积网络层中的单元,可以发现卷积层学到了各种丰富的特征。

关键点:作者通过对实验中失败案例进行了分析(使用Hoiem等人的检测分析工具),证明了一个简单的边界框回归方法可以显著减少错误的定位

D. Hoiem, Y. Chodpathumwan, and Q. Dai. Diagnosing error
in object detectors. In ECCV. 2012. 2, 7, 8

下面开始进入正题:

Object detection with R-CNN

Object detection system consists of three modules.

  • 1 生成与类别无关的区域提案(region proposal)
  • 2 cnn网络从每一个region中提取固定长度的特征。
  • 3 一组指定的线性SVM(这个支持向量机是针对训练类别经过训练的)。

Module design

经常用于产生类别独立区域提案的方法,包括:objectness. 《Measuring the objectness of image windows》;selective search. 《Selective search for object recognition》;Selective search for object recognition. 《Category independent object proposals》;constrained
parametric min-cuts (CPMC). 《CPMC: Automatic object segmentation using constrained parametric min-cuts》;multi-scale combinatorial
grouping. 《Multiscale combinatorial grouping》。等等

这里,作者使用了selective search来做region proposal的提取。

Feature extraction

作者在这里使用的是caffe作为CNN的架构,将region proposal仿射变换为227*227pixel的Input image,然后使用5个convolutional layers和2个fully connected layers进行特征提取。

Input Image->select search->region proposals->each region warping->cnn(forward propagate)->features->each extracted feature vector score using the SVM trained for that class->greedy non-maximum suppression rejects a region it has an IoU overlap with a higher scoring selected region larger than a learned threshol.

Domain-specific fine-tuning

在微调时,设定的类别为N+1类,N为目标类别的数量,1是背景。正负样本的选取:在所有的region proposals中,ground truth进行IoU overlap计算,>=0.5的region proposal作为正样本,否则,作为负样本。SGD的learning rate为0.001,每次SGD迭代中,均匀采样正样本为32+负样本96,mini-batch size为128。

Object category classifiers

在贪婪非极大值抑制方面,如何选取阈值去区分正负样本,作者在验证集上试过了{0,0.1,…,0.5},发现阈值的选取十分重要。r-cnn中overlap threshold=0.3。

特征被提取,标签被应用后,为每个类优化一个线性的SVM,文章中简单的采用了标准的hard negative mining method(该方法能够很快收敛,只有一次通过所有图像,mAP停止增加). 《Object detection with discriminatively trained part based models》;《Example-based learning for viewbased human face detection》.

Visualizing learned features

  • 卷积神经网络中,模型提取出的特征越来越抽象。过滤器变得越来越复杂,越来越精细。

  • 模型的第一层的过滤器对应简单的方向边缘和颜色。

  • 下面可能是有过滤器对应边缘和颜色组合而成的简单纹理。

  • 更高层的过滤器类似于自然图像中的纹理:羽毛、眼睛、树叶等。



Ablation studies

为了研究哪些layer对目标检测性能的关键作用。作者在这里分别在预训练后没有fine-tuning和fine-tuning CNN网络模型。

从中发现,移除最后的全连接层后,结果竟然提升了,说明更多CNN的representational power来自于卷积层(其中的参数占全部参数的6%),而不是the much larger densely connected layers.

然而,在做fine-tuning后,结果明显提高了。通过微调全连接层更加的鲁棒,暗示出卷积层学到的是预训练集的通用信息。但是大多数改进都是从学习特定领域的非线性分类器获得的(指出微调全连接层对特定领域操作的重要性)。

Dataset

作者使用了The ILSVRC2013 detection dataset.
val和test从相同的图像分布中抽取,并且他们都有详尽的标注(Meaning that in each image all instances 200 classes are labeled with bounding boxes).

train set is drawn from the ILSVRC2013 classification image distribution.训练集不仅复杂而且没有详尽的标注(may or may not be labeled),数量也很多。

训练集中的图像不能被用于hard negative mining,所以需要将val划分为val1+val2(equally size)将val1加入训练集,从val1中选择hard negetive mining.Hard negative mining was performed on a randomly selected subset of 5000 images from val1.

Training data

训练数据需要做三个处理:

  1. CNN-fine-tuning
  2. detector SVM training
  3. bounding-box regressor training(在val1上进行)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值