1. 程式人生 > >Faster R-CNN:用區域提案網路實現實時目標檢測

Faster R-CNN:用區域提案網路實現實時目標檢測

摘要

最先進的目標檢測網路依賴於區域建議演算法來假設物體的位置.像sppnet[1]和快速r-cnn[2]這樣的進步減少了這些檢測網路的執行時間,將區域提案計算暴露為瓶頸。在本文中,我們引入了一個區域提案網路(RPN),它與檢測網路共享全影象卷積特徵,從而實現了幾乎免費的區域提案。RPN是一個完全卷積的網路,它同時預測每個位置的物件邊界和物件性分數。RPN是經過端到端的訓練,以產生高質量的區域提案,Faster r-cnn用於檢測。通過共享RPN和FAST r-CNN的卷積特性,我們進一步將RPN和FAST r-CNN合併成一個網路-使用最近流行的具有“注意”機制的神經網路術語,RPN元件告訴統一網路在哪裡查詢。對於非常深的vgg-16模型[3],我們的檢測系統在GPU上的幀速率為5 fps(包括所有步驟),同時在pascal voc 2007、2012和coco資料集上實現了最先進的物件檢測精度,每幅影象只有300個提案。在ILSVRC和COCO 2015比賽中,速度更快的r-cnn和rpn是幾個曲目中第一名獲獎作品的基礎。程式碼已公開提供。

關鍵字:目標檢測,區域建議,卷積神經網路。

1 引言

最近在目標檢測方面的進展是由區域提議方法(例如[4])和基於區域的卷積神經網路(Rcnns)[5]的成功所推動的。雖然基於區域的CNN像[5]中最初開發的那樣,在計算上是昂貴的,但由於提案[1]、[2]之間的共享卷積,它們的成本已大幅度降低。最新的形式,快速r-cnn[2],實現了幾乎實時使用非常深的網路[3],當忽略花在在區域建議的時間。現在,在最先進的檢測系統中,提案是測試時間計算的瓶頸.。

區域建議方法通常依賴廉價的特徵和經濟的推理方案。選擇性搜尋[4],最流行的方法之一,貪婪地合併了基於工程低水平特徵的超畫素。然而,與高效的檢測網路[2]相比,選擇性搜尋速度要慢幾個數量級,CPU實現中每幅影象的搜尋速度為2秒。邊緣框[6]目前在建議質量和速度之間提供了最好的折衷,每幅影象0.2秒。儘管如此,區域建議步驟仍然消耗了與檢測網路一樣多的執行時間。 

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

在本文中,我們證明了一種演算法的改變-使用深卷積神經網路的計算方案-在檢測網路的計算幾乎是免費的情況下,給出了一種優雅而有效的解決方案。為此,我們介紹了一種新的區域提議網路(RPN),它與最先進的物體檢測網路共享卷積層[1],[2]。通過在測試時共享卷積,計算方案的邊際成本很小(例如,每幅影象10毫秒)。

我們觀察到,基於區域的檢測器使用的卷積特徵對映,如快速rcnn,也可以用於生成區域提案。在這些卷積特徵的基礎上,我們通過增加幾個卷積層來構造一個RPN,它同時在規則網格上的每個位置恢復區域邊界和客觀分數。因此,RPN是一種全卷積網路(FCN)[7],可以針對產生檢測方案的任務進行端到端的訓練。 

       

圖1:解決多種規模和大小的不同方案。(A)建立了影象和特徵層金字塔,並在所有尺度上執行分類器。(B)在特徵層上執行多尺度/大小的濾波金字塔。(C)我們在迴歸函式中使用參考框金字塔。 

RPN旨在有效地預測具有廣泛尺度和縱橫比的區域提案。相對於使用影象金字塔(圖1,a)或濾波器金字塔(圖1,b)的流行方法[8]、[9]、[1]、[2],我們引入了以多尺度和寬徑比作為參考的新型“錨”盒。我們的方案可以被認為是一個金字塔的迴歸參考(圖1,c),這避免了列舉影象或過濾器的多尺度或高寬比。該模型在使用單尺度影象進行訓練和測試時表現良好,提高了執行速度.。

為了將RPN與快速的r-cnn[2]目標檢測網路相結合,我們提出了一種訓練方案,該方案在對區域提案任務進行微調和對目標檢測進行細調的同時保持提案的固定性。該方案快速收斂,產生一個具有兩個任務之間共享的卷積特性的統一網路。

我們對Pascal voc檢測基準[11]進行了綜合評價,其中具有快速r-CNN的RPNs比具有快速r-CNNs的強選擇性搜尋基線具有更好的檢測精度。同時,我們的方法在測試時幾乎免除了選擇性搜尋的所有計算,測試時間-有效執行時間僅為10毫秒。利用文獻[3]中昂貴的深度模型,我們的檢測方法在GPU上仍然具有5 fps的幀速率(包括所有步驟),因此在速度和精度上都是一個實用的目標檢測系統。我們還報告了MS coco資料集[12]的結果,並利用coco資料對PASCAL voc進行了改進。程式碼公佈在https://github.com/shaoqingren/faster_ rcnn(in MATLAB) 和https://github.com/ rbgirshick/py-faster-rcnn(in Python)。

這份手稿的初稿以前已經出版了[10]。從那時起,RPN和更快的r-cnn框架被採用並推廣到其他方法,如3D物件檢測[13]、基於部分的檢測[14]、例項分割[15]和影象標題[16]。我們的快速和有效的物件檢測系統也是在商業系統中建立的,例如Pinterest[17],並報告了使用者參與改進的情況。

