深度學習(七)object detection
目標檢測(object detection)的基本思路: 檢測(detection)+ 定位(localization)
目標檢測在很多場景有用,如無人駕駛和安防系統。
- 傳統方法
特征提取算法(如:haar特征,HOG特征)+分類器(如:svm)
- 深度學習方法
- R-CNN (Regions with CNN features) 基於卷積神經網絡特征的區域方法
Selective Search to Extract Regions + CNN提取特征 + SVM分類
主要步驟:
(1) 輸入測試圖像
(2) 利用selective search算法在圖像中提取2000個左右的region proposal。
(3) 將每個region proposal縮放(warp)成227x227的大小並輸入到CNN,將CNN的fc7層的輸出作為特征。
(4) 將每個region proposal提取到的CNN特征輸入到SVM進行分類。
-
- Fast-RCNN
去掉了單獨SVM分類的部分,直接用CNN的網絡實現分類
Fast R-CNN在整個圖片上使用CNN,然後對特征映射使用“興趣區域” (Region of Interest, RoI) 池化,最後使用前饋網絡進行分類和回歸。
主要步驟:
(1)在圖像中確定約1000-2000個候選框 (使用選擇性搜索)
(2)對整張圖片輸進CNN,得到feature map
(3)找到每個候選框在feature map上的映射patch,將此patch作為每個候選框的卷積特征輸入到SPP layer和之後的層
(4)對候選框中提取出的特征,使用分類器判別是否屬於一個特定類
(5)對於屬於某一特征的候選框,用回歸器進一步調整其位置
-
- Faster-RCNN
Faster-RCNN添加了區域提案網絡 (Region Proposal Network, RPN),擺脫了選擇性搜索算法,並可以做到端到端的訓練。
RPNs的任務是基於objectness分數輸出對象,然後用RoI池化 (RoI Pooling) 和完全連接層分類。 主要步驟:(1)對整張圖片輸進CNN,得到feature map
(2)卷積特征輸入到RPN,得到候選框的特征信息
(3)對候選框中提取出的特征,使用分類器判別是否屬於一個特定類
(4)對於屬於某一特征的候選框,用回歸器進一步調整其位置
-
- SSD
SSD算法是一種直接預測目標類別和bounding box的多目標檢測算法。與faster rcnn相比,該算法沒有生成 proposal 的過程,這就極大提高了檢測速度。
- 代碼實踐
Reference:https://blog.csdn.net/f290131665/article/details/81012556
深度學習(七)object detection