R-CNN原論文閱讀要點翻譯及總結

Rich feature hierarchies for accurate object detection and semantic segmentation

Abstract

  1. 目標檢測(OD)的檢測性能可以在PASCAL VOC、ILSVRC上評估。
  2. R-CNN(Region with CNN features)是一種簡單和可擴展的OD算法。
  3. 兩個要點:
    1)爲了定位和分割目標,將高容量(複雜)的卷積神經網絡(CNN)應用於自下而上的區域建議(Region proposals)中。
    2)爲了獲得重要性能的提升,當標記的訓練集較少時,先進行有監督的預訓練,之後進行特定領域的微調。(supervised pre-training/domain-specific fine-tuning)

1.Introduction

  1. 過去十年中,視覺識別任務的進步大多基於SIFT和HOG的使用。
  2. 特徵計算的分層次,多階段處理過程對於視覺識別是有益的。
  3. 新感知機和在新感知機上擴展的CNN(在前向傳播中使用隨機梯度下降算法)。
  4. CNN在2012年的ImageNet Large Scale Visual Recognition Challenge(ILSVRC)取的成功之後,再度被人們關注,2012年的CNN模型在1.2百萬張圖片上訓練,在LeCun的CNN模型上改進。
  5. 研討會上討論:CNN在ImageNet上的分類結果在多大程度上能夠泛化到PASCAL VOC的目標檢測結果上。
  6. 論文中主要關注的兩點問題:
    1)用一個深度網絡定位目標。(7.8.9.)
    2)用少量的有標註的檢測數據訓練一個大容量的模型。
  7. 與分類相比,檢測多了定位。定位可以作爲迴歸問題處理,也可以採用滑動窗口方法(本文用)。本文的卷積層的感受野爲195×195,步長是32×32。最終採用區域識別(recognition using regions)解決CNN定位問題。
  8. 測試時,如圖1。
    1) 一張輸入圖片產生約2K個獨立類別的region proposals(RP);
    2)用CNN從每個RP中提取一個固定長度的特徵向量;
    3)用特定的線性分類器SVMs給每個RP分類。
    注:實驗中使用簡單的技術(映射圖片變形)以計算一個固定大小的CNN輸入(每個RP),而不論原來的RP的原來的形狀大小是多少。
    Alt
    圖1
  9. R-CNN和OverFeat在200類的ILSVRC2013上進行比較; R-CNN和DPM在VOC 2010上進行比較。
  10. 解決標註數據缺少的問題:先進行有監督的預訓練(在大數據集),後進行有監督的微調(在小數據集)。而傳統的解決標註數據缺少的問題是先進行無監督的預訓練,後進行有監督的微調。
  11. 本文的系統是有效的,特徵維度低,矩陣向量少,通過矩陣向量的點乘和非極大值抑制(non-maximum suppression,NMS)計算唯一的類別。
  12. 使用邊界框迴歸(bounding-box regression)減少誤定位。
  13. 根據R-CNN的一些細節,順便實現了語義分割。

2. Object detection with R-CNN

2.1. Module design

  1. 本文目標檢測系統包含三大模塊:
    1)產生RP,RP是我們檢測器可獲得的樣本集合(文中使用selective search產生RP)
    2)將不同大小的RP轉換爲227×227的RGB圖像(如圖2),輸入CNN中,CNN最終在每個RP中提取一個4096維的特徵向量。
    3)線性分類器SVM的集合。
    在這裏插入圖片描述
    圖2,不論候選區的圖像尺寸多大,像素多少,我們統一在一個小的邊界框(bounding box)把它們變(warp)成固定大小。在warp之前要把邊界框(也就是RP原圖像)變大,以使得warp後的大小不大於bounding box。

