論文解讀 | 如何進行精確的對象檢測和語義分割?谷歌研究員提出豐富的特征層次結構!
原創(chuàng)? | 文 BFT 機器人

01
摘要
本文關注經(jīng)典的PASCAL VOC數(shù)據(jù)集上的對象檢測性能問題,近年來性能趨于穩(wěn)定。作者提出一種簡單且可擴展的檢測算法,相較于之前最佳結果,在VOC 2012數(shù)據(jù)集上將平均精度(mAP)提高了30%以上,達到了53.3%的mAP。
該方法的關鍵點在:
(1)將高容量的卷積神經(jīng)網(wǎng)絡(CNN)用于自底向上的區(qū)域建議,以實現(xiàn)對象的定位和分割。
(2)在標記訓練數(shù)據(jù)稀缺的情況下,通過監(jiān)督預訓練輔助任務,然后進行領域微調,可以顯著提升性能。
由于將區(qū)域建議與CNN相結合,該方法被稱為R-CNN:具有CNN特征的區(qū)域。此外,作者還將R-CNN與OverFeat進行了比較,后者是基于類似CNN架構的滑動窗口檢測器。結果顯示,在200類ILSVRC2013檢測數(shù)據(jù)集上,R-CNN的性能明顯優(yōu)于OverFeat。
02
介紹
在20世紀90年代,CNN得到廣泛應用,但后來受支持向量機的興起影響而逐漸退出。2012年,Krizhevsky等人通過在ImageNet上訓練大型CNN取得了顯著的圖像分類成果,重新引起人們對CNN的興趣。
他們的成功包括對網(wǎng)絡結構的調整。作者介紹了CNN在目標檢測中的應用,并解決了圖像分類和目標檢測之間的差距。作者表明CNN在PASCAL VOC目標檢測中顯著提高性能,專注于深度網(wǎng)絡定位目標和在少量帶注釋的數(shù)據(jù)上訓練高容量模型。
作者采用了“使用區(qū)域識別”范式來解決CNN定位問題,這一方法在目標檢測和語義分割領域都獲得了成功。在測試時,作者的方法生成了約2000個與類別無關的區(qū)域建議,通過CNN從每個建議中提取固定長度的特征向量,并使用特定類別的線性支持向量機進行分類。
作者還采用了一種簡單的技術(仿射圖像扭曲)來處理區(qū)域提議,使其適應固定大小的CNN輸入,不受區(qū)域形狀的限制。作者將這一方法稱為R-CNN,即具有CNN特征的區(qū)域。
在更新版本中,作者將R-CNN與最近提出的OverFeat檢測系統(tǒng)進行了比較,發(fā)現(xiàn)R-CNN在200類ILSVRC2013檢測數(shù)據(jù)集上表現(xiàn)明顯優(yōu)于OverFeat,mAP分別為31.4%和24.3%。
檢測面臨的第二個挑戰(zhàn)是標記數(shù)據(jù)稀缺,解決方案通常是使用無監(jiān)督預訓練和監(jiān)督微調。作者的第二個主要貢獻是證明,在大數(shù)據(jù)集(ILSVRC)上進行監(jiān)督預訓練,然后在小數(shù)據(jù)集(PASCAL)上進行特定領域微調,是有效學習高容量CNN的方法。
在實驗中,微調使得檢測性能的mAP提高了8個百分點。作者還提到了其他研究,表明Krizhevsky的CNN在多個識別任務上可以作為特征提取器,無需微調。
作者強調了了解方法的失效模式對改進至關重要,他們報告了一個邊界盒回歸方法可以顯著減少錯誤定位,這是主要的誤差模式。最后,作者指出由于R-CNN在區(qū)域上操作,將其擴展到語義分割任務是很自然的。作者在PASCAL VOC分割任務上也獲得了競爭力的結果,平均分割準確率為47.9%。

圖1:目標檢測系統(tǒng)。(1)獲取輸入圖像;(2)提取大約2000個自下而上的區(qū)域建議;(3)使用大型卷積神經(jīng)網(wǎng)絡(CNN)計算每個建議的特征;(4)使用特定類別的線性支持向量機對每個區(qū)域進行分類。
03
基于R-CNN的目標檢測
3.1 模塊設計
區(qū)域建議大量的論文提出了與類別無關的候選區(qū)域生成方法。例如:對象性、選擇搜索、類別無關的候選目標、約束參數(shù)最小切割(CPMC)、多尺度組合、Ciresan[等。Ciresan用CNN檢測有絲分裂的細胞,是候選區(qū)域方法的一個特例。當然,R-CNN是一種選擇搜索的候選區(qū)域方法,用選擇搜索是為了方便與之前的檢測方法比較。
特征提取為了提取區(qū)域建議的特征,作者采用了Krizhevsky等人所描述的CNN(使用Caffe實現(xiàn))。每個區(qū)域建議被轉換為固定的227 × 227像素大小的輸入,以便與CNN架構兼容。作者選擇了簡單的方法來實現(xiàn)這一點,即將候選區(qū)域周圍的像素通過翹曲轉換到所需的大小。
在翹曲之前,緊密邊界框會被擴大,以確保在翹曲后的圖像中包含足夠的上下文像素(作者使用了p = 16)。圖2展示了扭曲訓練區(qū)域的隨機抽樣過程。此外,替代的扭曲方法在附錄A中有詳細討論。

3.2 測試時間檢測
在測試時,作者對測試圖像進行選擇性搜索以提取大約2000個區(qū)域建議(我們在所有實驗中都使用選擇性搜索的“快速模式”)。作者扭曲每個提議,并通過CNN向前傳播,以計算特征。
然后,對于每個類,我們使用為該類訓練的支持向量機對每個提取的特征向量進行評分。給定圖像中所有得分區(qū)域,我們應用貪婪非最大抑制(獨立于每個類),如果該區(qū)域與大于學習閾值的較高得分選擇區(qū)域有交集-過并(IoU)重疊,則拒絕該區(qū)域。
3.3 訓練
監(jiān)督訓練作者使用大規(guī)模輔助數(shù)據(jù)集(ILSVRC2012分類)對CNN進行了判別性預訓練。在這個預訓練階段,他們僅使用圖像級別的標注信息(不使用邊界框標簽)。
所使用的CNN架構與Krizhevsky等人的工作相似,性能接近于他們的模型。在ILSVRC2012分類驗證集上,相對于前一名,錯誤率高出2.2個百分點。這個差距是由于訓練過程的簡化造成的。
特定領域的微調?為了使CNN適應新的任務(目標檢測)和新的域(扭曲的區(qū)域建議),作者繼續(xù)對CNN參數(shù)進行隨機梯度下降(SGD)微調,使用扭曲的區(qū)域提議。
在微調過程中,作者用具有(N + 1)個分類層的隨機初始化替換了原CNN的Imagenet特定的1000個分類層,其中N為對象類別數(shù)量,加1代表背景。網(wǎng)絡結構保持不變。
對于VOC數(shù)據(jù)集,N = 20,而對于ILSVRC2013數(shù)據(jù)集,N = 200。作者將所有與ground-truth框重疊IoU大于0.5的區(qū)域建議視為陽性,其余視為陰性。SGD的初始學習率為0.001(預訓練學習率的1/10),這樣可以在微調的同時避免破壞初始參數(shù)。每次SGD迭代中,作者以32個正窗口(涵蓋所有類別)和96個背景窗口的比例構建大小為128的小批量,因為正窗口比背景窗口更為罕見。
04
可視化,模型比較和誤差模式
4.1 網(wǎng)絡體系結構
本文主要使用了Krizhevsky等人[25]提出的網(wǎng)絡架構來展示R-CNN的檢測性能。然而,研究發(fā)現(xiàn)網(wǎng)絡架構的選擇對R-CNN的性能產(chǎn)生重要影響。在本文中,作者還嘗試了使用Simonyan和Zisserman[43]最近提出的16層深度網(wǎng)絡進行VOC 2007測試,這個網(wǎng)絡被稱為O-Net,與之前使用的T-Net進行比較。
作者從Caffe模型動物園下載了VGG ILSVRC 16層模型的預訓練網(wǎng)絡權重,并對O-Net進行微調,微調的過程與T-Net相似,只是使用了較小的minibatch來適應GPU內存。結果顯示,使用O-Net的R-CNN在性能上明顯優(yōu)于使用T-Net的R-CNN,平均準確度從58.5%提升到66.0%。然而,需要注意的是,使用O-Net的R-CNN的計算時間較長,轉發(fā)時間大約是使用T-Net的R-CNN的7倍。
4.2 檢測誤差分析
作者使用了Hoiem等人的優(yōu)秀檢測分析工具,以揭示我們方法的誤差模式,了解微調如何改變它們,并將我們的誤差類型與DPM進行比較。分析工具的完整總結超出了本文的范圍,我們鼓勵讀者參考來理解一些更精細的細節(jié)(例如“規(guī)范化AP”)。由于分析最好是在相關圖的上下文中進行,在圖5和圖6的標題中給出了討論。


4.3 限定框回歸
在誤差分析的基礎上,實現(xiàn)了一種簡單的減小定位誤差的方法。受DPM中使用的邊界盒回歸的啟發(fā),我們訓練了一個線性回歸模型,在給定pool5特征的情況下,為選擇性搜索區(qū)域建議預測一個新的檢測窗口。表1、表2和圖5的結果表明,這種簡單的方法修復了大量的錯誤定位檢測,將mAP提高了3到4個點。


4.4 定性結果
對ILSVRC2013的定性檢測結果如圖8和圖9所示。每張圖像從val2集合中隨機采樣,并顯示了精度大于0.5的所有檢測器的所有檢測結果。請注意,這些都不是精心設計的,并給出了實際運行中的探測器的真實印象。更多的定性結果顯示在圖10和圖11中,但是這些都是經(jīng)過整理的。我們選擇每張圖片是因為它包含了有趣的、令人驚訝的或有趣的結果。這里也顯示了精度大于0.5的所有檢測結果。


05
語義分割
區(qū)域分類是語義分割的標準技術,使得R-CNN能夠輕松應用于PASCAL VOC分割挑戰(zhàn)。為了與領先的語義分割系統(tǒng)“二階池”(O2P)直接進行比較,作者在O2P的開源框架內進行了工作。
O2P系統(tǒng)利用CPMC生成每張圖像的150個區(qū)域建議,通過支持向量回歸(SVR)預測每個類別的每個區(qū)域的質量。O2P方法的高性能歸功于CPMC區(qū)域質量和多種特征類型(如SIFT和LBP的多樣變體)的強大二階池化。
此外,作者還注意到Farabet等人最近使用CNN作為多尺度逐像素分類器,在一些密集場景標記數(shù)據(jù)集上展示了良好結果,盡管這些數(shù)據(jù)集不包括PASCAL。
為了進行比較和評估,作者在PASCAL分割訓練集上遵循相關工作并進行了擴展,包括了Hariharan等人提供的額外注釋。設計決策和超參數(shù)通過在VOC 2011驗證集上進行交叉驗證來完成。
CNN功能分割?在對CPMC區(qū)域進行特征計算方面,作者嘗試了三種策略,這些策略都始于將區(qū)域周圍的矩形窗口扭曲到227 × 227的尺寸。第一種策略(full)忽略了區(qū)域的形狀,直接在扭曲的窗口上計算CNN特征,類似于在檢測任務中的做法。然而,這樣的特征計算忽略了區(qū)域的非矩形形狀。
第二種策略(fg)只在區(qū)域的前景蒙版上計算CNN特征,背景部分使用均值進行替換,使得在均值減去后背景區(qū)域為零。第三種策略(full+fg)將前兩種策略的特征連接在一起,作者的實驗驗證了它們在提取特征時的互補性。
在VOC2011數(shù)據(jù)集上的結果作者對比了他們在VOC 2011驗證集上的結果與O2P方法的結果。作者使用了三種特征計算策略,發(fā)現(xiàn)在每個策略中,fc6層的性能總是優(yōu)于fc7層。
在特征計算策略方面,fg策略稍微優(yōu)于full策略,表明掩膜區(qū)域形狀提供了更強的信號。然而,使用完整特征和掩膜區(qū)域形狀的聯(lián)合策略(full+fg)表現(xiàn)最佳,達到了47.9%的平均準確度,相比O2P方法稍高。
作者強調,即使在掩膜區(qū)域形狀信息已知的情況下,完整特征仍然提供了豐富的上下文信息。此外,在VOC 2011測試集上,作者的方法在11個類別中取得了最高的分割精度,在各個類別之間的平均分割精度達到了47.9%。


06
總結
本文提出了一種簡單且可擴展的目標檢測算法,在PASCAL VOC 2012數(shù)據(jù)集上相對于最佳結果提高了30%。首先他們采用了大容量的卷積神經(jīng)網(wǎng)絡來處理自底向上的區(qū)域建議,從而實現(xiàn)目標的定位和分割。
其次,在數(shù)據(jù)稀缺的情況下,他們通過在具有豐富數(shù)據(jù)的輔助任務(如圖像分類)上進行監(jiān)督預訓練,然后在目標檢測這種數(shù)據(jù)稀缺的任務上進行微調,展示了訓練大型卷積神經(jīng)網(wǎng)絡的范例。
作者認為,這種"有監(jiān)督的預訓練/特定領域微調"的方法對于解決各種數(shù)據(jù)稀缺的視覺問題都非常有效。
作者?| 不加糖
排版 |?居居手
更多精彩內容請關注公眾號:BFT機器人
本文為原創(chuàng)文章,版權歸BFT機器人所有,如需轉載請與我們聯(lián)系。若您對該文章內容有任何疑問,請與我們聯(lián)系,將及時回應。