A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

目标检测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的并集。其它的anchor不参与训练。

样本筛选NMS:

最终会生成很多候选框,之中很多是重叠的。FASTER RCNN只保留准确率大于0.7的目标框,准确率由IoU决定,然后在其中选择top-N,前300个框用于训练。

代价函数定义为:



注意,对回归框坐标的loss,只对正样本进行计算。
---------------------
作者:koibiki
来源:CSDN
原文:https://blog.csdn.net/koibiki/article/details/83538022
版权声明:本文为博主原创文章,转载请附上博文链接!

2 个回复

倒序浏览
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马