博客專欄

        EEPW首頁 > 博客 > 基礎知識 | 目標檢測中Anchor的認識及理解

        基礎知識 | 目標檢測中Anchor的認識及理解

        發布人:CV研究院 時間:2021-11-10 來源:工程師 發布文章

        近期好多同學在私信讓我說一些基礎性的知識。好多入門的同學在糾結Anchor的設置,而且部分同學私信,可不可以把這個基礎知識詳細說一次,今天就單獨開一次小課,一起來學習Faster R-CNN中的RPN及Anchor。

        1 背景

        近期好多同學在私信讓我說一些基礎性的知識。好多入門的同學在糾結Anchor的設置,而且部分同學私信,可不可以把這個基礎知識詳細說一次,今天就單獨開一次小課,一起來學習Faster R-CNN中的RPN及Anchor。

        說到RPN和Anchor,應該立馬就能想到Faster R-CNN網絡框架,這個我平臺在之前就有詳細的介紹過。

        往期回顧

        ● 深度學習近期總結分析

        有興趣的可以點擊進入看看,當作復習一下。首先我先將幾類經典的目標檢測網絡做一個對比,然后開始說說今天要講的知識。

        最開始出現的是R-CNN,如下圖:

        1.jpg

        從上圖可以看出其框架做了很多重復的計算,在第二步之后,如果有2k個proposals,那后面就要執行2k邊,太低效。于是,出現了改進的SSP-Net,如下圖:

        2.jpg

        SSP-Ne框架組合了Classification和Regression,做成單個網絡,并且可以Een-to-End進行訓練,速度上提高許多。但是,SSP-Net還是基于Selective Search產生proposal,之后就出現了Fast R-CNN,其是融合了R-CNN和SPP-Net的創新,并且引入多任務損失函數,使整個網絡的訓練和測試變得十分方便。

        但是Region proposal的提取還是使用了Selective Search,目標檢測時間大多消耗在這上面(大約region proposal需2~3s,而提特征分類只需0.32s),這種是無法滿足實時應用,而且并沒有實現真正意義上的端到端訓練測試(因為region proposal使用了Selective Search先提取處來)。

        于是就有了直接使用CNN產生region proposal并對其分類,這就是Faster R-CNN框架,如下圖:

        3.jpg

        Faster R-CNN將proposals交給了CNN去生成,這樣Region Proposal Network(RPN)應運而生。

        2 Faster RCNN

        仔細看看Faster R-CNN框架,其實還保留了Fast R-CNN的框架,其主要就是CNN+RPN。其中RPN主要就是負責生成proposals,然后與最后一層的feature map一起使用,用ROI Pooling生成固定長度的feature vector。具體如下:

        4.jpg

        那接下來開始好好的說一下RPN和Anchor!下圖是我從網絡copy過來的,應該更加能理解整體的流程及內容。

        5.jpg

        在上圖中,紅色的3x3紅框是其中一個滑窗的操作過程,注意這里的Anchor是原圖像像素空間中的,而不是feature map上的。這樣的話,就可以很好去知道Anchor的意思,而且Anchor對于RPN非常重要。

        現在,我們假設現在的feature map尺寸為W x H x C(13x13x256就是feature map的Width=13,Height=13和Channel=256),在feature map使用滑動窗口的操作方式,當前滑窗的中心在原像素空間的映射點就稱為Anchor,并且以Anchor為中心去生成K(paper中default K=9,3個尺寸和3個縮放比例)個proposals。

        6.png

        在feature map上滑動一次,得到一個小網絡,該網絡輸入是3x3x256,經過3x3x256x256的卷積,就可以得到1x1x256的低維特征向量。

        然后就得到上圖的兩個分支。

        Classification:經過1x1x256x18的卷積核,得到1x1x18的特征向量,分別代表9個proposals的Object的概率(是或不是);

        Regression:經過1x1x256x36的卷積核,得到1x1x36的特征向量,分別代表9個proposals的(長寬及中心點坐標)。

        注意,上面只是一個小網絡,也就是一個3x3滑窗的過程及結果,在網絡整體運行的過程中,要將整個feature map都要滑動一遍,最終就會得到兩個損失函數:

        7.jpg

        其中就是Classification(Lcls)和Regression(Lreg)兩個損失。對于邊界框的回歸,其是采用以下4個坐標的參數化:

        8.jpg

        綜上,通過滑窗和Anchor機制就可以找到固定比例、一定大小的proposals,這樣RPN就可以完美替代低效的Selective Search去產生proposals。

        9.jpg

        最終,在目標檢測領域中,這個框架算是一個里程碑,值得大家學習與深入探索。最后的檢測結果也是不錯的。

        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞: 深度學習

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 虹口区| 青浦区| 和政县| 永春县| 浦城县| 金秀| 灌南县| 那曲县| 顺义区| 义乌市| 丰顺县| 雅安市| 大化| 台东县| 德化县| 东山县| 土默特左旗| 县级市| 綦江县| 龙门县| 会宁县| 景洪市| 石渠县| 孝昌县| 岳西县| 棋牌| 芒康县| 大安市| 温宿县| 邵阳市| 怀仁县| 黄石市| 鄂温| 南康市| 大新县| 阜新| 安国市| 肇庆市| 西宁市| 渭南市| 武安市|