Faster R-CNN

Fast R-CNN提出后,RP的生成成為了計算瓶頸(SS在CPU下需要2s)。Faster R-CNN中的RPN網絡就是解決這個問題。

RPN

用n * n(3 * 3)大小的窗口在conv 特征映射上滑動,每個窗口生成一個低維向量(256-d for ZF and 512-d for VGG)。這向量后接兩個并行的全連接層,一個是分類層(2k維,2類,9個anchor),一個是回歸層(4k維,(k=9, 3 * 3, 3尺度,3長寬比))

由于窗口是滑動的,參數也是共享的,所以整個過程可以用全卷積來實現:

conv(3,3,512,1) -> conv(1,1,18,1)和conv(1,1,36,1)

損失函數?

稱anchor是正的,若與某個GT的IOU是最高的或大于0.7;

稱anchor是負的,若與所有的GT的IOU都小于0.3;

其余的anchor非正非負,損失函數不計算這些anchor。

注意這個和Fast R-CNN的定義不一樣。

p是預測的包含物體的概率值,p*=1 if anchor 是正 else 0


Ncls=256(batch size), Nreg~2400(anchor size),λ=10,Lreg=R(t-t*),R是Smooth L1.


優(yōu)化

每個batch(256)的anchor都來自同一張圖片,正:負 = 1:1,如果正樣本少于128,則用負樣本補足。


Faster R-CNN訓練

1. RPN訓練

2. 使用RPN得到的框訓練Fast R-CNN

3. 將Fast R-CNN的卷基層權重賦予 RPN的卷基層權重,只調整RPN獨有層權重。

4. 固定Fast R-CNN的共享層, 只FT全連接層權重。

實現細節(jié)

1. 將同比例放到圖片,使得最短邊s = 600。

2. 出于速度和準確率的權衡,訓練和測試都是單尺度的。

3. 三尺度(128 * 128,256 * 256, 512 * 512),三長寬比(1:1, 1:2, 2:1)。對于尺度大于感受野,文中的解釋是:人能在物體中部可見的情況下,大致推斷出該物體的類別

4. 訓練時不考慮超出邊界的anchor,因為如果把這些anchor加到loss里,會導致訓練不收斂。測試的時候如果anchor超出邊界,就把它們裁剪至邊界。

5. 對RPN提出的RP進行NMS,閾值是0.7,這樣就剩下2K左右的RP,然后取top-N(300)來檢測。

實驗





參考文獻

1.?Faster R-CNN?[code]

2.?Fast R-CNN

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容