Faster Rcnn论文总结

论文:《Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks》

一、 概述

  此论文是由业界大牛何凯明在2015年发表的一篇经典论文,目前最先进的目标检测网络需要先用区域建议算法推测目标位置,像SPPnet和Fast R-CNN这些网络已经减少了检测网络的运行时间,这时计算区域建议就成了瓶颈问题。本文中,我们介绍一种区域建议网络(Region Proposal Network, RPN),它和检测网络共享全图的卷积特征,使得区域建议几乎不花时间。RPN是一个全卷积网络,在每个位置同时预测目标边界和objectness得分。RPN是端到端训练的,生成高质量区域建议框,用于Fast R-CNN来检测。通过一种简单的交替运行优化方法,RPN和Fast R-CNN可以在训练时共享卷积特征。
faster RCNN可以简单地看做区域生成网络+fast RCNN的系统,用区域生成网络代替fast RCNN中的Selective Search方法。本篇论文着重解决了这个系统中的三个问题:
1. 如何设计区域生成网络
2. 如何训练区域生成网络
3. 如何让区域生成网络和fast RCNN网络共享特征提取网络

二、 区域生成网络:结构

Faster Rcnn论文总结_第1张图片

 RPN的核心思想是使用卷积神经网络直接产生region proposal,使用的方法本质上就是滑动窗口。RPN网络结构图如上所示(ZF模型:256维),假设给定600*1000的输入图像,经过卷积操作得到最后一层的卷积feature map(大小约为40*60),最后一层卷积层共有256个feature map。
Region ProposalNetwork(RPN)
Faster Rcnn论文总结_第2张图片
 在这个特征图上使用3*3的卷积核(滑动窗口)与特征图进行卷积,那么这个3*3的区域卷积后可以获得一个256维的特征向量。因为这个3*3的区域上,每一个特征图上得到一个个1维向量,256个特性图即可得到256维特征向量。
 3*3滑窗中心点位置,对应预测输入图像3种尺度(128,256,512),3种长宽比(1:1,1:2,2:1)的regionproposal,这种映射的机制称为anchor,产生了k=9个anchor。即每个3*3区域可以产生9个region proposal。所以对于这个40*60的feature map,总共有约20000(40*60*9)个anchor,也就是预测20000个region proposal。
 后边接入到两个全连接层,即cls layer和reglayer分别用于分类和边框回归。clslayer包含2个元素,用于判别目标和非目标的估计概率。reglayer包含4个坐标元素(x,y,w,h),用于确定目标位置。cls:正样本,与真实区域重叠大于0.7,负样本,与真实区域重叠小于0.3。reg:返回区域位置。
 最后根据region proposal得分高低,选取前300个region proposal,作为Fast R-CNN的输入进行目标检测。

三、 候选区域(anchor)

特征可以看做一个尺度51*39的256通道图像,对于该图像的每一个位置,考虑9个可能的候选窗口:三种面积{1282,2562,5122}× 三种比例{1:1,1:2,2:1}。这些候选窗口称为anchors。
下图示出51*39个anchor中心,以及9种anchor示例。
     Faster Rcnn论文总结_第3张图片
关于anchor的问题:
这里在详细解释一下:
(1) 首先按照尺度和长宽比生成9种anchor,这9个anchor的意思是conv5 feature map 3x3的滑窗对应原图区域的大小.这9个anchor对于任意输入的图像都是一样的,所以只需要计算一次. 既然大小对应关系有了,下一步就是中心点对应关系。
(2) 对于每张输入图像,根据图像大小计算conv5 3x3滑窗对应原图的中心点. 有了中心点对应关系和大小对应关系,映射就显而易见了。

四、 区域生成网络:训练

1) 样本
 考察训练集中的每张图像:
a.  对每个标定的真值候选区域,与其重叠比例最大的anchor记为前景样本 ;
b.  对a)剩余的anchor,如果其与某个标定重叠比例大于0.7,记为前景样本;如果其与任意一个标定的重叠比例都小于0.3,记为背景样本 ;
c.  对a),b)剩余的anchor,弃去不用;
d.  跨越图像边界的anchor弃去不用;
2) 代价函数:
同时最小化两种代价:
a. 分类误差
b. 前景样本的窗口位置偏差
3) 超参数:重点内容
 原始特征提取网络使用ImageNet的分类样本初始化,其余新增层随机初始化。每个mini-batch包含从一张图像中提取的256个anchor,前景背景样本1:1。前60K迭代,学习率0.001,后20K迭代,学习率0.0001。 momentum设置为0.9,weight decay设置为0.0005。
五、 训练4步阶段:(共享特征)

  • 使用在ImageNet上预训练的模型初始化RPN网络参数,微调RPN网络;
  • 使用(1)中RPN网络提取region proposal训练Fast R-CNN网络,也用ImageNet上预训练的模型初始化该网络参数;(现在看来两个网络相对独立);
  • 使用(2)的Fast R-CNN网络重新初始化RPN, 固定卷积层进行微调,微调RPN网络;
  • 固定(2)中Fast R-CNN的卷积层,使用(3)中RPN提取的region proposal对Fast R-CNN网络进行微调;

你可能感兴趣的:(目标检测论文总结)