Faster-RCNN的一些记录。
Faster-RCNN詳解
Ross B. Girshick的論文《Faster R-CNN: Towards Real-Time ObjectDetection with Region Proposal Networks》
主要解決兩個問題:
1、提出區(qū)域建議網(wǎng)絡(luò)RPN,快速生成候選區(qū)域;
2、通過交替訓(xùn)練,使RPN和Fast-RCNN網(wǎng)絡(luò)共享參數(shù)。
另外Faster RCN已經(jīng)將特征抽取(feature extraction),proposal提取(RPN),bounding box regression,classification都整合在了一個網(wǎng)絡(luò)中,使得綜合性能有較大提高,在檢測速度方面尤為明顯
?
1、RPN網(wǎng)絡(luò)
RPN網(wǎng)絡(luò)的作用是輸入一張圖像,輸出一批矩形候選區(qū)域,類似于Selective Search的作用,網(wǎng)絡(luò)結(jié)構(gòu)是卷積神經(jīng)網(wǎng)絡(luò),輸出時包含softmax二類分類器(是否是候選框)和bbox回歸得出候選邊界框的位置的四個參數(shù)(box的中心坐標(biāo)xy和box長h寬w),
?
2、anchor機(jī)制
anchor是rpn網(wǎng)絡(luò)的核心,RPN網(wǎng)絡(luò)需要確定每個滑窗中心對應(yīng)感受野內(nèi)存在目標(biāo)與否,但是由于目標(biāo)大小和長寬比例不一,需要多個尺度的窗。所以Anchor正是給出一個基準(zhǔn)窗大小,可以按照倍數(shù)和長寬比例可以得到不同大小的窗,論文中基準(zhǔn)窗大小為16,給了(8、16、32)三種倍數(shù)和(0.5、1、2)三種比例,這樣能夠得到一共9種尺度的anchor。
例如:在對60*40的特征圖map進(jìn)行滑窗時,以中心像素為基點構(gòu)造9種anchor映射到原來的1000*600圖像中,映射比例為16倍。那么總共可以得到60*40*9大約2萬個anchor。
3、訓(xùn)練
對于分類器,采anchor是否有目標(biāo),用了這樣的規(guī)則判斷:1)假如某anchor與任一目標(biāo)區(qū)域的IoU最大,則該anchor判定為有目標(biāo);2)假如某anchor與任一目標(biāo)區(qū)域的IoU>0.7,則判定為有目標(biāo);3)假如某anchor與任一目標(biāo)區(qū)域的IoU<0.3,則判定為背景。
所謂IoU,就是預(yù)測box和真實box的覆蓋率,其值等于兩個box的交集除以兩個box的并集。其它的anchor不參與訓(xùn)練。
對于回歸器:判定為有目標(biāo)的anchor,并將其標(biāo)注的坐標(biāo)作為ground truth
代價函數(shù)為:
代價函數(shù)分為兩部分,前邊對應(yīng)anchor中是否有目標(biāo)的分類誤差,后邊對應(yīng)bbox回歸誤差。
4、聯(lián)合訓(xùn)練
1) 單獨訓(xùn)練RPN網(wǎng)絡(luò),網(wǎng)絡(luò)參數(shù)由預(yù)訓(xùn)練模型載入;
2) 單獨訓(xùn)練Fast-RCNN網(wǎng)絡(luò),將第一步RPN的輸出候選區(qū)域作為檢測網(wǎng)絡(luò)的輸入。具體而言,RPN輸出一個候選框,通過候選框截取原圖像,并將截取后的圖像通過幾次conv-pool,然后再通過roi-pooling和fc再輸出兩條支路,一條是目標(biāo)分類softmax,另一條是bbox回歸。截止到現(xiàn)在,兩個網(wǎng)絡(luò)并沒有共享參數(shù),只是分開訓(xùn)練了;
3) 再次訓(xùn)練RPN,此時固定網(wǎng)絡(luò)公共部分的參數(shù),只更新RPN獨有部分的參數(shù);
4) 那RPN的結(jié)果再次微調(diào)Fast-RCNN網(wǎng)絡(luò),固定網(wǎng)絡(luò)公共部分的參數(shù),只更新Fast-RCNN獨有部分的參數(shù)。
5、其他理解
從上圖來看:
1) Faster RCNN首先使用一組基礎(chǔ)conv layer(conv+relu+pooling層)提取image的feature maps。該feature maps被共享用于后續(xù)RPN層和全連接層。
2) RPN(Region Proposal Networks)。RPN網(wǎng)絡(luò)用于生成region proposals。該層通過softmax判斷anchors屬于foreground或者background,再利用bounding box regression修正anchors的位置,最終獲得精確位置的region proposals(候選框)。
3)RoI Pooling。輸入的feature maps和候選框(region proposals),綜合這些信息后提取proposal?feature maps,送入后面全連接層判定目標(biāo)類別。
4)Classification and regression。利用proposal?feature maps計算region proposal中物體的類別,同時再次bounding box regression獲得檢測框最終的精確位置。
6、其他理解
I是輸入圖像,conv是卷積層,H是network head,C使classification即Softmax二分類anchor中是否有目標(biāo),B是Bbox回歸得到候選框,pool是ROI Pooling
7、其他概念
bounding box regression:對定位不準(zhǔn)的邊界框進(jìn)行微調(diào),即尋找一種映射關(guān)系是定位不準(zhǔn)的邊界框經(jīng)過映射后得到跟ground true接近的邊界框。
RPN步驟:生成anchors -> softmax分類器提取fg anchors?-> bbox reg回歸fg anchors -> Proposal Layer過濾得到最終的proposal ?boxs
多通道卷積:對多通道圖像做1x1卷積,其實就是將輸入圖像于每個通道乘以卷積系數(shù)后加在一起,即相當(dāng)于把原圖像中本來各個獨立的通道“聯(lián)通”在了一起。
總結(jié)
以上是生活随笔為你收集整理的Faster-RCNN的一些记录。的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Object Detection中的IO
- 下一篇: Cascade R-CNN的一些记录