目標檢測 R-CNN 論文筆記(Rich feature hierarchies for accurate object detection and semantic segmentation)
如果對目標識別與檢測尚不瞭解,建議先看看CS231的相關課程(課程16與17):http://study.163.com/course/courseMain.htm?courseId=1003223001
摘要
目標識別與檢測數據庫:PASCAL VOC在12年以前一直進展緩慢,一些新提出的優化方法只是把之前的方法線性地結合在一起。Ross Girshick提出的R-CNN直接將識別準確率提高了30%。作者主要利用兩個因素:一個是CNN可以應用於區域候選,以便定位和分割物體;另一個是當標記的訓練數據很少時,輔助任務的預訓練加以fine-tuning,可以顯著提高性能。(when labeled training data is scarce, supervised pre-training for an auxiliary task, followed by domain-specific fine-tuning, yields a significant performance boost.)
1. 介紹
- R-CNN提出以前,各式各樣的目標檢測算法大都基於SIFT和HOG算子,二者都是 blockwise orientation histograms,我們可以大致地將它們與哺乳動物視覺聯繫起來。但大腦的識別過程應該是多層傳遞的,因此識別程序也應該有一個多層結構。基於此,Fukushima 提出了“neocognitron”方法,Lecun 也提出了“missing algorithm”。
鑑於13年CNN的火爆,作者認爲:CNN在圖像分類上的結果也可以擴展應用到PASCAL VOC的挑戰上。爲了達成目標,需要解決兩個問題:
- 用深度網絡定位目標。目標檢測首先需要定位物體(localization)。定位的實現方式一般爲滑動窗檢測(用窗口截取圖像的一部分,每次都做一個定位迴歸),但對於較大感受野和步長的CNN是一個不小的挑戰。
- 用小容量的標記數據訓練大容量的網絡。解決方式上面其實已經說了,就是在ILSVRC這個大的輔助訓練集上進行監督訓練,接着在PASCAL上domain-specific fine-tuning。
另外,作者的系統也十分有效:The only class-specific computations are a reasonably small matrix-vector product and greedy non-maximum suppression。
- 作者還發現,即使去除94%的參數,CNN模型檢測的準確率只會有略微的下降。通過一個檢測分析工具,發現只需要通過簡單的邊界框迴歸就可以顯著地降低定位錯誤率。
2. R-CNN模型介紹
2.1 模型設計
整個檢測系統分爲三個部分:
- 生成獨立分類的候選區域。作者的方法是use selective search to enable a controlled comparison with prior
- 用CNN,對每個候選區域提出固定長度的特徵向量。輸入的圖片固定爲227*227,且提前進行mean-subtracted處理。之後用一個5卷積層,2全連接層的CNN來提取4096維特徵向量。
- 用SVM對特徵向量進行分類。
2.2 Test-time detection
- 一開始,系統先用selective search提取2000個候選區域,並將其warp到277*277大小,進入CNN提取特徵,並用SVM分類。最後,再用 greedy non-maximum suppression 把那些高度重疊的框剔除。
- R-CNN運行時間很短,這歸功於兩點:1. CNN對於每個分類的參數都是共享的;2. 與其他方法相比,4096維的特徵向量算是很小的了。
- 運行結果是,即使有100k個分類,一張圖在多核CPU上也只要10秒;生成的低維特徵圖只佔1.5GB。
2.3 Training
- Supervised pre-training:先將CNN在ILSVRC 2012上進行預訓練(with image-level annotations (i.e., no bounding box labels)),框架採用的是Caffe。由於訓練過程的簡單化,作者不小心就達到了ILSVRC最低錯誤率;
- Domain-specific fine-tuning:微調過程,以0.001的學習速率進行SGD訓練。對某個分類只要IOU>0.5就視該邊框爲正值。每次SGD迭代都採樣38個正邊框和96個背景。
- Object category classifiers:對某個分類,高IOU和IOU都很好區分,但IOU處於中值時則很難定義生成的候選框是否包含了該物體。作者設定了一個閾值0.3,低於它的一律視爲背景(負數)。另外,每個分類都優化一個SVM。由於負樣本很多,因此還採用了hard negative mining方法
2.4 Results on PASCAL VOC 2010-12
- 作者提交了兩個版本,一個沒有bounding box regression(RCNN),一個有(RCNN BB),結果如下:
- 簡而言之,就是MAP顯著提高了不少(從35.1%到53.7%),而且運行時間也短。