基於DL的目標檢測技術:R-CNN、Fast R-CNN、Faster R-CNN
阿新 • • 發佈:2018-11-27
目標檢測:在給定的圖片中精確找到物體所在位置,並標註出物體的類別。
目標檢測=影象識別(CNN)+定位(迴歸問題/取影象視窗)
遇到多物體識別+定位多個物體?
用選擇性搜尋找出可能含有物體的框(候選框)判定得分。這些框之間是可以互相重疊互相包含的,從而避免暴力列舉的所有框了。
1.R-CNN
步驟一:訓練(或者下載)一個分類模型(比如AlexNet)
步驟二:對該模型做fine-tuning
- 修改分類數
- 去掉最後一個全連線層
步驟三:特徵提取
- 提取影象的所有候選框(選擇性搜尋)
- 對於每一個區域:修正區域大小以適合CNN的輸入,做一次前向運算,將第五個池化層的輸出(就是對候選框提取到的特徵)存到硬碟
步驟四:訓練一個SVM分類器(二分類)來判斷這個候選框裡物體的類別
- 每個類別對應一個SVM,判斷是不是屬於這個類別,是就是正類,反之負類
步驟五:訓練一個迴歸器精細修正候選框位置:對於每一個類,訓練一個線性迴歸模型去判定這個框是否框得完美。
速度瓶頸
計算機對所有候選框進行特徵提取時會有重複計算。
2.Fast R-CNN
在RCNN的基礎上採納了SPP Net方法(空間金字塔池化)
- 整張圖輸入CNN提取一次特徵
- 找出每個候選框在feature map上的對映patch
速度瓶頸
選擇性搜尋,找出所有的候選框這個過程也耗時
3.Faster R-CNN
在Fast R-CNN的基礎上加入一個提取候選區域的網路RPN(Region Proposal Network),代替了費時的選擇性搜尋,使得檢測速度大幅提高。
具體做法
- 將RPN放在CNN最後一個卷積層的後面
- RPN直接訓練得到候選區域
RPN簡介
- 本質是 “ 基於滑窗的無類別目標檢測器 ” :
- 在feature map上滑動視窗產生錨點
- 建立一個神經網路用於物體分類+框位置的迴歸
- 滑動視窗的位置提供了物體的大體位置資訊
- 框位置的迴歸提供了框更精確的位置