感受野计算问题
我覺得以下兩篇文章,在感受野的含義和計算上,說的是比較好的。
1、深度學習:VGG(Vision Geometrical Group)論文詳細講解_HanZee的博客-CSDN博客
2、關于感受野的總結 - 知乎?
我們知道一個圖片經過了一個7 * 7卷積的feature map的感受野是7 * 7,而圖片經歷了三個3 * 3后的frature map也是7 * 7
這時候我們就說第三次卷積后的輸出相對于最開始輸入的感受野大小也是7*7。
?所以感受野一定要提到一個“相對的”概念,相對于上一層的輸入以及相對于最開始的網絡輸入肯定是不同的!
另外注意:?= 1,這個很容易理解,最初始的層(還未進行)的感受野自然是相對自己,那么相對于自己自然是1個像素對應1個像素,這個感受野自然就是1了。
我們接下來特別進一步解釋和理解一下感受野:
前面所說的都是理論上得感受野,而特征得有效感受野(實際起作用的感受野)是遠小于理論感受野的。
如下圖所示。具體數學分析比較復雜,不再贅述,感興趣的話可以參考論文[2]。
下面我從直觀上解釋一下有效感受野背后的原因。以一個兩層??,
的網絡為例,該網絡的理論感受野為5。
RF1 = RF0 + (kernelsize - 1)* stride = 1 + 2 * 1=3
RF2?= RF1?+ (kernelsize - 1)* stride = 3?+ 2 * 1=5
?圖片來源:關于感受野的總結 - 知乎
現在流行的目標檢測網絡大部分都是基于anchor的,比如SSD系列,v2以后的yolo,還有faster rcnn系列。
基于anchor的目標檢測網絡會預設一組大小不同的anchor,比如32x32、64x64、128x128、256x256,這么多anchor,我們應該放置在哪幾層比較合適呢?這個時候感受野的大小是一個重要的考慮因素。
放置anchor層的特征感受野應該跟anchor大小相匹配(特征感受野這個怎么理解呢,就是該層特征圖所對應網絡最開始輸入的感受野大小),感受野比anchor大太多不好。
如果感受野比anchor小很多,就好比只給你一只腳,讓你說出這是什么鳥一樣。如果感受野比anchor大很多,則好比給你一張世界地圖,讓你指出故宮在哪兒一樣。
《S3FD: Single Shot Scale-invariant Face Detector》這篇人臉檢測器論文就是依據感受野來設計anchor的大小的一個例子,文中的原話是
we design anchor scales based on?the effective receptive field《FaceBoxes: A CPU Real-time Face Detector with High Accuracy》這篇論文在設計多尺度anchor的時候,依據同樣是感受野,文章的一個貢獻為
We introduce the Multiple Scale Convolutional Layers(MSCL) to handle various scales of face via?enriching
receptive fields and discretizing anchors over layers
引文:
[2]Understanding the Effective Receptive Field in Deep Convolutional Neural Networks
總結
- 上一篇: 怎么快速暂停Google账户广告系列?
- 下一篇: Reds笔记