Faster R-CNN原理

简介

Fast R-CNN看似很完美了,但在Fast R-CNN中还存在着一个需要解决的问题,他需要先使用Selective Search提取框,这个方法比较慢,有时测试一张图片,大部分时间不是话在计算神经网络分类上,而是话在Selective Search上,在Faster R-CNN上,用RPN网络(Region Proposal Network)取代了Selective Search,不仅速度得到了提高,而且还或得了更加精确的结果。

RPN网络

RPN网络结构如图所示:


      RPN还是需要先试用一个CNN网络对原始图片提取特征。不妨设这个前置的CNN提取的特征为51*51*256,即高度为51,宽为39,通道数为256.这个卷积特征再进行一次卷积计算,保持款,高,通道不变,再次得到一个51*39*256的卷积特征,称它一共有51*39个‘位置’。让新的卷积特征的每一个‘位置’都‘负责’原图中对用位置9中尺度的框的检测,检测的目标是判断框中是否存在一个物体,因此共有51*39*9个‘框’。在Faster R-CNN的原论文中,将这些框都统一称为‘anchor’。

anchor的9中尺寸如图所示,他们的面积分别。每种面积又分为3中长宽比,分别是2:1,1:2,1:1。anchor 的尺寸实际上是属于可调的参数,不同任务可以选择不同的尺寸。·


对于51*39个位置和51*39*9个anchor,如下图展示了每一个位置的计算步骤。设k为单个位置对应的anchor的个数,此时k=9.首先使用一个3*3的滑动窗口,将每一个位置转换为一个统一的256为特征,这个特征对应了两个部分的输出。一部分表示该位置的anchor为为题的概率,这部分的总输出长度为2*k(一个anchor对应两个输出:是物体的概率+不是物体的概率)。另一部分为框回归,框回归的含义与Fast R-CNN中一样,一个anchor对应4个框回归参数,一次你框回归部分的总输出的长度为4*k。


Faster R-CNN使用RPN生成候选框后,剩下的网络结构和Fast R-CNN中的结构一模一样。在训练规程中,需要训练两个网络,一个RPN网络,一个得到框之后使用的分类网络。通常的做法是交替训练,即在一个batch内,先训练RPN网络一次,再训练分类网络一次。

猜你喜欢

转载自blog.csdn.net/pursuit_zhangyu/article/details/80152090