【深度學習】R-CNN、Fast-RCNN以及Faster—RCNN三劍客

 

1、R-CNN

RCNN是第一個可以真正工業級應用的解決方案。可以說改變了目標檢測領域的主要研究思路,緊隨其後的系列文章:Fast-RCNN ,Faster-RCNN都沿襲R-CNN的思路。

關鍵點:

  • (1)使用訓練窗口2000個,並使用cnn對其特徵提取;
  • (2)樣本缺乏時,使用大量輔助樣本預先訓練,再用自己的樣本進行微調。

整體框架大致爲:

  1. 採用selective search生成建議窗口約2000個(每張圖片),由於建議窗口尺寸不一,所以通過拉伸形成統一的輸入尺寸227*227
  2. 運用CNN進行特徵提取,把統一尺寸的建議圖像輸入CNN,提取CNN特徵
  3. 對建議窗口圖像進行分類(SVM),用SVM對CNN輸出特徵分類
  4. Bound ing Box迴歸,用bb迴歸值校正原來的建議窗口,生成預測窗口座標、

缺點:

  • 1、 訓練步驟繁瑣(微調網絡+訓練SVM+訓練bbox);
  • 2、 訓練、測試均速度慢 ;
  • 3、 訓練佔空間

2、Fast-RCNN

關鍵點:

  • (1)測試時速度慢:RCNN把一張圖拆解爲2000個建議框,每個建議框拉伸形成的圖像都會單獨通過CNN提取特徵,實際上建議框大量重疊,特徵值之間完全可以共享,造成了運算能力的浪費。Fast-RCNN 將整張圖像歸一化後直接送入CNN,在最後的卷積層輸出的feature map上,加入建議框的信息,使得在此之前的CNN運算得以共享。
  • (2)訓練速度慢:R-CNN在訓練時,是在採用SVM分類之前,把通過CNN提取的特徵存儲在硬盤上。這種方法在硬盤上大量的讀寫影響訓練速度,Fast-RCNN在訓練時,只需要將一張圖像送入網絡,每張圖像一次性提取CNN特徵和建議區域,訓練數據在GPU內存裏直接進入Loss層,這樣候選區域的前幾層特徵不需要在重複計算且不需要把大量數據存儲在硬盤上。
  • (3)訓練所需空間大:R-CNN中獨立的SVM分類器和迴歸器需要大量特徵作爲訓練樣本,需要大量的硬盤空間,同時把類別判斷和位置迴歸統一用深度網絡實現,不再需要額外存儲成本
  • (4)將第五層的普通池化層替換爲RoI池化層,圖片然後經過5層卷積操作後,得到一張特徵圖(feature maps)開始得到的座標信息通過一定的映射關係轉換爲對應特徵圖的座標,截取對應的候選區域,經過RoI層後提取到固定長度的特徵向量,送入全連接層。
  • (5)在R-CNN中的流程是先提proposal,然後CNN提取特徵,之後用SVM分類器,最後再做bbox regression進行候選框的微調;Fast R-CNN則是將候選框目標分類與bbox regression並列放入全連接層,形成一個multi-task模型。

框架結構

 

相比R-CNN最大的區別,在於RoI池化層和全連接層中目標分類與檢測框迴歸微調的統一。

3、Faster-RCNN

作者提出了 Region Proposal Network(RPN),RPN 網絡共享輸入圖像的卷積特徵,能夠快速生成候選區域,計算代價小。生成的候選區送入Fast R-CNN網絡進行 detection。因此 Faster R-CNN 也可以理解爲 RPN + Fast R-CNN(文中作者稱 RPN 具有 attention 的意味,即告訴網絡關注的區域在哪裏)。

 

 

通過上述介紹可以知道,Faster R-CNN與Fast R-CNN最大的區別就是提出了一個叫RPN(Region Proposal Networks)的網絡,專門用來推薦候選區域的,RPN可以理解爲一種全卷積網絡,該網絡可以進行end-to-end的訓練,最終目的是爲了推薦候選區域。

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