如何計算深度學習網絡中的感受野(Receptive Field)(以DenseBox中的網絡爲例)

 

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/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章