实战深度学习目标检测:RCNN (1)

93 篇文章 10 订阅
20 篇文章 2 订阅

深度学习目标检测:RCNN

什么是目标检测?目标检测主要是明确从图中看到了什么物体?他们在什么位置。传统的目标检测方法一般分为三个阶段:首先在给定的图像上选择一些候选的区域,然后对这些区域提取特征,最后使用训练的分类器进行分类。
1. 区域选择
这一步是为了对目标进行定位。传统方法是采用穷举策略。由于目标可能在图片上的任意位置,而且大小不定,因此使用滑动窗口的策略对整幅图像进行遍历,而且需要设置不同的长宽。这种策略虽然可以检测到所有可能出现的位置,但是时间复杂度太高,产生的冗余窗口太多,严重影响后续特征的提取和分类速度的性能。
2. 特征提取
提取特征的好坏会直接影响到分类的准确性,但又由于目标的形态多样性,提取一个鲁棒的特征并不是一个简单的事。这个阶段常用的特征有SIFT(尺度不变特征变换,Scale-invariant feature transform)和HOG( 方向梯度直方图特征,Histogram of Oriented Gradient)等。
3. 分类器
主要有SVM,Adaboost等综上所述,传统目标检测存在两个主要问题:一个是基于滑动窗口的区域选择策略没有针对性,时间复杂度高,窗口冗余;而是手工设计的特征对于多样性没有很好的鲁棒性。

针对滑动窗口问题,region proposal(候选区域)是预先找出图中目标可能出现的位置,这可以保证在选取较少窗口(几千个甚至几百个)的情况下保持较高的召回率。并且获取的候选窗口要比滑动窗口的质量更高(滑动窗口固定长宽比)。比较常用的region proposal算法有selective search和edge boxes。针对特征选取,卷积神经网络(convolution neural network:CNN) 的特征比传统手工特征效果更好。因此在2014年,RBG(Ross B.Girshick )使用Region proposal+CNN(RCNN)代替传统目标检测使用的滑动窗口+手工设计特征,设计了RCNN框架,使得目标检测取得巨大突破,并开启了基于深度学习的目标检测热潮。

RCNN的检测流程:
RCNN主要分为3个大部分,第一部分产生候选区域,第二部分对每个候选区域使用CNN提取长度固定的特征;第三个部分使用一系列的SVM进行分类。
下面就是RCNN的整体检测流程:
在这里插入图片描述
(1)首先输入一张自然图像;
(2)使用Selective Search提取大约2000个候选区域(proposal);
(3)对每个候选区域的图像进行拉伸形变,使之成为固定大小的正方形图像,并将该图像输入到CNN中提取特征;
(4)使用线性的SVM对提取的特征进行分类。

RCNN的检测流程:
1.1 候选区域的产生
这里介绍的比较简单,RCNN使用Selective Search算法提取图像中的候选区域(因为我关注RCNN系列比较晚,直接应用的Faster RCNN,就没有关注Selective Search算法,这里也就不介绍了)
1.2 CNN特征提取
作者使用AlexNet对得到的候选区域的图像进行特征提取,最终生成的是一个4096维的特征向量。注意
AlexNet输入的是227x227大小的图像,因此在输入到AlexNet之前,作者把候选区域的图像首先进行了一小部分的边缘扩展(16像素),然后进行了拉伸操作,使得输入的候选区域图像满足AlexNet的输入要求(即227x227)。
我在这里其实进行了一部分实验,考虑怎样使候选区域图像满足AlexNet的输入要求
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr Robot

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值