Faster RCNN論文學習


 Faster R-CNN在Fast R-CNN的基礎上的改進就是不再使用選擇性搜索方法來提取框,效率慢,而是使用RPN網絡來取代選擇性搜索方法,不僅提高了速度,精確度也更高了

Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

依靠於區域推薦算法(region proposal algorithms)去假定目標位置的最優的目標檢測網絡。之前的工作如SPPnet和Fast RCNN都減少了檢測網絡的運行時間,暴露了區域推薦(region proposal)是阻礙減少運行時間的瓶頸。在這里,我們介紹了一個區域推薦網絡(region proposal network,RPN),用於與共享檢測網絡共享整張圖像的卷積特征,使得區域推薦花費時間接近為零成為可能。RPN是一個全卷機網絡,能夠在每個位置上同時預測目標的邊界和其分數。我們將會通過共享RPN和Fast RCNN兩個網絡的卷積特征來將他們合並成一個簡單的網絡——使用最近帶有“attention”機制的神經網絡的流行術語,RPN組件將會告訴統一網絡去看哪里。對於一個VGG16模型,我們的檢測體系在GPU中的框架效率為5fps(包含所有steps),同時能夠在PASCAL VOC2007、2012和每張圖片僅有300個proposals的MS COCO數據集上得到最優的目標檢測效率。在ILSVRC和COCO 2015競賽中,Faster RCNN和RPN都是在不同賽道中得到第一名的冠軍隊伍的基礎。代碼已經開源

Index Terms—Object Detection, Region Proposal, Convolutional Neural Network.

 

1 INTRODUCTION

最近在目標檢測中的進展都是被區域推薦方法(如[4]selective search)和基於區域的卷積神經網絡(R-CNNs)推動的。雖然基於區域的CNNs在計算上和原來在[5]中的方法一樣昂貴,但是因為在proposal[1]SPPnet、[2]Fast RCNN中共享了卷積,他們的開銷急劇減少。當忽略花費在區域推薦中的時間時,Fast R-CNN[2]使用非常深的網絡[3]VGG 獲得了接近實時的效率。現在proposals是在最優的檢測體系中測試時間計算的瓶頸

區域推薦算法依靠於不昂貴的特性和經濟推理方案。選擇性搜索([4]selective search)是最流行的方法之一,基於設計的低級特性來貪婪聚類(greedily merges)超級像素。但是與高效的檢測網絡[2]Fast RCNN對比時,選擇搜索法將會慢一個數量級,在CPU中每張圖片要花費2秒。EdgeBoxes[6]目前提供了在推薦質量和速度之間的最好權衡。然而區域推薦步驟還是花費和檢測網絡一樣多的時間。

注意到快速的基於區域的CNNs利用的是GPUs,然而區域推薦方法在選擇時使用的是CPUs,這樣勒對比運行時間可能不公平。一個絕對地加速推薦計算的方法就是在GPU中再運行一遍。這可能是一種高效的設計解決方案,但是重新實現忽略了下游的檢測網絡並因此錯失了共享計算的重要機會。

在該論文中,我們展示了一種算法更改-使用深度卷積神經網絡來計算proposals,與檢測網絡的計算做對比,該proposal計算就接近與0了。最后,介紹了創新的區域推薦網絡(RPNs),與最先進的檢測網絡[1]SPPnet、[2]Fast RCNN共享卷積層。通過在測試時間共享卷積,計算proposals的邊界開銷很小(如每張圖片10ms)

我們觀察到使用在基於區域檢測器如Fast R-CNN中的卷積特征映射,能夠被用在生成區域proposals中,在這些卷積特征上面我們通過添加一些在規則網格每個位置中用於回歸區域邊界和目標分數的額外的卷積層來構建了一個RPN。因此這個RPN是一種全卷積網絡(FCN)[7],並且能夠在任務中端到端地進行訓練,用於生成檢測proposals

RPNs被設計用於使用各種不同的大小和寬高比來高效地預測區域proposals。與之前流行的方法[8][9][1][2]相反的是使用了圖片的金字塔(如圖1-a)或者過濾器的金字塔(如圖2-a),我們介紹了創新的"anchor"框來作為在多種大小和寬高比中的參考。

我們的方案可以看作是一個回歸參考的金字塔(如圖1-c),避免了枚舉多個大小和寬高比的圖像或過濾器。該模型在使用單尺度圖像進行訓練和測試時獲得很好的效果,有利於運行速度

為了整合RPNs和Fast RCNN[2]目標檢測網絡,我們提出了一個訓練方案來更換用於區域推薦任務的微調和用於目標檢測的微調,同時保持proposlas固定大小。該方案收斂快並生成一個帶有卷積特征的整合網絡,該網絡在兩個任務中共享。(RPNs能夠和Fast R-CNN一起訓練,使用更少的訓練時間)

我們在PASCAL VOC檢測基准[11]上對我們的方法進行了綜合評價,其中帶有Fast R-CNNs的RPNs檢測精度優於帶有Fast R-CNNs的選擇性搜索方法。同時,我們的方法幾乎免除了測試時選擇搜索方法的所有計算負擔——proposals的高效與運行時間大概是10毫秒。即使是使用昂貴的VGG模型,我們的方法仍在GPU中有5fps的frame rate,因此無論是在速度還是精確度上這都是個實用的目標檢測系統。我們也報告了七仔MS COCO數據庫上的結果,並使用COCO數據調查其在PASCAL VOC上的改進。代碼被發布在https://github.com/shaoqingren/faster_ rcnn (in MATLAB)和https://github.com/ rbgirshick/py-faster-rcnn (in Python)

這份手稿的初步版本[10]在之前已經出版。從那時起,RPN和Fast R-CNN框架就被采用並推廣到其他方法,如3D對象檢測[13]、基於部件的檢測[14]、實例分割[15]和圖像 captioning[16]等。我們的快速和有效的目標檢測系統也已在商業系統中建立,如在pinterest[17],帶有與用戶參與的改進報告。

在ILSVRC和COCO 2015競賽中,Faster R-CNN和RPN都是在ImageNet檢測、ImageNet定位、COCO檢測和COCO分割賽道上幾個第一名模型的基本。RPNs完全學着去從數據中推薦區域,因此能夠很容易地從更深和更昂貴的特征中受益(比如采用在[18]中采用的101層殘差網絡)。Faster R-CNN和RPN也被上面集中競賽(http://image-net.org/challenges/LSVRC/2015/results)中的其他優秀模型使用。這些結果說明了該方法不僅是在實際使用中的一種成本效益解決方案,也是用於改善目標檢測精確度的有效方法。

 

2 RELATED WORK其他的相關工作

目標proposals(Object Proposals)。有大量關於目標推薦方法的文獻。對目標推薦方法的綜合調查和比較可見[19][20][21]。目標推薦方法的廣泛應用在那些基於grouping super-pixels的方法和那些基於滑動窗口(如objectness in windows[24],EdgeBoxes[6])。目標推薦方法被采用為與檢測器獨立的額外模塊(如選擇性搜索[4]目標檢測器,R-CNN[5]和Fast R-CNN[2])

用於目標檢測的深度網絡(Deep Networks for Object Detection)。R-CNN方法[5]端到端訓練CNNs去將推薦區域分類為指定的目標類別和背景類。R-CNN主要就是作為一個分類器,並不用來預測目標邊界(除非通過邊界框回歸bounding box regression進行精煉,實現回歸預測目標邊界)。它的准確度都取決於區域推薦模型的性能(可見[20]中的對比)。有好幾篇論文都提出了使用深度網絡來預測目標邊界框,如[25][9][26][27]。在OverFeat方法[9]中,一個全連接層被訓練去預測框坐標,用於完成假設一個單一目標的定位任務。該全連接層被轉成一個用於檢測多個具體類目標的卷積層。MultiBox方法[26][27]從最后一個全連接層是用來同時預測多個未知類框的網絡中生成區域proposals,生成的是OverFeat中的“單一框”類型。這些未知類的框被用作R-CNN的proposals。MultiBox推薦網絡被用於一個單一圖像切割或多個大圖像切割(如224*224),與我們的全卷積方案不同。MultiBox並不在proposal和檢測網絡中共享特性。稍后,我們將在上下文中使用我們的方法更深入地討論OverFeat和MultiBox。結合我們的工作,開發了用於學習分割proposals的DeepMask方法[28]。

卷積[9]、[1]、[29]、[7]、[2]的共享計算,因其高效、准確的視覺識別而受到越來越多的關注。OverFeat論文[9]從圖像金字塔中計算卷積特征,用於分類、定位和檢測。針對卷積特征圖上的自適應大小池化(SPP)[1]算法,提出了一種基於區域的目標檢測[1][30]和語義分割[29]。Fast R-CNN[2]支持訓練在共享卷積特性上的端到端檢測器,並顯示了令人信服的准確性和速度。

 

 

3 FASTER R-CNN我們的工作

 

我們的目標檢測系統被稱為Faster R-CNN,包括兩個模塊:

  • 一個是用於推薦區域的全卷積網絡,即RPN
  • 一個是使用推薦區域的Fast R-CNN檢測器

整個系統是一個單一的、整合的用於目標檢測的網絡,如圖2:

RPN模塊使用最近流行的具有“attention”[31]機制的神經網絡術語,告訴Fast R-CNN模塊去哪里查看。在3.1節中,我們介紹了區域推薦網絡的設計和特性。在第3.2節中,我們開發了用於訓練具有共享特性的兩個模塊的算法。

該圖步驟即:

  • 首先向CNN網絡(該論文使用的是ZF或VGG-16網絡)輸入任意大小的圖片
  • 然后前向傳播到最后共享的卷積層,這時候該輸出一邊會作為RPN網絡的輸入特征圖,一邊則等待RPN得到proposals后共同作為RoI池化層的輸入
  • 然后RPN網絡就會根據輸入的特征圖得到區域proposals利用bounding box regression修正anchors獲得精確的proposals)和每個proposals的得分,得分范圍在[0,1],並對這些proposals根據他們的得分采用非極大值抑制方法(閾值為0.7,只取大於0.7的proposals),然后輸出這里面得分top-N(該論文N=300)的區域proposals給RoI池化層
  • 第二步中另一個方向得到的特征圖和第三步中得到的proposals將會同時輸入到RoI池化層中,提取對應區域proposals的特征
  • 然后將使用上面得到的proposals的特征輸入全連接層(3個),然后輸出該區域的分類得分以及再次bounding box regression獲得檢測框最終的精確位置

 

該圖參考了https://zhuanlan.zhihu.com/p/31426458?utm_source=qq&utm_medium=social&utm_oi=827947156655718400

 

3.1 Region Proposal Networks

 區域推薦網絡(RPN)將任意大小的圖像作為輸入,並輸出一系列長方形的目標proposals,每一個都帶着objectness分數。(⚠️“objectness”用於度量一系列目標類VS背景類的成員關系) 。我們將使用一個全卷積網絡來實現該過程。因為我們最終的目標是與Fast R-CNN目標檢測網絡共享計算,因此我們假設兩個網絡共享一組通用的卷積層。在我們的實驗中,我們調查了有着5個共享卷積層的

Zeiler and Fergus模型[32](ZF)和有着13個共享卷積層的Simonyan and Zisserman模型(VGG-16)。

為了生成區域proposals,我們在由最后一個共享卷積層得到的卷積特征映射輸出中滑動一個小網絡。該小網絡將來自輸入的卷積特征映射的一個n*n大小的空間窗口作為RPN網絡的輸入。每個滑動窗口都映射到一個更低維度的特征上,該圖以ZF網絡為例(即下面圖中的intermediate layer ,對於ZF輸入特征圖的維度是256維度,對於VGG輸入特征圖的維度是512維度,接下來跟着ReLU)。該特征被輸入兩個同級的全連接層-一個是框回歸層(reg,用於定位),一個是框分類層(cls,用於分類)。在該論文中設置n=3,注意,輸入圖像上的有效接收域很大(ZF是171個像素,VGG是228個像素)。該微網絡可見圖3。注意,由於微網絡以滑動窗口的方式運行,因此所有空間位置上都共享全連接層。因此該網絡是使用一個n*n(n=3)卷積層和兩個同級的1*1卷積層(分別用於reg和cls)來實現的

第一個卷積層將特征圖每個滑窗位置編碼成一個特征向量(⚠️設置了該卷積層的輸出沒有改變特征圖的寬高),第二個卷積層對應每個滑窗位置輸出k個區域得分,表示該位置的anchor為物體的概率,這部分總輸出長度為2×k(一個anchor對應兩個輸出:是物體的概率+不是物體的概率)和k個回歸后的區域proposal(框回歸),一個anchor對應4個框回歸參數,因此框回歸部分的總輸出的長度為4×k,並對得分區域進行非極大值抑制后輸出得分Top-N(文中為300)區域,就得到了檢測網絡應該注意的proposals。

由上上圖可見經過1*1卷積后分類線路得到的通道數為18=9*2,保證了這個特征映射每個點都有9個anchors,並且每個anchors都分成了是目標或不是目標兩類,所以輸出為W*H*(9*2);回歸線路得到的通道數為36=9*4

