天天看點

RCNN 論文翻譯和解讀

論文題目:豐富的特征層次結構,用于精确的對象檢測和語義分割

Tensorflow版本RCNN:​​https://github.com/yangxue0827/RCNN​​

摘要

在标準的PASCAL VOC 資料集上測量的目标檢測性能在過去幾年已經穩定。最佳性能的方法通常是一個複雜的混合系統,它通常将多個低級圖像特征通過上下文組合起來形成進階特征。在本文中,我們提出了一個簡單和可擴充的檢測算法,相對于以前在PASCAL VOC2012上的最佳結果(實作mAP 53.3%),在平均精度上(mAP)提高了30%以上。我們的方法結合了兩個關鍵的要素:(1) 将高容量的卷積神經網絡(CNN)應用到自下而上的選取候選區域過程中,來定位和分割對象;(2)當标記的訓練資料稀缺時,對于一個輔助任務來說,使用一個有監督的預訓練好的模型,加上在特定域上進行微調後,會産生一個顯著的性能提高。因為我們将候選區域(region proposal)和卷積神經網絡(CNN)結合在一起,我們稱我們的方法叫R-CNN:帶有CNN特征的區域(Region with CNN features),我們也将R-CNN與OverFeat進行了比較,OverFeat是一個最近提出的基于類似CNN架構的滑動視窗檢測器。我們發現R-CNN在200類的ILSVRC2013檢測資料集上的結果比OverFeat好很多。完整系統的源代碼可以從下面獲得:​​http://www.cs.berkeley.edu/​​˜rbg/rcnn.

1. Introduction(介紹)

特征是關鍵。在過去10年的時間裡關于各種視覺識别任務的進展大量基于SIFT和HOG的使用。但是如果我們觀察在經典的視覺識别任務(PASCAL VOC目标檢測)上的性能表現,通常認為在2010-2012年期間進展緩慢,在這期間隻是通過建造一些內建系統和在一些成功方法上做一些小改動,收效甚微。

SIFT和HOG是逐塊定向直方圖,它是一種表示方法,我們大緻可以與V1中的複雜細胞,靈長類動物視覺途徑中的第一皮質區域相關聯。但我們也知道識别發生在幾個階段的下遊,這表明可能有分層的,多階段的過程用于計算特征,這些特征甚至具有更多的視覺識别資訊。

Fukushima的“neocognitron”是一種生物學啟發的用于模式識别分層和轉移不變的模型,是早期的對于這樣一個過程的嘗試。然而”neocognitron“缺少一個監督訓練算法。Rumelhart的研究表明通過反向傳播的随機梯度下降方法對于訓練CNNs是非常有效的,它也是一種”neocognitron“模型的擴充。

 CNNs在20世紀90年代被大量使用,但随着SVM的興起,CNNs又不流行了。在2012年,Krizhevsky等人通過在ILSVRC上顯示出了更高的圖像分類精度,使得人們重新燃起了對CNN的興趣。他們的成功源于在120萬個标記圖像上訓練的大的CNN,并結合了一些在LeCun的CNN中使用的一些小技巧(例如,max(x,0)修正的非線性單元和”droupout”正則化)。在ILSVRC 2012研讨會期間,ImageNet結果的意義被激烈的讨論。中心問題可以歸納如下:在ImageNet上的CNN分類結果在多大程度上可以被推廣到PASCAL VOC挑戰的對象檢測結果上?

我們通過彌合圖像分類和對象檢測之間的差距來回答這個問題。本文首次表明,與基于更簡單的HOG類似的特征系統相比,CNN可以在PASCAL VOC上得到更加顯著的目标檢測表現。

與圖像分類不同,檢測需要在圖像中定位(可能有許多)目标。一種方法是将定位看作回歸問題。然而,Szegedy等人的工作,與我們自己的工作同時表明這種政策在實踐中可能不好(在VOC2007中,他們送出的mAP是30.5%,而我們的方法實作的是58.5%)。一種替代方案是建構一個滑動視窗檢測器。CNN已經以這種方式使用了至少二十年,通常是在限定的對象類别上,例如人臉和行人。為了保持高的空間分辨率,這些CNN通常僅具有兩個卷積和池化層。我們也考慮采用一個滑動視窗的方法。然而,在我們的網絡中具有5個卷積層的單元在輸入圖像上具有非常大的接收域(195*195像素)和步幅(32*32像素)。這使得在滑動視窗範例内的精确定位成為一個公開的技術挑戰。

