Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

摘要:Faster R-CNN采用Region Proposal Networks(RPN) + Fast R-CNN,RPN是一个全卷积网络在每个位置同时预测目标的边缘以及目标和非目标的概率,它与Fast R-CNN共享图像的卷积特征,产生几乎不耗时的Region Proposals,用于之后Fast R-CNN做检测,最后通过简单的交替训练优化方式训练网络。
1. Region Proposal Network
Region Proposal Network
首先一幅图片先通过ZF模型或VGG模型生成一幅特征图,之后再通过3×3的卷积层分为两路,一路通过1×1的卷积层输出目标和非目标的概率,另一路输出box相关的四个参数,包括box的中心坐标x和y,宽w和长h。
2. Anchor
Anchor是RPN网络的核心。由于目标大小和长宽比例不一,需要多个尺度的窗。anchor给出一个基准窗大小,按照倍数和长宽比例得到不同大小的窗。例如论文中基准窗大小为16,给了(8,16,32)三种倍数和(0.5,1,2)三种比例,这样能够得到一共9种尺度的anchor。对于一个大小为W×H的特征图,一共有W×H×9个anchors。
3. RPN训练
为了训练RPN,我们为每一个anchor分配了一个二进制标签,是否有目标用0/1来表示,判断有目标的原则有两个:1)对于一个ground-truth box,能够使IOU(Intersection-over-Union)最大的anchor,2)对于一个anchor,和任意一个ground-truth box的IOU能够大于0.7。当对于一个anchor,和所有ground-truth boxes的IOU小于0.3被认为是没有目标。不被判定为有目标或是没目标的标签设置为-1,对之后的训练没有贡献。
因此,代价函数定义为:
loss_rpn
式中,i是anchor的索引,pi是anchor i有目标的预测概率值,pi*是标签,正样本是1,负样本是0,ti是一个预测边界框的回归值,ti*是边界框的回归值。Lcls是计算两类分类问题的对数损失,Lreg是损失函数smooth L1,pi*Lreg意味着这个损失值只对标签为1的anchor计算损失值,最后用Ncls,Nreg标准化,加入平衡权重λ
回归
4. 优化
RPN网络可以通过反向传播和SGD来训练,但是在对所有的anchors优化的时候,会偏向负样本,因为它们占主导地位,因此我们随机选择256个anchors,正样本和负样本的比例为1:1,当正样本数目小于128时,用负样本来补充。
所有的新层的权重被一个均值为0、方差为0.01的高斯分布来初始化,其他层的权重用ImageNet 分类模型来初始化,在训练PASCAL数据集时前60k次学习率取0.001,接下来的20k次学习率取0.0001。
5. RPN与Fast R-CNN共享卷积特征
提出了一个RPN与Fast R-CNN共享卷积层的算法,定义一个网络包括RPN和Fast R-CNN并且一起优化不是容易的,因为Fast R-CNN的训练是基于固定的proposals,并且对于在学习Fast R-CNN的同时改变proposals会不会收敛这个问题不清楚,因此提出了一个4步训练算法通过交替优化来学习共享特征。
1) 单独训练RPN网络,网络参数由预训练模型载入;
2) 单独训练Fast-RCNN网络,将第一步RPN的输出候选区域作为检测网络的输入。网络参数由预训练模型载入,截止到现在,两个网络并没有共享参数,只是分开训练了;
3) 再次训练RPN,用检测网络来初始化,固定网络公共部分的参数,只更新RPN独有部分的参数;
4) 那RPN的结果再次微调Fast-RCNN网络,固定网络公共部分的参数,只更新Fast-RCNN独有部分的参数。
6. 细节
对于anchors,采用的3种尺度,128^2,256^2,512^2,3种长宽比,1:1,1:2,2:1,对于一个1000×600的图像,大概能产生20k(60×40×9)个anchors,去除超出边界的还剩6k个。
一些RPN proposals彼此相似度高,为减少冗余,基于这些proposals的分数对它们进行NMS,设定IOU阈值为0.7,剩余大约2000个。
7. 实验
训练在PASCAL VOC 2007数据集上,5k个训练样本,5k个测试样本,20个目标种类,评估指标mean Average Precision (mAP),实现了在PASCAL VOC 2007数据集上73.2% mAP,在2012上70.4% mAP。

mAP :目标检测中衡量识别精度的指标是mAP(mean average precision)。多个类别物体检测中,每一个类别都可以根据recall和precision绘制一条曲线,AP就是该曲线下的面积,mAP是多个类别AP的平均值
P(Precision)正确率。对于一个查询,返回了一系列的文档,正确率指的是返回的结果中相关的文档占的比例,定义为:precision=返回结果中相关文档的数目/返回结果的数目
R(Recall)召回率则是返回结果中相关文档占所有相关文档的比例,定义为:Recall=返回结果中相关文档的数目/所有相关文档的数目

猜你喜欢

转载自blog.csdn.net/weixin_38900691/article/details/79416124