您的位置:首页 > 其它

R-CNN论文解读

2017-03-28 14:19 375 查看
论文题目: Rich feature hierarchies for accurate object detection and semantic segmentation

作者: Ross Girshick Jeff Donahue Trevor Darrell Jitendra Malik

会议: 2014 CVPR

1. R-CNN是什么

R-CNN就是Regions with CNN features, 意思是通过CNN来提取region Proposals的特征;而region proposals其实就是我们常说的ROI(兴趣点),在目标检测中就是目标可能所在的区域。

2.问题引入

在著名的竞赛PASCAL VOC中,近年来目标检测的mAP(mean average precision)已经处于一个瓶颈期,如图一所示



图一

并且在视觉识别上大部分的方法还是基于SIFT和HOG特征的,我们都知道 Feature matters,那有什么办法可以突破这个瓶颈吗?答案是有!这就引出了R-CNN,将CNN引入到目标检测的开山之作。



3. 论文框架



对于一张输入图片,首先抽取大约2k的region proposals,然后把这些region proposal输入CNN中计算特征,注意,这里只是一张图片,而一张图片有2k的region proposals 要在CNN中计算,这个时间复杂度和空间复杂度就很大了,这也是后来Kaiming提出的SPP net主要解决的问题,好,言归正传,拿到CNN特征之后,再通过线性 SVM进行分类就得到结果了。 所以 R-CNN把检测问题直接转换成了一个分类问题!

4. 论文具体工作及细节

region proposals的获取

论文采用的是Selective Search的方法来获取的,是2012IJCV的一个工作(Selective Search for Object Recognition),简单来说就是一开始把一张图片分成很多小区域,然后通过计算小区域的颜色相似度,纹理相似度,大小相似度和吻合相似度,最后综合这四个相似度进行合并。



CNN网络结构

提取region proposals 特征采用Alexnet,输入的每个region proposals被scale到227*227(Alexnet的输入),有一种是不管比例直接缩放,但是这种缩放会对目标进行扭曲,岁后续的特征提取可能会有影响,另一种是通过背景颜色填充,经过作者的实验,采用了直接缩放并用16padding的方式,最后输出为4096维的特征向量。



训练过程(迁移学习)

(1)有监督的预训练(Supervised pre-training)

直接在很大的数据集(ILSVRC 2012)上进行图像标注级别的预训练。

(2)面向领域微调(Domain-specific fine-tuning)

为了让CNN适用于目标检测,通过SGD对参数进行更新,除了最后的输出从1000变成了21(20个VOC+背景)类

,其他的网络结构都是不变的;



每个类都训练一个SVM分类器,但是这边涉及到的一个问题是,怎么判断一个region proposals是正样本还是负样本?考虑一个汽车的例子,包含整个汽车当然是正样本,背景跟汽车无关属于负样本,但是部分车怎么判断,经过作者的validation,找到一个IoU阈值0.3,也就是检测窗口和groung truth的交并比小于0.3标注为负样本,大于0.3即为正样本。



训练集中正样本一般比较少,而负样本多很多,SVM训练出来的效果并不是很好,通过Hard negative mining method来解决这个问题,hard negative mining意思是第一次训练的时候会有很多负样本分到正样本中,我们把这些称为hard negtive,把这些拿出来作为有代表性的负样本重新进行训练。

Bounding-box regression

使用回归来精修bounding-box的位置。在SVM预测出每个region proposal的score之后,对于每一类都有一个线性的回归器进行精修。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: