R-CNN

0. 参考

1. 论文概况

1. Motivation

CNN的应用。

2. 解决什么问题?

  1. 传统目标检测中,基于滑窗的区域选择策略没有针对性,时间复杂度高,窗口冗余;
  2. 传统目标检测中,手工设计的特征对于多样性的变化并没有很好的鲁棒性。

3. 提出了什么方法?

  1. region proposal;
  2. CNN;

4. 效果如何?

  • R-CNN在PASCAL VOC2007上的检测结果从DPM HSC的34.3%直接提升到了66%(mAP)。

5. 还存在什么问题?

  1. 训练分多个阶段,非end to end,步骤繁琐: 微调网络+训练SVM+训练bbox回归
  2. 训练占用磁盘空间大:候选区域对应的图像需要预先提取
  3. 速度慢: 每个Proposal都需要进入CNN网络计算,上千个Region存在大量的范围重叠,重复的特征提取带来巨大的计算浪费
  4. 输入的图片Patch必须强制缩放成固定大小(原文采用227×227),会造成物体形变,导致检测性能下降。

算法流程-测试

==本质:对region proposals进行分类和位置修正,最后输出那些IOU高于阈值的proposals;==

  1. 候选区域选择(region proposals)
  • selective search方法得到2000个proposals;
  • proposals缩放到固定大小227×227(FC层的需求);
  1. CNN特征提取(5个conv+2个FC)
  2. 特征送入线性SVM进行分类
  3. 特征送入全连接网络对SVM分好类的region proposal进行bbox回归

边框回归是对region proposal进行纠正的线性回归算法,为了让region proposal提取到的窗口跟目标真实窗口更吻合。

关于region proposal

比较常用的region proposal算法有selective Search和edge Boxes,如果想具体了解region proposal可以看一下PAMI2015的“What makes for effective detection proposals?”

由于region proposal利用了图像中的纹理、边缘、颜色等信息,可以保证在选取较少窗口(几千个甚至几百个)的情况下保持较高的召回率。这大大降低了后续操作的时间复杂度,并且获取的候选窗口要比滑动窗口的质量更高(滑动窗口固定长宽比)。