RCNN:Rich feature hierarchies for accurate object detection and semantic segmentation

RCNN:Regions with CNN

背景


在RCNN出現以前,目標檢測系統一般通過將多個low-level圖像特徵進行結合,來產生high-level的特徵。

創新點


1.將CNN與region proposals相結合,首次展現出CNN在object detection問題上的強大威力,各種碾壓傳統方法
2.將圖像分類與目標檢測聯繫起來,利用預訓練好的圖像分類模型+少量數據的domain-specific微調,解決了訓練數據不足的問題。
3.利用RCNN完成了語義分割的任務。

基於RCNN的目標檢測


算法流程見下圖(詳見圖片描述)
RCNN

At test time:
1.對每一張測試圖像,採用selective search得到2000張左右的region proposals(即目標候選框框)。
2.對每一個region進行仿射變換並傳遞給CNN,以求出長度一定的feature。即使region大小不一,CNN輸出的feature長度也是一定的~
3.用線性SVM對每一個region對應的feature進行分類,並統計得分。注意:如果一共有N類,則每一個region需要分別輸入給N個SVM分類器,得到N個得分。若regions一共2000個,則SVM輸出的矩陣維度就是2000xN
4.採用非極大抑制算法(non-maximum suppression )從所有scored-regions中選出置信度最高的bounding box做爲目標的框框。

pretraining and fine-tuning


pretraining:
採用的是圖像分類模型Imagenet(輸出爲1000維向量,即可以對1000種物體進行分類)
domain-spesific fine-tuning:
將最後的1000維輸出層替換爲N+1維輸出,N指的是分類任務中的物體類別數目,1代表背景,其餘結構不變。
訓練數據:
positive samples:ground-truth regions以及與groundtruth region重疊率大於0.3的selective search regions
negative samples:與groundtruth region重疊率小於0.3的selective search regions

注意:
1.在fine-tuning時,學習率爲預訓練模型的十分之一,這使得原來的模型參數不會劇烈變化。
2.由於正負樣本的比例懸殊較大,通過增大正樣本的採樣率來保證訓練的有效進行。

SVM Training


一旦得到CNN提取到的region proposals的features及其對應的labels(物體類別),就可以訓練SVM分類器了。由於訓練數據太多,內存佔用很高,採用標準的hard negative mining method[P. Felzenszwalb, R. Girshick, D. McAllester, and D. Ramanan. Object detection with discriminatively trained part based models. TPAMI, 2010. 2, 4, 7, 12][K. Sung and T. Poggio. Example-based learning for view-based human face detection. Technical Report A.I. Memo No. 1521, Massachussets Institute of Technology, 1994. 4]得到hard negative samples,這樣可以更有效的更新分類器參數。
訓練數據:(與fine-tuningCNN時的數據有點不同哦~)
positive samples:ground-truth regions
negative samples: 與ground truth bounding box重疊率小於0.3的selective search regions
這裏有個問題:
CNN輸出features後,爲什麼不直接連一個softmax層輸出各類別的概率呢而要單獨訓練一個SVM呢?作者在論文中也給出瞭解答。

Bounding-box regression


Bounding-box regression是幹啥的?
給定一個region proposal,輸入CNN得到pool5 features,將其輸入給一個線行迴歸模型以預測detection window。Bounding-box regression就是一個預測detection window的東東。
訓練數據:
輸入爲region proposal的座標(region中心點座標以及region的長、寬),輸出爲groundtruth box的座標(box中心點座標以及box的長、寬)
目的就是將一個proposal box與ground-truth box形成映射。


Region Proposals


即目標的候選區域。
Recognition using proposals已成功應用在目標檢測[J. Uijlings, K. van de Sande, T. Gevers, and A. Smeulders.Selective search for object recognition. IJCV, 2013. 1, 2, 3, 4, 5, 9]、語義分割[J. Carreira and C. Sminchisescu. CPMC: Automatic object segmentation using constrained parametric min-cuts. TPAMI, 2012. 2, 3]中。

非極大抑制算法


Non-Maximum Suppression就是需要根據score矩陣和region的座標信息,從中找到置信度比較高的bounding box。首先,NMS計算出每一個bounding box的面積,然後根據score進行排序,把score最大的bounding box作爲隊列中。接下來,計算其餘bounding box與當前最大score與box的IoU,去除IoU大於設定的閾值的bounding box。然後重複上面的過程,直至候選bounding box爲空。最終,檢測了bounding box的過程中有兩個閾值,一個就是IoU,另一個是在過程之後,從候選的bounding box中剔除score小於閾值的bounding box。

需要注意的是:

Non-Maximum Suppression一次處理一個類別,如果有N個類別,Non-Maximum Suppression就需要執行N次。

Visualizing learned features


作者採用了一種簡單的non-parametric方法來可視化網絡學習到的東西。
The idea is to single out a particular unit (feature) in the network and use it as if it were an object detector in its own right. That is, we compute the unit’s activations on a large set of held-out region proposals (about 10 million), sort the
proposals from highest to lowest activation, perform non-maximum suppression, and then display the top-scoring regions. Our method lets the selected unit “speak for itself” by showing exactly which inputs it fires on.
我的理解是:對於某一個輸入的region proposal,CNN輸出此region對應的多個features,其中每個features都是一個小方塊,每個小方塊中的一個點就是一個unit(feature)。選擇其中的一個unit(feature),將這個feature看做一個卷積核,在一系列region proposals上面滑動,計算出其在各個regions上面的激活值,激活值最大的region就是它所fires on的region。(因爲這個region與所輸入的region proposal具有相似的feature,所以纔會對其有較高的響應值。)

層數越深,效果不一定越好


實驗發現,採用預訓練的模型完成目標檢測任務時,只採用pool5 layer即可得到較好的效果,加上了fc6和fc7之後,效果反而下降了。這說明,CNN強大的特徵表示能力主要來源於卷積層而不是全連接層。
採用domain-spesific fine-tuning後的模型進行目標檢測時,fc6和fc7層的存在反而使得檢測效果變好了,這說明pool5 layer學習到的特徵是general features,在微調的過程中,fc6 和 fc7 層把pool5 featurs與特定的目標檢測任務做了映射,也就是說,檢測效果提高的原因主要歸功於fc6和fc7層。

RCNN實時性較高的原因


1.feature的維度較低
2.權值共享:對任意類別的測試樣本,將region proposals輸入給一個CNN卷積網絡後得到不同region的特徵,後面經過SVM分類器輸出目標的類別。由於這個CNN網絡是唯一的,將features與類別進行映射的工作就是由最後的featur層與SVM之間的權重矩陣完成的:若CNN輸出的features爲2000*4096,SVM輸出爲N維向量,則權重矩陣就是4096*N大小

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