写在前面:下面讨论中Kernel Size为奇数,因为这样才能方便一致的确认Kernel中心。
在Fast RCNN中,为了大大减少计算量,没有进行2k次运算前向运算,而是进行了1次运算,然后在从pool5中crop出SS图片所对应的Feature map,这里详细的介绍一下是如何实现的。在CNN中下一层Feature map大小的计算中已经提到了如何down to up来计算Feature map,其中最关键的部分就是除了最后一个的长度是K以外,前面所有的长度都是S。
下面先画一个图来描述具体的对应关系。
画是挺好画的,可是如何用公式来进行描述呢?
首先,对于右图上的任意一点(x,y)应该承认,从0到x-1的每一个点在左图中对应的长度应该是S。可以这样理解,将(x,y)当作是右图的右下角,那么这就回到了《CNN中下一层Feature map大小的计算》中的问题。应该理解了吧,如果不理解那就自己画一下。
对于x这点,对应是Kernel的中心,因此,对应的坐标应该是$(x-1)*S+frac{K-1}{2}+1$。
如果考虑到padding的话,应该在减去padding的值,因此最后的公式为:$(x-1)*S+frac{K-1}{2}+1-padding$。
Fast RCNN中是找到SS中左上角和右下角在Pool5 Feature Map中的位置,然后crop出来,直接将其作为SS经过CNN网络后对应的Feature Map,就这样子。
其实这个东西用语言描述还是挺弱的,还是自己多画一下,体会一下,这个东西不复杂。