Faster-RCNN的一些記錄。
Faster-RCNN詳解
Ross B. Girshick的論文《Faster R-CNN: Towards Real-Time ObjectDetection with Region Proposal Networks》
主要解決兩個問題:
1、提出區域建議網路RPN,快速生成候選區域;
2、通過交替訓練,使RPN和Fast-RCNN網路共享引數。
另外Faster RCN已經將特徵抽取(feature extraction),proposal提取(RPN),bounding box regression,classification都整合在了一個網路中,使得綜合性能有較大提高,在檢測速度方面尤為明顯
1、RPN網路
RPN網路的作用是輸入一張影象,輸出一批矩形候選區域,類似於Selective Search的作用,網路結構是卷積神經網路,輸出時包含softmax二類分類器(是否是候選框)和bbox迴歸得出候選邊界框的位置的四個引數(box的中心座標xy和box長h寬w),
2、anchor機制
anchor是rpn網路的核心,RPN網路需要確定每個滑窗中心對應感受野記憶體在目標與否,但是由於目標大小和長寬比例不一,需要多個尺度的窗。所以Anchor正是給出一個基準窗大小,可以按照倍數和長寬比例可以得到不同大小的窗,論文中基準窗大小為16
例如:在對60*40的特徵圖map進行滑窗時,以中心畫素為基點構造9種anchor對映到原來的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,就是預測
對於迴歸器:判定為有目標的anchor,並將其標註的座標作為ground truth
代價函式為:
代價函式分為兩部分,前邊對應anchor中是否有目標的分類誤差,後邊對應bbox迴歸誤差。
4、聯合訓練
1) 單獨訓練RPN網路,網路引數由預訓練模型載入;
2) 單獨訓練Fast-RCNN網路,將第一步RPN的輸出候選區域作為檢測網路的輸入。具體而言,RPN輸出一個候選框,通過候選框擷取原影象,並將擷取後的影象通過幾次conv-pool,然後再通過roi-pooling和fc再輸出兩條支路,一條是目標分類softmax,另一條是bbox迴歸。截止到現在,兩個網路並沒有共享引數,只是分開訓練了;
3) 再次訓練RPN,此時固定網路公共部分的引數,只更新RPN獨有部分的引數;
4) 那RPN的結果再次微調Fast-RCNN網路,固定網路公共部分的引數,只更新Fast-RCNN獨有部分的引數。
5、其他理解
從上圖來看:
1) Faster RCNN首先使用一組基礎conv layer(conv+relu+pooling層)提取image的feature maps。該feature maps被共享用於後續RPN層和全連線層。
2) RPN(Region Proposal Networks)。RPN網路用於生成region proposals。該層通過softmax判斷anchors屬於foreground或者background,再利用bounding box regression修正anchors的位置,最終獲得精確位置的region proposals(候選框)。
3)RoI Pooling。輸入的feature maps和候選框(region proposals),綜合這些資訊後提取proposal feature maps,送入後面全連線層判定目標類別。
4)Classification and regression。利用proposal feature maps計算region proposal中物體的類別,同時再次bounding box regression獲得檢測框最終的精確位置。
6、其他理解
I是輸入影象,conv是卷積層,H是network head,C使classification即Softmax二分類anchor中是否有目標,B是Bbox迴歸得到候選框,pool是ROI Pooling
7、其他概念
bounding box regression:對定位不準的邊界框進行微調,即尋找一種對映關係是定位不準的邊界框經過對映後得到跟ground true接近的邊界框。
RPN步驟:生成anchors -> softmax分類器提取fg anchors -> bbox reg迴歸fg anchors -> Proposal Layer過濾得到最終的proposal boxs
多通道卷積:對多通道影象做1x1卷積,其實就是將輸入影象於每個通道乘以卷積係數後加在一起,即相當於把原影象中本來各個獨立的通道“聯通”在了一起。