目标检测(一)R-CNN论文笔记

本博客是我阅读论文之余做笔记所写,只写了一些论文中我觉得比较重要的内容,如果想更深入地了解,还是建议大家去读原论文。个人水平有限,写得有问题的地方欢迎朋友在评论区留言指出。

R-CNN

R-CNN论文题目:Rich feature hierarchies for accurate oject detection and semantic segmentation
论文地址:https://arxiv.org/pdf/1311.2524.pdf

背景

R-CNN这篇论文是2014年CVPR的论文,在此之前目标检测并未使用基于深度学习的方法,所以R-CNN可以说是基于深度学习的目标检测算法的开山鼻祖。相比于之前基于传统方法的目标检测,R-CNN在PASCAL VOC2012数据集上的mAP提高了30%以上,达到了53.3%。

R-CNN的两个重要贡献在于:

  1. 这是首次将候选区域(Region Proposal)和CNN结合,用于目标检测和分割;
  2. 证明了在数据不足的情况下,预训练加fine-tune的方式可以大大提高模型的性能,而这种方式在之前可能还未受重视或未经证明;

R-CNN用于目标检测

R-CNN用于目标检测的流程如下图所示,该图来自于1
在这里插入图片描述

流程具体为:

  1. 对输入的图片使用选择性搜索(Selective Search),得到大约2000个候选区域;
  2. 不管候选区域的大小和宽高比如何,都将其变换为227×227的固定大小(227×227是后面CNN要求的固定输入图片大小);
  3. 将变换后的候选区域一个个输入到CNN中,CNN的输出为一个4096维的特征向量;
  4. CNN输出的特征向量分别送入一系列的SVM用于分类, 以及为了得到更精准的预测框, 还会进行一个Bounding Box Regression;

R-CNN训练策略

对于CNN和SVM,作者使用了不同的训练策略,主要表现在对于正负样本的划分不同。

CNN:

  1. 作者首先在大规模的图像分类数据集ILSVRC 2012上对CNN网络进行了预训练;
  2. 接着,作者在VOC2012上对预训练的CNN网络进行了fine-tune。在这一步骤,CNN的输入是大小已经变换为227×227的候选区域。作者设定,与某个ground-truth box相比,如果候选区域的IoU大于等于0.5,则将该候选区域设定为该ground-truth box所对应类别的正样本,反之,则设定为负样本。

对于SVM,作者仅将各个类别的ground-truth box作为该类别的正样本,将IoU小于0.3的候选区域被作为该类别的负样本,其余候选区域被忽略。

Bounding Box Regression

为了得到更加精准的预测框,作者训练了一个线性回归模型。在给定输入为CNN网络最后一个池化层(在文中以 pool ⁡ 5 \operatorname{pool}_{5} pool5表示)的输出特征图的情况下,可以输出一个更加精准的预测框。有关于Bounding Box Regression的原理在R-CNN补充材料中有详细说明, 有兴趣的朋友可以去看一下原文。另外, 这篇博客也对Bounding Box Regression的原理做了比较详细的解释, 可以作为参考。
边框回归(Bounding Box Regression)详解

总结

R-CNN是后面很多目标检测算法的基础,理解了R-CNN的原理对于理解其他算法很有帮助,所以如果有时间,还是建议大家去看看原论文。


  1. 从RCNN到SSD,这应该是最全的一份目标检测算法盘点 ↩︎

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值