論文筆記《Rich Feature Hierarchies for accurate object detection and semantic segmentation》

RCNN是CNN應用在object detection的開山之作,加上後續的Fast-RCNN,Faster-RCNN都是非常經典的工作,這三篇文章一環套一環的改進思路簡直是快準狠(跪拜rbg大牛><)。筆者不是做檢測的(所以沒有折騰過代碼不清楚實驗細節),在paper reading聽了別人報告之後很喜歡RCNN系列文章,就記錄下對原理的理解和感悟吧。

1 論文信息

發表會議:CVPR2014
代碼

2 Motivation

就像論文開頭所說,“Features matter”,描述力強的特徵對目標檢測任務來說十分有必要,考慮將CNN強大的表示能力用於目標檢測中,就是考慮“fill the gap between image classification and object detection”,而對於一個目標來說,要判斷它是哪個目標,實質上是一個分類問題。

3 Method

3.1 簡介

RCNN是pipeline approach,主要流程是,獲取proposal(selective search)–> 提特徵(CNN)–> 得到每個proposal的得分(SVM)–> 目標定位(bounding box regression),如下圖:

RCNN Frame

3.2 細節記錄

這一步得到2k左右個proposal。

3.2.2 Extract CNN features

  1. 上一步的proposal直接忽視長寬比,把warped region輸入CNN網絡
  2. 這裏finetune CNN時,用和groud truth的IoU overlap>0.5的proposal作爲該類的正例樣本,其餘的都是反例樣本,而因爲正例太少,所以實驗中固定正反例樣本比例爲1:3

3.2.3 Compute score

  1. 爲每個類訓練SVM,這樣每個框都會得到對應於每個類的score
  2. 訓練SVM時,用ground truth作爲正例樣本,和ground truth的IoU overlap<0.3的作爲反例樣本

3.2.4 bounding box regression

  1. 取和ground truth的IoU overlap>0.6的proposal用於訓練迴歸模型
  2. 用proposal 的的pool5特徵Φ5(Pi) 學習一個w=argminwNi(tiwTΦ5(Pi))2+λ||w||2 , 其中P1 是4維向量,代表第i個proposal的左上角點座標(x,y)和proposal的(width, height).
  3. 根據w計算一個對於位置的變換d(P)=wTΦ5(P) , 其中d就是代表proposal和對應的ground truth之間的變換。

4 Experiment

本文中實驗佔了較大篇幅,對於細節問題的探討也很值得學習。

4.1 怎麼warp

即如何把大小不一的region proposal統一到CNN要求的輸入大小,作者嘗試多種方案後決定直接忽略長寬比做resize。

4.2 正反例的定義

可以看到在finetune CNN時和訓練SVM時,對於正反例的定義是不一樣的,作者應該做了大量實驗去找overlap的合適取值。相對而言對SVM的正反例定義要嚴格些,因爲它得出的score要拿出來分類,而CNN只是提特徵,且CNN訓練需要較多的數據。

4.3 softmax還是SVM

CNN本身就是分類網絡,其中softmax分類器的輸出可以作爲proposal的score,一方面是實驗結果顯示用SVM效果好,另一方面,由於finetune CNN用的正反例不是真實的正反例,只是一種近似。

4.4 CNN爲什麼rich

在論文的Fig6中,對比了CNN對於多種object特性(截斷,視角,長寬比等)的敏感度(越不敏感說明泛化能力越好)。

5 Summary

CNN這種rich feature確實提升了目標檢測的性能,當前RCNN的需要改進的地方有:

  1. 較複雜的pipeline
  2. 對一張圖的proposal分別提取CNN,因爲大量proposal互相重複導致對圖片的區域進行多次計算。
  3. warp使region失真

後續的Fast、Faster RCNN也都主要是根據以上幾點改進模型。

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