Faster RCNN算法演進

目標檢測RCNN算法經歷了RCNN->FAST RCNN->FASTER RCNN的遞進演化。

RCNN原理及實現步驟

1. 在cpu端提取候選框:通過紋理或色彩等傳統算法(SelectiveSearch)在原圖中找到可能的候選框,通常爲1k~2k個

2. 將候選框歸一縮放爲統一大小,分別輸入cnn網絡提取特徵

3. 使用svm或softmax分類器分類,對於有目標框迴歸目標框體。

缺點:

需要現在cpu上預處理圖片,處理步驟過多,每個region都要進行一次cnn前向傳播,多次重複計算

FAST RCNN原理及實現

與RCNN最大的區別在於FAST CRNN是對一整張圖進行卷積抽取特徵,而RCNN是對每一個proposal分別進行卷積運算。

當FAST RCNN卷積完成後,會連接一個ROI Pooling層。這個層的作用主要是用於特徵尺寸變換,其輸入是卷積完成的特徵圖和SelectiveSearch提取出來的Proposal。因爲原圖與特徵圖存在對應關係,所以每個proposal也對應特徵圖上的一個特定區域。ROI Pooling會將該區域均勻地分割爲M×N個網格,然後對每個網格做pooling,最後拉平成一個 (M×N)x1 大小的1維向量,傳入後續的全連接中做分類和框體迴歸。
儘管ROI Pooling可以看做是針對ROI區域的feature map的Pooling操作,但因爲不是固定尺寸的輸入,因此每次的pooling網格大小得手動計算。 

這裏寫圖片描述

FASTER RCNN實現原理

faster rcnn在上面的基礎上更近了一步,將proposal的生成部分放到了roi層中。

anchor機制:

生成propoasl的規則基於anchor機制,對於卷積完成的特徵圖,根據給出一個基準窗大小,按照倍數和長寬比例得到不同大小的窗。例如論文中基準窗大小爲16,給了(8、16、32)三種倍數和(0.5、1、2)三種比例,這樣能夠得到一共9種尺度的anchor。當最終特徵圖爲M×N大小時,所生成的anchor數量就爲 M×N×9個。

樣本生成機制:

生成anchor後,需要對anchor進行篩選,與實際的樣本label組成正樣本與負樣本。

1)假如某anchor與任一目標區域的IoU最大,則該anchor判定爲有目標;

2)假如某anchor與任一目標區域的IoU>0.7,則判定爲有目標;

3)假如某anchor與任一目標區域的IoU<0.3,則判定爲背景。

所謂IoU,就是預測box和真實box的覆蓋率,其值等於兩個box的交集除以兩個box的並集。正負樣本均隨機選擇128個參與訓練,其它的anchor不參與訓練。

結果篩選NMS:

最終會生成很多候選框,之中很多是重疊的。FASTER RCNN準確率準確率最大的爲基準,對於相互間IoU不大於0.7的目標框,只保留準確率高的候選框。然後在剩餘的選擇top-N,前300個框用於訓練。

代價函數定義爲:

注意,對迴歸框座標的loss,只對正樣本進行計算。

 

 

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