RCNN 学习

RCNN算法流程

RCNN算法流程可分为4个步骤

  • 一张图像生成1K~2K个候选区域(使用Selective Search方法)
  • 对每个候选区域,使用深度网络图特征
  • 特征送入每一类的SVM分类器,判别是否属于该类
  • 使用回归期器细修正候选框位置

 1.候选区域的生成

        利用Selective Search算法通过图像分割的方法得到一些原始区域,然后使用一些合并策略将这些区域合并,得到一个层次化的区域结构,而这些结构就包含着可能需要的物体。

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

        将2000候选区域缩放到227x227pixel,接着将候选区域输入事先训练好的AlexNet CNN网络获取4096维的特征得到2000X4096维矩阵。

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

        将2000X4096维特征与20个SVM组成的权值矩阵4096X20相乘获得2000X20维矩阵表示每个建议框是某个目标类别的得分(建议框归属于每一个类别的概率)。分别对上述2000X20维矩阵中每一列即每一类进行非极大值抑制剔除重叠建议框,得到该列即该类中得分最高的一些建议框。

       将2000X4096的特征矩阵与20个SVM组成的权值矩阵4096X20相乘,获得2000X20的概率矩阵,每一行代表一个建议框归于每个目标类别的概率。分别对上述2000X20维矩阵中每一列即每一类进行非极大值抑制剔除重叠建议框,得到该列即该类中得分最高的一些建议框。

 最左边是2000×4096的一个特征矩阵,在特征矩阵中,每一行就是我们一个候选框通过CNN网络得到的一个特征向量,然后它有2000个候选框,所以它有2000行特征向量。

中间的图是SVM权值矩阵,每一列对应着一个类别的的权值向量,一共有20个类别,拼接在一起就是4096×20的权值矩阵。(假设SVM分类器的第一列使我们所需要检测的猫,第二列是我们所需检测的狗......)

非最大抑制:抑制不是最大值的元素

4.使用回归器精细修正候选框位置
        对NMS处理后剩余的建议框进一步筛选。接着分别用20个回归器对上述20个类别中剩余的建议框进行回归操作,最终得到每个类别的修正后的得分最高的bounding box。
        如图,黄色框口P表示建议框Region Proposal,绿色窗口G表示实际框Ground Truth,红色窗G表示Region Proposal进行回归后的预测窗口,可以用最小二乘法解决的线性回归问题。

R-CNN框架

 R-CNN存在的问题

1.测试速度慢:

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

2.训练速度慢:

        过程及其繁琐

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值