R-CNN 解讀:CNN 從分類到檢測

Title: Rich feature hierarchies for accurate object detection and semantic segmentation(2014)

Link: http://arxiv.org/abs/1311.2524

Tips:

  1. R-CNN 的創新點,要解決的問題(1)
  2. R-CNN 框架,訓練流程(2)
  3. 如何可視化神經層學到的特徵 (3.1)
  4. 不同的 CNN 框架對性能的影響 (3.3)
  5. 消融學習 (3.2 ,4.5)
  6. 從檢測到分割的擴展 (5)

Summary:

問題 / 背景:

  • 傳統視覺特徵 SIFT 和 HOG 用於檢測系統,性能提升緩慢
  • CNN 用於分類效果好,能否提升檢測性能

R-CNN 相比傳統方式有兩個創新點:

  • 把 CNN 用於生成 region proposal,用 CNN 提取的特徵代替 SIFT 和 HOG 這些傳統特徵;
  • 採用大樣本下有監督預訓練+小樣本微調的方式解決小樣本難以訓練甚至過擬合等問題。

R-CNN 包括:

  • 生成候選區模塊
  • 提取特徵的 CNN 模塊
  • 用於分類的 SVM 模塊
  • 修正邊界框模塊

訓練流程:

  • 有監督的預訓練:在大型輔助數據集(ILSVRC2012 classification)上進行 CNN 預訓練,得到一個分類器(CNN)
  • 特定領域的微調:根據檢測任務微調 CNN,把最後 1000 維的分類層替換成 N+1 維的分類層(N 是檢測數據集的類別數,1 是背景)
  • SVM 分類器訓練:由於SVM是二分類器,需要爲每個類別訓練單獨的SVM。對於某一類,一片區域包含該類物體爲正樣本,不包含爲負樣本。如何判斷是否爲正?設定 IOU 閾值,低於閾值的爲負樣本
  • 邊界框迴歸訓練:提高定位精度

框架檢測流程:

  • 輸入一張多目標圖像
  • 採用 selective search 算法提取約 2000 個建議框,對區域 / 框變形
  • 處理後的區域/框輸入 CNN 提取特徵
  • 對區域進行分類,用非極大抑制提取分數最高(最可能的類)的框
  • 對框進行迴歸修正,選擇分數最高的框

Abstract

近幾年(2014),PASCAL VOC上測得的目標檢測性能一直停滯不前。所以,這篇文章提出一個簡單易擴展的檢測算法。

作者的方法結合了兩個關鍵的見解
(1)CNN可應用於自下而上的區域建議(region proposals),以便對對象進行定位和分割;
(2)當標記的訓練數據稀少,把有監督的預訓練模型進行特定於域的微調(fine-tuning),可以顯着提高性能。

因爲把 region proposals 和 CNN 結合,所以該算法叫 R-CNN

1. Introduction

(1)視覺特徵

首先介紹目標檢測的狀況:當時大多視覺任務基於 SIFT 和 HOG 兩個視覺特徵構建集成系統,但是目標檢測在 PASCAL VOC 上的性能進步緩慢。

SIFT 和 HOG是塊狀方向直方圖,與靈長類動物視覺通路第一部分關聯,而識別發生在後面,所以猜想視覺特徵計算是一個多階段的過程

(2)CNN

2012年,CNN 在 ILSVRC 比賽上取得了很好的成績,CNN再次引起大家的關注。ILSVRC 2012研討會曾討論:ImageNet 上 CNN 分類 結果在多大程度上可以歸納爲 PASCAL VOC Challenge 上的物體檢測結果?

本文通過彌合圖像分類和物體檢測之間的差距來回答這個問題。 本文首次證明,與基於簡單HOG類功能的系統相比,CNN可以在PASCAL VOC上顯着提高對象檢測性能。

(3)問題

要想把 CNN 應用於目標檢查,需要解決兩個問題:對目標定位,標註數據稀少的情況下訓練模型

把定位問題看作迴歸問題,我們通過在“使用區域識別”(recognition using regions)範式中進行操作來解決 CNN 定位問題,該方法已成功地用於目標檢測和語義分割。

R-CNN系統綜述
對於標註數據少的問題,解決此問題的常規方法是使用無監督的預訓練,然後進行有監督的微調。

