R-CNN的进化之路

这篇博客总结了R-CNN家族的发展历程,从R-CNN到Fast R-CNN再到Faster R-CNN,探讨了如何逐步提升目标检测的速度和效率。R-CNN通过区域提议、特征提取和分类回归实现检测,Fast R-CNN通过共享计算和联合训练加速,Faster R-CNN引入RPN实现端到端训练。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

  R-CNN(Reigions with CNN features)是老牌的目标检测算法,趁此机会一块总结下各个版本,R-CNN 2014 fast R-CNN 2015 faster R-CNN 2016,看看处理速度由慢变快都做了什么样的改进。

R-CNN

  R-CNN的主要思路是:先提取出候选检测区域,再用CNN提取各个候选区域的特征,最后用分类器判别类别,用回归拟合边界。基本结构和步骤如下:

下面详细介绍下几个关键的处理环节。

Region Proposal

  生成目标检测的候选区域集合,方法见selective search(参考7),先将图片切分成小块,每两块中间计算相似度(有4种不同定义),再决定合并与否,逐层向上合并(分层分组算法)。候选域的抽取方法在R-CNN方法中占据着重要的位置,对目标的位置识别严重依赖这里,这种依赖持续到Fast R-CNN(只要将候选域抽取独立出来的,都有这种依赖,即便对目标边缘也做训练预测)。

Fine Tuning and Feature Extraction

Fine Tuning: CNN结构,5个Conv+2个FC+softmax,输入[227x227] RGB。预训练的分类模型,为适应当前的目标检测任务,需要在目标检测数据集上做微调。替换最后的softmax层为新的softmax(N+1)层,输出节点数量为:当前检测任务的所有物品类型N,再+1(背景也占一个节点)。
问题一:怎么标记目标检测时的物品类别?
  对每个候选域,计算IOU,其中IOU>=0.5的则认为label是目标检测的标记类别。否则,则认为label=0。
问题二: CNN模型的输入尺寸是固定的,而候选域的尺寸是大小不一的。
  将候选区域尺寸warp成固定尺寸。使用这些处理过的图像做输入,微调模型。
Feature Extraction: 借助CNN,对候选区域抽提取高维特征feature-map【第5层的pooling输出】。注意,这里使用的候选域仍然是上面的wrap之后的图像。这样就搞到了图像的高维表示,接下来可以拿来做分类判断和边缘预测了。

Linear Classifier and Bounding-box Regression

1) 上面处理得到的feature,每个类别都单独训练一个SVM分类器。
  注意:这里的分类label,使用IOU>=0.3来做标记阈值。
2) 分类预测好了,边缘怎么预测呢?做回归训练。
  并不是直接预测边缘值,而是经过一次转折,预测候选域与真实边缘的比例 t t ,这个比例的计算也是精心设计的。中心坐标值是线性的比例,长宽值是log的比例。
  将目标的真实边缘 G = { G x , G y , G w , G h } 与候选域的边缘 P={ Px,Py,Pw,Ph} P = { P x , P y , P w , P h } 比例确定出来,作为要拟合的值 t t ,关系如下:

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值