关于R-FCN的理解难点之Position-sensitive score map对于平移可变性的本质
理解难点:Position-sensitive score map带来平移可变性的本质
Position-sensitive score map的概念最早来自另一篇实例分割的论文Instance-sensitive Fully Convolutional Networks (https://arxiv.org/pdf/1603.08678.pdf)。图3是示意图,中间的9张图对应Position-sensitive score map的9个维度的输出。拿左上角的图说明:它的每一个点代表该点正好出现在目标左上角的概率(更准确的说应该是得分,因为还没做softmax),也可以理解是该点右下方正好是目标的概率。要注意的是:“目标左上角的概率”的概念并不局限于图中画的绿色框范围,而是整张图上的每一个点,这是新学习者很容易引起误解的地方。同理其余8张图各自对应了目标正上侧、右上侧、左中侧、正中侧、右中侧、左下侧、正下侧、右下侧的概率。在训练时,一个ROI的9个小区域从每张图的对应区域去Pooling出一个结果,组成新的图(图3右侧的9宫格图),如果ROI刚好覆盖ground truth,这个新的区域就标记为前景(label=1)。
这里有个关键点要解释,为什么每张图都能携带相对位置信息?因为从图3提取1~9号小方格时,每个小方格在每张图上的位置并不相同,而是在上下左右方向上有偏移,当组合出来的9宫格对应ground truth时,小方格1就对应了 ground truth左上角的位置,小方格2对应了ground truth正上方的位置,依此类推,所以用这种9宫格训练目标时就有了相对目标位置的信息在里面 。
这种方法相当于k^2个detector以滑窗的形式对全图最后的feature map过一遍,建立了k^2张look up table。不同detector负责检索不同区域,例如一个物体的左上角,中间等。检测是否存在物体的时候,使用滑窗的方式,每确定一个中心块,从中心块的look up table中取出该块的feature map,然后从对应左上角 -> 右下角的feature map中取出对应的小块,把这些小块拼成一个大的feature map box,那么这个box中的**区域就表示mask,但是这个box是不是一个物体还需要额外判断。如下图所示: