1. Receptive Field 計算方法
當前層的stride: 歷史所有層的stride的乘機
當前層的Receptive Field: RF = last_RF + (ksize - 1) * history_stride, 其中, last_RF爲上一層的Receptive Field, ksize爲當前層的kernel size, history_stride爲歷史積累的stride(不包括當前層的stride).
2. 以DenseBox目標檢測中的爲例進行說明
DenseBox是百度發表的一篇針對Object Detection的paper, 網絡的backbone是VGG19.
這裏以paper中描述的conv3_4爲例進行說明, 論文中指出conv3_4的感受野爲48 * 48.
計算過程如下:
Conv Name | ksize | stride | history_stride | last_RF | RF |
Input | -- | -- | -- | -- | 1 |
conv1_1 | 3 | 1 | 1 | 1 | 3 |
conv1_2 | 3 | 1 | 1 | 3 | 5 |
pool1 | 2 | 2 | 1 | 5 | 6 |
conv2_1 | 3 | 1 | 2 | 6 | 10 |
conv2_2 | 3 | 1 | 2 | 10 | 14 |
pool2 | 2 | 2 | 2 | 14 | 16 |
conv3_1 | 3 | 1 | 4 | 16 | 24 |
conv3_2 | 3 | 1 | 4 | 24 | 32 |
conv3_3 | 3 | 1 | 4 | 32 | 40 |
conv3_4 | 3 | 1 | 4 | 40 | 48 |
pool3 | 2 | 2 | 4 | 48 | 52 |
conv4_1 | 3 | 1 | 8 | 52 | 68 |
conv4_2 | 3 | 1 | 8 | 68 | 84 |
conv4_3 | 3 | 1 | 8 | 84 |
100 |
conv4_4 | 3 | 1 | 8 | 100 | 116 |
DenseBox中給出conv4_4的感受野是大概是118 * 118, 與本文計算的差不多.
[Reference]
[1] http://shawnleezx.github.io/blog/2017/02/11/calculating-receptive-field-of-cnn/