R-CNN論文解讀

論文題目: Rich feature hierarchies for accurate object detection and semantic segmentation

作者: Ross Girshick Jeff Donahue Trevor Darrell Jitendra Malik
會議: 2014 CVPR


1. R-CNN是什麼

R-CNN就是Regions with CNN features, 意思是通過CNN來提取region Proposals的特徵;而region proposals其實就是我們常說的ROI(興趣點),在目標檢測中就是目標可能所在的區域。


2.問題引入

在著名的競賽PASCAL VOC中,近年來目標檢測的mAP(mean average precision)已經處於一個瓶頸期,如圖一所示


圖一


並且在視覺識別上大部分的方法還是基於SIFT和HOG特徵的,我們都知道 Feature matters,那有什麼辦法可以突破這個瓶頸嗎?答案是有!這就引出了R-CNN,將CNN引入到目標檢測的開山之作。


3. 論文框架


對於一張輸入圖片,首先抽取大約2k的region proposals,然後把這些region proposal輸入CNN中計算特徵,注意,這裏只是一張圖片,而一張圖片有2k的region proposals 要在CNN中計算,這個時間複雜度和空間複雜度就很大了,這也是後來Kaiming提出的SPP net主要解決的問題,好,言歸正傳,拿到CNN特徵之後,再通過線性 SVM進行分類就得到結果了。 所以 R-CNN把檢測問題直接轉換成了一個分類問題!


4. 論文具體工作及細節


region proposals的獲取

論文采用的是Selective Search的方法來獲取的,是2012IJCV的一個工作(Selective Search for Object Recognition),簡單來說就是一開始把一張圖片分成很多小區域,然後通過計算小區域的顏色相似度,紋理相似度,大小相似度和吻合相似度,最後綜合這四個相似度進行合併。



CNN網絡結構

提取region proposals 特徵採用Alexnet,輸入的每個region proposals被scale到227*227(Alexnet的輸入),有一種是不管比例直接縮放,但是這種縮放會對目標進行扭曲,歲後續的特徵提取可能會有影響,另一種是通過背景顏色填充,經過作者的實驗,採用了直接縮放並用16padding的方式,最後輸出爲4096維的特徵向量。



訓練過程(遷移學習)

(1)有監督的預訓練(Supervised pre-training)

直接在很大的數據集(ILSVRC 2012)上進行圖像標註級別的預訓練。

(2)面向領域微調(Domain-specific fine-tuning)

爲了讓CNN適用於目標檢測,通過SGD對參數進行更新,除了最後的輸出從1000變成了21(20個VOC+背景)類

,其他的網絡結構都是不變的;



每個類都訓練一個SVM分類器,但是這邊涉及到的一個問題是,怎麼判斷一個region proposals是正樣本還是負樣本?考慮一個汽車的例子,包含整個汽車當然是正樣本,背景跟汽車無關屬於負樣本,但是部分車怎麼判斷,經過作者的validation,找到一個IoU閾值0.3,也就是檢測窗口和groung truth的交併比小於0.3標註爲負樣本,大於0.3即爲正樣本。

訓練集中正樣本一般比較少,而負樣本多很多,SVM訓練出來的效果並不是很好,通過Hard negative mining method來解決這個問題,hard negative mining意思是第一次訓練的時候會有很多負樣本分到正樣本中,我們把這些稱爲hard negtive,把這些拿出來作爲有代表性的負樣本重新進行訓練。


Bounding-box regression

使用迴歸來精修bounding-box的位置。在SVM預測出每個region proposal的score之後,對於每一類都有一個線性的迴歸器進行精修。



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