感受野

感受野

概念

感受野(Receptive Field)的定义是卷积神经网络每一层输出的特征图(feature map)上的像素点在输入图片上映射的区域大小。即特征图上的一个点跟原图上有关系的点的区域。
感受野被称作是CNN中最重要的概念之一,目标检测流行的算法比如SSD,Faster RCNN等中的 prior box 和 anchor box的设计都是以感受野为依据做的设计。

计算

原始输入图大小为 \(7 \times 7\),如下所示:

网络层 kernel deepth strids padding input output feature
conv1 [3,3] 1 1 VALID [7,7,1] [5,5,1] 3
conv2 [3,3] 1 1 VALID [5,5,1] [3,3,1] 5
其中输出的尺寸如下:

conv1:\(\frac{(7-3+1)}{1}=5\)

conv2:\(\frac{(5-3+1)}{1}=3\)

同时,我们可以知道原始输入的感受野是1,conv1层感受野是3conv2层感受野5
最终我们可以得出,一个[5,5]卷积核感受野与两个[3,3]卷积核的感受野等效。一个[7,7]卷积核的感受野和3个[3,3]卷积核的感受野等效。

感受野的计算公式为
\begin{equation}
r_n = r_{n-1}+(k_n - 1)\prod_{i=1}^{n-1}s_i
\end{equation}
其中\(r_{n-1}\)表示上一层感受野大小,\(k_n\)表示本层卷积核尺寸,而\(S_i\)表示卷积步幅大小
例如:
conv1:\(3 \times 3\) strides = 1 valid
conv2:\(3 \times 3\) strides = 1 valid
conv3:\(3 \times 3\) strides = 1 valid
conv4:\(3 \times 3\) strides = 1 valid
maxp:\(2 \times 2\) strides = 2
\((计算感受野时,maxp 看做 conv:2 \times 2, strides = 2)\)

感受野:
原图:1
conv1:\(1+(3-1)=3\)
conv2:\(3+(3-1) \times 1 = 5\)
conv3:\(5+(3-1) \times 1 \times 1 = 7\)
conv4:\(7+(3-1) \times 1 \times 1 \times 2 = 11\)
maxp:\(11+(2-1) \times 1 \times 1 \times 2 \times 1 = 13\)

posted @ 2021-02-28 23:58  iamwasabi  阅读(653)  评论(0编辑  收藏  举报