1. 程式人生 > >Faster-RCNN的一些記錄。

Faster-RCNN的一些記錄。

Faster-RCNN詳解

Ross B. Girshick的論文《Faster R-CNN: Towards Real-Time ObjectDetection with Region Proposal Networks

主要解決兩個問題:

1、提出區域建議網路RPN,快速生成候選區域;

2、通過交替訓練,使RPNFast-RCNN網路共享引數。

另外Faster RCN已經將特徵抽取(feature extraction)proposal提取(RPN),bounding box regressionclassification都整合在了一個網路中,使得綜合性能有較大提高,在檢測速度方面尤為明顯

 

1RPN網路

RPN網路的作用是輸入一張影象,輸出一批矩形候選區域,類似於Selective Search的作用,網路結構是卷積神經網路,輸出時包含softmax二類分類器(是否是候選框)和bbox迴歸得出候選邊界框的位置的四個引數(box的中心座標xyboxhw),

 

2anchor機制

anchorrpn網路的核心RPN網路需要確定每個滑窗中心對應感受野記憶體在目標與否,但是由於目標大小和長寬比例不一,需要多個尺度的窗。所以Anchor正是給出一個基準窗大小,可以按照倍數和長寬比例可以得到不同大小的窗,論文中基準窗大小為16

,給了(81632)三種倍數和(0.512)三種比例,這樣能夠得到一共9種尺度的anchor

例如:在對60*40的特徵圖map進行滑窗時,以中心畫素為基點構造9anchor對映到原來的1000*600影象中,對映比例為16倍。那麼總共可以得到60*40*9大約2萬個anchor

3、訓練

對於分類器,採anchor是否有目標,用了這樣的規則判斷:1)假如某anchor與任一目標區域的IoU最大,則該anchor判定為有目標;2)假如某anchor與任一目標區域的IoU>0.7,則判定為有目標;3)假如某anchor與任一目標區域的IoU<0.3,則判定為背景。

所謂IoU,就是預測

box和真實box的覆蓋率,其值等於兩個box的交集除以兩個box的並集。其它的anchor不參與訓練

對於迴歸器:判定為有目標的anchor,並將其標註的座標作為ground truth

代價函式為:

代價函式分為兩部分,前邊對應anchor中是否有目標的分類誤差,後邊對應bbox迴歸誤差。

4、聯合訓練

1 單獨訓練RPN網路,網路引數由預訓練模型載入;

2 單獨訓練Fast-RCNN網路,將第一步RPN的輸出候選區域作為檢測網路的輸入。具體而言,RPN輸出一個候選框,通過候選框擷取原影象,並將擷取後的影象通過幾次conv-pool,然後再通過roi-poolingfc再輸出兩條支路,一條是目標分類softmax,另一條是bbox迴歸。截止到現在,兩個網路並沒有共享引數,只是分開訓練了;

3 再次訓練RPN,此時固定網路公共部分的引數,只更新RPN獨有部分的引數;

4 RPN的結果再次微調Fast-RCNN網路,固定網路公共部分的引數,只更新Fast-RCNN獨有部分的引數。

5、其他理解

從上圖來看:
1 Faster RCNN首先使用一組基礎conv layer(conv+relu+pooling)提取imagefeature maps。該feature maps被共享用於後續RPN層和全連線層。

2) RPNRegion Proposal Networks)。RPN網路用於生成region proposals。該層通過softmax判斷anchors屬於foreground或者background,再利用bounding box regression修正anchors的位置,最終獲得精確位置的region proposals(候選框)。

3RoI Pooling。輸入的feature maps和候選框(region proposals),綜合這些資訊後提取proposal feature maps,送入後面全連線層判定目標類別

4Classification and regression。利用proposal feature maps計算region proposal中物體的類別,同時再次bounding box regression獲得檢測框最終的精確位置

6、其他理解

I是輸入影象,conv是卷積層,Hnetwork headC使classificationSoftmax二分類anchor中是否有目標,BBbox迴歸得到候選框,poolROI Pooling

7、其他概念

bounding box regression:對定位不準的邊界框進行微調,即尋找一種對映關係是定位不準的邊界框經過對映後得到跟ground true接近的邊界框。

RPN步驟:生成anchors -> softmax分類器提取fg anchors -> bbox reg迴歸fg anchors -> Proposal Layer過濾得到最終的proposal  boxs

多通道卷積:對多通道影象做1x1卷積,其實就是將輸入影象於每個通道乘以卷積係數後加在一起,即相當於把原影象中本來各個獨立的通道“聯通”在了一起