faster rcnn 學習筆記

論文:《Faster R-CNN: Towards Real-Time ObjectDetection with Region Proposal Networks》

     作者 何凱明 rbg大神都做過簡單的介紹,現在說說 Shaoqing Ren中國科學技術大學(phd)

 改進

  針對fast rcnn 計算的瓶頸,用選擇性搜索算法生成RP是在cpu上進行的,每張圖片生成RP的時間佔其檢測大部分時間,故而若想提高FPS的值,須在生成RP上做一系列的改進,此篇論文 便是基於cnn網絡生成RP,節省檢測時間。

 Faster-Rcnn網絡

上圖來自於論文原文,描述從輸入圖片,生成feature maps,rpn網絡生存rp,roi融合,最後分類和迴歸定位。

conv layer

   conv layers 包含conv,pooling,relu三種層,選擇標準的基礎網絡模型(zfNet,vggNet)

  conv層;kernel_size=3,pad=1

  pool層:kernel_size=2,stride=2

  conv層不會改變輸入和輸出矩陣大小(size)

  pooling層會改變size大小,使輸出長寬都變味輸入的1/2

RPN網絡

  

    基礎cnn網絡用於生成RP。卷積相當於滑窗。假如輸入圖像是1000*600,則經過了幾次stride後,map大小縮小了16倍,最後一層卷積層輸出大約爲60*40大小,那麼相當於用3*3的窗口滑窗(注意有padding),對於左邊一支路而言,輸出18個通道,每個通道map大小仍爲60*40,代表每個滑窗中心對應感受野內存在目標與否的概率。

  anchor機制

  anchor是rpn網絡的核心。需要確定每個滑窗中心對應感受野內存在目標與否。由於目標大小和長寬比例不一,需要多個尺度的窗。Anchor即給出一個基準窗大小,按照倍數和長寬比例得到不同大小的窗。例如論文中基準窗大小爲16,給了(8、16、32)三種倍數和(0.5、1、2)三種比例,這樣能夠得到一共9種尺度的anchor。

  在對60*40的map進行滑窗時,以中心像素爲基點構造9種anchor映射到原來的1000*600圖像中,映射比例爲16倍。那麼總共可以得到60*40*9大約2萬個anchor。但是會通過非極大值抑制的方法,設定IoU爲0.7的閾值,即僅保留覆蓋率不超過0.7的局部最大分數的box(粗篩)。最後留下大約2000個anchor,然後再取前N個box(比如300個)給Fast-RCNN。Fast-RCNN將輸出300個判定類別及其box,對類別分數採用閾值爲0.3的非極大值抑制(精篩),並僅取分數大於某個分數的目標結果(比如,只取分數60分以上的結果)。

  ROI pooling

   輸入是原始的feature maps 和PRN輸出的proposal boxes(大小不一)

  fc層中需要輸入的proposals是大小一致的(roi pooling是由spp發展而來的)

  proposal=[x1, y1, x2, y2]是對應MxN尺度的,所以首先使用spatial_scale參數將其映射回MxN大小的feature maps尺度(這裏來回多次映射,是有點繞);之後將每個proposal水平和豎直都分爲7份,對每一份都進行max pooling處理。這樣處理後,即使大小不同的proposal,輸出結果都是7x7大小,實現了fixed-length output。

classification detection

 Classification部分利用已經獲得的proposal feature maps,通過full connect層與softmax計算每個proposal具體屬於那個類別(如人,車,電視等),輸出cls_prob概率向量;同時再次利用bounding box regression獲得每個proposal的位置偏移量bbox_pred,用於迴歸更加精確的目標檢測框。

 訓練

1) 單獨訓練RPN網絡,網絡參數由預訓練模型載入;

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

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

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

 

 

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