相反,我們通過在”使用區域識别“範式中進行計算來解決CNN定位問題,其已經成功應用于目标檢測和語義分割。在測試時,我們的方法為輸入圖像生成大約2000個類别無關的候選區域,使用CNN從每個候選區提取固定長度的特征向量,然後使用特定類别的線性SVM對每個進行區域進行分類。我們使用一種簡單技術(仿射圖像扭曲-affine image warping)來對每一個候選區域計算一個固定大小的CNN的輸入,而不慮區域的形狀。圖1給出了我們方法的概述,并突出了我們的一些結果。由于我們的系統将候選區域和CNN結合在一起,我們将方法縮寫成R-CNN:帶有CNN特征的區域(Region with CNN features)。

RCNN 論文翻譯和解讀

圖1:目标檢測系統概述我們的系統(1)接收一個輸入圖像,(2)抽取大約2000個從下到上的候選區域,(3)對于每一個候選區域使用一個大的CNN計算特征,然後(4)使用特定類的線性SVM對每一個區域進行分類。R-CNN在PASCAL VOC 2010 上實作了一個平均精度(mAP)53.7%。為了比較,[34]使用相同的候選區域方法實作了35.1%的mAP,但是使用了空間金字塔和視覺詞袋方法。

在本文的這個版本中,我們通過在200類的ILSVRC2013檢測資料集上運作R-CNN,提供了一種對R-CNN和最近提出的OverFeat檢測系統的一種直接比較。OverFeat使用滑動視窗CNN進行檢測,直到現在也是ILSVRC2013檢測中性能最佳的方法。我們顯示R-CNN顯著優于OverFeat,R-CNN的mAP為31.4%,而OverFeat的mAP是24.3%。

 檢測中面臨的第二個挑戰是标記的資料很少,并且目前可用的量不足以訓練大的CNN。該問題的正常解決方案是使用無監督進行預訓練,随後是進行有監督的微調。本文的第二個主要貢獻是顯示在大型輔助資料集(ILSVRC)上進行有監督的預訓練,然後是在小資料集(PASCAL)上進行特定領域的微調,這種方法在當資料不足時是學習大容量CNN的有效範例。在我們的實驗中,用于檢測任務的微調将mAP性能提高了8個百分點。微調之後,我們的系統在VOC2010上實作了mAP到54%,而高度調整後的,基于HOG的DPM的mAP為33%。我們也給讀者指出了由 Donahue等人做的同時期的工作,他表明Krizhevsky的CNN可以當成一個黑盒使用(不用微調)來進行特征提取,在幾個識别任務中産生優秀的表現,包括場景分類,細粒度子分類,和域适配。

2 Object detection with R-CNN

我們的目标檢測系統包括三個子產品。第一個生成類無關的候選區域。這些候選區域定義了可用于我們的檢測器的候選檢測地集合。第二個子產品是一個大的卷積神經網絡,它從每個區域中抽取固定長度的特征向量。第三個子產品是一些特定類别的線性SVM。在本節中,我們介紹每個子產品的設計決策,描述其測試時間使用情況,詳細了解其參數的學習方法,并在PASCAL VOC 2010-12和ILSVRC-2013上顯示了檢測結果。

2.1 子產品設計

候選區域。各種最近的論文提供了用于生成類無關候選區域的方法。例子包括:objectness[1],選擇性搜尋[39],類獨立的候選對象[14],CPMC,多尺度組合分組,和Ciresan等人通過将CNN應用于規則間隔的方形剪裁來檢測有絲分裂細胞,這是候選區域的一個特殊情況。R-CNN對于特定的候選區域方法是不可知的,我們使用選擇性搜尋來實作與先前的檢測工作的控制比較。

特征提取。我們使用Krizhevsky等人描述的CNN的Caffe實作從每個候選區域中提取4096維特征向量。通過将減去平均值的227*227的RGB圖像通過5個卷積層和兩個全連接配接層的前身傳播來計算特征。我們引導讀者參考[24,25]來獲得更多的網絡架構的細節。

為了計算候選框的特征資訊,我們必須首先将圖檔資料轉化成固定的大小,與提取CNN相相容(227*227大小)。對于不規則的區域,我們采取簡單的方法,不管他的縱橫比

RCNN 論文翻譯和解讀

2.2 測試時間檢測

測試時采用SS方法從每一個測試圖檔中選取2000個候選框(SS快速模式),将圖檔尺寸歸一化之後輸入到CNN的指定層來提取特征,然後,對于每一種類,使用SVM方法對每一個提取的特征進行打分,鑒于所有的region proposal都存在于一張圖檔中,是以我們使用貪婪的非極大值抑制算法(對每一類獨立使用)來抛棄那些與更高分被選擇區域重疊率大于某個門檻值的區域。

運作分析:兩個特性使得檢測高效,第一,CNN的參數被共享在所有的類間,第二,被CNN計算出的特征向量相對于其他普遍的特征計算方法是低維的,比如spatial pyramids with bag-of-visual-word方法。UVA檢測系統提取的次元是我們提取次元高出兩個數量級(360k vs 4k)

權值共享的結果是,将所有的計算region proposal 時間和計算特征的時間平攤在每一類的計算上面,唯一的與類相關的計算時間就是特征和SVM權重和非極大值抑制的計算時間。實際上所有的圖檔最終被轉化成矩陣-矩陣的運算。特征矩陣規定為2000*4096,SVM的權重矩陣為4096*N,其中N是待檢測資料集物體種類。

将R-CNN與Dean等人近來使用的DPM和哈希的可擴充的檢測方法的工作進行對比也是非常有趣的。他們在VOC 2007上報告了大約16%的mAP,當引入了10k個牽引類時, 每個圖像的運作時間為5分鐘。用我們的方法,10k個牽引類在一個CPU上大約運作1分鐘,因為沒有進行近似,mAP将保持在59%(第3.2節)。

2.3 訓練

有監督的預訓練:我們有差別的在輔助資料庫ILSVRC2012(圖檔分類層面,标簽沒有BBox資訊)預訓練CNN,預訓練采用的是開源的caffe CNN庫。簡單的說我們訓練出來的CNN模型基本接近于文獻23所訓練的。獲得了top1錯誤率2.2%略高于ILSVRC2012公布的資料。這種差異是由于訓練階段階段的簡化。

特定領域參數調優:為了使我們訓練的CNN模型适應檢測的任務和新的領域(歸一化的VOC視窗),我們繼續通過随機梯度下降方法(SGD)隻使用在VOC資料集中提取的warp過的候選框訓練。通過一個随機初始化的21類(10中物體種類加背景)分類層來代替CNN模型中ImageNet資料集中特定的1000類的分類層,CNN的基本結構不變。我們将所有的IoU大于0.5的候選框标記為正樣本,其餘為負樣本。SGD的學習速率設定為0.001(十分之一初始預訓練的速度),這樣就確定了在不用設定初始化的情況下使調參(FT)順利進行。在每一次随機梯度下降的疊代中,我們統一使用32個正樣本(包括所有類别)和96個背景樣本建構一個最小分支128.我們将偏置設定為正樣本視窗,因為正樣本視窗相對于負樣本視窗過少。

 對象類别分類器。考慮訓練一個二分類器去檢測小汽車。很清楚,緊緊包圍一個汽車的圖像應該是一個正例。同樣,明顯的,與汽車無關的背景區域應該是一個負例。不清楚的是,怎樣标注一個部分覆寫一輛汽車的區域。我們使用IoU重疊阈來重新解決這個問題,在這之下的區域就定義為負例。通過在驗證集上的{0,0.1,…,0.5}的網絡搜尋來選擇一個重疊阈0.3。我們發現小心地選擇這個門檻值是非常重要的。将它設定為0.5,正如[39]中一樣,能夠将mAP減少5個百分點。相似地,将它設定成0的話,能夠将mAP減少4個百分點。正例僅僅被定義為每個類的真實邊界框。一旦特征被提取出來,訓練标簽被應用上,我們就對每一個類優化一個線性SVM。由于訓練資料太大,不适合記憶體,我們采用标準的hard negative mining方法。Hard negative mining快速收斂,并且在實際中,所有的圖像僅通過一次,mAP就停止增加了。

