1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        徹底搞懂感受野的含義與計算

        共 4237字,需瀏覽 9分鐘

         ·

        2020-10-18 00:03

        點擊上方AI算法與圖像處理”,選擇加"星標"或“置頂”

        重磅干貨,第一時間送達

        作者丨shine-lee
        來源丨h(huán)ttps://www.cnblogs.com/shine-lee/p/12069176.html
        編輯丨極市平臺

        導(dǎo)讀

        ?

        本文解釋了感受野的概念,并舉出了感受野大小及中心的計算公式,是一篇很好的入門文章。


        什么是感受野


        The receptive field is defined as the region in the input space that a particular CNN’s feature is looking at (i.e. be affected by).
        —— A guide to receptive field arithmetic for Convolutional Neural Networks
        感受野(Receptive Field),指的是神經(jīng)網(wǎng)絡(luò)中神經(jīng)元“看到的”輸入?yún)^(qū)域,在卷積神經(jīng)網(wǎng)絡(luò)中,feature map上某個元素的計算受輸入圖像上某個區(qū)域的影響,這個區(qū)域即該元素的感受野。
        卷積神經(jīng)網(wǎng)絡(luò)中,越深層的神經(jīng)元看到的輸入?yún)^(qū)域越大,如下圖所示,kernel size 均為3×3,stride均為1,綠色標記的是Layer2每個神經(jīng)元看到的區(qū)域,黃色標記的是Layer3 看到的區(qū)域,具體地,Layer2每個神經(jīng)元可看到Layer1上3×3 大小的區(qū)域,Layer3 每個神經(jīng)元看到Layer2 上3×3 大小的區(qū)域,該區(qū)域可以又看到Layer1上5×5 大小的區(qū)域。

        https://www.researchgate.net/publication/316950618_Maritime_Semantic_Labeling_of_Optical_Remote_Sens

        所以,感受野是個相對概念,某層feature map上的元素看到前面不同層上的區(qū)域范圍是不同的,通常在不特殊指定的情況下,感受野指的是看到輸入圖像上的區(qū)域。
        為了具體計算感受野,這里借鑒視覺系統(tǒng)中的概念:
        receptive field=center+surround
        準確計算感受野,需要回答兩個子問,即視野中心在哪和視野范圍多大。
        只有看到”合適范圍的信息”才可能做出正確的判斷,否則就可能“盲人摸象”或者“一覽眾山小”;
        目標識別問題中,我們需要知道神經(jīng)元看到是哪個區(qū)域,才能合理推斷物體在哪以及判斷是什么物體。
        但是,網(wǎng)絡(luò)架構(gòu)多種多樣,每層的參數(shù)配置也不盡相同,感受野具體該怎么計算?

        約定

        在正式計算之前,先對數(shù)學(xué)符號做如下約定:

        https://medium.com/mlreview/a-guide-to-receptive-field-arithmetic-for-convolutional-neural-networks-e0f514068807
        k:kernel size
        p:padding size
        s:stride size
        Layer:用Layer表示feature map,特別地,Layer0為輸入圖像;
        Conv:用Conv表示卷積,k、p、s為卷積層的超參數(shù),Convl的輸入和輸出分別為Layerl?1和Layerl+1;
        n:feature map size為n×n,這里假定height=width;
        r:receptive field size為r×r,這里假定感受野為方形;
        j:feature map上相鄰元素間的像素距離,即將feature map上的元素與輸入圖像Layer0 上感受野的中心對齊后,相鄰元素在輸入圖像上的像素距離,也可以理解為 feature map上前進1步相當于輸入圖像上前進多少個像素,如下圖所示,feature map上前進1步,相當于輸入圖像上前進2個像素,j=2;

        https://github.com/vdumoulin/conv_arithmetic/blob/master/gif/padding_strides.gif

        start:feature map左上角元素在輸入圖像上的感受野中心坐標(start,start),即視野中心的坐標,在上圖中,左上角綠色塊感受野中心坐標為(0.5,0.5),即左上角藍色塊中心的坐標,左上角白色虛線塊中心的坐標為(?0.5,?0.5);
        l:l表示層,卷積層為Convl,其輸入feature map為Layerl?1,輸出為Layerl。
        下面假定所有層均為卷積層。

        感受野大小

        感受野大小的計算是個遞推公式。
        再看上面的動圖,如果feature map 上的一個元素A看到feature map?Layer1 上的范圍為3×3(圖中綠色塊),其大小等于kernel size k2,所以,A看到的感受野范圍r2等價于Layer1上3×3窗口看到的Layer0 范圍,據(jù)此可以建立起相鄰Layer感受野的關(guān)系,如下所示,其中rl為Layerl的感受野,rl?1為?Layerl?1 的感受野,
        Layerl 一個元素的感受野rl等價于Layerl?1 上k×k個感受野的疊加;
        Layerl?1 上一個元素的感受野為rl?1;
        Layerl?1 上連續(xù)k個元素的感受野可以看成是,第1個元素看到的感受野加上剩余k?1步掃過的范圍,Layerl?1 上每前進1個元素相當于在輸入圖像上前進jl?1個像素,結(jié)果等于rl?1+(k?1)×jl?1
        可視化如下圖所示,
        receptive field size
        下面的問題是,jin怎么求?
        Layerl 上前進1個元素相當于Layerl?1上前進sl個元素,轉(zhuǎn)換成像素單位為
        其中,sl為Convl的kernel在 Layerl?1 上滑動的步長,輸入圖像的s0=1。
        根據(jù)遞推公式可知,
        Layerl上前進1個元素,相當于在輸入圖像前進了個像素,即前面所有層stride的連乘。
        進一步可得,Layerl的感受野大小為:

        感受野中心

        感受野中心的計算也是個遞推公式。
        在上一節(jié)中計算得表示feature map Layerl上前進1個元素相當于在輸入圖像上前進的像素數(shù)目,如果將feature map上元素與感受野中心對齊,則jl為感受野中心之間的像素距離。如下圖所示,

        receptive field center
        其中,各層的kernel size、padding、stride超參數(shù)已在圖中標出,右側(cè)圖為feature map和感受野中心對齊后的結(jié)果。
        相鄰Layer間,感受野中心的關(guān)系為:
        所有的start坐標均相對于輸入圖像坐標系。其中,start0=(0.5,0.5),為輸入圖像左上角像素的中心坐標,startl?1表示Layerl?1左上角元素的感受野中心坐標,(2kl?1?pl)為Layerl與Layerl?1感受野中心相對于Layerl?1坐標系的偏差,該偏差需折算到輸入圖像坐標系,其值需要乘上jl?1,即Layerl?1相鄰元素間的像素距離,相乘的結(jié)果為(2kl?1?pl)?jl?1,即感受野中心間的像素距離——相對輸入圖像坐標系。至此,相鄰Layer間感受野中心坐標間的關(guān)系就不難得出了,這個過程可視化如下。
        receptive field center calculation
        知道了Layerl左上角元素的感受野中心坐標(startl,startl),通過該層相鄰元素間的像素距離jl可以推算其他元素的感受野中心坐標。

        小結(jié)


        將感受野的相關(guān)計算小結(jié)一下:

        由上面的遞推公式,就可以從前向后逐層計算感受野了,代碼可參見computeReceptiveField.py,在線可視化計算可參見Receptive Field Calculator。
        最后,還有幾點需要注意:
        Layerl的感受野大小與sl、pl無關(guān),即當前feature map元素的感受野大小與該層相鄰元素間的像素距離無關(guān);
        為了簡化,通常將padding size設(shè)置為kernel的半徑,即p=2k?1,可得startl=startl?1,使得feature map Layerl 上(x,y)位置的元素,其感受野中心坐標為(xjl,yjl);
        對于空洞卷積dilated convolution,相當于改變了卷積核的尺寸,若含有 dilation rate參數(shù),只需將kl替換為dilation rate?(kl?1)+1 ,dilation rate=1時為正常卷積;
        對于pooling層,可將其當成特殊的卷積層,同樣存在kernel size、padding、stride參數(shù);
        非線性激活層為逐元素操作,不改變感受野。
        以上。

        參考資料


        wiki-Receptive field
        wiki-Receptive Field Calculator
        arXiv-Understanding the Effective Receptive Field in Deep Convolutional Neural Networks
        medium-A guide to receptive field arithmetic for Convolutional Neural Networks
        medium-Topic DL03: Receptive Field in CNN and the Math behind it
        ppt-Convolutional Feature Maps: Elements of Efficient (and Accurate) CNN-based Object Detection
        SIGAI-關(guān)于感受野的總結(jié)
        Calculating Receptive Field of CNN


        下載1:OpenCV黑魔法


        AI算法與圖像處理」公眾號后臺回復(fù):OpenCV黑魔法,即可下載小編精心編寫整理的計算機視覺趣味實戰(zhàn)教程



        下載2 CVPR2020

        AI算法與圖像處公眾號后臺回復(fù):CVPR2020即可下載1467篇CVPR?2020論文
        個人微信(如果沒有備注不拉群!
        請注明:地區(qū)+學(xué)校/企業(yè)+研究方向+昵稱


        覺得有趣就點亮在看吧


        瀏覽 57
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            午夜精品久久 | 男添女人下面的视频过程 | 黄色大毛片 | 色狠狠一区二区三区蜜桃AV | chinese搓澡工gayxvideos | 亚洲AV无码成人精品国产澳门 | 精品日韩少妇一区二区三区 | 少妇一级淫片免费 | 看一级黄色录像 | ass日本少妇高潮pics |