RPN作用:
就是提取出目标的候选区域,为后续网络进行精细的微调。在图像检测上,确定一个目标框需要4个量,即4个坐标;确定框里有没有目标需要2个量,即前景还是背景。获得这些潜在区域,并完成初步的定位后,RPN的作用也就完成了。
RPN作用对象:
目标框的确定不是直接回归得到的,因为直接预测难度很大,而且不准。所以,一般预测都是相对某个基准的偏移量,参考的基准是特征图,所以RPN的作用对象是特征图。
RPN作用过程:对特征图上的每一个点,映射到原图对应的区域,以这个区域的中心点为锚点,预先放置一些框(比如Faster-RCNN 就设置了不同尺度以及不同宽高比的9个框),即anchor,以这些anchor作为参考的基准。再把预测的偏移量作用在这些基准框上,就得到了预测的候选框。
RPN图解:
首先原始图像经过特征提取网络得到feataure map,在每个feature map上,我们可以预测一个框的4个坐标值(偏移量),以及是不是目标;feature map上每个点对应原图的一个区域,以原图区域的中心点为锚点,可以放置4个预选框,这些预选框是规整的放置的,跟目标没有任何关系。把这些框与预测值进行结合,就得到了真实的预选框。可以看出,
RPN预测量:
就是为了对预先设置的框进行一些移位和缩放的操作,让这些框更贴近真实目标。
RPN细节:
一个特征图(Faster RCNN的公共Feature Map)经过sliding window处理,得到256维特征,对每个特征向量做两次全连接操作,一个得到2个分数,一个得到4个坐标{然后通过两次全连接得到结果2k个分数和4k个坐标[k指的是由锚点产生的K个框(K anchor boxes)]}(2个分数,因为RPN是提候选框,还不用判断类别,所以只要求区分是不是物体就行,那么就有两个分数,前景(物体)的分数,和背景的分数; 4个坐标是指针对原图坐标的偏移,首先一定要记住是原图)预先设定好共有9种组合,所以k等于9,最后我们的结果是针对这9种组合的,所以有H x W x 9个结果,也就是18个分数和36个坐标。
Faster RCNN中RPN:
原始图像首先经过卷积层进行特征提取, 得到特征图, 然后经过RPN模块进行区域提取。 RPN的模块包含2个分支, 上面一个分支通过softmax预测某一个框是背景还是目标, 下面的分支预测框的4个偏移量,因为Faster RCNN 在每个锚点上预设了9个先验框, 所以在特征图的每个点上, 对应18个分类概率和36个框的偏移量。
得到Proposal后, 把这些框的信息在映射到特征图上, 由于框的大小不一样, 所以需要ROIPooling操作, 把候选区域的特征图整成一样的大小, 以便进入后续的fc层进行进一步的微调。