目标检测之Faster RCNN分析

基本流程

在这里插入图片描述

  1. 图像输入网络得到特征图
  2. 使用RPN生成候选框,将候选框投影到特征图获得特征矩阵
  3. 对特征矩阵使用ROI pooling得到特征图并展平,得到预测结果

重点解析
RPN在网络中的位置

在这里插入图片描述
在上图中,从feature map层来看,有两个指向上层的箭头,其中左侧指向Region Proposal Network的即为RPN结构,右侧指向Roi pooling与fast rcnn保持一致。

RPN结构

在这里插入图片描述
在feature map上使用 3 ∗ 3 3*3 33滑动窗口,每一个位置得到一个256维向量(不唯一,此处backbone输出的深度为256),然后经过全连接层,得到分类的2k个分数(对应右侧指向的k个anchor,每个anchor两个参数描述前景概率与后景概率),与位置框回归的4k个参数。

特征图的anchor与原图的对应关系
由原图与特征图的放缩比例系数,可计算出特征图的anchor中心对应在原图的坐标,然后在原图上生成一系列指定大小的anchor。
在原图上的anchor,每个位置有9个不同大小,三种面积{ 128 ∗ 128 128*128 128128 256 ∗ 256 256*256 256256 512 ∗ 512 512*512 512512},三种长宽比例{ 1 : 1 1:1 1:1 1 : 2 1:2 1:2 2 : 1 2:1 2:1}

2k参数(每两个一组,表示(前景概率,后景概率)):

( 0.2 0.8) (0.7 0.3) (0.4 0.6) (0.9 0.1)

4k参数(每四个一组,表示第k个anchor的预测回归( d x k , d y k , d w k , d h k d_x^k,d_y^k,d_w^k,d_h^k dxk,dyk,dwk,dhk)):

( 0.12 0.21 0.74 0.33) (0.54 0.16 0.09 0.21)

RPN损失函数

由分类损失与边界框的损失组成
在这里插入图片描述
其中
p i p_i pi是第i个anchor预测为真实标签的概率
p i ∗ p_i^* pi正样本为1,负样本为0
t i t_i ti是预测第i个anchor的边界框的参数
t i ∗ t_i^* ti是真实框的参数
N c l s N_{cls} Ncls是一个batch中的样本数量
N r e g N_{reg} Nreg是anchor位置个数

Faster R-CNN训练

在这里插入图片描述
论文中采取RPN Loss + Fast R-CNN Loss联合训练方法

  1. 使用预训练分类模型初始化卷积网络参数(即上图中的CNN层),单独训练RPN网络(上图左侧箭头部分)
  2. 固定RPN网络的卷积层与全连接层参数,并使用RPN网络生成的目标框训练Fast RCNN网络(上图右侧箭头部分)
  3. 固定训练好的Fast RCNN网络参数,微调RPN网络参数
  4. 固定RPN网络的卷积层与全连接层参数,微调Fast RCNN网络参数(Roi pooling层及以后)

猜你喜欢

转载自blog.csdn.net/qq_44116998/article/details/128427879