Faster-RCNN理论合集

网络进化历程:

R-CNN------Fast-RCNN------Faster-RCNN

R-CNN是利用深度学习进行目标检测的开山之作

 SVM是二分类算法

 

 将候选框输入到深度网络之前,首先进行一个Resize处理,统一缩放成227*227的大小

 每一个候选框与4096*20的权值矩阵相乘,都会得到一个概率向量

假设第一列类别为猫

那么2000*20矩阵的第一列就对应的是所有候选框为猫的概率

第一列的第一个元素就对应的是第一个候选框为猫的概率。。。

非极大值抑制算法(NMS)

 对于每一个类别,

首先去寻找得分最高的目标

然后计算其他目标与该目标的iou值,再对每一个边界框与最高得分边界框的iou值进行一个判断

如果该iou值大于我们给定的阈值的话,那我们就删除它,将最高得分的目标给存起来

在剩下的边界框中再去寻找得分最高的目标

然后重复这个过程

如上图所示。通过SS算法得到了一系列的边界框,然后通过SVM算法之后,上面的花在这些边界框当中概率最高的是0.98的候选框,另外一个的评分是0.86

然后计算这两个边界框的交并比,如果他们计算之后的iou大于我们给定的阈值,就认为这两个目标是同一个目标,这样我们就把该概率较低的0.86边界框给删掉

最终我们所期望的就是一个完美的边界框。

 对NMS处理之后剩余的边界框进一步筛选的理解:

去保留那些与我们真实标注的目标边界框(Ground Truth)有相交并且iou要大于某一阈值

不满足条件的就对他进行删除。

建议框(Region Proposal)

实际标注框(Ground Truth)

预测框(Bounding Box)

R-CNN分为以下4个模块

 

 Fast-RCNN

与R-CNN一样,Backbone使用的都是VGG16

 之前的RCNN是将每一个候选区域分别送入网络,得到特征向量

Fast-RCNN直接将整幅图像输入到CNN网络中,得到相应的特征图,然后将候选框映射到特征图上面,来得到特征矩阵

ROI(Region of interest)感兴趣区域

 训练数据并不是把2000个候选框全都训练一遍,只需要其中的一小部分就可以了

而且采样分为正样本和负样本

正样本就是我们候选框中确实存在我们检测目标的样本(iou>0.5)

负样本就简单理解为背景,里面没有我们检测的目标

有了训练样本之后,我们再将训练样本的候选框,通过Roi Pooling层缩放到统一的尺寸 

Roi pooling layer工作原理 

 将得到的矩阵划分为7*7,再对每一个区域进行max pooling

最后就得到了一个7*7的特征矩阵

无论输入的特征矩阵是什么尺寸,都统一缩放为7*7大小

 缩放统一尺寸之后,进行一个展平处理,再通过两个全连接层得到 Roi feature vector(ROI特征向量)

然后并联两个全连接层

其中一个全连接层用于我们的目标概率的预测

    这个分类器会输出N+1个类别的概率,第一个概率就是当前候选框为背景的概率,剩下20个就对应类别的概率

另外一个全连接层用于我们边界框回归参数的预测

绿色的是Ground Truth(真实边界框) 黄色的是通过SS算法生成的候选边界框,红色的是预测边界框

 Fast-RCNN的损失函数

 

 R-CNN或者Fast-RCNN耗时过长是因为SS算法

Faster-RCNN将通过RPN来生成候选框

RPN结构

每个anchor生成了两个概率,一个是背景的概率,一个是前景的概率

所以K个anchor生成了2K个scores

每个anchor又会生成4个边界框参数

所以K个anchor生成4K coordinates

anchor就是下图黄色的方框 

 每个地方会生成9个anchor

 滑动窗口实际上就用3*3的卷积(stride=1 padding=1)来处理的

intermediate layer(中间层)

正样本:

1.iou大于0.7

2.最大的iou(都没有达到0.7的情况下)

RPN损失函数

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值