Faster RCNN算法演进

目标检测RCNN算法经历了RCNN->FAST RCNN->FASTER RCNN的递进演化。

RCNN原理及实现步骤

1. 在cpu端提取候选框:通过纹理或色彩等传统算法(SelectiveSearch)在原图中找到可能的候选框,通常为1k~2k个

2. 将候选框归一缩放为统一大小,分别输入cnn网络提取特征

3. 使用svm或softmax分类器分类,对于有目标框回归目标框体。

缺点:

需要现在cpu上预处理图片,处理步骤过多,每个region都要进行一次cnn前向传播,多次重复计算

FAST RCNN原理及实现

与RCNN最大的区别在于FAST CRNN是对一整张图进行卷积抽取特征,而RCNN是对每一个proposal分别进行卷积运算。

当FAST RCNN卷积完成后,会连接一个ROI Pooling层。这个层的作用主要是用于特征尺寸变换,其输入是卷积完成的特征图和SelectiveSearch提取出来的Proposal。因为原图与特征图存在对应关系,所以每个proposal也对应特征图上的一个特定区域。ROI Pooling会将该区域均匀地分割为M×N个网格,然后对每个网格做pooling,最后拉平成一个 (M×N)x1 大小的1维向量,传入后续的全连接中做分类和框体回归。
尽管ROI Pooling可以看做是针对ROI区域的feature map的Pooling操作,但因为不是固定尺寸的输入,因此每次的pooling网格大小得手动计算。 

这里写图片描述

FASTER RCNN实现原理

faster rcnn在上面的基础上更近了一步,将proposal的生成部分放到了roi层中。

anchor机制:

生成propoasl的规则基于anchor机制,对于卷积完成的特征图,根据给出一个基准窗大小,按照倍数和长宽比例得到不同大小的窗。例如论文中基准窗大小为16,给了(8、16、32)三种倍数和(0.5、1、2)三种比例,这样能够得到一共9种尺度的anchor。当最终特征图为M×N大小时,所生成的anchor数量就为 M×N×9个。

样本生成机制:

生成anchor后,需要对anchor进行筛选,与实际的样本label组成正样本与负样本。

1)假如某anchor与任一目标区域的IoU最大,则该anchor判定为有目标;

2)假如某anchor与任一目标区域的IoU>0.7,则判定为有目标;

3)假如某anchor与任一目标区域的IoU<0.3,则判定为背景。

所谓IoU,就是预测box和真实box的覆盖率,其值等于两个box的交集除以两个box的并集。正负样本均随机选择128个参与训练,其它的anchor不参与训练。

结果筛选NMS:

最终会生成很多候选框,之中很多是重叠的。FASTER RCNN准确率准确率最大的为基准,对于相互间IoU不大于0.7的目标框,只保留准确率高的候选框。然后在剩余的选择top-N,前300个框用于训练。

代价函数定义为:

注意,对回归框坐标的loss,只对正样本进行计算。

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值