但本文的第二個貢獻表明,在大型輔助數據集(ILSVRC)上進行有監督的預訓練,然後在小型數據集(PASCAL)上進行特定於領域的微調,是學習高級算法的有效範例。

2. Object detection with R-CNN

介紹模型設計,用時分析,訓練策略以及檢測結果

目標檢測系統包含三個模塊(Figure 1 輸入圖片後的三個部分)

  1. 生成與類別無關的區域建議(region proposals)
  2. 一個CNN,用於從每個區域提取固定長度的特徵向量(feature extraction)
  3. 一組特定於類別的線性SVM

2.1. Module design

Region proposals

近期有論文提出一些生成與類別無關的區域建議的方法。如:objectness , selective search, category-independent object proposals, constrained parametric min-cuts (CPMC), multi-scale combinatorial grouping 等。

R-CNN 採用了 selective search 用於與之前的檢測方法做一個可控制的比較。

Feature extraction

R-CNN 提取特徵使用的 CNN 是 Caffe 實現的 AlexNet,從每個 region proposal 提取 4096 維的特徵。

輸入 227×227 RGB image,經過 5 個卷積層和兩個全連接層提取特徵。

2.2. Test-time detection

在測試時,我們對測試圖像進​​行選擇性搜索,以提取大約2000個區域建議(region proposals)。 我們對每個 proposal 進行變形,然後依次通過CNN進行傳播以計算特徵(feature extraction)。 然後,對於每個類別,我們使用針對該類別訓練的SVM對每個提取的特徵向量進行評分(score)。

Run-time analysis

使檢測有效的策略:

  1. CNN 參數共享
  2. CNN 計算的特徵是低維的

這種共享的結果是,計算 region proposal 和 feature 所花費的時間將在所有類別上分攤。將圖像的所有點積都批處理爲單個矩陣矩陣積。

有以上對時間的分析可知,R-CNN可以擴展到數千個對象類,而無需求助於諸如哈希之類的近似技術。

2.3. Training

Supervised pre-training
我們僅使用圖像級註釋在大型輔助數據集(ILSVRC2012 classification)上進行 CNN 預訓練(使用開源Caffe CNN庫進行預訓練)。

Domain-specific fine-tuning
微調 CNN 使之適應新任務和新域,訓練 CNN 時仍然採用 SGD。

除了將CNN的 ImageNet 特定於1000路分類層替換爲隨機初始化的(N + 1)路分類層(其中N是對象類別的數量,再加上1作爲背景)之外,CNN的體系結構保持不變。

Object category classifier
提取特徵並應用訓練標籤後,我們將爲每個類優化一個線性SVM

例如訓練一個二值分類器(前景和背景兩類),可以設置IoU重疊閾值。如果取值爲{0,0.1,0.2,…,0.5},閾值爲 0.3,則 0.3 以上爲 positive,其餘爲 negative。

2.4. Results on PASCAL VOC 2010-12

在這裏插入圖片描述
表1 展示了 R-CNN 在VOC 2010 上的完整結果,以及與 baseline 的比較。

因爲 R-CNN 和 UVA 系統的採取相同的的 region proposal,它們的比較最直接。與他們的多功能,非線性內核SVM方法相比,我們在mAP方面實現了較大的提高,從35.1%提高到了53.7%。

2.5. Results on ILSVRC2013 detection

在這裏插入圖片描述
圖3將 R-CNN 與 ILSVRC 2013 競賽中的參賽作品以及競賽後的OverFeat結果進行了比較。R-CNN的mAP達到31.4%,大大超過了OverFeat的第二佳結果24.3%。

3. Visualization, ablation, and modes of error

3.1. Visualizing learned features

如何可視化學習到的特徵?第一層過濾器可以直接可視化並且易於理解,它們捕獲定向的邊緣和相反的顏色。 瞭解後續層更具挑戰性。

作者的想法是挑選出網絡中的特定單元(功能),並像使用它本身就是對象檢測器一樣使用它。 就是說,我們根據一大批保留 region proposals(大約1000萬)計算單位的激活,將 proposal 從最高激活排序到最低激活,執行非最大抑制(non- maximum suppression),然後顯示得分最高的區域。 我們的方法通過確切顯示觸發的輸入,讓選定的單元“爲自己說話”。 我們避免求平均值,以便看到不同的視覺模式並深入瞭解由設備計算出的不變性。