此時得到的proposals的大小是不同的,因此RoI池化層能夠對其處理后得到固定長度的輸出,用於全連接層

 

3.1.1 Anchors

在每個滑動窗口位置,我們同時預測多個區域proposals,每一個位置可能的proposals的最大數量設置為k。因此reg層有着4k個輸出來標記k個框的坐標,cls層輸出2k個分數來估計每個proposal是否是目標的概率(即該proposal是目標還是背景)。⚠️為了簡化我們能夠使用二分類的softmax層來實現cls,或者使用使用邏輯回歸去生成k個分數。

k個proposals是相對於k個參考框來參數化的,該參考框我們稱之為anchor。anchor以所述滑動窗口為中心,並與大小和寬高比相關聯(如上面圖3)。默認情況下,我們使用3個大小和3個縱橫比,在每個滑動位置產生k = 9個anchor。對於大小為W×H(通常為∼2400)的卷積特征圖,總共有WHk個anchors(即SSD中的方法,可見SSD論文學習)。

⚠️下面3.1.3中也會提到,全部anchors拿去訓練太多了,訓練程序會在合適的anchors中隨機選取128個postive anchors+128個negative anchors進行訓練

 

Translation-Invariant Anchors平移不變形

我們的方法的一個重要的特性是它是平移不變的,對於anchors和計算相對於anchors的proposals的函數都有該特性。即如果在一個圖片上平移一個目標,proposal也會平移且相同的函數應該不管在哪個位置都能夠預測該proposal。該平移不變特性在我們的方法中是保證的。作為對比,在MultiBox方法中使用k-means方法去生成800個anchors,它就沒有平移不變形。所以MultiBox就不能夠保證當目標平移時能生成相同的proposal。

平移不變特性能夠減少模型的大小。MuiltiBox有着一個(4+1)*800-維度的全連接輸出層,然而我們的方法只有一個(4+2)*9-維度的卷積輸出層,當設置k=9時。作為結果,我們的輸出層有着2.8*10^ 4個參數(即對於VGG-16網絡來說為512*(4+2)*9),比MultiBox中6.1*10^6個參數(即對於GoogleNet來說為1536*(4+1)*800)的輸出層少兩個量級。如果考慮到特征投射層,將其的參數也加進來,我們的proposal層仍比MultiBox少一個量級:

對於VGG-16網絡特征投射層的計算為3*3*512*512,因為RPN的卷積特征映射輸入為3*3*512,所以卷積核大小為3*3*512,為了輸出為512維,則需要512個卷積核

我們希望我們的方法在小的數據集,如PASCAL VOC上有較少的過擬合的風險

 

Multi-Scale Anchors as Regression References多尺度的anchors作為回歸參考

我們anchors的設計提出了一個創新的方案,用於解決多尺度的問題(和多寬高比的問題)。就像在圖1中展示的那樣,有兩個用於多尺度預測的流行的方法:

  • 第一個是基於圖像/特征金字塔,如DPM[8]和基於CNN的方法[9][1][2]。圖像被重置為多種大小,特征映射(HOG[8]或深度卷積特征[9][1][2])在每種大小種被計算(如圖1-a)。這種方式是有效的,但是很花費時間。
  • 第二種方法是在特征映射上使用多種大小的滑動窗口(和/或多種寬高比)。如在DPM[8]中,不同寬高比的模型被分開使用不同過濾器大小訓練(如5*7和7*5)。如果這種辦法被用來解決多尺度問題,則可被當作"過濾器金字塔"(如圖1-b)。第二個方法總是和第一個方法共同使用。

作為比較,我們的基於anchor的方法是建立在anchors金字塔上的,有着更好的成本效益。我們的方法是參考有着不同大小和寬高比的anchor框來分類和回歸邊界框。它僅依賴於圖像、一個單一大小的特征映射和一個單一大小的過濾器(即在特征映射上的滑動窗口)。我們將在下面的實驗中展示該方案解決多尺度問題的效果,表8:

因為該基於anchors的多尺度設計,我們可以簡單在單尺度圖像上使用卷積特征計算,就像在Fast R-CNN上使用的一樣。該多尺度anchors設計是共享特征的一個重要組成部分,用於解決尺度問題而不需要額外的開銷

 

3.1.2 Loss Function

為了訓練RPNs,我們為每個anchor賦值一個二進制類標簽(即是一個類與否)。我們將兩類anchors賦值為正樣本:

  • 與真實框覆蓋的有着最高交並比(IoU)的anchor/anchors
  • 或者是與真實框覆蓋,交並比(IoU)高於0.7的anchor

⚠️單個真實框可能會將多個anchors賦值為正樣本。通常第二個條件就足夠去決定正樣本;但是我們仍然采用第一個條件的原因是在一些極少見的情況下第二種條件可能沒有任何滿足的正樣本。而對於非正樣本的框中,如果其與真實框的交並比小於0.3,就會被賦值為負樣本。那些既不是正樣本,也不是負樣本的anchors將不會對訓練目標函數作出貢獻

根據上面的定義,我們將遵循Fast R-CNN中的多任務損失函數來最小化一個目標函數。對於一張圖片我們的損失函數定義為:

這里i表示在mini-batch中一個anchor的索引,pi是anchor i 為一個對象的預測概率。當anchor為正樣本時,其對應的真實框pi*值為1;當anchor為負樣本時,其對應的真實框pi*值為0。ti是一個表示預測的邊界框的4個參數坐標,ti*則是與一個正樣本anchor相關聯的真實框的4個坐標。分類損失函數Lcls是兩類(即是對象或不是對象)的對數損失。對於回歸損失函數Lreg,使用的R函數是定義在[2]中的魯棒損失函數(smooth L1):

上面式子中的pi*Lreg表示回歸損失函數僅在anchors判定為正樣本(即pi*=1)時使用。cls層和reg層相互包含了{pi}和{ti}

{pi}和{ti}通過Ncls和Nreg歸一化,並使用平衡參數λ賦予權重。在我們目前的實現中,等式(1)中的cls部分被mini-batch的大小(Ncls=256)歸一化(即除以Ncls);reg部分則使用anchor位置的數量(如Nreg ~ 2400)來歸一化。默認設置λ=10(因為Nreg/Ncls ≈ 10),因此cls和reg項的權重大致相等。通過實驗展示了結果當λ在一個大范圍內都是不敏感的,如表9:

我們還注意到上面的歸一化不是必需的,能被簡化

 

對於邊界框回歸,我們采用如下4個坐標的參數化方法:

x、y、w和h是框中心坐標以及其寬和高。變量x、xa和x*分別對應與預測框、anchor框和真實框(y、w、h的也是一樣)。這能夠認為是從一個anchor框到臨近真實框的邊界框回歸。

然而,我們的方法是從以前的基於RoI的方法,如[1][2],以一種不同的方式得到邊界框回歸。在[1][2]中,邊界框回歸實現在來自任意大小的RoIs的特征池化中,並且回歸權重被所有區域大小共享。在我們的公式中,用於回歸的特征在特征映射中有着相同的空間大小3*3。為了適應不同的尺寸,我們學習了一組k個邊界框回歸器。每個回歸器負責一個尺度和一個寬高比,而k個回歸器不共享權重。同樣,由於錨的設計,即使特性的大小/比例是固定的,仍然可以預測各種大小的盒子

 

3.1.3 Training RPNs

 RPN能夠通過后向傳播和隨機梯度下降(SGD)來被端對端訓練。我們遵循着[2]中“圖像中心”的采樣策略來訓練該網絡。每個mini-batch都由一個包含了多個正樣本和負樣本的單一圖像組成。優化所有anchors的損失函數是可能的,但是當負樣本占支配地位時,結果可能會偏差。所以我們將隨機從單個圖片中采樣256個anchors去計算一個mini-batch(batch size=256)的損失函數,采樣的正樣本和負樣本的比例是1:1。如果一張圖片中的正樣本的數量少於128,那么將會用負樣本去填補

通過使用來自均值為0,標准差為0.01的高斯分布來繪制權重來隨機初始化所有新層。而其他的層(即共享的卷積層)將通過預訓練一個用於ImageNet分類的模型作為標准實例來初始化。我們調ZF網絡中的所有層,對於VGG網絡則是僅調conv3_1以上的層來節省內存。對於PASCAL VOC數據集中60k 的mini-batches(則前60k張圖片)設置學習率為0.001,接下來的20k的mini-batch則設置為0.0001。動量momentum設置為0.9,權重衰減設置為0.0005,使用caffe來實現。

 

3.2 Sharing Features for RPN and Fast R-CNN

 到目前為止,我們描述了怎么訓練用於區域proposal生成的網絡,沒有考慮將會使用這些proposals的基於區域目標檢測的CNN網絡。對於檢測網絡,我們采用了Fast R-CNN。接下來我們將描述學習一個包含RPN和帶着共享卷積層的Fast R-CNN的整合網絡的算法

RPN和Fast R-CNN是單獨訓練的,以不同的方法來修改卷積層。因此,我們需要開發一種技術,允許在兩個網絡之間共享卷積層,而不是學習兩個獨立的網絡。我們討論了三種共享功能的訓練網絡的方法:

交替訓練。在這個解決方案中,我們首先訓練RPN,並利用這些proposals來訓練Fast R-CNN。然后使用Fast R-CNN調優后的網絡初始化RPN,並迭代該過程。這是本文所有實驗中使用的方法。

 近似的聯合訓練。在這個解決方案中,RPN和Fast R-CNN網絡在訓練過程中合並成一個網絡,如圖2所示。在每個SGD迭代中,前向遍歷生成區域proposals,這些proposals在訓練Fast R-CNN檢測器時就像處理固定的、預先計算好的proposals一樣。反向傳播照常進行,其中共享層將RPN損失函數和Fast R-CNN損失函數的反向傳播信號結合起來。這個解決方案很容易實現。但是這個解忽略了w.r.t的導數,proposal框的坐標也是網絡響應,所以是近似的。實驗結果表明,該算法與交替訓練相比,訓練時間縮短了約25-50%。這個求解器包含在我們發布的Python代碼中。

非近似的聯合訓練。如上所述,RPN預測的邊界框也是輸入的函數。Fast R-CNN中的RoI池層[2]接受卷積特性和預測的邊界框作為輸入,因此理論上有效的反向傳播求解器還應該包含梯度w.r.t。上述近似聯合訓練忽略了這些梯度。在非近似聯合訓練解中,我們需要一個RoI池層,它是可微分的w.r.t.,即框的坐標。這是一個非常重要的問題,可以通過[15]中開發的“RoI warping”層給出解決方案,這超出了本文的討論范圍。

4-Step Alternating Training四步交替訓練。在該論文中,我們通過交替優化方式,采用了一個務實的4步訓練算法來學習共享特性:

  • 第一步:如3.1.3中所說地先訓練RPN。該網絡使用一個ImageNet預訓練模型來初始化,然后為了區域推薦任務進行端到端地微調。
  • 第二步:使用在第一步中生成的proposals來訓練一個分開的檢測網絡Fast R-CNN。該檢測網絡也使用一個ImageNet預訓練模型來初始化
  • 第三步:使用第二步檢測器網絡去初始化RPN訓練,但是會固定共享的卷積層,只微調RPN獨有的層。現在就實現了兩個網絡的共享卷積層的參數是相同的了。
  • 最后:保持共享卷積層是固定的,僅微調Fast R-CNN獨有的層。

這樣,兩個網絡就共享了相同的卷積層,並生成了一個整合的網絡。類似的交替訓練可以運行更多的迭代,但是我們觀察到,這樣做的改進是微不足道,即四步走一遍就足夠了。

 

3.3 Implementation Details

在單尺度[1]、[2]圖像上,對區域建議和目標檢測網絡進行訓練和測試。我們重新縮放圖像,使其較短的一邊長度是s = 600像素[2]。多尺度特征提取(使用圖像金字塔)可以提高精度,但不能很好地權衡[2]的速度和精度。在重新縮放的圖像上,ZF和VGG網在最后一個卷積層上的總步長為16像素,因此在調整大小之前,典型的PASCAL圖像上的步長為∼10像素(∼500×375)。即使是如此大的步幅也能提供良好的結果,盡管更小的步幅可能會進一步提高准確性。

對於anchors,我們使用了3種大小,框范圍為128^2、256^2和512^2像素,和3種寬高比為1:1、1:2和2:1。這些超參數不是為特定數據集精心選擇的,我們將在下一節中提供關於它們影響的ablation切除實驗。如前所述,我們的解決方案不需要圖像金字塔或濾波金字塔來預測多個尺度的區域,節省了大量的運行時間。圖3(右)顯示了我們的方法在大范圍尺度和寬高比下的能力:

 

表1顯示了使用ZF net獲得的每個anchor的平均proposal大小。我們注意到,我們的算法允許比潛在接受域更大的預測。這樣的預測並非不可能——如果一個物體的中心是可見的,那么人們仍然可以粗略地推斷出這個物體的范圍。

需要小心處理跨越圖像邊界的anchor框。在訓練過程中,我們忽略了所有的跨界anchor,以免造成損失。對於一個典型的1000×600圖像,大約有20000(≈60×40×9)個anchor。忽略跨界anchor后,每幅圖像約有6000個anchor用於訓練。如果訓練中不忽略跨界anchor,則會在目標中引入較大且難以糾正的誤差項,訓練不收斂。然而,在測試過程中,我們仍然對整個圖像應用全卷積RPN。這可能產生跨界的proposal框,我們將其剪輯到圖像邊界即可。

一些RPNproposals彼此高度重疊。為了減少冗余,我們根據推薦區域的cls評分對推薦區域采用非極大抑制(NMS)。我們將NMS的IoU閾值設置為0.7,這樣每個圖像就有大約2000個推薦區域。正如我們將展示的,NMS不會損害最終的檢測精度,但會大大減少proposals的數量。在NMS之后,我們使用排名前n的推薦區域進行檢測。這上面都是對RPN的訓練來得到proposals

在接下來的測試中,我們使用2000個RPN proposals來訓練Fast R-CNN,但是在測試時評估不同數量的proposals。

 

4 EXPERIMENTS

4.1 Experiments on PASCAL VOC

 

Ablation Experiments on RPN

下面的是去掉一部分的對比操作:

首先是不共享參數,即去掉4-steps中的后兩步。可見使用分開的網絡將會使結果輕微降低到58。這是因為在第三步中當使用第二部的檢測器調節特征來微調RPN,將能夠改善proposal質量

 

接下來就是消除RPN在訓練Fast R-CNN檢測網絡中的影響(即train-time method都為SS的部分)。首先就是使用2000個SS方法得到的proposals和ZF網絡去訓練一個Fast R-CNN。然后固定該檢測器,通過改變使用在測試中的推薦區域來評估檢測mAP,在該ablation實驗中,RPN不會跟檢測器共享特征。

在測試中使用300個RPN得到的proposals去替換SS得到的proposals,mAP結果為56.8%。該mAP的降低是因為訓練/測試的proposals中的不一致性。該結果提供了一個下面其他對比的基線。

使人驚奇的是在測試時僅使用排名前100的proposals也能夠得到有競爭性的結果55.1%,說明了排名靠前的RPN proposals的准確度高。另一個極端例子就是使用了前6000哥proposals(即不使用NMS)則得到了差不多的結果55.2%,說明NMS不會傷害檢測的mAP並能夠減少錯誤的警告

 

接下來就是通過在測試中去掉cls或reg之一來調查RPN中cls和reg輸出的角色。當在在測試中移除cls層(即沒有NMS/ranking排序)時,隨機從沒有打分的區域中采樣N個proposals。N=1000時mAP幾乎沒有什么改變,為55.8%;但是當N=100時會大幅降低到44.6%。這顯示了cls評分對最高排序的proposals的精確度的重要性

另一方面,如果在測試中移除reg層(即proposals就是anchor框),mAP就會降到52.1%。這說明了高質量的proposals主要來自回歸框邊界。anchor框雖然有着多種大小和寬高比,但對於精確檢測來說還是不夠的。

 

我們還檢測了更強的網絡對RPN的推薦質量的單獨影響。使用VGG-16去訓練RPN檢測器則仍然使用上米的SS+ZF。mAP將會從56.8%(使用的是RPN+ZF)改善到59.2%(RPN+VGG)。該結果說明了RPN+VGG的推薦質量比RPN+ZF好。因為RPN+ZF的proposals是能夠與SS競爭的(表5可見第一行結果和第四行結果,如果兩者的proposals都一直用於訓練和測試,兩者結果都是58.7%),因此我們可能期待RPN+VGG的效果比SS好。接下來的實驗將證明該假設

 

Performance of VGG-16

表3顯示了在推薦和檢測中VGG-16的結果:

 

對於不共享特性的情況,使用RPN和VGG,結果是68.5%,比表中SS的結果稍微高些。如上面所示,這是因為proposals是從RPN+VGG中生成的,會比SS精確度更高。不同於SS是預定義的,RPN得到了積極的訓練,並受益於更好的網絡。對於特征共享情況,結果會變成69.9%-比表中強的SS的結果好,但是使用的是成本近乎無的proposals。

我們之后還在PASCAL VOC 2007和2012訓練集的組合中訓練了RPN和檢測網絡,mAP為73.2%。圖5顯示了在PASCAL VOC 2007測試集中的一些結果:

在PASCAL VOC 2007測試集中,如表4,我們的方法在PASCAL VOC 2007訓練測試集和2012訓練驗證集組合數據中的mAP為70.4%,表6和表7顯示了詳細的數字:

 