在附錄B中,我們讨論了為什麼在微調和SVM訓練中正例和負例的定義不同了。我們還讨論了訓練檢測SVM的權衡,而不是簡單地使用來自微調CNN的最終SoftMax層的輸出。

2.4 在PASCAL VOC 2010-12上的結果

遵循PASCAL VOC 最佳實踐[15],我們驗證了VOC 2007資料集(第3.2節)中所有的設計決策和超參數。對于在VOC 2010-12資料集上的最後的結果,我們微調了VOC 2012訓練上的CNN并且在VOC 2012 訓練驗證集上優化了我們的檢測SVM。我們對于兩個主要算法變量(有和沒有邊界回歸)中的每一個都隻向評估伺服器送出測試結果一次。

表1展示了在VOC 2010上的完整結果。我們将我們的方法與4個強基線進行了對比,包括SegDPM,其将DPM檢測器與語義分割系統的輸出結合在一起,并且使用了額外的檢測器上下文和圖像分類器重新評分。最傑出的比較是來自Uijlings等人的UVA系統,因為我們的系統也使用了相同的候選區域算法。為了對區域進行分類,他們的方法建構了一個4個級别的空間金字塔,并且用密集采樣的SIFT,擴充OpponentSIFT,和RGBSIFT描述符來填充他們,每個矢量都用4000個字的編碼本來進行量化。使用一個直方圖相交核的SVM進行分類。與它們的多特征,非線性核SVM方法相比,我們在mAP上實作了一個大的改進,從35.1%到 53.7% mAP,同時也快得多(第2.2節)。我們的方法在VOC 2011/12測試中達到了相似的性能(53.3%的mAP)。

RCNN 論文翻譯和解讀

表1:在2010測試集上檢測平均精度(%),R-CNN與UVA和Regionlet最直接對比,因為所有的方法都使用選擇性搜尋候選區域。邊界框回歸會在C節描述。在送出的時候,SegDPM是在PASCAL VOC排行榜上表現最出色的。DPM和SegDPM使用了一種其它方法沒有使用的上下文重新評估的方法。

3 可視化,消融,和誤差模式

3.1. 可視化學習的特征

第一層的過濾器可以直接被可視化并且很容易了解。它們捕獲有方向的邊和相對的顔色。了解下面的層次是更具有挑戰性的。Zeiler and Fergus在[42]中提出了一種視覺上有吸引力的反卷積方法。我們提出了一個簡單(和互補的)非參數的方法,直接顯示網絡學習的内容。

想法是在網絡中挑選出特定的單元(一種特征)并且将之作為一種物體探測器。具體的,我們在一個很大的候選框資料集上計算特定特征的激活值,将激活值從高到低進行排序,應用NMS,然後顯示出最高分區域。我們的方法使得這個選中的單元自己說話通過精确地展示他對什麼樣的區域感興趣,我們避免平均為了看到不同的視覺模式,增加對于通過單元計算出的不變形的洞察力。

我們從第五pool層可視化單元,這個層經過最大池化的網絡第五層,同時也是最後一層卷積層。第五層的特征結構是9216維,忽略邊界影響,每一個第五pool單元在原始的227*227輸入圖像上有一個196*196像素的區域,中心的pool5單元有一個近似于全局的視角,而那些接近邊緣的單元隻有更小被剪切的支援。

在圖三中每一行展示了我們從使用VOC2007調參過的CNN網絡挑選的經過pool5層單元激活的16個最高得分圖檔。這裡可視化了256個單元中的6個(在補充材料中有更多)。這些單元被選中展示網絡學習的代表性的模闆。在第二行,我們可以看出這個單元對于狗臉和點陣更加敏感。對應第三行的單元對紅色的團簇更敏感,還有的單元對人臉和一些抽象的結構敏感,例如文本和窗戶的三角形結構,學習網絡呈現出學習小規模類别特征的和分散的形狀,紋理,顔色和材質。家下來的第六層全連接配接層則是具備将一系列豐富特征部分模型化的任務。

