FaceBoxes的感受野尺寸的计算
2019-10-18 本文已影响0人
Jinglever
转载请注明出处:https://www.jianshu.com/p/cd76d16cbc46 如果觉得有用,麻烦点个赞噢~
在FaceBoxes的论文里,作者给出了这个图:
image.png
其中,左下角的表格里,分别给出了Inception3、Conv3_2、Conv4_2三层的Default Anchor尺寸以及感受野尺寸。
我一直纳闷,为啥感受野的尺寸有7个呢?为啥是这些尺寸呢?
经过查阅关于感受野的资料,有了两点理解:
- 感受野是feature map的属性,跟anchor无关。
- 感受野尺寸的计算公式:
-
其中,表示第 i 层在第 j-1 层上的感受野,表示第 i 层在第 j 层上的感受野,i 是大于 j 的。是第 j 层的步长,是第 j 层的卷积核尺寸(比如对于3x3的卷积核,K=3) - 上面公式可以转换成:
其中,表示第 i 层在原始图像上的感受野,表示第 i 层在第 j 层上的感受野,表示第 j 层在原始图像上的感受野,而表示将第 1 层一直到第 j 层的步长相乘到一起。这条公式就可以很方便的顺着网络从前往后计算各层的感受野了。
先给出一张手推FaceBoxes在Inception3分叉出来经Multi-task Loss提取层后得到的feature map的感受野:
手推感受野
最后算出来7个感受野尺寸,跟论文里的对应上了。
-
-
在Inception1层之前,每一层的感受野尺寸只有一个。
-
经过Inception1层后,感受野有了三个不同的尺寸:79x79, 143x143, 207x207。由于Inception网路最后是将分支拼接在一起输出的,所以经过Inception层后输出的feature map本身同时拥有不同尺寸的几个感受野,分布在feature map的不同位置上。
-
经过Inception2层后,得到了5个不同的感受野尺寸:79x79, 143x143, 207x207, 271x271, 335x335。
-
经过Inception3层后,得到了7个不同的感受野尺寸:79x79, 143x143, 207x207, 271x271, 335x335, 399x399, 463x463。
-
根据论文,Inception3的输出,还要经过 3x3x(4x21) 即 3x3x84 的卷积层,然后才在输出的feature map上计算anchor。这个层feature map的感受野尺寸有:143x143, 207x207, 271x271, 335x335, 399x399, 463x463, 527x527。这就是FaceBoxes可以检测到小脸的原因之一(另一个原因是,anchor也有不同尺寸)。