1. 程式人生 > >RCNN:Rich feature hierarchies for accurate object detection and semantic segmentation 閱讀筆記

RCNN:Rich feature hierarchies for accurate object detection and semantic segmentation 閱讀筆記

Rich feature hierarchies for accurate object detection and semantic segmentation

這裡寫圖片描述

0. 簡介

本文是CVPR2014的論文,在這之前檢測最好的方法結合了low-level 影象特徵與high-level context資訊作為影象特徵;與此同時AlexNet在ImageNet影象分類任務中超越了人工特徵的方法,體現了卷積神經網路的強大能力。那CNN在影象分類任務中的優勢是否可以泛化到檢測任務中呢?如果可以表現如何?為了回答這些問題,文中設計了一種簡單的影象檢測演算法RCNN,在 VOC 2012 達到了53.3%的mAP值,超越了之前最好演算法的30%。RCNN融合了兩個關鍵的insight:

  • 將高容量的CNN應用到image proposals 中來完成定位,分割任務是可行的;
  • 如果有標註資料量不夠,預訓練之後在特定的問題中進行fine-tuning可以顯著的提高performance。

利用CNN完成檢測任務面臨的兩個問題:
如何利用CNN來定位物體:直接將定位建模為一個座標迴歸問題,當時已有的結果顯示這樣做的效果不好(30.5%mAP);利用滑動視窗方法中,高層神經元的感受野與對應到輸入影象的stride過大,作者指出利用滑動視窗做精確定位是個具有挑戰性的問題。文中利用了“recognition using regions” paradigm,先將影象中生成2000個左右的category-independent region proposal,affine image warping後利用cnn提取propocal 固定維度的特徵丟入線性svm進行分類。

現有的有標註資料稀少不足以訓練高容量CNN 作者指出通過在一個較大的資料集中做有監督預訓練(對比之前的無監督預訓練),然後在特定問題的小資料集上做fine-tuning是一個非常有效的方法。文中指出在RCNN中fine-tuning可以提高8個百分點mAP(這裡不應該說預訓練帶來多少提升嗎????)。

mAP 首先對於每個類別計算P-R曲線,那麼AP(Average Precision)就是P-R曲線的下面積,那麼mAP(mean Average Precision)就是對所有類別的平均。

這裡寫圖片描述

IOU=(AB)/(AB)
這裡寫圖片描述
RCNN圖例,接下來具體介紹其中的每一個步驟。

1.模型設計

Region proposals產生 region proposals的方法種類很多,為了方便與其他方法對比,作者選擇了selective search[pdf][ss 參考連結] and [pythoncode]

Selective Search is a region proposal algorithm used in object detection. It is designed to be fast with a very high recall. It is based on computing hierarchical grouping of similar regions based on color, texture, size and shape compatibility.

ss是一種速度快,召回率非常高的 region proposal 演算法,主要通過計算regions間的顏色,文理,大小,形狀的相似度來完成hierarchical grouping得到的。

Feature extraction: 文中採用 AlexNet結構(輸入227*227,fc7維度4096),為了讓region proposal的尺寸適應網路結構大小,作者試驗了不同的方法:
這裡寫圖片描述

各向異性縮放這種方法很簡單,就是不管圖片的長寬比例,管它是否扭曲,進行縮放就是了,全部縮放到CNN輸入的大小227*227,如上圖(D)所示;

各向同性縮放因為圖片扭曲後,估計會對後續CNN的訓練精度有影響,於是作者也測試了“各向同性縮放”方案。這個有兩種辦法:

  1. 直接在原始圖片中,把bounding box的邊界進行擴充套件延伸成正方形,然後再進行裁剪;如果已經延伸到了原始圖片的外邊界,那麼就用bounding box中的顏色均值填充;如圖(B)所示;
  2. 先把bounding box圖片裁剪出來,然後用固定的背景顏色填充成正方形圖片(背景顏色也是採用bounding box的畫素顏色均值),如下圖(C)所示;

對於上面的異性、同性縮放,文獻還有個padding處理,上面的示意圖中第1、3行就是結合了padding=0,第2、4行結果圖採用padding=16的結果。經過最後的試驗,作者發現採用各向異性縮放、padding=16的精度最高
上面處理完後,可以得到指定大小的patch,因為後面還要繼續用這2000個候選框圖片,訓練CNN得到特定層的feature,對於每個class,訓練線性SVM得到每個proposal的得分,最終在影象中利用非極大值抑制來去除一些框。這樣的框架在特徵維度數目,儲存空間,預測時間相對於之前的方法都有很大的優勢。

2. CNN訓練

有監督預訓練 作者首先在ILSVRC 2012中訓練了AlexNet,結果基本與論文中的結果差不多。

Domain-specific fine-tuning首先 ILSVRC2012中有1000個類別,而VOC中是20個類別,首先將AlexNet中的最後一個1000units的層替換會只有21個的(多了背景一類),並且隨機初始化這一層。對於資料標定,如果一個region proposal與某一個類別的ground true 標定框IoU>0.5,就標定這個proposal為這一類別的正樣本,如果與任何一類的ground true IoU都<0。5,標記為背景。 利用0.001的SGD進行訓練,batchsize為128(32positive &96background,正樣本相對太少了)

訓練分類器SVM訓練過程中,正樣本為ground true,也就是資料集中的標定,對於background,作者通過grid search 方法,發現把其定義為與ground true IoU<0.3結果最好。在實現中利用了hard negative mining方法來降低佔用的儲存空間。

這裡fine-tuning 與訓練svm正負樣本定義不同:

for finetuning we map each object proposal to the ground-truth instance with which it has maximum IoU overlap (if any) and label it as a positive for the matched ground-truth class if the IoU is at least 0.5. All other proposals are labeled “background” (i.e., negative examples for all classes). For training SVMs, in contrast, we take only the ground-truth boxes as positive examples for their respective classes and label proposals with less than 0.3 IoU overlap with all instances of a class as a negative for that class. Proposals that fall into the grey zone (more than 0.3 IoU overlap, but are not ground truth) are ignored.

作者在補充材料裡說明,現在這樣的定義得到的結果最好,在fine tuning的時候可以擴充正樣本資料量,對於訓練整個網路並防止其過擬合是必要的。同時 fine tuning的目標並不是精確的定位,所以這樣做是合理的。這也能解釋作者為何要不直接把一個softmax 分類器接在網路的最後,這樣做的結果不夠精細(因為資料標定不精細)同時訓練的也不是hard negatives。但是如果能夠解決掉這個gap的話,會加速RCNN。

Bounding box regression:對於一組訓練資料(pair):

Pi,Gi=[Pxi,Pyi,Pwi,Phi],[Gxi,Gyi,Gwi,Ghi]
P代表proposal,G代表ground truth,四個值分別是中心點座標(x,y),寬w,高h,Bounding box 迴歸要學習四個函式,
dx(P),dy(P),dw(P),dh(P)
利用這四個函式把一個proposal對映到一個Ground truth:
G^x=Pwdx(P)+Px
G^y=Phdy(P)+Py
G^w=Pwexp(dw(P))
G^h=Phexp(dh(P))
d(P)=wϕ5(P)
ϕ5(P)對應proposal經過神經網路的pool5特徵,最終的優化問題: