天天看點

區域推薦網絡RPN

Region Proposal Network

RPN的實作方式:在conv5-3的卷積feature map上用一個n*n的滑窗(論文中作者選用了n=3,即3*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=3*3, stride=1的卷積層實作conv5-3到第一個全連接配接特征的映射.然後再用兩個Num_out分别為2*9=18和4*9=36,kernel_size=1*1,stride=1的卷積層實作上一層特征到兩個分支cls層和reg層的特征映射.

(4)注意:這裡2*9中的2指cls層的分類結果包括前後背景兩類,4*9的4表示一個Proposal的中心點坐标x,y和寬高w,h四個參數.采用卷積的方式實作全連接配接處理并不會減少參數的數量,但是使得輸入圖像的尺寸可以更加靈活.在RPN網絡中,我們需要重點了解其中的anchors概念,Loss fucntions計算方式和RPN層訓練資料生成的具體細節.

區域推薦網絡RPN

Anchors:字面上可以了解為錨點,位于之前提到的n*n的sliding window的中心處.對于一個sliding window,我們可以同時預測多個proposal,假定有k個.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, 4*k個reg-layer的輸出和2*k個cls-layer的score輸出.對于一幅W*H的feature map,對應W*H*k個錨點.所有的錨點都具有尺度不變性.

Loss functions:

在計算Loss值之前,作者設定了anchors的标定方法.正樣本标定規則:

1)   如果Anchor對應的reference box與ground truth的IoU值最大,标記為正樣本;

2)   如果Anchor對應的reference 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對應的groundtruth标定結果和預測結果,計算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
區域推薦網絡RPN

RPN訓練設定:

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

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

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

繼續閱讀