Faster RCNN理解

Faster RCNN

爲了解決Fast RCNNregion proposal生成與目標檢測速度不匹配的問題,在深度網絡中引入RPN,直接利用深度網絡直接計算得到region proposal,整個region proposal生成和目標檢測的過程都可以在GPU上完成。同時也實現region proposal生成網絡與目標檢測網絡的網絡權值共享。

RPN網絡結構

首先利用基網絡對圖像用一系列的卷積和池化操作進行特徵提取,得到原始的feature maps(灰色區域),然後在原始的feature maps後面再接一個con+relu層,得到將要用於生成region proposalfeature maps。將feature maps中的每個點映射回原圖回原圖中心,得到一個基準點。根據設置好的尺度大小和長寬比,並圍繞基準點,生成kanchorsFeature maps的每個點都有關於kanchors的輸出,包括是否有目標,以及迴歸kregion proposal的座標值。

 

具體過程分析

得到用於生成region proposalfeature maps爲了生成region proposal,我們使用一個小的網絡在經過基網絡卷積池化計算得到的feature maps上滑動掃描,得到新的feature maps。將新的feature maps用來生成region proposal

 


平移不變anchorsfeature maps上的每個點都可以預測得到kregion proposal。具體操作:將feature maps上的每個點映射到原圖,得到一個基準點,然後圍繞該基準點,通過設置好的固定的尺度大小和長寬比,生成kanchors。在論文中,使用了3種尺度和3種長寬比的anchors,所以k=3*3=9,對於一個大小爲W*Hfeature map,將會產生W*H*kanchors。而通過這種不同尺度和不同長寬比的設置,同樣實現了anchors的平移不變性。

RPN的損失函數:在訓練RPN的時候,先需要對得到的W*H*kanchors進行正負樣本的劃分。將與gt box具有最大IOUanchor以及與任何一個gt boxIOU大於0.7anchor作爲正樣本。將剩餘的與gt boxIOU小於0.3anchor作爲負樣本,其餘anchors均被忽略。

對於每個anchor,後面會再接上一個用於二分類的softmax與用於bbox迴歸器。二分類softmax用於判斷anchor是否爲目標的概率,bbox迴歸器用於調整anchor4個座標值。因此RPN的損失函數可定義爲:

 

其中表示第ianchor的標籤,表示對第ianchor預測的概率值,表示與正樣本anchor相關的gt boxanchor box的座標偏移,表示預測的boxanchor box的座標偏移。,的計算方式如下:

 

其中x,y,h,w分別表示box的中心座標,高度與寬度。

訓練Faster RCNN

整個訓練過程可分爲4步:

第一步:用在ImageNet數據集上訓練好的model初始化模型,訓練一個RPN網絡;

第二步:用在ImageNet數據集上訓練好的model初始化模型,同時用第一步中訓練好的RPN網絡生成的region proposal作爲輸入,訓練一個Fast RCNN

第三步:用第二步訓練好的Fast RCNN的網絡參數初始化RPN網絡,但是將RPNFast RCNN共享的網絡層的learning rate設置爲0,僅微調RPN獨有的網絡層。

第四步:固定共享的網絡層,僅微調Fast RCNN所獨有的fc層。


參考鏈接:

https://zhuanlan.zhihu.com/p/24916624

http://blog.csdn.net/u011534057/article/details/51247371

http://blog.csdn.net/xyy19920105/article/details/50817725

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章