以上是翻譯,我的理解是CNN有好幾層,看哪一層學到的特徵,就把這一層當作檢測器的最後一層,然後輸出檢測框( region proposals)。檢測框有很多,給它們打分排序,只選擇最高分顯示出來,我們就能從圖像中看到,這一層學到的是框住的這部分內容。

在這裏插入圖片描述
圖 4 中的每一行顯示了CNN的 pool5 單元的前16個 activations。選擇6個單元(6行)以顯示網絡學習內容的代表性示例。比如第二行,學習到的特徵是狗和點陣。

3.2. Ablation studies

Ablation studies 是模型簡化測試,看看取消掉一些模塊後性能有沒有影響。
在這裏插入圖片描述
表 2 是實驗結果,以下是實驗分析。

Performance layer-by-layer, without fine-tuning——
爲了瞭解哪些層對於檢測性能至關重要,我們在VOC 2007數據集上分析了CNN的最後三層中的每一層。

逐層分析性能(表2第1-3行)顯示,fc7的功能比fc6的功能更差。這意味着可以刪除29%的CNN參數(約1,680萬)而不會降低mAP。更令人驚訝的是,即使僅使用CNN參數的6%計算pool5功能,刪除fc7和fc6也會產生很好的結果。

CNN的大部分表示能力來自其卷積層,而不是更大的密集連接層。這一發現表明,僅通過使用CNN的卷積層,就可以在計算HOG任意尺寸圖像的密集特徵圖時發揮潛在的作用。

Performance layer-by-layer, with fine-tuning——
在VOC 2007 trainval上對其參數進行微調之後,我們現在來看CNN的結果。

改善是驚人的(表2第4-6行):微調使mAP增加8.0個百分點至54.2%。對於fc6和fc7,微調所帶來的收益要比pool5大得多,這表明從ImageNet獲悉的pool5功能是通用的,並且大多數改進是通過在它們之上學習特定於領域的非線性分類器而獲得的

Comparison to recent feature learning methods
在PASCAL VOC檢測中嘗試了相對較少的特徵學習方法。我們看一下基於 deformable part models 的兩種最新方法。

所有 R-CNN 變體都大大勝過三個 DPM baselines(表2第8-10行),包括使用特徵學習的兩個 baselines。與僅使用HOG功能的DPM最新版本相比,我們的mAP高出20個百分點。

3.3. Network architectures

這篇文章大部分結果採取的是 AlexNet 的網絡框架,作者也發現框架選擇對 R-CNN 檢測的性能影響很大,所以也比較了採用 VGGNet 的網絡性能。

表三是採用兩個 CNN 框架的實驗結果, T-Net 指 AlexNet,O-Net 指 VGGNet。
在這裏插入圖片描述
表3中的結果表明,帶有O-Net的R-CNN明顯優於帶有T-Net的R-CNN,mAP從58.5%增加到66.0%。但是,在計算時間方面存在很大的缺陷,O-Net的前向傳遞比T-Net花費大約7倍的時間。

3.4. Detection error analysis

由於分析最好在相關圖的上下文中進行,因此我們在圖5和圖6的標題內進行討論。
在這裏插入圖片描述
圖5:排名最高的假陽性(FP)類型的分佈。每個圖都顯示了FP類型的演變分佈,因爲按照得分遞減的順序考慮了更多FP。
每個FP分爲以下4種類型中的1種:Loc-定位不良(IoU重疊的檢測物的正確類別介於0.1和0.5之間,或重複); Sim-與類似類別的混淆; Oth-混淆了不同的對象類別; BG-在背景上觸發的FP。

與DPM相比,我們的錯誤明顯更多是由於定位不良所致,而不是與背景或其他對象類別相混淆,這表明CNN功能比HOG具有更大的判別力。鬆散的本地化很可能是由於我們使用了自下而上的區域建議,以及通過對CNN進行全圖像分類的預訓練而獲得的位置不變性。第三列顯示了我們的簡單邊界框迴歸方法如何解決許多本地化錯誤。
在這裏插入圖片描述
圖 6:對對象特徵的敏感性。每個圖都顯示了六個不同對象特徵(遮擋,截斷,邊界框區域,縱橫比,視點,零件可見性)內性能最高和最低的子集的均值(分類)平均AP。我們顯示了帶有和不帶有微調(FT)和邊界框迴歸(BB)以及DPM voc-release5的方法(R-CNN)的圖。