在ILSVRC和COCO 2015競賽中,更快的r-cnn和rpn是幾個排名第一的條目[18]在ImageNet檢測、ImageNet定位、coco檢測和coco分割的軌道上的基礎。RPN完全學會從資料中提出區域,因此可以很容易地受益於更深層次和更有表現力的特性(例如[18]中採用的101層殘差網)。更快的r-cnn和rpn也被其他幾個領先的參賽選手在這些比賽中使用。這些結果表明,該方法不僅具有較高的實用成本,而且是提高目標檢測精度的有效方法。 

2相關工作

目標提案:關於物件建議方法的研究文獻很多。對目標提案方法的全面調查和比較見[19]、[20]、[21]。廣泛使用的物件提議方法包括基於分組超畫素的方法(例如,選擇性搜尋[4]、CPMC[22]、MCG[23])和基於滑動視窗的方法(例如視窗中的物件性[24]、邊緣框[6])。物件提議方法作為獨立於檢測器的外部模組(例如,選擇性搜尋[4]物件檢測器、Rcnn[5]和FAST r-CNN[2])。 

用於目標檢測的深度網路 :r-cnn方法[5]對CNN進行端到端的訓練,將提案區域劃分為物件、類別或背景。R-CNN主要用作分類器,它不預測物件的邊界(除了通過bounding boxes迴歸進行細化)。其準確性取決於區域提案模組的效能(見[20]中的比較)。有幾篇論文提出了利用深度網路預測物件bounding boxes[25]、[9]、[26]、[27]的方法。在Overfeat方法[9]中,訓練一個全連線層來預測假定單個物件的定位任務的盒座標。然後,將所述全連線層轉換為用於檢測多個特定於類的物件的卷積層。多盒方法[26]、[27]從一個網路中生成區域提案,該網路的最後一個全連線層同時預測多個類無關的盒子,從而推廣了“單盒”的超值模式。這些階級不可知論的盒子被用作建議的r-cnn[5]。多盒提議網路應用於單個影象crop或多個大影象crop(例如224×224),與我們的全卷積方案相反。多盒在提案和檢測網路之間不共享特性。我們在後面的方法中更深入地討論了超限和多盒問題。在我們的工作的同時,深度掩碼法[28]是為了學習分割方案而發展起來的。

                                                

圖2:速度更快的R-CNN是一個單一的、統一的物件檢測網路。RPN模組作為這個統一網路的“關注點”。

卷積的共享計算[9]、[1]、[29]、[7]、[2]因其高效、準確的視覺識別而受到越來越多的關注。本論文[9]從影象金字塔中計算卷積特徵以進行分類、定位和檢測。在共享卷積特徵對映上開發了自適應大小池(Spp)[1],用於有效的基於區域的物件檢測[1]、[30]和語義分割[29]。快速r-cnn[2]支援端到端檢測器關於共享卷積特徵的訓練,並顯示出引人注目的準確性和速度。

3 FASTER R-CNN

我們的目標檢測系統,稱為更快的r-cnn,由兩個模組組成:第一個模組是提出區域的深度全卷積網路,第二個模組是使用所提出區域的快速r-CNN檢測器[2]。整個系統是一個單一的、統一的物件檢測網路(圖2)。RPN模組使用最近流行的“注意”[31]機制的神經網路術語,告訴快速的r-CNN模組在哪裡查詢。在第3.1節中,我們介紹了區域提案網路的設計和特性。在第3.2節中,我們開發了用於訓練兩個具有共享特徵的模組的演算法。 

3.1區域提案網路 

區域提議網路(RPN)以一幅影象(任意大小)作為輸入,輸出一組矩形物件提案,每一項都有一個客觀評分。我們用一個全卷積網路[7]來建模這個過程,我們在本節中對此進行了描述。由於我們的最終目標是與快速的r-cnn目標檢測網路共享計算[2],我們假設這兩個網路共享一組公共的卷積層。在實驗中,我們研究了澤勒和費格斯模型[32](ZF),它有5個可共享卷積層,Simonyan和Zisserman模型[3](vgg-16)有13個共享卷積層。

為了產生區域建議,我們在最後一個共享卷積層輸出的卷積特徵圖上滑動了一個小網路。該小網路採用輸入卷積特徵對映的n×n空間視窗作為輸入。每個滑動視窗對映到一個低維特徵(zf為256-d,vgg為512-d,以下為relu[33])。這個特性被輸入到兩個全連線的同級層-一個box-迴歸層(Reg)和一個box-分類層(CLS)。本文使用n=3,指出輸入影象上的有效接收場較大(ZF和vgg分別為171和228畫素)。圖3中的一個位置顯示了這個迷你網路(左)。請注意,由於迷你網路以滑動視窗的方式工作,完全連線的層是在所有空間位置共享的。該體系結構自然由n×n卷積層和兩個1×1卷積層(分別用於REG和CLS)實現。

   

圖3:左:區域提案網路(RPN)。右:在Pascal voc 2007測試中使用RPN提案的示例檢測。我們的方法在廣泛的尺度和高寬比中檢測物體。

3.1.1 錨

在每個滑動視窗位置,我們同時預測多個區域提案,其中每個位置的最大可能方案的數目表示為k。因此,reg層具有4k輸出,編碼k盒的座標,而CLS層輸出2k分數,該分數估計每個提議的物件概率或非物件概率。k個方案是相對於k個參考箱的引數化的,我們稱之為錨。錨位於所述滑動視窗的中心,並與比例和縱橫比相關聯(圖3,左)。預設情況下,我們使用3個尺度和3個縱橫比,在每個滑動位置產生k=9個錨。對於大小為w×h的卷積特徵圖(通常為∼2,400),共有w個Hk錨。

平移不變錨 

我們的方法的一個重要性質是它是平移不變的,無論是從錨和計算建議相對於錨的函式。如果一個人在影象中被轉化為一個物件,那麼建議框應該被轉換,並且相同的功能應該能夠預測在任何一個位置的提案。我們的方法5保證了這種平移不變性質。作為比較,MultiBox方法[27]使用k-均值生成800個錨點,這些錨點不是平移不變的。因此,如果轉化為了一個物件,Multibox並不能保證生成相同的建議框。

平移不變性也減小了模型的大小。在k=9個錨的情況下,多盒具有(4+1)×800維全連通輸出層,而我們的方法有(4+2)×9維卷積輸出層。結果表明,我們的輸出層有2.8*10^{4}個引數(vgg-16為512×(4+2)×9),比MultiBox輸出層的輸出層少兩個數量級(在MultiBox[27]中,GoogleNet[34]為1536×(4+1)×800),MultiBox輸出層為6.1×106個引數(1536×(41)×800)。如果考慮到特徵對映層,我們的建議層的引數仍然比多盒6少一個數量級。我們期望我們的方法在小型資料集(如Pascalvoc)上有較小的過擬合風險。

多尺度錨作為迴歸參考 

我們錨的設計提出了一種新的方案,以解決多尺度(和高寬比)。如圖1所示,有兩種常用的多尺度預測方法。第一種方法是基於影象/特徵金字塔,例如DPM[8]和基於cnn的方法[9]、[1]、[2]。影象按多尺度調整大小,併為每個比例尺計算特徵圖(HOG[8]或深卷積特徵[9]、[1]、[2])(圖1(A)。這種方式通常是有用的,但卻很費時。第二種方法是在特徵對映上使用多尺度(和/或高寬比)的滑動視窗。例如,在DPM[8]中,使用不同的濾波器尺寸(如5×7和7×5)分別訓練不同長寬比的模型。如果使用這種方法來處理多個尺度,則可以將其視為“濾波器金字塔”(圖1(B)。第二種方式通常與第一種方式共同採用[8]。

作為比較,我們基於錨的方法是建立在一個金字塔的錨,這是更高的成本效益。我們的方法根據多尺度和高寬比的錨盒對包圍盒進行分類和迴歸。它只依賴於單一尺度的影象和特徵對映,並且使用單個大小的濾波器(功能地圖上的滑動視窗)。我們通過實驗證明了該方案在解決多尺度和多尺度問題方面的效果(表8)。 

由於這種基於錨的多尺度設計,我們可以簡單地使用單尺度影象上計算的卷積特徵,快速r-cnn檢測器[2]也是這樣做的。多尺度錨的設計是在不增加定址代價的情況下實現特徵共享的關鍵部件。 

3.1.2損失函式

為了訓練RPN,我們給每個錨分配一個二進位制類標籤(不管是否是一個物件)。我們為兩種錨指定了一個正標籤:(一)與地面真相盒重疊的具有最高交叉度(IOU)的錨/錨(IOU),或者(Ii)與任何地面真相盒的IOU重疊超過0.7的錨。請注意,一個單一的地面真相框可以為多個錨指定正標籤。通常第二個條件足以確定正樣本,但我們仍然採用第一個條件,因為在一些罕見的情況下,第二個條件可能找不到正樣本。如果一個非正錨的IOU比率低於0.3,則我們為一個非正錨指定一個負標籤。既不積極也不消極的錨對訓練目標沒有幫助。 

利用這些定義,我們將FAST r-CNN[2]中的多工損失後的目標函式最小化。我們對影象的損失函式定義為: 

                                                         L(\left \{ p_i \right \},\left \{ t_i \right \})=\frac{1}{N_{cls}}\sum_{i}L_{cls}(p_i,p_i^*)

                                                           +\lambda \frac{1}{N_{reg}}\sum_{i}p_i^*L_{reg}(t_i,t_i^*)

這裡的i是一個小批中錨的索引,pi是錨i作為一個物件的預測概率。如果錨點為正,則地面真值標籤p∗i為1,如果錨點為負值,則為0。ti是一個向量,表示預測邊界盒的4個引數化座標,t_i^*是與正錨相關的地面真相盒的座標。分類損失LCLS是兩個類(物件與非物件)上的日誌丟失。對於迴歸損失,我們使用Lreg(ti,t∗i)=r(ti−t_i^*),其中r是文[2]中定義的穩健損失函式(光滑L1)。術語p_i^*Lreg意味著迴歸損失僅對正錨啟用(p∗i=1),否則被禁用(p∗i=0)。CLS和REG層的輸出分別由{pi}和{ti}組成。

這兩個項由Ncls和Nreg標準化,並由一個平衡引數λ加權。在我們當前的實現中(在釋出的程式碼中),eqn中的CLS項。(1)通過最小批處理大小(即ncls=256)規範化,reg項由錨位置數(即nreg∼2,400)標準化。預設情況下,我們設定λ=10,因此CLS和REG項的權重大致相等。實驗表明,在較寬的範圍內,結果對λ值不敏感(表9)。我們還注意到,上面提到的標準化並不是必需的,可以簡化。 

對於bounding box迴歸,我們採用以下4個座標的引數化[5]:

                                           t_x=(x-x_a)/w_a,t_y=(y-y_a)/h_a,

                                          t_w=log(w/w_a),t_h=log(h/h_a),

                                          t_x^*=(x^*-x_a)/w_a,t_y^*=(y^*-y_a)/h_a,

                                          t_w^*=log(w^*/w_a),t_h^*=log(h^*/h_a),

其中x,y,w和h表示box的中心座標及其寬度和高度。變數x、xa和x^*分別用於預測盒、錨盒和地面真相盒(y、w、h也是如此)。這可以被認為是從錨盒到附近的ground-truth盒的bounding box迴歸。

然而,我們的方法實現了bounding box迴歸與以往的基於區域的方法[1],[2]不同的方式。在[1],[2]中,對任意大小的ROI集合的特徵執行bounding box迴歸,迴歸權重由所有區域大小共享。在我們的公式中,用於迴歸的特徵在特徵地圖上具有相同的空間大小(3×3)。為了解釋不同的大小,學習了一組k界盒迴歸器。每個迴歸者負責一個尺度和一個縱橫比,而k迴歸者不共享權重。因此,由於錨的設計,即使功能是固定的大小/規模,也仍然可以預測各種大小的盒子。

3.1.3 訓練 RPNs

RPN可以通過反向傳播和隨機梯度下降(SGD)[35]對端到端進行訓練。我們遵循[2]的“以影象為中心”的抽樣策略來訓練這個網路。每一小批產生的單一影象,其中包含許多正面和負面的例子錨。可以對所有錨的損耗函式進行優化,但這將偏向負樣本,因為它們占主導地位。相反,我們在影象中隨機抽樣256個錨,以計算小批量的丟失函式,其中取樣的正錨和負錨的比率高達1:1。如果一幅影象中的正樣本少於128個,我們用負片填充小批次。

我們隨機初始化所有新的層,從零均值高斯分佈中提取權重,標準差為0.01。所有其他層(即共享卷積層)都是通過預先訓練ImageNet分類模型[36]來初始化的,這是標準實踐[5]。我們對ZF網的所有層進行調優,並對vgg網進行卷積1和向上以節省記憶體[2]。在Pascal voc資料集上,我們對60000個小批使用了0.001的學習速率,對於下一個20k的小批使用了0.0001。我們使用的動量為0.9,重量衰減為0.0005[37]。我們的實施使用CAFIE[38]。

3.2 RPN和FAST R-CNN的共享功能

到目前為止,我們已經描述瞭如何訓練一個區域提案生成網路,而不考慮將利用這些建議的基於區域的目標檢測cnn。對於檢測網路,我們採用了快速r-cnn[2]。接下來,我們描述了學習由RPN和具有共享卷積層的快速R-CNN組成的統一網路的演算法(圖2)。

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

(I)交替訓練。在這個解決方案中,我們首先訓練RPN,並利用這些建議來訓練FAST R-CNN.然後使用由FAST R-CNN調整的網路來初始化RPN,然後迭代這個過程。這是本文所有實驗中使用的解決方案。

(2)近似聯合訓練。在此解決方案中,RPN和快速R-CNN網路在訓練期間合併成一個網路,如圖2所示。在每一次SGD迭代中,前通過產生的區域提案就像訓練快速r-cnn檢測器時的固定、預先計算的建議一樣。反向傳播通常發生在共享層上,將來自RPN損耗和快速R-CNN損失的後向傳播訊號組合在一起。該解決方案易於實現。但是這個解忽略了導數w.r.t。建議框的座標也是網路響應,所以也是近似的。在我們的實驗中,我們經驗性地發現,這種求解器產生了接近的結果,但與交替訓練相比,訓練時間減少了25%-50%。此解決程式包含在我們釋出的python程式碼中。

(3)非近似的聯合訓練。如上所述,RPN預測的邊框也是輸入的函式。快速r-cnn中的ROI池化層[2]接受卷積特徵和預測的bounding box作為輸入,因此理論上有效的反向傳播求解器也應該包含梯度w.r.t。盒座標。在上述近似的聯合訓練中忽略了這些梯度。在一個非近似的聯合訓練解決方案中,我們需要一個可微分的ROI池化層。盒座標。這是一個非平凡的問題,可以用文[15]中提出的“ROI翹曲”層來解決,這超出了本文的範圍。 

4步交替訓練:本文采用一種實用的四步訓練演算法,通過交替優化學習共享特徵。在第一步,我們訓練RPN,如第3.1.3節所述。該網路由ImageNet預先訓練的模型初始化,併為區域提案任務進行精確的端到端調整。在第二步中,我們使用步驟-1 RPN產生的建議,通過快速r-cnn來訓練一個單獨的檢測網路。該檢測網路也由ImageNet-預訓練模型初始化。此時,這兩個網路不共享卷積層。在第三步中,我們使用檢測器網路來初始化RPN訓練,但是我們修復了共享的卷積層,並且只對RPN特有的層進行了微調。現在,這兩個網路共享卷積層。最後,保持共享卷積層的固定,我們微調快速r-cnn的獨特層。因此,兩個網路共享相同的卷積層,形成統一的網路。類似的交替訓練可以進行更多的迭代,但我們已經觀察到了微不足道的改進。

3.3實施細節

我們在單尺度[1]、[2]的影象上訓練和測試區域提案和目標檢測網路。我們對影象進行縮放,使其較短的邊為s=600畫素[2]。多尺度特徵提取(使用影象金字塔)可以提高精度,但沒有表現出良好的速度精度權衡[2]。在重比例尺影象上,ZF和VGGNet在最後一個卷積層上的總步長為16畫素,因此在一個典型的PASCAL影象(∼500×375)上是10畫素。即使是這麼大的步幅也能帶來很好的效果,儘管隨著步幅的減小,精度可能會進一步提高。

對於錨,我們使用3個比例尺,盒子面積為128^2256^2512^2畫素,3寬比為1:1,1:2和2:1。對於特定的資料集,這些超引數並沒有被仔細地選擇,我們在下一節中提供了它們的燒蝕實驗。正如我們所討論的,我們的解決方案不需要影象金字塔或濾波器金字塔來預測多尺度區域,從而節省了相當長的執行時間。圖3(右)顯示了我們的方法對於範圍廣泛的尺度和高寬比的能力。表1顯示了使用ZF網學習的每個錨點的平均建議大小。我們注意到,我們的演算法允許比底層接受欄位更大的預測。這樣的預測並不是不可能的-如果只有物體的中間是可見的,人們仍然可以粗略地推斷出物體的範圍。

                 

跨越影象邊界的錨盒需要小心處理。在訓練過程中,我們忽略了所有的跨界錨,這樣他們就不會造成損失.對於一個典型的1000×600影象,大約有20000個(≈60×40×9)錨。在忽略跨界錨的情況下,每幅影象大約有6000多個錨進行訓練。如果在訓練中不忽略跨越邊界的異常值,就會在目標上引入較大的、難以糾正的錯誤項,並且訓練不會收斂。然而,在測試期間,我們仍然將全卷積的RPN應用於整個影象。這可能會產生跨界提案框,我們將其剪輯到影象邊界。

一些RPN提案彼此高度重疊。為了減少冗餘,我們根據建議區域的CLS分數,採用非最大抑制(NMS)方法。我們將NMS的IOU閾值定為0.7,這使得我們每幅影象大約有2000個提議區域。正如我們將要展示的,NMS不會損害最終檢測的準確性,但會大大減少提案的數量。在nms之後,我們使用頂級的n個建議區域進行檢測。在下面,我們使用2000年RPN提案快速訓練r-cnn,但在測試時評估不同數量的建議。

4 實驗

4.1 Pascal voc實驗 

我們對我們的方法在Pascal voc 2007檢測基準[11]上進行了全面的評估。該資料集由20多個物件類別的大約5k圖和5k測試影象組成。我們還提供了一些模型的Pascalvoc 2012基準的結果。對於ImageNet預訓練網路,我們使用ZF網[32]的“快速”版本,它有5個卷積層和3個完全連線層,而公共vgg-16模型7[3]有13個卷積層和3個全連線層。我們主要評估檢測的平均精度(MAP),因為這是用於物件檢測的實際度量(而不是關注物件提案代理度量)。

表2:Pascal voc 2007測試集的檢測結果(對voc 2007 trainval進行了訓練)。該探測器是快速r-CNN與ZF,但使用各種建議的方法進行訓練和測試. 

                      

表2(上圖)顯示了使用各種區域提案方法訓練和測試的快速r-cnn結果。這些結果使用ZF網。對於選擇性搜尋(Ss)[4],我們以“快速”模式生成了大約2000份提案。對於EDGEBOX(EB)[6],我們通過為0.7IOU進行調優的預設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%(RPNZF,未共享,表2)。我們觀察到,這是因為在第三步,當探測器調諧的特徵被用於微調RPN時,提案質量得到了改善。

其次,分析了RPN對快速R-CNN檢測網路訓練的影響.為此,我們利用2000年的建議和ZF網訓練了一個快速的r-cnn模型。我們修復這個檢測器,並通過改變測試時使用的提案區域來評估檢測地圖。在這些燒蝕實驗中,rpn與探測器不具有相同的特性。

在測試時間用300個RPN方案取代SS,將得到56.8%的地圖。地圖的損失是由於訓練/測試結果之間的不一致。此結果可作為以下比較的基準。  

         

有點令人驚訝的是,RPN仍然會在測試時使用排名最高的100份建議書時獲得競爭性的結果(55.1%),這表明排名最高的RPN提案是準確的。另一方面,使用排名最高的6000個rpn提案(沒有nms)有一個可比較的地圖(55.2%),表明nms不會損害檢測地圖,並可能減少錯誤警報。

接下來,我們分別通過在測試時關閉RPN的CLS和REG輸出來研究RPN的CLS和REG輸出的作用。當CLS層在測試時被移除時(因此不使用nms/排名),我們從未得分割槽域隨機抽樣n個提案。當n=1000時,MAP幾乎沒有變化(55.8%),但當n=100時,則降解到44.6%。這表明CLS分數佔了排名最高的提案的準確性。 

另一方面,當reg層在測試時被移除時(因此建議成為錨盒),地圖下降到52.1%。這表明,高質量的建議主要是由於倒退的框界。錨盒雖然具有多尺度和縱橫比,但不足以準確檢測。 

我們還評估了更強大的網路對RPN方案質量的影響。我們使用vgg-16來訓練RPN,並且仍然使用ss ZF的上述檢測器。MAP由56.8%(RPN ZF)提高到59.2%(RPN Vgg)。這是一個很有前途的結果,因為它表明RPN vgg的提案質量優於RPN ZF。由於RPNZF的建議與SS具有競爭力(在訓練和測試中都有58.7%),我們可以期望RPNVGG優於SS。以下實驗證實了這一假設。

                                                                   

vgg-16的效能:表3顯示了vgg-16對提案和檢測的結果。使用RPN vgg,未共享特性的結果為68.5%,略高於ss基線。如上文所示,這是因為RPN vgg生成的建議比ss更精確。與預先定義的ss不同,RPN受到了積極的訓練,並從更好的網路中受益。對於特性共享變體,結果是69.9%-優於強大的ss基線,但幾乎免費的建議。我們還對RPN和檢測網路進行了Pascal voc 2007 trainval和2012 trainval聯合集的訓練。地圖為73.2%。圖5顯示了Pascalvoc 2007測試集上的一些結果。在Pascal voc 2012測試集(表4)上,我們的方法有一個70.4%的地圖在voc 2007 trainval測試和voc 2012 trainval聯合集上進行訓練。表6和表7顯示了詳細的數字。

在表5中,我們總結了整個物件檢測系統的執行時間。SS根據內容需要1-2秒(平均約1.5s),使用vgg-16的快速r-cnn在2000 ss建議上需要320 ms(如果在全連線的層上使用svD則為223 ms[2])。我們的vgg-16系統共接收198 ms的建議和檢測。在共享卷積特性的情況下,僅RPN就只需10 ms計算額外的層。我們的區域計算也較低,這要歸功於較少的提案(每幅影象300份)。我們的系統與ZF網的幀率為17 fps。

對超引數的敏感性:在表8中,我們調查了錨的設定。預設情況下,我們使用3個尺度和3個縱橫比(表8中的地圖為69.9%)。如果在每個位置只使用一個錨,地圖就會下降3-4%。如果使用3個尺度(1寬比)或3寬比(1比例尺),則MAP較高,這表明使用多個尺寸的錨作為迴歸參考是一種有效的解決方案。在該資料集上,僅使用3個長徑比為1的尺度(69.8%),與在該資料集上使用3個縱橫比的尺度相同,表明尺度和縱橫比對檢測精度沒有影響。但我們仍然採用這兩個方面的設計,以保持我們的系統的靈活性。 

在表9中,我們比較了方程(1)中λ的不同值。預設情況下,我們使用λ=10,使方程(1)中的兩個項在歸一化後的權重大致相等。表9顯示,當(by ∼ 1%)在大約兩個數量級(1到100)的範圍內時,我們的結果受到輕微的影響(受λ1%的影響)。這表明該結果在很大範圍內對λ不敏感。 

對Recall-to-IoU的分析:接下來,我們用地面真相盒計算不同IOU比率下提案的召回情況。值得注意的是,召回到IOU的度量只是鬆散的[19],[20],[21]與最終的檢測精度有關。使用這個度量來診斷建議方法比評估它更合適。

在圖4中,我們展示了使用300、1000和2000提案的結果。我們與ss和EB進行了比較,基於這些方法產生的置信度,n個方案是最高的n個。圖表顯示,RPN方法在提案數量從2000年下降到300個時表現良好。這解釋了為什麼RPN有一個良好的最終檢測地圖時,使用多達300份提案。正如我們前面所分析的,這一性質主要歸因於RPN的CLS項。當提案較少時,SS和EB的召回速度要快於RPN。 

  

一步檢測與兩階段提案檢測:本文[9]提出了一種在卷積特徵對映的滑動視窗上使用迴歸器和分類器的檢測方法。超額任務是一個一級的、特定於階級的檢測管道,而我們的是一個兩階段的級聯,由不可知類的建議和特定類別的檢測組成。在超常中,區域上的特徵來自於比例金字塔上一個縱橫比的滑動視窗。這些特徵用於同時確定物件的位置和類別。在RPN中,這些特徵來自於方形(3×3)滑動視窗,並預測了相對於不同尺度和寬徑比的錨的建議。雖然這兩種方法都使用滑動視窗,但區域建議任務只是快速rcnn的第一階段-下游快速r-cnn檢測器關注這些建議以改進它們。在我們的梯級的第二階段,區域方面的特徵被自適應地彙集[1],[2]從更忠實地涵蓋區域特徵的提案框中。我們相信這些特徵會導致更精確的檢測。

為了比較一級和二級系統,我們採用一級快速r-cnn模擬超額系統(從而避免了其他實現細節上的差異)。在該系統中,“方案”是3個尺度(128、256、512)和3個高寬比(1:1、1:2、2:1)的密集滑動視窗。快速r-cnn是訓練來預測特定類別的分數和從這些滑動視窗的倒退框位置。由於超視距系統採用了影象金字塔,我們還使用從5個尺度中提取的卷積特徵進行評價。我們使用這5個尺度,如[1],[2]。 

表10比較了兩級制和兩種一級制。採用ZF模型,一級系統的MAP為53.9%。這比兩級制(58.7%)低4.8%。實驗證明了級聯區域方案和目標檢測的有效性。在[2],[39]中也有類似的觀察,在這兩篇論文中,用滑動視窗代替ss區域提案會導致∼6%的退化。我們還注意到,單一住房制度速度較慢,因為它有相當多的建議要處理。

4.2對MS COCO的實驗

我們在Microsoft Coco物件檢測資料集上展示了更多的結果[12]。此資料集涉及80個物件類別。我們對訓練集上的80k影象、驗證集上的40k影象和測試開發集上的20k影象進行了實驗。我們評估IOU∈[0.5:0.05:0.95](coco的標準度量,簡單表示為[email protected][.5,.95]和[email protected](PASCAL voc‘s度量)的平均地圖。

對於這個資料集,我們的系統做了一些小的修改。我們在8-GPU實現上訓練我們的模型,RPN(1/GPU)和快速r-CNN(2/GPU)的有效小批處理大小分別為8(1/GPU)和16(2/GPU)。rpn步驟和快速rcnn步驟都被訓練為240 k迭代,學習速率為0.003,然後訓練80k迭代(0.0003)。我們修改學習率(從0.003開始,而不是從0.001開始),因為小批量大小被改變了。對於錨,我們使用3個縱橫比和4個尺度(增加642),主要動機是處理這個資料集上的小物件。此外,在我們的快速r-CNN步驟中,負樣本被定義為在[0,0.5]區間內,而不是在[1],[2]中使用[0.1,0.5]的最大IOU的負樣本。我們注意到,在sppnet系統[1]中,[0.1,0.5)中的負樣本被用於網路微調,而[0,0.5)中的負樣本仍然在svm步驟中訪問硬負挖掘。但快速r-cnn系統[2]放棄了svm步驟,因此[0,0.1]中的負樣本從未被訪問過。包括這些[0,0.1]樣本改進了coco資料集上的[email protected],用於快速的r-CNN和更快的r-CNN系統(但對PASCAL VOC的影響可以忽略不計)。 

      

                                           

其餘實現細節與Pascal voc上的實現細節相同。特別是,我們繼續使用300項提案和單尺度(s=600)測試。在coco資料集上,每幅影象的測試時間仍然是200 ms左右。

在表11中,我們首先報告了使用本文實現的FAST r-CNN系統[2]的結果。我們快速的r-cnn基線在測試開發集上有39.3%的[email protected],高於[2]中的報道。我們推測,造成這一差距的主要原因是負樣品的定義和小批量尺寸的變化。我們還注意到,地圖@[.5,.95]只是可比較的。 

接下來,我們評估我們更快的r-cnn系統。使用coco訓練集訓練,更快的r-cnn在coco測試開發集上有42.1%的[email protected]和21.5%的[email protected][.5,.95]。在同一協議下,[email protected][email protected][.5,.95]比快速rcnn高2.8%和2.2%(表11)。這表明RPN對提高IOU閾值的定位精度有很好的效果。使用coco trainval集進行訓練,在coco測試開發集上,更快的rcnn有42.7%的[email protected]和21.9%的[email protected][.5,.95]。圖6顯示了ms coco測試-dev集上的一些結果。 

更快的r-cnn在ILSVRC和COCO 2015比賽中:我們已經證明,更快的r-cnn更多地受益於更好的特徵,這要歸功於RPN完全學會了通過神經網路來提出區域。即使將深度大幅度增加到100層[18],這一觀察仍然有效。只有用101層剩餘網(RESNET-101)[18]取代vgg-16,才能使COCO Val集上的MAP從41.5%/21.2%(Vg 16)提高到48.4%/27.2%(RESNET-101)。與其他改進正交更快的rcnn,他等。[18]在COCO測試開發集上獲得了55.7%/34.9%的單模型結果和59.0%/37.4%的整合結果,在COCO 2015目標檢測競賽中獲得了第一名。同樣的系統[18]在ILSVRC 2015目標檢測競賽中也獲得了第一名,以8.5%的絕對優勢超過了第二名。rpn也是ILSVRC 2015本地化和coco 2015細分比賽第一名獲獎作品的組成部分,詳情分別見[18]和[15]。

4.3從MS coco 到Pascal voc

大規模資料對改進深層神經網路具有重要意義。接下來,我們將研究MS coco資料集如何幫助Pascal voc上的檢測效能。作為一個簡單的基線,我們直接評估Pascal voc資料集上的coco檢測模型,而不對任何pascal voc資料進行微調。這種評估是可能的,因為coco上的類別是Pascal voc上的超集。在本實驗中忽略了coco上唯一的類別,而Softmax層僅在20個類別加上背景上執行。在Pascalvoc 2007測試集上,此設定下的對映為76.1%(表12)。儘管Pascal voc資料沒有被利用,但這一結果比在vo0712上訓練的結果要好得多(73.2%)。然後對VOC資料集上的coco檢測模型進行微調.在本實驗中,coco模型取代了ImageNet-預訓練模型(用於初始化網路權重),而且更快的r-cnn系統被微調,如第3.2節所述。這樣做將導致Pascalvoc 2007測試集上78.8%的地圖。來自coco集的額外資料使地圖增加了5.6%。表6顯示,在COCO VOC上培訓的模型對於Pascal voc 2007的每一個類別都具有最佳的AP。Pascal voc 2012測試集也有類似的改進(表12和表7)。我們注意到,獲得這些強結果的測試時間速度仍然是每幅影象200 ms左右。

5 結論

我們已經提出了高效和準確的區域提案生成的RPN。通過與下游檢測網路共享卷積特徵,區域建議步驟幾乎是免費的。我們的方法使一個統一的、基於深入學習的物件檢測系統能夠以近乎實時的幀速率執行.所學習的RPN還提高了區域方案的質量,從而提高了目標的整體檢測精度。

                               

圖5:使用更快的R-CNN系統在Pascal voc 2007測試集上選擇的物件檢測結果示例。模型為vgg-16,訓練資料為07 12次,佔2007年測試集的73.2%。我們的方法檢測的物件範圍很廣,尺度和高寬比。每個輸出框都與[0,1]中的類別標籤和Softmax分數相關聯。使用分數閾值0.6來顯示這些影象。獲得這些結果的執行時間為每幅影象198 ms,包括所有步驟。

                             

圖6:使用更快的r-cnn系統在ms coco測試-dev集上選擇物件檢測結果的示例。該模型為vgg-16,訓練資料為coco trainval(42.7%[email protected])。每個輸出框都與[0,1]中的類別標籤和Softmax分數相關聯。使用分數閾值0.6來顯示這些影象。對於每個影象,一種顏色表示該影象中的一個物件類別。

 

REFERENCES [1] K. He, X. Zhang, S. Ren, and J. Sun, “Spatial pyramid pooling in deep convolutional networks for visual recognition,” in European Conference on Computer Vision (ECCV), 2014. [2] R. Girshick, “Fast R-CNN,” in IEEE International Conference on Computer Vision (ICCV), 2015. [3] K. Simonyan and A. Zisserman, “Very deep convolutional networks for large-scale image recognition,” in International Conference on Learning Representations (ICLR), 2015. [4] J. R. Uijlings, K. E. van de Sande, T. Gevers, and A. W. Smeulders, “Selective search for object recognition,” International Journal of Computer Vision (IJCV), 2013. [5] R. Girshick, J. Donahue, T. Darrell, and J. Malik, “Rich feature hierarchies for accurate object detection and semantic segmentation,” in IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2014. [6] C. L. Zitnick and P. Dollar, “Edge boxes: Locating object ´ proposals from edges,” in European Conference on Computer Vision (ECCV), 2014. [7] J. Long, E. Shelhamer, and T. Darrell, “Fully convolutional networks for semantic segmentation,” in IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2015. [8] P. F. Felzenszwalb, R. B. Girshick, D. McAllester, and D. Ramanan, “Object detection with discriminatively trained partbased models,” IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI), 2010. [9] P. Sermanet, D. Eigen, X. Zhang, M. Mathieu, R. Fergus, and Y. LeCun, “Overfeat: Integrated recognition, localization and detection using convolutional networks,” in International Conference on Learning Representations (ICLR), 2014. [10] S. Ren, K. He, R. Girshick, and J. Sun, “Faster R-CNN: Towards 14 real-time object detection with region proposal networks,” in Neural Information Processing Systems (NIPS), 2015. [11] M. Everingham, L. Van Gool, C. K. I. Williams, J. Winn, and A. Zisserman, “The PASCAL Visual Object Classes Challenge 2007 (VOC2007) Results,” 2007. [12] T.-Y. Lin, M. Maire, S. Belongie, J. Hays, P. Perona, D. Ramanan, P. Dollar, and C. L. Zitnick, “Microsoft COCO: Com- ´ mon Objects in Context,” in European Conference on Computer Vision (ECCV), 2014. [13] S. Song and J. Xiao, “Deep sliding shapes for amodal 3d object detection in rgb-d images,” arXiv:1511.02300, 2015. [14] J. Zhu, X. Chen, and A. L. Yuille, “DeePM: A deep part-based model for object detection and semantic part localization,” arXiv:1511.07131, 2015. [15] J. Dai, K. He, and J. Sun, “Instance-aware semantic segmentation via multi-task network cascades,” arXiv:1512.04412, 2015. [16] J. Johnson, A. Karpathy, and L. Fei-Fei, “Densecap: Fully convolutional localization networks for dense captioning,” arXiv:1511.07571, 2015. [17] D. Kislyuk, Y. Liu, D. Liu, E. Tzeng, and Y. Jing, “Human curation and convnets: Powering item-to-item recommendations on pinterest,” arXiv:1511.04003, 2015. [18] K. He, X. Zhang, S. Ren, and J. Sun, “Deep residual learning for image recognition,” arXiv:1512.03385, 2015. [19] J. Hosang, R. Benenson, and B. Schiele, “How good are detection proposals, really?” in British Machine Vision Conference (BMVC), 2014. [20] J. Hosang, R. Benenson, P. Dollar, and B. Schiele, “What makes ´ for effective detection proposals?” IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI), 2015. [21] N. Chavali, H. Agrawal, A. Mahendru, and D. Batra, “Object-Proposal Evaluation Protocol is ’Gameable’,” arXiv: 1505.05836, 2015. [22] J. Carreira and C. Sminchisescu, “CPMC: Automatic object segmentation using constrained parametric min-cuts,” IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI), 2012. [23] P. Arbelaez, J. Pont-Tuset, J. T. Barron, F. Marques, and J. Malik, ´ “Multiscale combinatorial grouping,” in IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2014. [24] B. Alexe, T. Deselaers, and V. Ferrari, “Measuring the objectness of image windows,” IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI), 2012. [25] C. Szegedy, A. Toshev, and D. Erhan, “Deep neural networks for object detection,” in Neural Information Processing Systems (NIPS), 2013. [26] D. Erhan, C. Szegedy, A. Toshev, and D. Anguelov, “Scalable object detection using deep neural networks,” in IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2014. [27] C. Szegedy, S. Reed, D. Erhan, and D. Anguelov, “Scalable, high-quality object detection,” arXiv:1412.1441 (v1), 2015. [28] P. O. Pinheiro, R. Collobert, and P. Dollar, “Learning to segment object candidates,” in Neural Information Processing Systems (NIPS), 2015. [29] J. Dai, K. He, and J. Sun, “Convolutional feature masking for joint object and stuff segmentation,” in IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2015. [30] S. Ren, K. He, R. Girshick, X. Zhang, and J. Sun, “Object detection networks on convolutional feature maps,” arXiv:1504.06066, 2015. [31] J. K. Chorowski, D. Bahdanau, D. Serdyuk, K. Cho, and Y. Bengio, “Attention-based models for speech recognition,” in Neural Information Processing Systems (NIPS), 2015. [32] M. D. Zeiler and R. Fergus, “Visualizing and understanding convolutional neural networks,” in European Conference on Computer Vision (ECCV), 2014. [33] V. Nair and G. E. Hinton, “Rectified linear units improve restricted boltzmann machines,” in International Conference on Machine Learning (ICML), 2010. [34] C. Szegedy, W. Liu, Y. Jia, P. Sermanet, S. Reed, D. Anguelov, D. Erhan, and A. Rabinovich, “Going deeper with convolutions,” in IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2015. [35] Y. LeCun, B. Boser, J. S. Denker, D. Henderson, R. E. Howard, W. Hubbard, and L. D. Jackel, “Backpropagation applied to handwritten zip code recognition,” Neural computation, 1989.[36] O. Russakovsky, J. Deng, H. Su, J. Krause, S. Satheesh, S. Ma, Z. Huang, A. Karpathy, A. Khosla, M. Bernstein, A. C. Berg, and L. Fei-Fei, “ImageNet Large Scale Visual Recognition Challenge,” in International Journal of Computer Vision (IJCV), 2015. [37] A. Krizhevsky, I. Sutskever, and G. Hinton, “Imagenet classification with deep convolutional neural networks,” in Neural Information Processing Systems (NIPS), 2012. [38] Y. Jia, E. Shelhamer, J. Donahue, S. Karayev, J. Long, R. Girshick, S. Guadarrama, and T. Darrell, “Caffe: Convolutional architecture for fast feature embedding,” arXiv:1408.5093, 2014. [39] K. Lenc and A. Vedaldi, “R-CNN minus R,” in British Machine Vision Conference (BMVC), 2015.