目标检测(三)——R-CNN

arxiv: http://arxiv.org/abs/1311.2524
github: https://github.com/rbgirshick/rcnn
slides: http://www.image-net.org/challenges/LSVRC/2013/slides/r-cnn-ilsvrc2013-workshop.pdf
slides: http://www.cs.berkeley.edu/~rbg/slides/rcnn-cvpr14-slides.pdf
这里写图片描述
  2014年加州大学伯克利分校的Ross B. Girshick提出R-CNN算法,其在效果上超越同期的Yann Lecun提出的端到端方法OverFeat算法,其算法结构也成为后续two stage的经典结构。
  R-CNN算法利用选择性搜索(Selective Search)算法评测相邻图像子块的特征相似度,通过对合并后的相似图像区域打分,选择出感兴趣区域的候选框作为样本输入到卷积神经网络结构内部,由网络学习候选框和标定框组成的正负样本特征,形成对应的特征向量,再由支持向量机设计分类器对特征向量分类,最后对候选框以及标定框完成边框回归操作达到目标检测的定位目的。

算法流程:

  1. 使用Selective Search提取大约2000个候选区域(proposal);
  2. 对每个候选区域的图像进行拉伸形变,使之成为固定大小的正方形图像,并将该图像输入到CNN中提取特征;
  3. 使用线性的SVM对提取的特征进行分类。

创新点:

  • 将大型卷积神经网络(CNNs)应用于自下而上的候选区域以定位和分割物体。
  • 当带标签的训练数据不足时,先针对辅助任务进行有监督预训练,再进行特定任务的调优,就可以产生明显的性能提升。

step0:生成区域集R
step1:计算区域集R里每个相邻区域的相似度S={s1,s2,…} (颜色、纹理、尺寸和空间)
step2:找出相似度最高的两个区域,将其合并为新集,添加进R
step3:从S中移除所有与step2中有关的子集
step4:计算新集与所有子集的相似度
step5:跳至step2,直至S为空

R-CNN图片缩放

同时作者作者对图片不同的缩放方法进行对比。

这里写图片描述

虽然R-CNN算法相较于传统目标检测算法取得了50%的性能提升,但其也有缺陷存在:R-CNN虽然设计巧妙,但仍存在很多缺点:
1.重复计算 R-CNN虽然不再是穷举,但通过Proposal(Selective Search)的方案依然有两千个左右的候选框,这些候选框都需要单独经过backbone网络提取特征,计算量依然很大,候选框之间会有重叠,因此有不少其实是重复计算。
2.训练测试不简洁。候选区域提取、特征提取、分类、回归都是分开操作,中间数据还需要单独保存。
3.速度慢。前面的缺点最终导致R-CNN出奇的慢,GPU上处理一张图片需要十几秒,CPU上则需要更长时间。
4.输入的图片Patch必须强制缩放成固定大小(原文采用227×227),会造成物体形变,导致检测性能下降。

参考

Rich feature hierarchies for accurate object detection and semantic segmentation

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值