總體而言,微調不會降低靈敏度(最大值和最小值之間的差),但會顯着改善幾乎所有特性的最高和最低性能子集。這表明,微調不僅可以改善縱橫比和邊框區域的性能最低的子集,還可以根據我們扭曲網絡輸入的方式來推測。相反,微調可提高所有特性的魯棒性,包括遮擋,截斷,觀察點和零件可見性

3.5. Bounding-box regression

受DPM中使用的 bounding-box regression 的啓發,我們針對給定選擇性搜索區域建議(selective search region proposal)的pool5特徵,訓練了線性迴歸模型來預測新的檢測窗口。

3.6. Qualitative results

檢測質量分析,主要從圖中體現。
在這裏插入圖片描述

4. The ILSVRC2013 detection dataset

4.1. Dataset overview

ILSVRC2013檢測數據集分爲三組:train(395,918),val(20,121)和test(40,152),其中每組中的圖像數都用括號括起來。

與val和test不同,train圖像(由於數量衆多)沒有詳盡註釋。 在任何給定的火車圖像中,可以標記200個類別的實例,也可以不標記。 除了這些圖像集之外,每個類別還具有一組負圖像。

負樣本怎麼來(訓練集沒有詳盡標註)?作者的總體策略是使用驗證集和一部分訓練集作爲示例的輔助來源。 爲了將驗證集用於訓練和驗證,需要將其分爲大小大致相等的“ val1”和“ val2”集。

4.2. Region proposals

我們採用了與以前相同的 region proposal 方法用於在PASCAL上進行檢測。 選擇性搜索(Selective search)在“快速模式”下對val1,val2和test中的每個圖像進行了運行。

在驗證集上,選擇性搜索平均每幅圖像產生2403個 region proposal ,所有 ground-truth bounding boxes 的召回率達到91.6%(閾值爲0.5 IuU)。 召回率明顯低於PASCAL,後者約爲98%,這表明在區域提案階段仍有很大的改進空間。

4.3. Training data

對於訓練數據,我們形成了一組 image 和 box 。包括val1中的所有選擇性搜索框和 ground-truth boxes,以及訓練集每個類的前N個最多的 ground-truth boxes。

R-CNN中的三個過程需要訓練集:
(1)CNN微調,(2)檢測器SVM訓練(3)邊界框迴歸器訓練

4.4. Validation and evaluation

在將結果提交給評估服務器之前,我們使用上述訓練數據驗證了數據使用選擇以及val2集上的微調和邊界框迴歸的影響。

毫無疑問,對於ILSVRC,這些超參數選擇中的某些選擇次優,但是,這項工作的目標是在ILSVRC上產生初步的R-CNN結果,而無需進行大量的數據集調整。

4.5. Ablation study

表4顯示了對不同數量的訓練數據,微調和邊界框迴歸的影響的消融研究。可以看出,把這些策略都加上性能最好。
在這裏插入圖片描述

4.6. Relationship to OverFeat

可以將 OverFeat 粗略地視爲 R-CNN 的特例。

5. Semantic segmentation

區域分類(region classification)是語義分割的一種標準技術,使我們能夠輕鬆地將R-CNN應用於PASCAL VOC分割挑戰。

CNN features for segmentation
我們評估了CPMC區域上計算特徵的三種策略:
第一種策略(full)忽略區域的形狀,並直接在扭曲的窗口上計算 CNN 特徵;
第二種策略(fg)僅在區域的前景蒙版上計算 CNN 特徵;
第三種策略(full + fg)簡單地連接了 full 和 fg 功能。

Results on VOC 2011
在這裏插入圖片描述
表5總結了我們與V2P相比在VOC 2011驗證集中的結果。在每種特徵計算策略中,fc6層始終勝過fc7,下面的討論涉及fc6功能。

fg策略略勝於full策略,表明被遮罩的區域形狀提供了更強的信號,與我們的直覺相符。 但是,full + fg的平均準確度爲47.9%,這表明即使使用fg功能,full 功能所提供的上下文也非常有用

6. Conclusion

與 abstract 部分基本相同,介紹了現狀,貢獻及兩個關鍵方法。

作者得出結論,把計算機視覺和深度學習結合((bottom- up region proposals and convolutional neural networks)才取得了本文的成果。

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