【目標檢測】基於推薦區域的two stage算法簡單總結

從網絡結構上來講,目標檢測算法可以被分爲one stage框架的YOLO算法、SSD算法,以及two stage框架的R-CNN系列。one stage 和 two stage區別在於,前者是輸入圖像後在卷積神經網絡中提取特徵,預測物體分類和位置,後者是輸入圖像後在網絡中生成多個候選框(Proposal Boxes),進行更精細的檢測,找到待測物體的位置並分類。本文針對two stage算法,簡要總結下R-CNN系列算法的流程。

R-CNN

算法步驟

  • 輸入圖像,採用Selective Search算法,在一張圖像中生成多個候選框(一般 2 000 個左右)
  • 每個候選框的特徵圖縮放到相同大小(227x227),使用CNN提取特徵
  • 將提取出的特徵送入線性SVM分類器,判別是否屬於一個特定的類
  • 對其進行非極大抑制處理,提出重疊的候選框
  • 使用迴歸器進一步調整候選框位置
    在這裏插入圖片描述

總結

  • R-CNN是在推薦區域上,自下而上使用大型卷積神經網絡(CNNs),用以定位和分割物體
  • 採用 Selective Search 技術生成推薦區域,使用的是AlexNet網絡
  • 在 ImageNet 上先進行預訓練,然後進行 fine-tune(遷移學習),優化了效率問題,效果更好
  • 用 CNN 抽取特徵,然後用一系列的的 SVM 做類別預測
  • bbox 位置迴歸基於 DPM 的靈感,自己訓練了一個線性迴歸模型
  • 區域分類技術是語義分割的標準做法,所以 R-CNN 也可以做語義分割
  • Bbox 的值其實就是物體方框的位置,預測它就是迴歸問題
  • 神經網絡最神奇的力量主要來自卷積層,甚至去除了全連接影響也不會太大
  • 採用大樣本下有監督預訓練+小樣本微調的方式解決小樣本難以訓練甚至過擬合等問題

不足之處

  • 對每個推薦區域都進行了前向運算,也就是算法步驟中的第二步,其中涵蓋了大量對重複區域的操作,導致訓練和測試速度很慢
  • 由於輸入的候選區域必須是固定大小,因此經過 crop 或 warp 操作後,裁剪區域可能不包含整個對象,而扭曲內容可能導致幾何失真,影響檢測精確度。
  • 測試過程複雜,要先提取推薦區域,之後提取每個RP的CNN特徵,再用SVM分類,做非極大值抑制,最後做bounding-box迴歸才能得到圖片中物體的種類以及位置信息;訓練過程複雜,ILSVRC 2012上預訓練CNN,PASCAL VOC 2007上微調CNN,做20類SVM分類器的訓練和20類bounding-box迴歸器的訓練;這些不連續過程必然涉及到特徵存儲、浪費磁盤空間等問題。

Fast R-CNN

算法步驟

  • 輸入圖像,用滑動窗口查找圖像中的對象,利用Selective Search算法提取推薦區域(大約2000個)
  • 使用CNN 提取特徵,投影到最後的特徵層
  • 對特徵層上的候選框進行單一金字塔池化(SSP)操作,得到固定大小的特徵表示
  • 使用兩個全連接層(分類與迴歸),用 Softmax 分類器分類,用邊界迴歸模型進行微調

在這裏插入圖片描述

總結

  • Fast R-CNN不再使用SVM進行分類,採用並行的不同的全連接層,使用一個網絡同時完成了提取特徵、判斷類別、框迴歸三項多任務工作
  • 採用SVD對Fast R-CNN網絡末尾並行的全連接層進行分解,減少計算複雜度,加快檢測速度
  • Fast R-CNN是R-CNN和SPPNet的融合與改進
  • 在R-CNN上改進,主要在於使用了SPPNet的思想,ROI Pooling,用RoI pooling層取代最後一層max pooling層,同時引入推薦框信息,提取相應推薦框特徵
  • 在SPPNet上改進,主要在於最後分類使用的是神經網絡

不足之處

  • 採用selective search算法提取候選區域,而目標檢測大多數時間都消耗在這裏,無法滿足實時應用需求
  • 並沒有實現真正意義上的端到端訓練模式,推薦區域是使用selective search算法先提取出來的

Faster R-CNN

算法步驟

  • 通過 CNN 對輸入的任意大小的圖像進行特徵提取,輸出一組矩形Object Proposal
  • 在與 RPN形成的共享 conv 層的最後一層的滑動網絡滑動一遍,利用 k個不同大小的錨(Anchor)定位滑動窗口(例如 k取9),從而預測 Region Proposal,生成特徵區域候選框
  • 在 reg(盒迴歸層)和 cls(盒分類層)上進行迴歸和分類,每個錨都分配一個二進制類標籤(an object or not)進行分類,訓練一組 K 個邊界迴歸模型,每個迴歸模型負責一個不同比例和縱橫比的錨盒(Anchor Boxes),對每個候選框位置進行微調後再分類
    在這裏插入圖片描述

總結

  • 創新性的設計Region Proposal Networks,利用CNN卷積操作後的特徵圖生成region proposals,代替了Selective Search、EdgeBoxes等方法,速度上提升明顯
  • 訓練Region Proposal Networks與檢測網絡Fast R-CNN共享卷積層,大幅提高網絡的檢測速度

不足之處

  • 採用vgg網絡,實時性還是比較低

參考資料:
一個很不錯的整理:https://blog.csdn.net/qq_41375609/article/details/94749596
Faster R-CNN總結:https://blog.csdn.net/qq_33952811/article/details/103388764
Fast R-CNN總結:https://blog.csdn.net/qq_33952811/article/details/103375451
R-CNN總結:https://blog.csdn.net/qq_33952811/article/details/103366132

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