RCNN论文总结

RCNN简介

       \space\space\space\space\space\space       在RCNN这篇论文之前,目标检测使用的方法都是一些比较复杂的集成系统,而且基于之前算法的改进所带来的提升不明显。与传统方法使用SIFT,HOG等方向直方图的方法来对图像特征进行提取处理不同,论文中认为目标检测应该要多阶段多层次的处理特征,这样才能提取出更多有用的信息,再加上CNN在ImageNet中的惊人表现,所以论文基于CNN这样的多层次处理特征的结构对图像特征进行处理。
       \space\space\space\space\space\space       用CNN进行目标检测有两个问题:1、如何通过深度网络来确定目标的位置;2、用于目标检测的数据集(PASCAL VOC)标注数据少,不足以训练深度CNN。
       \space\space\space\space\space\space       对于第一个问题,论文的解决方法并不是直接拿来一张图,通过CNN来确定图中目标位置,而是取图中指定区域给CNN,让CNN依次判断这些区域是否存在目标。
       \space\space\space\space\space\space       对于第二个问题,论文的解决方法是先用ImageNet数据集预训练模型,然后再在目标检测的数据集上微调。这种做法在现在来看是很常见的,但在当时却是首创。

RCNN细节

       \space\space\space\space\space\space       RCNN的网络结构如下图所示。网络主要分为三部分:1.候选区域的生成;2.CNN提取特征;3.线性SVM对候选区域分类(每一类训练一个SVM)。
在这里插入图片描述
       \space\space\space\space\space\space       文章使用selective search方法来生成候选区域(region proposal),这是因为它要与之前目标检测的工作做对比,排除不同候选区域生成方法带来的差异。

selective search
首先将每个像素作为一组。然后,计算每一组的纹理,并将两个最接近的组结合起来。直到所有区域都结合在一起。如下图所示。
在这里插入图片描述

       \space\space\space\space\space\space       图中CNN的最后会生成一个4096维的向量,所以要求输入图片尺寸固定,要对所有候选区域进行放缩。文章不管候选区域的大小和尺寸比例,直接压缩为固定大小(277x277),不过在缩小之前,先进行了一定程度的扩张(这里并没有看太懂他具体是如何放缩的)。
       \space\space\space\space\space\space       文章最后提到了用Bounding box regression的方法来修正selective search生成所含目标的区域与实际目标位置之间的偏差。所以RCNN最终的结构如下图所示。
在这里插入图片描述

RCNN的训练
   \space\space    1.训练CNN
       \space\space\space\space\space\space       首先,在ImageNet的数据集上对CNN进行预训练;然后,将CNN最后一层针对ImageNet1000分类的1000个输出换成21个输出(检测一共20个类加一个背景类);最后,用较小的学习率微调网络。
       \space\space\space\space\space\space       候选区域与ground-truth box的IoU(交并比)大于或等于0.5的话,就将此候选区域归为ground-truth box的类别。
       \space\space\space\space\space\space       由于候选区域中背景类占据了大多数,所以每一个mini-batch不均衡的选取背景和目标,具体地,对于大小为128的mini-batch,其中96个背景区域,32个目标区域。(32个目标区域中要包含所有类)
       \space\space\space\space\space\space       注意,这里21个输出并非最终我们想要的结果,只是借助它们来训练CNN。

   \space\space    2.训练SVM
       \space\space\space\space\space\space       用CNN倒数第二层的4096维特征向量为每一个类别分别训练一个SVM二分类器。此处设定与ground-truth box的IoU的阈值为0.3,即小于0.3为负样本(不是该类),大于0.3的区域丢弃;正样本就是ground-truth box。由于训练数据太多以至于要很大空间来存储特征向量,所以文章采用了hard negative mining,不需要用全部的训练数据,只需要那些不易区别的数据来训练SVM。

RCNN的预测
       \space\space\space\space\space\space       在预测的时候,用selective search方法生成2000个候选区域,每个区域都放缩为固定大小,然后送入CNN中提取特征,最后用每一个类对应的SVM对每一个候选区域打分。对于某一类有重叠的候选区域,用非极大值抑制去除多余候选区域,即重叠区域达到阈值(IoU),选取这些重叠区域中评分最高的区域,舍弃剩余区域。

RCNN很高效
       \space\space\space\space\space\space       相比传统的目标检测算法,RCNN很高效,因为1.所有类权值共享于CNN中;2.CNN最终生成的4096维特征向量相比之前方法所使用的特征向量维数低了很多。

论文地址:Rich feature hierarchies for accurate object detection and semantic segmentation

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值