Rich feature hierarchies for accurate object detection and semantic segmentation Tech report 論文解讀
一、R-CNN的三個模組
- 每個圖片生成獨立類別的 region proposal,這些 proposals 定義了可用於檢測器的候選框集合
- 使用大型的卷積神經網路,可以從每個region proposal中提取固定長度的特徵向量
- 一組能區分每個類別的線性向量機組
二、測試階段
1.Region Proposal
論文中提到了很多生成獨立類別 region proposal的方法,作者選擇了selective search的方法確定2000個region proposal,關於selective proposal的詳述,請參照論文《Selective Search for Object Recoginition》,這裡簡單說明下使用到的區域合併演算法:
輸入:圖片(RGB通道)
輸出:目標位置
1.使用《Efficient Graph-Based Image Segmentation》中的方法獲取原始分割區域:
2.初始化相似度集合
3.對相鄰區域,計算兩區域的相似度,並加入到相似度集合S
4.當相似度集合不為空時(此時集合S內是相鄰區域的相似度)
(1) 選相似度最高的區域
(2) 將兩個區域合併成一個區域
(3) 從相似度集合S去除與 相鄰相似度的集合,從相似度集合S去除與 相鄰相似度集合
(4) 計算 與其相鄰區域的相似度。
(5) 把
5.獲取R中每個區域的bbox
2.Feature extraction
從每一個region proposal提取4096維度的特徵向量。提取的方法是使用訓練好的AlexNet模型,為了能適應網路227227的固定輸入,所以需要將每個region proposal調整到這個尺寸。
調整的方法有很多,論文這裡使用了最簡單的方法。
即對整個區域不保持橫縱比縮放到所需要的大小。在縮放之前,首先擴大被縮放區域,讓縮放後的區域邊界與之前的區域邊界相隔p個padding,本文中取的是16個,然後不管影象的大小強制縮小到所需求的尺寸。
3.Test-time detection
之前使用selective search在測試圖片上提取了2000個region proposal,然後把每個region proposal歸一化到227227尺寸,輸入到AlexNet網路中,每個region提取到4096個特徵向量,這樣有20004096維度的特徵,再把這些特徵向量匯入到事先訓練好的SVM中,分別對每個類別進行打分,選擇分數最高的作為最終預測結果。這時候可能會出現多個bbox,使用NMS對每一類剔除IOU與得分較高的selected region
三、訓練階段
1.Supervised pre-training
使用ILSVRC2012只有影象類別標籤,沒有影象物體標註的資料集,預先訓練好網路模型AlexNet
2.Domain-specific fine-tuning
這一階段使用既有影象中物體的類別標籤,又有影象物體的位置的PASCAL VOC 2012資料集,針對AlexNet網路進行一些微調,將原來1000個類別的輸出換成21個類別(20個類和1個背景),選擇學習率為0.001,每一個mini-batch包含有32個正樣本和96個副樣本。通過每個region proposal與ground-truth box的IOU來判斷正負樣本,如果IOU大於等於0.5就是正樣本,反之為負樣本。總的來說就是為了訓練AlexNet網路的引數。
3.Object category classifiers
在訓練線性SVM前,需要劃分正負樣本。包含在ground-truth box內的region proposal作為正樣本,完全不包含在ground-truth box的region proposal作為負樣本,同時設定閾值,對ground-truth box 與 region proposal的 IOU<0.3 的也作為負樣本,剩餘的全部丟棄。然後針對每一個類別訓練一個線性的SVM分類器。然而這會帶來一個問題就是,正樣本數量相對於負樣本數量會少很多,於是作者採用了standard hard negative mining method 的方式訓練。簡單解釋下就是在訓練過程中,有一些得分很高的false positive,這就是所說的hard negative,分類器會誤判這些hard negative,那麼簡單的方法就是把這些拿出來再訓練一次。
讀到這裡,很不清楚為什麼不採用CNN進行分類,還有為什麼重新設定了IOU的閾值。這在附錄中解釋基本上都是從實驗結果做出的改善。
4.Bounding-box regression
設第 i 個region proposal ,其中前量兩個表示中點座標,後兩個分別表示寬和高,為簡單起見,後面就不考慮上標 i了。ground-truth box的數學表示式:,所以現在我們希望能學習一種轉化方式,可以將 P 對映到 G
對映d關係如下:
設表示中的一種,在AlexNet的pool5層,抽象整個線性關係為:
這裡的是Proposal的特徵向量,其中就是要學習的迴歸引數。
因此損失函式為:
上述的損失函式有個引數t,定義如下:
這裡做一個總的說明,來描述上面函式式表達的意思,首先分別表示region proposal box,ground-truth box,bounding box
函式關係式的目的式尋找到一個對映d,使:
簡單來就是讓P經過一個平移或者縮放過程得到:
(1)(2)式子代表平移,(3)(4)代表縮放,現在的問題式如何得到對映關係d,因此定義(6)式的loss函式,這裡的 t 表示原始P與真正的結果G之間的偏移值,如(7)(8)(9)(10)式