通過提取區域推薦然後進行目標檢測與分類算法系列已經歷經三代。本文將從思想層面依次介紹其核心思想和演變歷程。將抽象的模型算法拆解成可以通俗理解的概念。理解算法思路在看公式才能讀懂。
R-CNN(爺爺輩)
2014年R-CNN框架將卷積應用到目標檢測。
步驟:
- 原始圖片進入模型後使用selective method算法生成2000個候選區域,本質上意思是對原圖進行摳圖,生成可能出現物體的區域。
- 將2000個候選區域傳入卷積模型提取特徵。
- 提取特徵後利用SVM進行物體分類,使用迴歸進行位置預測。
缺點:
- 2000個候選框都進行了一次卷積核SVM分類器,等於進行了多次卷積核分類,運算量大。
- selective method算法速度慢,耗時大。
Fast R-CNN(爸爸輩)
Fast R-CNN本質上只經過一個卷積模型進行特徵提取。解決了R-CNN出現的缺點1,減少卷積次數。對feature map進行摳圖,進行了共享卷積特徵。
步驟:
- 原始圖片經過卷積層提取特徵,生成feature map。
- 對feature map使用selective method算法,生成候選區域。
- 由於生成的候選區域尺寸不一樣,經過ROI Pooling層將候選區域歸整成同樣尺寸。
- 使用softmax代替svm進行分類。使用迴歸進行位置預測。
Faster R-CNN(真身)
Faster R-CNN祖輩的最大區別是使用RPN(Region Proposal Network)代替了耗時的Selective method。
步驟:
- 輸入圖片經過VGG或者其他CNN網絡進行特徵提取,生成相應的feature map。
- feature map經過RPN網絡,feature map每個點生成9個Anchor box.
- 使用Anchor box作為參照物,計算偏移,然進行預測。
- 每個點,分類方面得到2k scores 用於判斷是否有無物體。
- 每個點,位置預測方面有4k coordinates 用於判斷位置。
- 上文的k是指9,即Anchor box種類。
- Rol pooling層將提取的proposal region變形成同樣尺寸。接著過濾無意義的候選框。
- RPN提取的候選框+前文的feature map判斷每個候選框的物體是什麼,本質上是判斷是否進行了有效摳圖,
- 最後經過全連接層進行分類,並且迴歸目標位置。
閱讀更多 技術信仰 的文章