R-CNN(Rich feature hierarchies for accurate object detection and semantic segmentation)

原文链接:http://arxiv.org/abs/1311.2524

工程链接:https://github.com/rbgirshick/rcnn      

        R-CNN,即Regions with CNN features, 是目前比较流行的目标检测中Region Proposal+CNN框架的基础,之后的Fast-RCNN、Faster-RCNN都是以它为基础。R-CNN的出发点在于"Features matter",不同于传统的回归方法,R-CNN是用分类方法来解决目标检测问题。很多传统特征可以用图片经过CNN后得到的feature map表示,其中既包括what,也包括where。对得到的特征进行分类,对特征的位置进行回归。

        R-CNN在解决目标检测问题时面临的主要挑战和解决办法是:(1) 用CNN进行定位。借鉴"Recognition using regions"模型,得到input image后,用CNN在每个proposal中得到一个定长的特征向量,对每个region proposal计算一个固定大小的CNN输入后计算CNN features,最后用线性SVM对每个区域进行分类。如下图所示

(2) 对于训练一个大的CNN来说,在目标检测中标记的数据比较稀少。需要用无监督的pre-training和有监督的fine-tuning来解决这个问题。

用R-CNN进行目标检测

       一共可分成三个模块:(1) 第一个模块生成独立类别的用来定义可用的候选检测集的region proposal。(2) 第二个模块是从每个区域中提取一个定长的特征向量。(3) 第三个模块是一系列特殊类别的线性SVM。

Module design
         Region Proposals. 使用论文Selective Search for Object Recoginition中的模型。主要思路是通过区域合并、选择搜索生成特征,然后用SVM进行训练。可以参考博客:Selective Search for Object Recoginition
Feature extraction. 使用Caffe,通过5个卷积层和2个全连接层从每个region proposal中提取一个4096维的feature vector。为了得到适用于region proposal的特征,需要:(1) 将那个区域中的图片数据转化为可用于CNN输入的大小(227*227 pixel size) (2) 扩张tight bounding box使得在warped size,在original box周围warped image context有确定的p维(p=16)。 (3) 在tight bounding box中弯曲所有像素到要求的大小。(可使用的转换方法:将object proposals视为任意大小的图像矩阵。方法a. 把每个object proposals封闭在tightest square中,然后缩放图像到CNN要求的输入大小。方法b("warp"). 各向异地将每个object proposal缩放到CNN要求的输入大小。)
       Test-time detection
. (1) 使用selective search在训练图像上抽取大约2000个region proposal; (2) warp每个proposal,通过CNN的前向传播计算features;(3) 对于每个类别,用SVM训练抽取feature向量;(4) 如果一个区域和一个higher scoring selected区域间的intersection-over-union(IoU: 2个重叠的边界框,计算边界框的并集,然后通过并集分割边界框)overlap大于阀值,使用greedy non-maximum suppression舍弃它。
提高检测效率的方法:(1) 所有CNN参数在不同分类间共享 (2) 相较于其他方法,CNN计算出的feature向量是低维的
Training
     
Supervised pre-training.
      Domain-specific fine-tuning.
对warped region proposals使用CNN参数的随机梯度下降(stochastic gradient
descent)。CNN的结构除了用一个随即初始化的(N+1)-way分类层替代ImageNet-specific 1000-way的分类层外, 其他不改变。在实际中,选择与包含真实结果的框重叠大于等于0.5的作为正样本,其余的作为副样本。设置SGD初始learning rate为0.001。在每次迭代中,选择32个正窗口和96个背景窗口来构造一个大小为128的mini-batch。
       Object category classifiers. 在fine-tuned CNN的最终softmax layer之后对每一个类别用一个线性SVM进行优化。

Network
       第一层获取定向的边和相反的颜色。Layer pool5是网络的第五个也是最后一个卷积层的max-pooled输出。它的feature map有6*6*256=9216维。Layer fc6和pool5全连接,它用一个4096*9216维的权重矩阵和pool5的feature map相乘后加上偏移向量来计算features。Layer fc7是网络的最后一层,它用fc6得到的特征和一个4096*4096的权重矩阵相乘,并且加上偏移向量,实现hale-wave校正。
       效果较好的一个网络结构的例子是,网络由相同的结构组成:有3*3卷积核的13个卷积层,5个散布的最大池化层和最顶端的3个全连接层。
       为了减小定位误差,使用Bounding-box regression来训练预测一个针对pool5 features的新的定位窗口。(Bounding-box regression:训练出一个从proposed box P到ground-truth box Q的一个变化。和四个有关:bounding box中心的坐标位置,宽度,高度。)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值