R-CNN系列核心思想簡單記錄

R-CNN系列核心思想簡單記錄

1. R-CNN

R-CNN系列的開山之作,思想很重要。

  1. 輸入一張圖像
  2. 提取一定數量的候選框
  3. 將候選框變形到固定的尺寸
  4. 將變形後的候選框送入CNN進行提特徵
  5. 將特徵送入SVM進行分類
  6. 將特徵送入迴歸器進行迴歸BBox

如何提取2000個候選框?

用Selective search算法選取,兼顧各個尺度。下面這個算法圖說的很清楚,其中初始化方法另一篇論文有說。

如何變形到固定尺寸?

原論文裏有比較了幾種方式,採用了不考慮圖像原始比率,變形到給定的固定的尺寸的辦法。

如何訓練?

CNN提特徵的網絡,先用ImageNet預訓練,然後在目標數據集微調,輸出21個類別(20物體+1背景)。然後再用訓練好的CNN去提特徵訓練SVM分類器和迴歸器。

關於CNN和SVM訓練樣本的問題

CNN把和GT(Ground Truth)IoU >=0.5的數據作爲正樣本,IoU < 0.5的作爲負樣本(背景)。而SVM在訓練的時候,用IoU < 0.3的數據作爲負樣本,GT作爲正樣本,其他的區間內的數據直接忽略不使用。

關於去除重複的候選框

NMS,非極大值抑制,核心思想是,在一個局部極值的鄰域內,將某個指標足夠大的區域剔除,只保留當前的極值區域。因爲極值區域就足夠代表當前這個鄰域的特徵了。

2. Fast R-CNN

改進R-CNN,主要在候選區域提特徵,和多任務訓練這裏。

  1. 輸入一張圖像
  2. 提取一定數量的候選框
  3. 將候選框區域映射到最後的featureMap上,提取對應的feature(每次尺寸都不一致)。
  4. 採用ROI pooling,就是將不同尺寸的feature劃分成相同尺寸的網格,然後沒有網格內取最大值,所以不同尺寸的feature可以統一變換到相同的尺寸。
  5. 將特徵向量經過全連接層進行分類、迴歸。

RoI pooling?

就是類似傳統CV的劃分區域的思想,雖然size各不相同,但是我都平均劃分成一樣的區域網格,最後得到的feature vector都是一樣的,便於後續網絡的訓練。

ROI projection?

本質上圖像變成featuremap後,featuremap和原始圖像的對應關係還是可以找到,所以可以在featuremap上找到和候選框對應的區域,然後選取這塊區域進行後續的計算。

Multi-Task?

將分類和迴歸放在一起進行,可以證明,提高了準確率,可以說相互促進吧。

相比於R-CNN

  • 減少了CNN訓練時的冗餘,原來是一張圖分成多個區域,每個區域從頭進入CNN訓練,現在是圖片先進入CNN得到featuremap,然後在featuremap上用候選框選擇特徵然後進行計算。
  • 將分類和迴歸整合在一起訓練,不用分開訓練。
  • 還有SVD分解的小貢獻,提升速度,也不算核心的貢獻。

3. Faster R-CNN

繼續改進Fast R-CNN,候選框提取依然很慢(Selective Search),Faster R-CNN對候選框選取這裏進行優化。主要提出了RPN (Region Proposal Network)網絡,用來提取候選框。

  1. 輸入一張圖像
  2. 經過CNN提取特徵
  3. 對於特徵,每個位置對應9種不同的Anchor(候選框,尺寸人爲提前規定)。
  4. 對每個候選框進行分類和迴歸BBox,最後得出候選框。
  5. 有了featuremap和候選框,後面就和Fast R-CNN一樣了。

RPN?

核心貢獻,將候選框的選擇和加入到網絡的訓練中,認爲規定的Anchor基本可以覆蓋大多數目標。

相比於Faster R-CNN?

提升了速度和準確度,可以end to end訓練。

4. Mask R-CNN

對Faster R-CNN改進,可以進行實例分割任務,而且改動很簡單,主要是更換了ROI Pooling->ROI Align,以及增了一個分割的任務。

  1. Faster R-CNN 的步驟,提取feature map和候選框,其中ROI Pooling更換成了ROI Align。
  2. 後面,除了分類和迴歸,還額外增加了幾層網絡,用來輸出Mask。

ROI Align?

ROI Pooling在劃分網格的時候,不是均勻的劃分的,就是可能有的子區域大,有的小,但是最終都被一個數值來表示,例如3x3被pool成一個最大值,而2x2的區域也被pool成一個值,這樣可能讓feature產生了偏移。ROI Algin採用插值的思想,均勻的劃分,然後用插值來得到最後的值,可以緩解ROI Align的問題。

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