您的位置:首页 > 移动开发 > Objective-C

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

2017-07-27 12:30 746 查看
这篇论文是在前面三篇论文的基础上发展而来的,包括 R-CNN:Rich feature hierarchies for accurate object detection and semantic segmentationSPP-net:Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition 以及Fast R-CNN ,建议先了解这三篇论文然后再来学习这篇论文。总共这四篇论文保持了总体结构的不变性,即都是用proposals和深度网络结合的方法进行目标检测,但又在速度和精度上都有不断提高。在前面三篇论文中,对于一张图片提出proposals的方法采用的是selective search,但是selective search的方法是非常耗时间的,一般给定一张图片,执行selective search算法需要消耗2s的时间,相比Fast R-CNN中检测模块一张图片只要0.2s的时间,selective search占据了整个检测算法的大多数时间,因此如何快速提出proposals也成为了R-CNN系列目标检测方法中一个亟待解决的问题。这篇论文主要解决的就是这个问题,方法是作者提出了一个Region Proposal Network (RPN),用来进行替换selective search进行proposals的提出,并且该网络和目标检测网络比如Fast R-CNN共享了卷积层的参数,因此只需要在Fast R-CNN的基础上花额外很少以至于可以不计的时间,便可以网络proposals的提出。下面就来介绍这篇论文的主要部分。主要分两个部分讲,一个是介绍RPN网络的设计,一个是介绍如何让RPN和Fast R-CNN共享特征。

[1]RPN网络的设计

按照论文的思路,这部分分为三个模块,分别是Anchors的设计、损失函数(Loss Function)的定义以及训练RPN网络。

[1.1]anchors的设计

首先说什么是anchors,一个anchor就是以最后一层卷积层输出的feature map的一个像素点为中心,分别以k个w和h为宽高的矩形,w、h的取值准则是以该w、h以及中心点为矩形,将其对应到原图中的矩形框的面积和宽高比分别满足事先设定好的k中情况。也就是说,feature map上的一个anchor就对应着原图中的一个proposal。由于对于feature map上的每一个点都进行这个操作,所以当feature map的尺寸为WH的时候,就会产生WHK个anchors,也就对应原图中的WHK个proposals。关于anchor的进一步讨论可以参考链接。正是由于anchor的设计加入了多尺度,使得算法可以不用对图像进行金字塔变换就可以对多尺度的目标有较好的识别率。

[1.2]损失函数(Loss Function)的定义

为了训练RPN网络,对每一个anchor都赋予一个二元的标签,即是物体或者不是物体,如果一个anchor和真值矩形对应的anchor有最大的交并比(Intersection-over-Union)或者一个anchor与真值矩形对应的anchor的交并比大于0.7,则将其标为正样本,如果一个anchor和所有的真值矩形对应的anchor的交并比都小于0.3的话,则将其标为负样本。此外的所有anchor都不管了。损失函数定义如下:



i表示的是一个mini-batch中,anchor的索引,pi表示的是网络预测的第i个anchor是物体的概率。如果一个anchor是正样本,那么真值pi*就是1,反之为0。ti是网络预测的第i个anchor的坐标参数,而如果这个anchor是正样本的话,ti*就是与这个anchor相对应的真值anchor的坐标参数。而事实上,也只有pi*=1的anchor才能参与到损失函数的计算中来。Ncls是mini-batch的size,即图片的个数,而Nreg则是anchor的个数。

[1.3]训练RPN网络

在每一次SGD使用的一个mini-batch中,从mini-batch的每一个图片中,随机抽取128个正样本的anchor和128个负样本的anchor,所有的新的网络层都以0均值、0.01标准差的高斯分布进行初始化,其它在Fast R-CNN就有的卷积网络参数用在imagenet上训练的参数初始化,在前60k个mini-batch中,学习率设为0.001,接下来的20kmini-batch的训练中学习率设为0.0001,momentum设为0.9,decay设为0.0005。

[2]RPN和Fast R-CNN共享特征

作者采用四步训练法:

1)单独训练RPN网络,网络参数由预训练模型载入;

2)单独训练Fast-RCNN网络,将第一步RPN的输出候选区域作为检测网络的输入。具体而言,RPN输出一个候选框,通过候选框截取原图像,并将截取后的图像回归。截止到现在,两个网络并没有共享参数,只是分开训练了;

3)再次训练RPN,此时固定网络公共部分的参数,只更新RPN独有部分的参数;

4)那RPN的结果再次微调Fast-RCNN网络,固定网络公共部分的参数,只更新Fast-RCNN独有部分的参数。

至此,网络的结构和训练方法就此结束了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