2.2. Test-time detection

  1. 測試過程
    1)在測試圖像上用selective search(選擇性搜索)的“fast mode”方法產生2K個候選區;
    2)warp每個RP並在CNN中前向傳播以計算特徵;
    3)用訓練的SVM對每類提取的特徵向量進行打分;
    4)給出一副圖像中所有RP的分數,用NMS方法丟棄那些和最高分數的RP的相交區域(intersection-over-union,IoU)大於某一閾值的RP。
  2. 使得檢測有效率的兩個原因
    1)所有的CNN參數通過所有的類別共享。
    2)與其它相同的方法相比,低維的CNN計算特徵向量。
  3. 參數共享的結果
    1)在RP和特徵計算的時間被分銷到每個類上。
    2)只有特定類的計算是特徵和SVM的點乘以及NMS。
  1. 特徵矩陣是一個2000×4096的矩陣,SVM的權重矩陣是一個4096×N的矩陣。(N爲類別數)最後得出的就是一個2000×N的矩陣,這個矩陣中的每一行就是一個RP在每個類別上的評分。
  1. UVA系統和本文系統比較。UVA使用的是高維特徵,在有100K個類別時需要134GB的內存。本系統使用低維特徵,在有100K個類別時需要1.5G的內存,且矩陣的點乘任務在現代的多核CPU上僅花費10秒。
  2. R-CNN和DPMs進行比較。在10K個類別時,DPMs在VOC 2007上每張圖像的運行時間是5分鐘,mAP爲16%;本文方法在每張圖像的在CPU上的運行時間約1分鐘,mAP爲59%。

2.3. Training

  1. 有監督的預訓練。在一個大型的輔助數據集(ILSVRC2012 分類)僅僅使用圖像級的標註(沒有邊界框標註)對CNN進行有區別的預處理。
  2. 特定領域的微調。
    1)在變形(warp)後的RP上用SGD訓練CNN的參數。
    2)將CNN中的ImageNet的N類的分類層用一個N+1類的分類層替代,N爲類別數,1爲背景。但CNN的結構不變。
    3)與真實框的IoU大於0.5的爲正樣本(目標),其餘的爲負樣本(背景)。
    4)學習率爲0.001(初始化預訓練的十分之一),這個學習率可以在不破壞初始化的情況下進行微調。
    5)每次迭代的小批次爲128(32個正樣本+96個負樣本)。
  3. 目標分類器。
    1)全部是目標的RP是目標,全部不是的目標的是背景,介於兩者之間的有IoU界定,IoU的閾值會影響mPA。
    2)特徵提取和標籤訓練後要對每類的線性SVM進行優化。
    3)使用Hard negative mining方法減少佔用的內存。
    4)正、負樣本定義不同,輸出之前要進行SVM權衡。

2.4 Results on PASCAL VOC 2010-12

在VOC 2007上進行驗證,在VOC 2012上進行微調和優化,在VOC 2010上進行結果的對比。R-CNN和UVA使用的是相同的RP算法。對比結果見表1。
在這裏插入圖片描述
表1

2.5 Results on ILSVRC2013 detection

和在VOC上使用的R-CNN是一樣的。結果如圖3。
在這裏插入圖片描述
圖3

3. Visualization, ablation, and modes of error

3.1 Visualizing learned features

  1. Zeiler和Fergus提出了一種反捲積(deconvolutional)的方法進行可視化;本文提出一種簡單的非參數的方法直接可視化網絡學習到的特徵。
  2. 非參數的方法:挑選在網絡中特定的特徵,並且把其作爲一個目標檢測器。也就是說計算單元的激活值在一個大的區域建議集合上,把激活值從大到小排序,使用NMS,顯示分數最高的區域。
  3. 在池化層5上進行了可視化。

3.2. Ablation studies

  1. 不進行微調時每一層的表現。分析了池化層5,全連接層6和全連接層7的結果,發現卷積層而非全連接層是CNN表徵的主要力量。滑動窗口的檢測可以在池化層5上進行,有效的減少了CNN中的參數。
  2. 進行微調時每一層的表現。微調對全連接層6和7的影響要大於池化層5。
  3. 與最新的特徵學習方法作比較。與DPM ST、DPM HSC以及DPM v5進行比較。

3.3 Network architectures

O-Net:即VGG13層卷積+13層池化+3層全連接,卷積核全部爲3×3。
T-Net:5層卷積+5層池化+2層全連接,卷積核爲195×195。
O-Net比T-Net運行時間長,但是mAP大。

3.4 Detection error analysis

用一個分析工具進行分析。

3.5 bounding-box regression

用於修正檢測中的誤定位。

4. The ILSVRC2013 detection dataset

ILSVRC2013和PASCAL VOC是不同的,需要選擇如何使用。

4.1 Dataset overviewy

驗證集合測試集都被標註,訓練集沒有全部被標註。訓練的圖像不能被用作hard negative mining(應該是硬負樣本挖掘,我不確定這個)。將驗證集分爲val1和val2兩個相等的數據集,類別數量多的選擇少量的區域建議,類別數量少的選擇多的區域建議以保證類平衡。

4.2 Region proposals

在驗證集和測試集上使用selective search方法,在訓練集上不使用。把每張圖像的寬度設置爲500pixels以解決selective search不是尺度不變的問題。

4.3 Training data

  1. 訓練的數據集包括:圖像和框的集合。(val1中所有由selective search方法生成的框,和真實的框以及來自訓練集中每個類的N個真實的框)即val1+trainN
  2. 訓練數據的過程:
    1)CNN微調。在val1+trainN運行了5萬次SGD迭代。
    2)訓練SVM檢測器。val1+trainN的真實框作爲每類的正樣本,負樣本從val1中隨機抽取一個有5K張圖像的子集,負樣本不從訓練集中抽取,因爲訓練集中有些圖像沒有被標註。
    3)邊界迴歸器在val1上訓練。

4.4 Validation and evaluation

數據的選擇及微調和邊界框迴歸均對實驗結果有影響。對有無bounding-box regression的運行結果進行了提交。

4.5 Ablation study

分析了下不同數量的數據集,有無fine-tuning,有無bounding-box regression的結果。

4.6 Relationship to OverFeat

OverFeat可以看成R-CNN的特例。OverFeat比R-CNN快大約9倍。

5. Semantic segmentation

用了O2P的框架,分三步(由於本人暫時不做分割,所以這部分暫且略過)

附錄

A. 目標提議的變形

  1. 將RP變形,變爲固定尺寸以適應CNN的輸入。
  2. 三種變形方法:如圖4。
    1)tightest square with context:就是在考慮周圍背景的情況下,把RP縮放用一個227×227的框框包起來,圖像的比列不變,不夠的填充就行,丟失的數據可以考慮用圖像的均值填充。
    2)tightest square without context:就是在不考慮周圍背景的情況下,把RP縮放用一個227×227的框框包起來,圖像的比列不變,不夠的填充就行,丟失的數據可以考慮用圖像的均值填充。
    3)warp:就是在不考慮周圍背景的情況下,把RP縮放用一個227×227的框框包起來,圖像的比列改變,圖像佔滿整個框框。
    在這裏插入圖片描述
    圖4

B. 正、負樣本和softmax

  1. 在微調CNN和訓練SVM中正負樣本的定義是不同的。
    1)在微調過程中,當IoU大於等於0.5時被映射到真實的框中,並被標記爲正樣本(可能是爲了增加訓練集,避免過擬合),其他的被標記爲背景。
    2)在訓練SVM中,每個類的真實框被標記爲正樣本,IoU小於等於0.3的被標記爲負樣本。大於0.3小於1的被忽略。
  2. 在經過微調後,不需要訓練SVMs也可以獲得接近相同水平的性能。

C. Bounding-box regression

  1. Bounding-box regression提高定位的性能。
  2. 實現Bounding-box regression的兩個需要關注的小點:1)正則化是很重要的;2)選擇訓練的數據對也是很重要的。
  3. 內容:調整pool5的特徵,使得P映射出一個G使得這個G接近於真實的G。具體內容
    https://blog.csdn.net/zijin0802034/article/details/77685438博客寫的挺清楚了。
    PS:整理了兩天,總算寫完了。不對之處還望大神們指正。下週爭取把代碼實現下,對比着再理解下。路漫漫其修遠兮,吾將上下而求索!加油咯!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章