RPN的全名是Region Proposal Network,RegionProposal的中文意思是“区域选择”,也就是“提取候选框”,所以RPN是用于提取候选框的网络

1. RPN的意义RPN首次映入世人眼帘的是Faster RCNN这一结构,专门用于候选框架的提取。 在RCNN和Fast RCNN等物体检测架构中,候选框的提取方法通常为Selective Search,与传统方法相比比较耗时,CPU需要时间,因此作者提出了RPN,专门用于候选框的提取。 一方面RPN省时,另一方面RPN容易与Fast RCNN结合,称为一体。

RPN的引入,在真正意义上可以说是将整个物体检测过程整合到一个神经网络中。 该网络结构称为Faster RCNN; Faster RCNN=RPN Fast RCNN

图1 Faster RCNN的整体结构

可见RPN在整个Faster RCNN中的位置位于中间;

2. RPN的运作机制先看看Faster RCNN原文的图:

图2 RPN的结构

图2示出了RPN的整个过程,其中一个特征图通过滑动窗口处理获得256维特征,然后通过两次全连接获得结果的2k个分数和4k个坐标; 我相信大家一定有很多不明白的事情; 我逐一列举相关问题:

RPN的输入特征图是指哪个特征图? 为什么要使用滑动窗口? 文中不是说要使用CNN吗? 如何获得256维特征向量? 2k和4k的k指的是什么? 你是怎么得到图右边不同形状的矩形和Anchors的? 首先回答第一个问题,RPN的输入特性图是图1的Faster RCNN的公共特征图,也称为共享特征图,主要由RPN和ROI轮询共享;

针对第二个问题,可以认为3×3的滑动窗口对特征图进行了3×3的卷积操作,最后得到了通道数为256的特征图。 尺寸与共同特征图相同,假设为256x(hxw )。

对于第三个问题,可以认为该特征图近似地有H x W个向量,每个向量为256维。 于是,图中的256维指向其中一个矢量。 并对各特征向量进行两次全连通操作,一个得到两个分数,一个得到四个坐标。 由于对各向量进行相同的全连接操作,因此与对整个特征图进行2次11的卷积相同。 可以得到2 x H x W和4 x H x W大小的特征图。 换句话说,有H x W的结果,每个结果包含两个分数和四个坐标。

图3 问题1,2,3的解答描述图

这里有必要说明为什么是两个分数。 RPN是候选框架,不需要判断类别,所以只要区分是否是物体就可以了。 这样的话,有两个分数,前景(物体)的分数,背景的分数。

另外,必须记住,四个坐标是指针相对于原始图中坐标的偏移,首先是原始图

这个时候,读者一定有疑问。 原图是从哪里来的坐标?

现在我来回答最后两个问题:

首先,我们知道有H x W个结果。 随机得一分。 它和原图一定是一对一的映射关系。 因为原图和特征图的大小不同,所以特征图上的一点与原图对应的一定是一个框。 但是这个框很小,比如8 x 8。 这里的8是原始图和特征图的比率。 因此,这不是我们想要的框架。 那么,请想象一大堆框架,框架的左上角或框架的中心是“锚点”。 具体来说,聪明的读者一定推测了k个(即图中的K anchor boxes ) )锚产生的k个框架。 换句话说,如果有H x W个点,每个点对应于原始图有k个框,那么H x W x k个框就会静静地在原始图中,而RPN的结果实际上是判断这些框是否是物体,那么k个框有多大? 这里是预设的,共有9种组合,所以k为9。 最后我们的结果是针对这9种组合,所以有H x W x 9个结果,也就是18个分数和36个坐标;图4 问题4,5的解答描述图

3. RPN的整个流程回顾最后,让我们再次看看RPN的整个过程。 首先通过一系列的卷积得到共同的特征图。 假设他的大小是N x 16 x 16。 接下来进入RPN阶段。 首先经过3 x 3的卷积,得到256 x 16 x 16的特征图。 也可以视为16 x 16个256维特征向量。 然后,经过两次11卷积,分别得到181616的特征图和36 x 16 x 16的特征图,即,16169的结果,每个结果包含两个分数和四个坐标,与预先定义的Anchors结合,并经过后处理整个过程如图5所示:

图5 RPN整个流程