在表5中總結了整個目標檢測系統的運行時間:

SS根據內容不同,花費時間大概在1-2秒(平均在1.5秒),VGG-16網絡的Fast R-CNN在2000個SS的proposals中花費320ms(如果在全連接層中使用SVD將花費223ms)。對於同時進行推薦和檢測,我們使用VGG-16網絡的系統將花費198ms。當共享卷積特征時,RPN在計算額外的層時僅花費10ms。由於更少的proposals(每張圖片300個),我們基於區域的計算將更短。我們系統使用ZF網絡時的frame-rate為17 fps

 

Sensitivities to Hyper-parameters

 表8中調查了anchors的設置:

默認使用的是3個大小scale和3個寬高比(在表中結果為69.9%)。如果每個位置僅使用1個anchor,那么mAP就會降低3-4%。如果使用3個scale(和一個寬高比)或3個寬高比(和1個scale),mAP將會有所升高,說明了使用不同大小的anchors是一個十分有效果的解決方案。在該數據庫中,使用3個scale和1個寬高比的情況(69.8%)和使用3個寬高比的情況一樣好,說明對於檢測的准確度來說,scales和寬高比兩者不是能解開的維度。但是我們仍然采用這兩個維度去保持我們系統的靈活度。

在表9中對比了在等式(1)中不同λ的影響。默認設置為λ=10來保證在歸一化后等式(1)中的兩項權重能夠組略地相等。表9顯示,當λ在規模約兩個數量級(1到100)時,我們的結果影響略小(∼1%)。這表明結果在一個廣泛范圍內對λ是不敏感的。

 

Analysis of Recall-to-IoU

接下來我們將計算在與真實框的不同IoU比例設置下的proposals的召回率。值得注意的是,Recall-to-IoU度量只是與最終檢測精度松散的相關[19]、[20]、[21]。使用這個度量來診斷推薦方法比評估推薦方法更合適。

 如圖4可見,我們顯示了使用300、1000和2000個proposals的結果。我們與SS和EB做對比,基於這些方法生成的置信度來排序得到的前N名作為proposals。圖表明了當proposals的數量從2000降到300時,RPN方法表現得更優雅。這解釋了為什么當使用和300個proposals一樣少的proposals時,RPN有着更好的最終檢測檢測mAP。如我們之前的分析,該特性主要得益於RPN中的cls項。當proposals很少時,SS和EB的召回率下降得比RPN快得多。

 

One-Stage Detection vs. Two-Stage Proposal + De- tection.

 OverFeat論文提出了一個在滑動窗口上對卷積特征映射使用回歸器和分類器的檢測方法。OverFeat是一個一階段、特定類別檢測的管道,而我們的方法是包含未知類proposals和具體類檢測的兩階段級聯。在OverFeat中,區域上的特征來自於一個尺度金字塔上的一個高寬比滑動窗口。該特征同時用於決定位置和目標類別。在RPN中,特征來自方形(3*3)滑動窗口,並且使用不同大小和寬高比的anchor來預測proposals。雖然兩個方法都使用了滑動窗口,但區域推薦任務僅在Faster R-CNN的第一階段進行——Faster R-CNN檢測器的下半部分將加入proposals去精煉他們。在我們的級聯的第二階段中,區域方面的特性被更忠實地覆蓋區域特性的proposal框自適應池化[1]和[2]。我們相信這些特征會導致更精確的檢測。

為了比較單級和兩級系統,我們通過單級Fast R-CNN模擬了OverFeat系統(從而也規避了實現細節上的其他差異)。在這個系統中,“proposals”是3個尺度(128,256,512)和3個縱橫比(1:1,1:2,2:1)的密集滑動窗口。Fast R-CNN被訓練來預測特定類的分數,並從這些滑動窗口回歸框的位置。由於OverFeat系統采用的是圖像金字塔結構,我們還利用從5個尺度中提取的卷積特征進行了評估。我們在[1][2]中使用這5個尺度。

表10比較了兩級系統和一級系統的兩種變體。使用ZF模型,一級系統的mAP為53.9%。這比兩級系統(58.7%)低4.8%。該實驗驗證了級聯區域推薦和目標檢測的有效性。在[2]和[39]中也有類似的觀察報告,在這兩篇文章中,用滑動窗口替換SS區域的推薦導致了約6%的性能下降。我們還注意到,單級的制度較慢,因為它有更多的proposal要處理

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM