RPN(区域生成网络)流程详细解释
看RPN网络基本是从faster-RCNN来的。看的有点迷糊。后来看了几篇博客感觉有点懂了。记录下来防止自己忘了吧。
明确输入输出:输入是CNN卷积后的特征图 输出是候选框图 如下图。知乎上盗了张图。 感觉这个是最形象的
先形象解释一下:左侧是特征图 ,立方体厚度决定于特征图维度。右侧红框就是经过该网络后提取出的感兴趣ROI区域。 这个特征图生成方法很多了,例如 ZF,VGG ,Resnet 什么的都可以。这里就不细说了。RPN不关注具体目标是啥,是车,是人或者狗,楼房都可以。它只是将框内认为是目标,框外认为是背景,做了个二分类。至于框内目标具体是啥,最终是交给分类网络去做。结果会略显潦草,后面会对边框进行提炼。
具体做法:以ZF网络计算的特征图作为输入来说吧(不同网络主要是特征图的尺寸不一致,RPN实现都是一致的)。
1.计算RPN的输入特征图(又见无耻的盗图....)
首先输入图像是224*224*3 然后开始各种卷积 池化。卷积核大小,个数,步长,填充参数都在图上可见。最终,rpn是选择conv5的输出,也就是13*13*256送给RPN网络的。
2.生成Anchors
所谓Anchors 就理解成9个不同的框好了,特征图上的每个点都有一个Anchors。这九个不同的框按大小比例生成的。这个框是对应于原图,就是图1右侧那个红色的。这个框的中心是特征图的每一个点。下面这个就是原图,红色点就是特征图上的点。(接着盗图)