RPN網絡


Region Proposal Network

RPN的實現方式:在conv5-3的卷積feature map上用一個n*n的sliding window(論文中n=3)生成一個長度為256(ZF網絡)或512(對應於VGG網絡)維長度的全連接特征。然后再這個256維或512維的特征后產生兩個分支的全連接層:

  • 1. reg-layer:用於預測proposal的中心錨點對應的proposal的坐標x,y和寬高w,h;
  • 2. cls-layer:用於判定該proposal是前景還是背景。sliding window的處理方式保證reg-layer和cls-layer關聯了conv5-3的全部特征空間。事實上,作者用全連接層實現方式介紹RPN層實現容易幫助我們理解這一過程,但在實現時,作者選用了卷積層實現全連接層的功能。
  • 3. 個人理解:全連接層本來就是特殊的卷積層,如果產生256或512維的fc特征,事實上可以用Num_out=256或512,kernel_size=33,stride=1的卷積層實現conv5-3到第一個全連接特征的映射。然后再用兩個Num_out分別為 29=18 和 49=36,kernel_size=11,stride=1的卷積層實現上一層特征到兩個分支cls層和reg層的特征映射。
  • 4. attention:這里29中的2指cls層的分類結果包含前后背景兩類,49的4表示一個Proposal的中心點坐標x,y和寬高w,h四個參數。采用卷積的方式實現全連接處理並不會減少參數的數量,但是使得輸入的圖像的尺寸可以更加靈活。在RPN網絡中,需要重點理解其中的anchors概念,Loss functions計算方式和RPN層訓練數據生成的具體細節。

  • Anchors: 錨點,位於之前提到的nn的sliding window的中心處。對於一個sliding window,我們可以同時預測多個proposal,假定有k個proposal,即k個reference boxes,每一個reference box又可以用一個scale,一個aspect_ratio和sliding window中的錨點唯一確定。所以,后面說一個anchor,就理解成一個anchor box 或 一個reference box。論文中定義k=9,即3種scales和3種aspect_ratio確定出當前sliding window 位置處對應的9個reference boxes,4k個reg-layer的輸出和2k個cls-layer的score輸出。對於一幅WH的feature map,對應WHk個錨點,所有的錨點都具有尺度不變性。

  • Loss functions
    在計算Loss值之前,作者設置了anchors的標定方法。正樣本標定規則:
    1) 如果Anchor對應的refrence box 與 ground truth 的 IOU值最大,標記為正樣本;
    2)如果Anchor對應的refrence box與ground truth的IoU>0.7,標定為正樣本。事實上,采用第2個規則基本上可以找到足夠的正樣本,但是對於一些極端情況,例如所有的Anchor對應的reference box與groud truth的IoU不大於0.7,可以采用第一種規則生成.
    3)負樣本標定規則:如果Anchor對應的reference box 與 ground truth的IoU<0.3,標記為負樣本。
    4)剩下的既不是正樣本也不是負樣本,不用於最終訓練。
    5)訓練RPN的Loss是有classification loss(即softmax loss)和 regression loss(即L1 loss)按一定比重組成的。

計算softmax loss需要的是anchors對應的ground truth 標定結果和預測結果,計算regression loss需要三組信息:
i. 預測框,即RPN網絡預測出的proposal的中心位置坐標x,y和寬高w,h;

ii. 錨點reference box:
之前的9個錨點對應9個不同scale和aspect_ratio的reference boxes,每一個reference boxes都有一個中心點位置坐標x_a,y_a和寬高w_a,h_a;

iii. ground truth:標定的框也對應一個中心點位置坐標x,y和寬高w,h.因此計算regression loss和總Loss方式如下:

  • RPN訓練設置

(1)在訓練RPN時,一個Mini-batch是由一幅圖像中任意選取的256個proposal組成的,其中正負樣本的比例為1:1.

(2)如果正樣本不足128,則多用一些負樣本以滿足有256個Proposal可以用於訓練,反之亦然.

(3)訓練RPN時,與VGG共有的層參數可以直接拷貝經ImageNet訓練得到的模型中的參數;剩下沒有的層參數用標准差=0.01的高斯分布初始化.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM