【論文翻譯】Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

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

發表會議: CVPR 2016

Abstract:

最先進的目標檢測網絡依賴於區域建議算法來假設目標的位置。SPPnet[1]和快速R-CNN[2]等技術的進步縮短了這些檢測網絡的運行時間,暴露了區域建議計算的瓶頸。在這項工作中,我們引入了一個區域建議網絡(RPN),它與檢測網絡共享全圖像卷積特性,從而實現了幾乎免費的區域建議。RPN是一個全卷積網絡,它同時預測每個位置的對象界限和對象得分。RPN經過端到端的訓練,生成高質量的區域建議,快速R-CNN將其用於檢測。通過共享卷積特徵,我們進一步將RPN和Fast R-CNN合併成一個網絡——使用最近流行的具有“注意力”機制的神經網絡術語,RPN組件告訴統一網絡去哪裏看。對於非常深的VGG-16型號[3],我們的檢測系統在GPU上的幀率爲5fps(包括所有步驟),同時在P ASCAL VOC 2007、2012和MS COCO數據集上實現了最先進的目標檢測精度,每張圖像只有300個建議。在ILSVRC和COCO 2015比賽中,Faster R-CNN和RPN是在多個賽道中獲得第一名的基礎。代碼已經公開。

1 INTRODUCTION:

區域建議方法(如[4])和基於區域的卷積神經網絡(RCNNs)[5]的成功推動了近年來在目標檢測方面的進展。雖然基於區域的CNNs的計算成本與最初在[5]中開發時一樣高,但是由於在提案[1]和[2]之間共享卷積,它們的成本已經大幅降低。最新的化身,快速R-CNN[2],實現了接近實時率使用非常深的網絡[3],而忽略了時間花在地區建議。現在,提案是最先進的檢測系統的測試時間計算瓶頸。

區域建議方法通常依賴於廉價的特徵和經濟的推理方案。選擇性搜索[4]是最流行的方法之一,它貪婪地合併基於工程底層特徵的超像素。然而,與高效的檢測網絡[2]相比,選擇性搜索要慢一個數量級,在CPU實現中,每幅圖像要慢2秒。EdgeBoxes[6]目前提供了提案質量和速度之間最好的折衷,每幅圖0.2秒。儘管如此,區域建議步驟仍然與檢測網絡消耗同樣多的運行時間。

人們可能會注意到,快速的基於區域的cnn利用了gpu,而研究中使用的區域建議方法是在CPU上實現的,這使得運行時比較不公平。加速提案計算的一個明顯方法是爲GPU重新實現它。這可能是一個有效的工程解決方案,但重新實現忽略了下游檢測網絡,因此錯過了共享計算的重要機會。

在這篇論文中,我們證明了一個基於深度卷積神經網絡的算法變化——計算建議——導致了一個優雅而有效的解決方案,該方案的計算在給定檢測網絡計算量的情況下幾乎是免費的。爲此,我們引入了新的區域建議網絡(rpn),它與最先進的目標檢測網絡[1]、[2]共享卷積層。通過在測試時共享卷積,計算建議的邊際成本很小(例如,每張圖像10ms)。

我們觀察到,基於區域的探測器(如Fast RCNN)使用的卷積特徵圖也可以用於生成區域建議。在這些卷積特徵的基礎上,我們通過增加幾個額外的卷積層來構建RPN,這些卷積層同時在一個規則網格上的每個位置上回歸區域邊界和目標度得分。因此,RPN是一種全卷積網絡(FCN)[7],可以針對生成檢測建議的任務進行端到端的訓練。

區域規劃系統的設計是爲了有效地預測具有廣泛的比例尺和高寬比的區域規劃。與常用的[8],[9],[1],[2]方法不同圖像的金字塔(圖1,a)或過濾器的金字塔(圖1,b),我們引入了新的“錨”框,在多種尺度和縱橫比下作爲參考。我們的方案可以被認爲是一個迴歸引用的金字塔(圖1,c),它避免了枚舉圖像或多個尺度或長寬比的過濾器。當使用單尺度圖像進行訓練和測試時,該模型表現良好,因此提高了運行速度。

在這裏插入圖片描述

圖1:處理多種規模和大小的不同方案。(a)構建圖像和地物圖的金字塔,並在所有尺度上運行分類器。(b)在feature map上運行多個尺度/尺寸的過濾器的金字塔。©我們在迴歸函數中使用了參考盒的金字塔。

爲了將rpn與快速R-CNN[2]對象檢測網絡相結合,我們提出了一種訓練方案,在保持建議固定的情況下,在區域建議任務的微調和對象檢測的微調之間交替進行。該方案收斂速度快,產生了一個具有卷積特徵的統一網絡,在兩個任務之間共享

我們在PASCAL VOC檢測基準[11]上對我們的方法進行了綜合評估,在[11]中,快速R-CNNs的rpn產生的檢測精度優於快速R-CNNs選擇性搜索的強基線。同時,我們的方法在測試時幾乎免除了選擇性搜索的所有計算負擔,提案的有效運行時間只有10毫秒。使用昂貴的非常深入的[3]模型,我們的檢測方法在GPU上仍然有5fps的幀速率(包括所有步驟),因此在速度和精度方面都是一個實用的對象檢測系統。我們還報告了在MS COCO數據集[12]上的結果,並調查了使用COCO數據在PASCAL VOC上的改進。代碼已經在 https://github.com/shaoqingren/faster_rcnn(在MATLAB中)和https://github.com/rbgirshick/py-faster-rcnn(在Python中)公開可用。

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

在ILSVRC和COCO 2015競賽中,Faster R-CNN和RPN是ImageNet檢測、ImageNet定位、COCO檢測和COCO分割等幾個領域中排名第一的參賽作品[18]的基礎。rpn完全學會了從數據中提出區域,因此可以很容易地從更深層次和更有表現力的特性中獲益(例如[18]中採用的101層殘網)。更快的R-CNN和RPN在這些競賽中也被其他幾個領先的參賽選手使用。結果表明,該方法不僅是一種經濟實用的解決方案,而且是提高目標檢測精度的有效途徑。

2 RELATED WORK:

對象的建議。有大量關於對象建議方法的文獻。對象建議方法的綜合調查和比較可以在[19]、[20]、[21]中找到。廣泛使用的對象建議方法包括基於超像素分組的方法(例如,選擇性搜索[4]、CPMC[22]、MCG[23])和基於滑動窗口的方法(例如,窗口[24]中的對象性、邊緣盒[6])。對象建議方法作爲獨立於檢測器的外部模塊(如選擇性搜索[4]對象檢測器、RCNN[5]、Fast R-CNN[2])。

用於對象檢測的深度網絡。R-CNN方法[5]訓練CNNs端到端,將建議區域分類爲對象類別或背景。R-CNN主要扮演分類器的角色,它並不預測對象的界限(除了通過邊界盒迴歸進行細化外)。它的準確性取決於區域建議模塊的性能(參見[20]中的比較)。一些論文提出了使用深度網絡預測對象邊界盒[25]、[9]、[26]、[27]的方法。在OverFeat方法[9]中,一個全連接層被訓練來預測假定一個單一對象的定位任務的盒子座標。然後,完全連接的層被轉動一個卷積層,用於檢測多個類特定的對象。多盒方法[26]、[27]從一個網絡生成區域建議,該網絡的最後一個全連接層同時預測多個類無關的盒,從而推廣了OverFeat的“單盒”方式。這些類不可知的盒子被用作R-CNN[5]的提案。與我們的全卷積方案相比,多盒建議網絡適用於單個圖像裁剪或多個大型圖像裁剪(例如,224×224)。MultiBox在提案網絡和檢測網絡之間不共享特性。稍後,我們將在上下文中用我們的方法更深入地討論OverFeat和MultiBox。與我們的工作同時,深度掩碼方法[28]被開發用於學習分割建議。

在這裏插入圖片描述

圖2:更快的R-CNN是一個單一的,統一的對象檢測網絡。RPN模塊是這個統一網絡的“關注點”。

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

3 FASTER R-CNN:

我們的目標檢測系統,叫做Faster R-CNN,由兩個模塊組成。第一個模塊是提出區域的深度全卷積網絡,第二個模塊是使用提出區域的快速R-CNN檢測器[2]。整個系統是一個單一的、統一的對象檢測網絡(圖2)。RPN模塊使用最近流行的帶有“注意力”[31]機制的神經網絡術語,告訴快速R-CNN模塊去哪裏查看。在3.1節中,我們介紹了區域建議網絡的設計和特性。在第3.2節中,我們開發了用於訓練具有共享特徵的兩個模塊的算法。

3.1 Region Proposal Networks:

區域建議網絡(RPN)以任意大小的圖像作爲輸入和輸出一組矩形對象建議,每個建議都有一個客觀評分。我們用一個全卷積網絡[7]來模擬這個過程,我們將在本節中對此進行描述。因爲我們的最終目標是與一個快速的R-CNN對象檢測網絡[2]共享計算,我們假設兩個網絡共享一組公共的卷積層。在我們的實驗中,我們研究了具有5個可共享卷積層的Zeiler和Fergus模型32,以及具有13個可共享卷積層的Simonyan和Zisserman模型3

爲了生成區域建議,我們在最後一個共享卷積層的卷積特徵圖輸出上滑動一個小網絡。該小網絡以輸入卷積特徵圖的一個n×n空間窗口作爲輸入。每個滑動窗口被映射到一個低維的特性(256-d爲ZF, 512-d爲VGG,下面是ReLU[33])。這個特性被輸入到兩個完全連接的層—box-regression層(reg)和box-classification層(cls)。我們在本文中使用n = 3,注意到輸入圖像上的有效接受域很大(ZF和VGG分別爲171和228像素)。圖3(左)顯示了這個迷你網絡的一個位置。請注意,由於微型網絡以滑動窗口的方式運行,因此所有空間位置都共享完全連接的層。這個架構很自然地通過一個n×n卷積層和兩個同級的1×1卷積層(分別用於reg和cls)來實現。

3.1.1 Anchors:

在每個滑動窗口的位置,我們同時預測多個地區的提議,在最大可能的提案的數量爲每個位置表示爲k。所以reg層4 k輸出編碼k框的座標,和cls層輸出2 k分數估計爲每個proposal4對象或對象的概率。k個建議是相對於k個參考框參數化的,我們稱之爲錨。錨位於所討論的滑動窗口的中心,並與比例和高寬比相關聯(圖3,左)。在默認情況下,我們使用3個尺度和3個縱橫比,在每個滑動位置產生k = 9個錨點。對於大小爲W×H(典型爲∼2400)的卷積地形圖,總共有W個Hk錨點。

在這裏插入圖片描述

圖3:左:區域建議網絡(RPN)。正確示例:在PASCAL VOC 2007測試中使用RPN建議進行檢測。我們的方法檢測對象在一個廣泛的規模和高寬比。

平移不變錨

我們的方法的一個重要特性是它是平移不變的,無論是在錨點方面,還是在計算相對於錨點的建議的函數方面。如果一個人在一個圖像中翻譯一個物體,這個建議應該翻譯,同樣的功能應該能夠預測在任何一個位置的建議。我們的方法保證了這種平移不變性。作爲比較,MultiBox方法[27]使用k-means生成800個錨點,這些錨點不是平移不變量。因此,MultiBox不能保證在翻譯對象時生成相同的建議。

平移不變的性質也減少了模型的大小。MultiBox有(4 + 1)×800維全連通輸出層,而我們的方法在k = 9個錨點的情況下,有(4 + 2)×9維卷積輸出層。因此,我們的輸出層有2.8×104parameters(512×(4 + 2)×9 VGG-16),比MultiBox的輸出層有6.1×106parameters(1536×(4 + 1)×800 for GoogleNet [34] in MultiBox[27])少了兩個數量級。如果考慮到特徵投影層,我們的建議層的參數仍然比MultiBox6少一個數量級。我們期望我們的方法在小的數據集上有更少的過擬合風險,比如PASCAL VOC。

多尺度錨點作爲迴歸參考

我們的錨的設計提出了一種解決多尺度(和高寬比)的新方案。如圖1所示,多尺度預測有兩種流行的方法。第一種方法是基於圖像/特徵金字塔,例如,在DPM[8]和基於cnn[9],[1],[2]的方法中。圖像在多個尺度上調整大小,計算每個尺度下的feature maps (HOG[8]或deep convolutional features[9],[1],[2])(圖1(a))。這種方法通常很有用,但是很耗時。第二種方法是在特徵圖上使用多個尺度(和/或縱橫比)的滑動窗口。例如,在DPM[8]中,使用不同的濾波器尺寸(如5×7和7×5)分別訓練不同長寬比的模型。如果這種方法用於處理多個尺度,它可以被認爲是一個“過濾器的金字塔”(圖1(b))。第二種方式通常與第一種方式[8]共同採用。

作爲比較,我們基於錨的方法是建立在一個金字塔的錨,這是更經濟有效的。我們的方法參照多尺度和高寬比的錨盒對邊界盒進行分類和迴歸。它只依賴單一尺度的圖像和特徵圖,並使用單一尺度的過濾器(特徵圖上的滑動窗口)。通過實驗,我們展示了該方案對多尺度和多尺寸尋址的效果(表8)。

由於這種基於錨點的多尺度設計,我們可以簡單地使用單尺度圖像上計算的卷積特徵,就像快速R-CNN檢測器[2]所做的那樣。多尺度錨點的設計是實現特徵共享的關鍵環節,而不需要額外的尋址尺度成本。

3.1.2 Loss Function:

對於訓練rpc,我們爲每個錨分配一個二進制類標籤(對象或非對象)。我們對兩種錨點進行了積極的標記:(i)具有最高相交-過並度(IoU)的錨點與地面真值框重疊,或(ii) IoU與地面真值框重疊大於0.7的錨點與5個地面真值框重疊。請注意,單個ground-truth框可以爲多個錨點分配積極的標籤。通常,第二個條件足以確定陽性樣本;但我們仍然採用第一種情況,因爲在少數情況下,第二種情況可能找不到陽性樣本。如果所有地面真值箱的IoU比率低於0.3,則我們將負標籤分配給非正錨點。既不積極也不消極的錨對訓練目標沒有貢獻。

根據這些定義,我們可以最小化Fast R-CNN[2]中多任務丟失後的目標函數。我們對圖像的損失函數定義爲:

在這裏插入圖片描述

這裏,i是一個小批量錨點的索引,pi是一個對象錨點i的預測概率。如果錨點爲正,則地面真實值標記p iis 1,如果錨點爲負,則爲0。tiis是一個向量,代表預測邊界框的4個參數化座標,t∗iis是與一個正錨相關聯的地面真相框的座標。分類丟失Lclsis日誌丟失超過兩個類(對象和非對象)。對於迴歸損耗,我們使用Lreg(ti, t∗i) = R(ti−t∗i),其中R是[2]中定義的健壯的損耗函數(平滑的L1)。術語p∗iLreg意味着迴歸損耗只在正的定位器上被激活(p∗i= 1),否則就被禁用(p∗i= 0)。cls和reg層的輸出分別是{pi}和{ti}

這兩個術語規範化的Nclsand Nreg和加權平衡參數λ。在我們當前的實現中(在發佈的代碼中),Eqn.(1)中的cls術語通過小批處理大小(即, Ncls= 256),而reg項由錨點位置的數量(即2400年,Nreg∼)。默認設置λ= 10,因此cls和註冊條款大致同樣加權。我們通過實驗,結果顯示對λ的值在廣泛(表9)。我們還注意到正常化如上不是必需的,可以簡化。

對於邊界盒迴歸,我們採用[5]以下4個座標的參數化:

在這裏插入圖片描述

其中x, y, w, h表示盒子的中心座標和它的寬度和高度。預測箱、錨定箱和groundtruth箱的變量x、xa和x are分別是什麼(y、w、h也是一樣)。這可以被看作是從錨定箱到附近的ground-truth箱的邊界箱迴歸。

然而,我們的方法與以前的基於roi的(興趣區域)方法[1]、[2]實現了不同的邊界盒迴歸。在[1]、[2]中,對從任意大小的roi彙集的特性執行了邊界盒迴歸,迴歸權值由所有區域大小共享。在我們的公式中,用於迴歸的特徵在地形圖上具有相同的空間尺寸(3×3)。爲了解釋不同的大小,我們學習了一組k個邊界盒迴歸量。每個迴歸變量負責一個尺度和一個長寬比,而k個迴歸變量不共享權重。同樣,由於錨的設計,即使特性的尺寸/比例是固定的,仍然可以預測各種尺寸的盒子。

3.1.3 Training RPNs:

RPN可以通過反向傳播和隨機梯度下降(SGD)[35]進行端到端的訓練。我們遵循來自[2]的“以圖像爲中心”的採樣策略來訓練這個網絡。每一個小批都來自一個包含許多正例和負例錨點的圖像。可以對所有錨點的損失函數進行優化,但這將偏向於負樣本,因爲它們占主導地位。相反,我們在一張圖像中隨機抽取256個錨點來計算一個小批量的損失函數,其中抽樣的正錨點和負錨點的比例高達1:1。如果一個圖像中有少於128個陽性樣本,我們用陰性樣本填充這個小批。

我們通過從一個標準偏差0.01的零均值高斯分佈中畫權值來隨機初始化所有新層。所有其他層(即通過對ImageNet分類[36]的模型進行預處理,初始化共享卷積層),這是標準實踐[5]。我們對ZF網的所有層進行了調優,並對VGG網進行了conv31和up以保存內存[2]。在PASCAL VOC數據集上,我們對60k個小批量使用0.001的學習率,對接下來的20k個小批量使用0.0001的學習率。我們使用0.9的動量和0.0005[37]的重量衰減。我們的實現使用Caffe[38]。

3.2 Sharing Features for RPN and Fast R-CNN:

到目前爲止,我們已經描述瞭如何訓練一個區域建議生成的網絡,而不考慮將利用這些建議的基於區域的對象檢測CNN。檢測網絡採用快速R-CNN[2]。接下來,我們將介紹使用共享卷積層學習由RPN和Fast R-CNN組成的統一網絡的算法(圖2)。

RPN和快速R-CNN都是經過獨立訓練的,它們將以不同的方式修改各自的卷積層。因此,我們需要開發一種技術,允許在。之間共享卷積層兩個網絡,而不是學習兩個獨立的網絡。我們討論了三種具有共享特徵的訓練網絡的方法:

在這裏插入圖片描述

表1:使用ZF網絡獲得的每個錨點的平均建議大小(s = 600的數字)。

(一)交流培訓。在這個解決方案中,我們首先訓練RPN,並使用建議來訓練快速的R-CNN。然後使用Fast R-CNN調優的網絡初始化RPN,並迭代此過程。這是本文所有實驗都採用的解決方案。

(二)近似聯合訓練。在這個解決方案中,RPN和快速R-CNN網絡在訓練過程中合併成一個網絡,如圖2所示。在每個SGD迭代中,前向遍歷生成區域建議,這些建議在訓練快速R-CNN檢測器時就像處理固定的、預先計算的建議一樣。反向傳播照常進行,其中共享層將來自RPN損耗和快速R-CNN損耗的反向傳播信號合併在一起。這個解決方案很容易實現。但是這個解忽略了w.r.t的導數,即提案箱的座標也是網絡響應,所以是近似的。在我們的實驗中,我們通過實驗發現,該算法與交替訓練相比,在訓練時間上縮短了約25-50%。這個解決程序包含在我們發佈的Python代碼中。

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

4級交替下雨。在本文中,我們採用了一種實用的四步訓練算法,通過交替優化來學習共享特徵。在第一步中,我們按照第3.1.3節的描述來訓練RPN。使用imagenet預訓練的模型初始化此網絡,並對區域建議任務進行端到端調優。在第二步中,我們使用step-1 RPN生成的建議,通過快速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)。即使如此大的步幅也能帶來好的結果,儘管小的步幅可以進一步提高準確性。

對於錨點,我們使用了三種比例,分別爲1282、2562和5122px的盒子區域,以及三種1:1、1:2和2:1的長寬比。這些超參數並不是爲特定的數據集精心選擇的,在下一節中我們將提供關於它們影響的消融實驗。如前所述,我們的解決方案不需要圖像金字塔或過濾器金字塔來預測多個尺度的區域,節省了大量的運行時間。圖3(右)顯示了我們的方法對於大範圍的比例和高寬比的能力。表1顯示了使用ZF net獲得的每個錨的平均建議大小。我們注意到,我們的算法允許比潛在接受域更大的預測。這樣的預測並不是不可能的——一個人仍然可以粗略地推斷出一個物體的範圍,只要這個物體的中間是可見的。

跨圖像邊界的錨框需要小心處理。在培訓過程中,我們忽略了所有的跨界錨點,以免造成損失。對於一個典型的1000×600圖像,總共大約有20000(≈60×40×9)個錨。忽略跨界錨點後,每幅圖像約有6000個錨點可供訓練。如果在訓練中不忽略跨界離羣點,它們就會在目標中引入大型的、難以糾正的誤差項,訓練就不會收斂。然而,在測試期間,我們仍然對整個圖像應用全卷積RPN。這可能會生成跨邊界的建議框,我們剪輯到圖像邊界。

一些RPN建議彼此高度重疊。爲了減少冗餘,我們根據提案區域的cls評分對其採用非最大抑制(non-maximum suppression, NMS)。我們將NMS的IoU閾值設爲0.7,這樣每個圖像就有大約2000個建議區域。正如我們將展示的,NMS不會損害最終的檢測精度,但會大大減少提案的數量。在NMS之後,我們使用排名前n的建議區域進行檢測。下面,我們使用2000個RPN建議來訓練快速R-CNN,但是在測試時評估不同數量的建議。

4 EXPERIMENTS:

4.1 Experiments on P ASCAL VOC:

我們在PASCAL VOC 2007檢測基準[11]上對我們的方法進行了綜合評價。該數據集包含約5k個訓練圖像和超過20個對象類別的5k個測試圖像。我們還提供了一些模型的PASCAL VOC 2012基準測試結果。對於ImageNet的預訓練網絡,我們使用的是ZF net[32]的“快速”版本,它有5個卷積層和3個全連接層,公共VGG-16 model7[3]有13個卷積層和3個全連接層。我們主要評估檢測平均精度(mAP),因爲這是用於對象檢測的實際度量(而不是關注對象建議代理度量)。

表2 (top)顯示了使用各種區域建議方法進行訓練和測試時的快速R-CNN結果。這些結果使用ZF網絡。對於選擇性搜索(SS)[4],我們通過“快速”模式生成了大約2000個建議。對於EdgeBoxes (EB)[6],我們使用調至0.7的缺省EB設置生成建議借據。在快速R-CNN框架下,SS的地圖爲58.7%,EB的地圖爲58.6%。RPN與快速R-CNN的競爭結果,與地圖59.9%,而使用多達300個提案8。由於共享卷積計算,使用RPN比使用SS或EB產生更快的檢測系統;提案越少,全連通層的區域成本也越低(表5)。

RPN燒蝕實驗。爲了研究RPNs的行爲,我們進行了一些消融研究。首先,我們展示了在RPN和快速R-CNN檢測網絡之間共享卷積層的效果。爲此,我們在4步訓練過程的第二步之後停止。使用單獨的網絡將結果略微降低到58.7% (RPN+ZF, unshared,表2)。我們觀察到,這是因爲在第三步,當detector調諧特性用於微調RPN時,提案質量得到了提高。

接下來,我們分析了RPN對快速R-CNN檢測網絡訓練的影響。爲此,我們使用2000 SS proposal和ZF net來訓練一個快速的R-CNN模型。我們修正了這個檢測器,並通過改變測試時使用的建議區域來評估檢測圖。在這些燒蝕實驗中,RPN與探測器沒有共同的特徵。

在測試時用300個RPN提案替換SS,得到56.8%的mAP。mAP中的損失是由於培訓/測試建議之間的不一致造成的。這個結果作爲下面比較的基線。

有些令人驚訝的是,當使用排名最靠前的RPN時,仍然可以獲得一個有競爭力的結果(55.1%)測試時100個提案,表明排名最高的RPN提案是準確的。在另一個極端,使用排名最高的6000 RPN提案(不使用NMS)有一個可比較的mAP(55.2%),這表明NMS不會損害檢測mAP,並可能減少錯誤警報。

在這裏插入圖片描述

表3:PASCAL VOC 2007測試集檢測結果。檢測器爲Fast R-CNN和VGG-16。培訓數據:“07”:VOC 2007培訓,“07+12”:VOC 2007培訓與VOC 2012培訓的聯合集。對於RPN,快速R-CNN的訓練時間建議是2000。†:這個數字是在[2]上報道的;使用本文提供的存儲庫,這個結果更高(68.1)。

在這裏插入圖片描述

表4:PASCAL VOC 2012測試集檢測結果。檢測器爲Fast R-CNN、VGG-16。培訓數據:“07”:VOC 2007培訓瓦爾,“07++12”:VOC 2007培訓瓦爾+測試聯合集,VOC 2012培訓瓦爾。對於RPN,快速R-CNN的訓練時間建議是2000。http://host.robots.ox.ac.uk:8080/anonymous/HZJTQA.html http://host.robots.ox.ac.uk:8080/anonymous/YNPLXB.htmlhttp://host.robots.ox.ac.uk:8080/anonymous/XEDH10.html

在這裏插入圖片描述

表5:在K40 GPU上的定時(ms),除了SS方案在CPU上評估。“區域智能”包括NMS、池、全連接和softmax層。有關運行時間的分析,請參閱我們發佈的代碼。

接下來,我們通過在測試時關閉RPN的cls和reg中的任何一個來分別研究它們的作用。當cls層在testtime被移除時(因此沒有使用NMS/ranking),我們從未得分的區域中隨機抽取N個建議。N = 1000時,mAP幾乎沒有變化(55.8%),但當N = 100時,mAP下降到44.6%。這表明,cls評分說明了排名最高的提案的準確性。

另一方面,當reg層在測試時被移除(因此提案變成了定位點),mAP下降到52.1%。這表明,高質量的建議主要是由於迴歸框界限。錨盒雖然有多個尺度和縱橫比,但不足以進行準確的檢測。

我們也評估了更強大的網絡對RPN提案質量的影響。我們使用VGG-16來訓練RPN,仍然使用上面的SS+ZF檢測器。地圖從56.8%(使用RPN+ZF)提高到59.2%(使用RPN+VGG)。這是一個很有希望的結果,因爲它表明RPN+VGG的提案質量要優於RPN+ZF。由於RPN+ZF的方案與SS相比具有一定的競爭力(在訓練和測試中均爲58.7%),我們可以期待RPN+VGG優於SS。以下實驗驗證了這一假設。

VGG-16的性能。表3顯示了VGG-16的提案和檢測結果。使用RPN+VGG,未共享特徵的結果爲68.5%,略高於SS基線。如上所示,這是因爲RPN+VGG生成的建議比SS更準確。與預定義的SS不同,RPN是經過積極訓練的,並且受益於更好的網絡。對於功能共享的版本,結果是69.9%—比強SS基線好,但是幾乎沒有成本。我們在PASCAL VOC 2007 trainval和2012 trainval的聯合集上進一步培訓了RPN和檢測網絡。佔73.2%。圖5顯示了在PASCAL VOC 2007測試集上的一些結果。在PASCAL VOC 2012測試集上(表4),我們的方法在VOC 2007 trainval+test和VOC 2012 trainval的聯合集上訓練了70.4%的mAP。表6和表7顯示了詳細的數字。

在這裏插入圖片描述

表6:使用快速R-CNN檢測器和VGG-16對PASCAL VOC 2007測試集的結果。對於RPN,快速R-CNN的訓練時間建議是2000。顯示不共享的特性版本。

在這裏插入圖片描述

表7:使用快速R-CNN檢測器和VGG-16檢測PASCAL VOC 2012測試集的結果。對於RPN,快速R-CNN的訓練時間建議是2000。

在這裏插入圖片描述

表8:使用不同設置的錨點,快速R-CNN對PASCAL VOC 2007測試集的檢測結果。網絡是VGG-16。培訓數據爲VOC 2007培訓值。使用3個量表和3個高寬比的默認設置(69.9%)與表3相同。

在這裏插入圖片描述

表9:檢測結果的速度R-CNN於2007年帕斯卡VOC測試集在方程(1)中使用不同的λ值。網絡VGG-16。培訓數據爲VOC 2007培訓值。默認設置使用λ= 10(69.9%)是一樣的,在表3。

在表5中,我們總結了整個對象檢測系統的運行時間。根據內容的不同,SS需要1-2秒(平均約1.5秒),而使用VGG-16的快速R-CNN在2000個SS提案上需要320ms(如果在全連接層[2]上使用SVD則需要223ms)。我們的VGG-16系統的提案和檢測總時間爲198ms。由於卷積特性是共享的,僅RPN一項就只需要10ms計算額外的層。我們的區域計算也比較低,這得益於較少的提案(每幅圖300個)。我們的系統在ZF網的幀速率爲17幀。

Hyper-parameters敏感性。在表8中,我們研究了錨的設置。默認情況下,我們使用3個比例尺和3個高寬比(表8中的地圖爲69.9%)。如果在每個位置只使用一個錨點,地圖會下降3-4%。使用3個尺度(1個高寬比)或3個尺度(1個尺度)時,圖值更高,說明使用多種尺寸的錨點作爲迴歸參考是一種有效的解決方案。僅使用3個長徑比爲1的尺度(69.8%)與在該數據集上使用3個長徑比尺度(69.8%)一樣好,這表明尺度和長徑比並不是用於檢測精度的解糾纏維度。但是我們仍然在設計中採用這兩個維度來保持系統的靈活性。

表9中我們比較不同的λ值在方程(1)。默認情況下我們使用λ= 10使方程(1)大致相等的兩項加權歸一化之後。表9顯示,我們的結果是影響略(∼1%)當λ在規模約兩個數量級(1到100)。這表明結果是對λ廣泛。

Recall-to-IoU分析。接下來,我們使用groundtruth框計算不同IoU比率下的提案的回收。值得注意的是,Recall-to-IoU度量只是與最終檢測精度相關的鬆散的[19]、[20]、[21]。使用這個度量來診斷建議方法比評估建議方法更合適。

在圖4中,我們顯示了使用300、1000和2000個提案的結果。我們與SS和EB進行了比較,根據這些方法產生的置信度,N個提案是排名前N的提案。從圖中可以看出,當提案數量從2000減少到300時,RPN方法表現得很好。這解釋了爲什麼RPN有一個很好的最終檢測地圖時,使用300個建議。正如我們之前分析過的,這個特性主要歸因於RPN的cls項。當提案數量較少時,SS和EB的召回比RPN下降更快。

在這裏插入圖片描述

在這裏插入圖片描述

表10:單階段檢測vs.兩階段建議+檢測。檢測結果在使用ZF模型和Fast R-CNN的PASCAL VOC 2007測試集上。RPN使用非共享特性。

d

單階段檢測vs.兩階段建議+檢測。提出了一種基於卷積特徵映射的滑動窗口的迴歸量和分類器檢測方法。OverFeat是一個單級的,特定於類的檢測管道,而我們的是一個由類不可知的提議和特定於類的檢測組成的兩級級聯。在OverFeat中,區域方向的特徵來自於一個尺度金字塔上的一個寬高比的滑動窗口。這些特徵被用來同時確定物體的位置和類別。在RPN中,特徵來自方形(3×3)滑動窗,並預測了不同尺度和高寬比的錨固方案。雖然這兩種方法都使用了滑動窗口,但區域建議任務只是快速rcn的第一階段—下游的快速R-CNN檢測器負責改進建議。在我們的級聯的第二階段,從更忠實地覆蓋區域特徵的建議框中自適應地合併[1]和[2]。我們相信這些特徵會導致更精確的探測。

爲了比較單級和兩級系統,我們使用單級快速R-CNN模擬了OverFeat系統(因此也規避了實現細節上的其他差異)。在這個系統中,“提案”是3個尺度(128,256,512)和3個縱橫比(1:1,1:2,2:1)的密集滑動窗口。快速的R-CNN被訓練來預測特定職業的分數,並從這些滑動窗口返回盒子的位置。由於超專長系統採用的是圖像金字塔,我們也使用從5個尺度中提取的卷積特徵進行評估。我們在[1]和[2]中使用這5個音階。

表10比較了兩級系統和一級系統的兩個變體。使用ZF模型,一級系統的mAP爲53.9%。這比兩階段系統(58.7%)低4.8%。該實驗驗證了級聯區域建議和目標檢測的有效性。類似的觀察結果在[2]和[39]中也有報道,在這兩篇文章中,用滑動窗口替換SS區域的提議導致了約6%的性能下降。我們還注意到,onestage系統比較慢,因爲它要處理的提案要多得多。

4.2 Experiments on MS COCO:

我們在微軟的COCO對象檢測數據集[12]上展示了更多的結果。該數據集涉及80個對象類別。我們對訓練集上的80k張圖像、驗證集上的40k張圖像和測試-dev集上的20k張圖像進行了實驗。我們對IoU∈[0.5:0.05:0.95](COCO的標準度量,簡單地表示爲mAP@[。和[email protected](帕斯卡VOC的度量)

我們的系統對這個數據集做了一些細微的修改。我們在一個8-GPU實現上訓練我們的模型,有效的小批量大小爲RPN爲8(每個GPU 1)和快速R-CNN爲16(每個GPU 2)。RPN步驟和快速R-CNN步驟都是針對學習率爲0.003的240k迭代和針對學習率爲0.0003的80k迭代進行訓練。我們修改了學習率(從0.003開始,而不是0.001),因爲迷你批大小發生了變化。對於錨點,我們使用了3個長寬比和4個比例尺(添加了642),主要是通過處理這個數據集上的小對象來激發的。此外,在我們的快速R-CNN步驟中,負樣本被定義爲那些在[0,0.5]區間內具有最大IoU和ground truth的樣本,而不是在[1],[2]區間內使用的[0.1,0.5)。我們注意到,在SPPnet系統[1]中,[0.1,0.5]中的負樣本被用於網絡微調,而在支持向量機步驟中,[0,0.5]中的負樣本仍然被硬負挖掘訪問。但是快速的R-CNN系統[2]放棄了支持向量機的步驟,因此[0,0.1]中的負樣本從未被訪問過。對於快速R-CNN和更快的R-CNN系統,包含這些[0,0.1]樣本可以改進COCO數據集上的[email protected](但是對PASCAL VOC的影響可以忽略不計)。

在這裏插入圖片描述

表11:MS COCO數據集上的對象檢測結果(%)。模型是VGG-16。

其餘的實現細節與PASCAL VOC上的相同。特別是,我們一直使用300個提案和單標度(s = 600)測試。在COCO數據集上,測試時間仍然是每幅圖像200毫秒左右。

在表11中,我們首先報告了使用本文實現的快速R-CNN系統[2]的結果。我們的快速R-CNN基線在測試-開發集上有39.3%的[email protected],比[2]中報告的要高。我們推測產生這種差異的原因主要是由於負樣本的定義以及小批量尺寸的變化。我們還注意到映射@[。5, .95]只是比較。

接下來,我們評估更快的R-CNN系統。使用COCO訓練集訓練,更快的R-CNN有42.1%的地圖@0.5和21.5%的地圖@[。在COCO測試-開發集上,這對於[email protected]來說要高出2.8%,對於mAP@[來說要高出2.2%。5, .95]比快速RCNN下的同類協議(表11)。這表明在較高的IoU閾值下,RPN可以很好地提高定位精度。使用COCO trainval集合進行訓練,更快的RCNN擁有42.7%的[email protected]和21.9%的mAP@[。圖6顯示了在MS COCO測試-dev集上的一些結果。

更快的R-CNN在ILSVRC和COCO 2015競賽中,我們已經證明更快的R-CNN從更好的特性中受益更多,這是因爲RPN完全通過神經網絡學會了推薦區域。即使將深度增加到超過100層[18],這種觀察仍然有效。只有更換VGG-16 101層剩餘淨(resnet - 101)[18],越快R-CNN系統增加了地圖從41.5% / 21.2% (VGG16) 48.4% / 27.2% (resnet - 101)在可可val集。與其他改進正交RCNN更快,他et al。[18]獲得單模55.7% / 34.9%和59.0% / 37.4%的整體結果可可test-dev集,贏得了第一名在可可2015對象檢測競爭。[18]系統還在2015年ILSVRC對象檢測競賽中獲得了第一名,以絕對8.5%的優勢超過第二名。RPN也是ILSVRC 2015本地化和COCO 2015 segmentation比賽的第一名的參賽作品的一個組成部分,詳細信息分別在[18]和[15]中可以找到

在這裏插入圖片描述

表12:使用不同訓練數據的Faster R-CNN在PASCAL VOC 2007測試集和2012測試集上的檢測圖(%)。模型是VGG-16。“COCO”表示用於訓練的COCO訓練集。見表6和表7。

4.3 From MS COCO to P ASCAL VOC:

大規模數據對於改進深度神經網絡至關重要。接下來,我們研究MS COCO數據集如何幫助PASCAL VOC的檢測性能。

作爲一個簡單的基線,我們直接在PASCAL VOC數據集上評估COCO檢測模型,而不需要對任何PASCAL VOC數據進行微調。這種評價是可能的,因爲可可上的類別是帕斯卡VOC上的超集。在這個實驗中,我們忽略了COCO獨有的類別,softmax層只在20個類別和背景上執行。在PASCAL VOC 2007測試集上,此設置下的mAP爲76.1%(表12)。這個結果比VOC07+12(73.2%)訓練的結果要好得多,即使沒有利用PASCAL VOC數據。

然後對VOC數據集上的COCO檢測模型進行微調。在本實驗中,COCO模型代替了imagenet預訓練模型(用於初始化網絡權值),更快的R-CNN系統如3.2節所述進行了微調。這樣,在PASCAL VOC 2007測試集上得到了78.8%的mAP。來自COCO集的額外數據使mAP增加了5.6%。表6顯示,在COCO+VOC上訓練的模型在PASCAL VOC 2007上的每個類別AP都是最好的。類似的改進也出現在PASCAL VOC 2012測試集(表12和表7)上。我們注意到,獲得這些強大結果的測試時間速度仍然是每幅圖像200毫秒左右。

5 CONCLUSION:

提出了一種高效、準確的區域建議生成方法。通過共享卷積具有下游檢測網絡的特點,區域建議步驟幾乎是免費的。我們的方法使得一個統一的、基於深度學習的對象檢測系統能夠以接近實時的幀速率運行。學習的RPN也提高了區域建議的質量,從而提高了整體目標檢測的精度。

在這裏插入圖片描述

圖5:在使用更快的R-CNN系統的PASCAL VOC 2007測試集上選擇的對象檢測結果示例。模型爲VGG-16,訓練數據爲07+12 trainval(在2007年的測試集上爲73.2%的mAP)。我們的方法檢測對象的範圍廣泛的規模和高寬比。每個輸出框都與一個類別標籤和[0,1]中的softmax分數相關聯。這些圖像的得分閾值爲0.6。獲得這些結果的運行時間爲每幅圖像198ms,包括所有步驟。

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