R-CNN

一、背景和意义

论文链接:R-CNN

主要贡献:

1.在 Pascal VOC 2012 的数据集上,能够将目标检测的验证指标 mAP 提升到 53.3%,这相对于之前最好的结果提升了整整 30%.

2.这篇论文证明了可以讲神经网络应用在自底向上的候选区域,这样就可以进行目标分类和目标定位。

3.这篇论文也带来了一个观点,那就是当你缺乏大量的标注数据时,比较好的可行的手段是,进行神经网络的迁移学习,采用在其他大型数据集训练过后的神经网络,然后在小规模特定的数据集中进行fine-tune微调。

二、算法原理

实现步骤:

1.候选区域生成

        输入一张多目标图像,采用selective search算法通过图像分割的方法得到一些原始区域,然后使用一些合并策略(颜色直方图、梯度直方图)将这些区域合并,最终生成约2000个候选区域。

2.对每个候选区域使用深度网络提取特征

        先将2000个候选区域的像素减去该候选区域像素平均值后(预处理操作),再依次将每个227*227的候选区域输入AlexNet CNN网络,获取4096维的特征得到2000*4096维矩阵。

3.特征送入每一类的SVM分类器,判断类别

        将2000*4096维特征与20个SVM组成的权值矩阵4096*20相乘,获得2000*20维矩阵表示每个建议框是某个物体类别的得分。分别对上述2000*20维矩阵中每一列即每一类进行非极大值抑制剔除重叠建议框,得到该列即该类中得分最到的一些建议框。

4.使用回归器精细修正候选框位置

        对NMS处理后剩余的建议框进一步筛选,接着分别用20个回归器对上述20个类别中剩余的建议框进行回归操作,最终得到每个类别的修正后的得分最高的bounding box。

        如下图,黄色框口P表示建议框Region Proposal,绿色窗口G表示实际框Ground Truth,红色框G^表示Region Proposal进行回归后的预测框窗口,可以使用最小二乘法解决的线性回归问题。

          

问题:CNN训练的时候,本来就是对bounding box的物体进行识别分类训练,在训练的时候最后一层softmax就是分类层。那么为什么作者还要先用CNN做特征提取(提取fc7层数据),然后再把提取的特征用于训练svm分类器?

        这个是因为svm训练和cnn训练过程的正负样本定义方式各有不同,导致最后采用CNN softmax输出比采用svm精度还低。事情是这样的,cnn在训练的时候,对训练数据做了比较宽松的标注,比如一个bounding box可能只包含物体的一部分,那么我也把它标注为正样本,用于训练CNN;采用这个方法的主要原因为CNN容易过拟合,所以需要大量的训练数据,所以在CNN训练阶段我们是对Bounding box的位置限制条件限制的比较松(IOU只要大于0.5都被标注为正样本了);然而svm训练的时候,因为svm适用于少样本训练,所以对于训练样本数据的IOU要求比较严格,我们只有当bounding box把整个物体都包含进去了,我们才把它标注为物体类别,然后训练svm。SVM分类的过程:这是一个二分类问题,我么假设我们要检测车辆。我们知道只有当bounding box把整量车都包含在内,那才叫正样本;如果bounding box 没有包含到车辆,那么我们就可以把它当做负样本。但问题是当我们的检测窗口只有部分包含物体,那该怎么定义正负样本呢?作者测试了IOU阈值各种方案数值0,0.1,0.2,0.3,0.4,0.5。最后通过训练发现,如果选择IOU阈值为0.3效果最好(选择为0.3降了4个百分点,选择0.5精度下降了5个百分点),即当重叠度小于0.3的时候,我们就把它标注为负样本。一旦CNN f7层特征被提取出来,那么我们将为每个物体类训练一个svm分类器。当我们用CNN提取2000个候选框,可以得到2000*4096这样的特征向量矩阵,然后我们只需要把这样的一个矩阵与svm权值矩阵4096*N点乘(N为分类类别数目,因为我们训练的N个svm,每个svm包含了4096个权值w),就可以得到结果了。

三、存在的问题

1.测试速度慢:

 测试一张图片需要约53s。用Selective Search算法提取候选框用时约2秒,一张图像内候选框之间存在大量重叠,提取特征冗余。

2.训练速度慢:

过程及其繁琐

3.训练所需空间大

 对于SVM和bbox回归训练,需要从每个图像中的每个目标候选框提取特征,并写入磁盘。对于非常深的网络,如VGG16,从VOC2007训练集上的5k图像提取的特征需要百GB的存储空间。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值