RCNN 論文翻譯和解讀

圖4:6個單元的靠前的區域。感受野和活性值以白色畫出。某些單元與概念對齊,例如人(第1行)或文本(4)。其他單元捕獲紋理和材料屬性,例如點組(2)和特殊的反射(6)。

3.2 消融研究

逐層性能,不調參的情況下:為了了解哪些層對于檢測性能是關鍵的,我們分析了基于VOC2007的每一個CNN的最後三層結果。pool5層在3.1已經做了描述,最後兩層見後文。

與pool5相連的fc6是全連接配接層。為了計算特征,他将一個4096*9216的權值矩陣與pool5相乘(pool5被剪切為一個9216維的向量)然後增加一個偏置向量。這個中間向量是一種分量方式的半波映射。

fc7是網絡的最後一個層,這個層也被設定一個4096*4096的權值矩陣與fc6計算出來的特征相乘。相似的這個層也加入了一個偏置向量并應用了半波映射。

我們通過觀察CNN在PASCAL上的結果開始,例如,所有的CNN參數隻在ILSVRC2012上面預訓練。逐層(表2.第1-3行)的分析性能揭示了經過fc7的特征相對于fc6的特征表現不夠好。這就意味着29%或者說大約1680萬的CNN網絡參數對于提升mAP毫無作用。更加令人吃驚的是移除fc7和fc6層能産生更好的結果,即使pool5層的參數隻用使用了CNN網絡參數的6%。CNN網絡最有代表性的作用産生自他的卷積網絡,而不是用更多更密集連接配接的全連接配接網絡。這個發現意味着就HOG的意義而言在計算密集特征更為有意義。這就意味着能夠使基于滑動視窗的探測器成為可能包括DPM,在pool5層特征的基礎上。(這兩句話大緻意思應該是,卷積層在網絡中的作用相對于其它層是很大的,而且作為一種特征提取的方法,pool5層輸出的特征同樣可以選作為滑動視窗方法的素材)

逐層分析,有調參。在VOC2007 trainval上調整了我們的CNN的參數之後,我們現在再來看一下結果。改善是顯著的(表2中的4-6行):微調将mAP提高了8.0個百分點至54.2%。對于和,來自微調的提升遠大于,這表明從ImageNet中學習的pool5的特征是一般性的,并且大部分的改進是從學習特定領域的非線性分類器獲得的。

RCNN 論文翻譯和解讀

表2:**在VOC 2007測試集上的檢測的平均精度(%)。**1-3行展示的是沒有經過微調的R-CNN的性能。4-6行展示了在ILSVRC2012上預訓練過,并且在VOC2007trainval上微調過的CNN的結果。7行包括一個簡單的邊界框回歸(BB)階段,其減少了定位錯誤(C節)。8-10行展示了DPM方法作為一個強基準線。第一個僅使用了HOG,然而接下來的2個使用了不同的特征學習方法來增強或替換HOG。

與近年特征學習方法的比較:最近有相對較少的特征學習方法在PASCAL VOC檢測上進行嘗試。我們看看基于可變形部件模型的兩個最近的方法。作為參考,我們也包括了标準的基于HOG的DPM的結果。

  第一種DPM特征學習方法DPM ST[28]用“草圖示記”機率的直方圖來增強HOG特征。直覺來說,一個草圖示記就是穿過圖像塊中心的輪廓的緊密分布。草圖示記機率在每個像素處由随機森林計算,該森林被訓練成将35*35像素塊分類成150個草圖示志或背景中的一個。第二種方法,DPM HSC[31],用稀疏編碼(HSC)的直方圖代替HOG。為了計算HSC,使用100個7*7像素(灰階)原子的學習字典來解決每個像素處的稀疏碼激活。所得激活以三種方式(全半波和兩半波)來進行修正,空間池化,單元正則化,然後是功率變換()。

  所有的R-CNN變體都大大超過三個DPM基線(表2中的8-10行),包括使用特征學習的兩個。與僅使用HOG特征的最新版的DPM相比,我們的mAP高出了20個百分點:54.2% 對 33.7%-相對改善了61%。HOG草圖示記的結合超過了HOG自己2.5個mAP,而HSC改進超過HOG4個mAP(當内部與其私有DPM基線相比時-都使用非公開的實作的DPM,其比開源版本的性能要差一點)。這些方法各自實作mAP為29.1%和34.3%。(這部分不能完全了解,涉及到很多其他論文)

3.3 檢測誤差分析

我們應用了Hoiem等人的優秀的檢測分析工具,為了揭示我們方法的錯誤模式,了解微調如何改變他們,以及看看我們的錯誤模式與DPM的比較。分析工具的完整總結超出了本文的範圍,我們鼓勵讀者咨詢[23]了解一些更精細的細節(例如“歸一化AP”)。由于分析最好在相關圖的上下文中才會更受吸引,是以我們在圖5和圖6的标題内給出了讨論。

RCNN 論文翻譯和解讀

圖5:排名最高的FP類型的分布。每幅圖展示了FP類型的演變分布,因為更多的FP按照分數遞減的順序被考慮。每個FP分類成4種類型中的1種:Loc-poor定位(和正确類别的IoU重疊在0.1和0.5,或重複);Sim-與相似的類别混淆;Oth-與不同對象類别的混淆;BG-在背景上觸發的FP。與DPM相比(參見[23]),我們的錯誤更多的是來自于差的定位,而不是與背景或其他對象類的混淆,表明CNN特征比HOG更有差別性。差的定位可能是由于我們使用自下而上的候選區域和從預訓練CNN進行整體圖像分類學習的位置不變性。第三列顯示了我們的簡單的邊界框回歸方法如何修複很多定位錯誤。

RCNN 論文翻譯和解讀

圖6:對對象特征的敏感性。每個圖展示出了六個不同對象特征(遮擋,截斷,邊界框區域,寬高比,視角,部分可見性)内的最高和最低的表現子集的平均(所有類)歸一化AP。我們在圖上展示了我們的方法(R-CNN),帶有和不帶有fine-tuning(FT)和邊界框回歸(BB),以及DPM 的voc-release5。總的來說,微調并不會降低敏感性(最大值和最小值之間的內插補點),但是對于幾乎所有的特性,基本上改善了最高和最低性能子集。這表明微調不僅僅改善了長寬比和邊界框區域的最代性能子集,因為人們可能基于我們如何扭曲網絡輸入來進行推測。相反,微調改變了所有類别的魯棒性,包括遮擋,截斷,視角,部分可見。

3.5. 邊界框回歸

基于錯誤分析,我們實作了一個簡單的用于減少定位錯誤的方法。受在DPM中使用的邊界框回歸的啟發,在給定了一個選擇性搜尋候選區域的特征的情況下,我們訓練了一個線性回歸模型用來預測一個新的檢測視窗。完整細節在附錄C中給出。表1,表2和表5的結果表明這種簡單的方法改善了大量錯誤定位的檢測,将mAP提高了3至4個點。

語義分割

由于自己隻是接觸到目标檢測,語義分割就略了。

結論

最近幾年,物體檢測陷入停滞,表現最好的檢測系統是複雜的将多低層級的圖像特征與高層級的物體檢測器環境與場景識别相結合。本文提出了一種簡單并且可擴充的物體檢測方法,達到了VOC2012資料集相對之前最好性能的30%的提升。

我們取得這個性能主要通過兩個了解:第一是應用了自底向上的候選框訓練的高容量的卷積神經網絡進行定位和分割物體。另外一個是使用在标簽資料匮乏的情況下訓練大規模神經網絡的一個方法。我們展示了在有監督的情況下使用豐富的資料集(圖檔分類)預訓練一個網絡作為輔助性的工作是很有效的,然後采用稀少資料(檢測)去調優定位任務的網絡。我們猜測“有監督的預訓練+特定領域的調優”這一範式對于資料稀少的視覺問題是很有效的。

最後,我們注意到通過使用經典的組合從計算機視覺和深度學習的工具實作這些結果(自底向上的區域候選框和卷積神經網絡)是重要的。而不是違背科學探索的主線,這兩個部分是自然而且必然的結合。

參考文獻:

繼續閱讀