1. 程式人生 > >Fast R-CNN原文翻譯

Fast R-CNN原文翻譯

摘要

       本文提出了一種基於快速區域的卷積網路方法(FAST R-CNN).FAST r-CNN建立在以前工作的基礎上,利用深度卷積網路對目標進行有效分類。與以往的工作相比,FAST r-CNN在提高訓練和測試速度的同時,也提高了檢測精度。Fast r-cnn訓練非常深的vg g16網路比rcnn快9倍,測試時快213倍,並在Pascal voc 2012上取得了更好的效果。與sppnet相比,Fast r-cnn訓練速度為VGG16 的3倍快,測試速度為10倍快,且精度更高。FAST r-cnn是在python和c(使用caffe)中實現的,並且可以在開放原始碼的MIT許可下獲得:

https: //github.com/rbgirshick/fast-rcnn.

一、引言

        最近,深度網路[14,16]大大提高了影象分類[14]和目標檢測[9,19]的準確性。與影象分類相比,目標檢測是一項更具有挑戰性的任務,需要更復雜的方法來解決。由於這一複雜性,目前的方法(例如,[9,11,19,25]在多級管道中訓練模型是緩慢和不優雅的。

       複雜性的產生是因為檢測需要精確地定位物件,這就產生了兩個主要的挑戰。首先,必須處理許多候選物件位置(通常稱為“建議框”)。第二,這些候選框只提供粗略的本地化,必須加以改進才能實現精確的本地化。這些問題的解決方案往往會影響速度、準確性或簡單性。

       在本文中,我們簡化了基於ConvNet的目標檢測器的訓練過程[9,11].我們提出了一種單級訓練演算法,它聯合學習對目標方案進行分類並細化它們的空間位置。 

       該方法可以訓練出一個非常深的檢測網路比VGG16快9倍,比sppnet[11]快3倍。在執行時,檢測網路在0.3s內處理影象(不包括物件提議時間),同時在Pascal voc 2012[7]上達到最高精度,為66%(r-cnn為62%)。

1.1、RCNN和SPP-Net

       基於區域的卷積網路方法(Rcnn)[9]利用深度ConvNet對目標方案進行分類,獲得了很好的目標檢測精度。然而,R-CNN有明顯的缺點:

1.訓練是一個多階段的過程。美國有線電視新聞網(CNN)第一次使用日誌丟失完成了關於物件提案的ConvNet。然後,它適合svms的ConvNet特性。這些svms充當物件檢測器,取代通過微調學習的Softmax分類器。在第三個訓練階段,邊框才被學習到。 

2.訓練在空間和時間上都是昂貴的。對於svm和bounding-box迴歸的訓練,從每個影象中的每個物件提案中提取特徵並寫入磁碟。對於非常深的網路(如vgg16),這個過程需要GPU用2.5天的時間來處理07年trainval集的5k影象。這些特性需要數百GB的儲存空間。 

3.目標檢測速度慢。在測試時,從每個測試影象中的每個物件方案中提取特徵.使用vgg16進行檢測需要47s/影象(在GPU上)。

       r-cnn速度慢,因為它對每個物件方案執行一個ConvNet向前傳遞,而不需要共享計算。空間金字塔池網路(Sppnet)[11]被提出通過共享計算來加速r-cnn。sppnet方法計算整個輸入影象的卷積特徵對映,然後使用從共享特徵對映中提取的特徵向量對每個物件方案進行分類。通過最大限度地將提案內的特徵對映部分合併成固定大小的輸出(例如,6×6),為提案提取特徵。多個輸出大小被池化,然後像在空間金字塔池[15]中那樣連線。在測試時間,sppnet將r-cnn加速10至100倍。由於建議特徵提取速度更快,訓練時間也減少了3倍。 

       sppnet也有明顯的缺點。像r-cnn一樣,訓練是一個多階段的管道,包括提取特徵,用日誌丟失對網路進行微調,訓練svm,並最終安裝bounding-box迴歸器。特性也被寫入磁碟。但與r-cnn不同,微調演算法不能更新空間金字塔池之前的卷積層。毫不奇怪,這種限制(固定的卷積層)限制了非常深的網路的精度。

1.2. Contributions

        我們提出了一種新的訓練演算法,在提高訓練速度和精度的同時,彌補了R-CNN和sppnet的缺點。我們稱這種方法為“Fast R-CNN”,因為它的訓練和測試相對較快。fast-rcnn方法有幾個優點:

1.檢測質量(MAP)高於R-CNN,sppnet

2.訓練是單一階段,使用多工損失

3.訓練可以更新所有網路層

4。功能快取不需要磁碟儲存。 

FAST r-cnn是用python和c++(caffe[13])編寫的,在開放原始碼的MIT許可下可以在 https://github.com/rbgirshick/ fast-rcnn.

二、Fast-RCNN的架構和訓練

        Fig.1說明了Fastr-cnn的體系結構。一個快速的r-cnn網路接受一個完整的影象和一組物件建議作為輸入。該網路首先用多個卷積(Conv)和最大池化層處理整個影象,生成一個Conv特徵對映。然後,對於每個物件提案,感興趣區域(ROI)池化層從特徵對映中提取固定長度的特徵向量。每個特徵向量被輸入到一個完全連線(FC)層的序列中,這些層最終被劃分為兩個兄弟級輸出層:一個在k個物件類上生成Softmax概率估計,另一個層為每個k個物件類輸出四個實值數字。每組4個值編碼一個k類的bounding-box位置。

2.1 ROI池化層

       ROI池層使用最大池化將感興趣的任何有效區域內的特徵轉換為具有固定空間範圍h×w(例如,7×7)的小特徵對映,其中h和w是與任何特定ROI無關的層超引數。在本文中,ROI是進入Conv特徵對映的矩形視窗。每個roi由一個四元組(r,c,h,w)定義,該元組指定其左上角(r,c)及其高度和寬度(h,w)。

                  

圖1.快速r-CNN架構。輸入影象和多個感興趣區域(ROIS)被輸入到全卷積網路中。每個ROI集合成一個固定大小的特徵對映,然後通過完全連線層(FCS)對映到一個特徵向量。該網路每個ROI有兩個輸出向量:Softmax概率和每類bounding-box迴歸偏移量。該體系結構是經過訓練的端到端的多工損失。

       ROI最大池化層的工作原理是將h×w 的roi視窗劃分為近似大小為h/H×w/W的子視窗的H×W的網格,然後將每個子視窗中的值合併到相應的輸出網格單元中。池化獨立地應用於每個特徵對映通道,如標準的最大池化。ROI層只是sppnet[11]中使用的空間金字塔池層的特例,其中只有一個金字塔級別。我們使用[11]中給出的池子視窗計算。 

2.1、從預先訓練的網路初始化 

       我們用三個預先訓練過的ImageNet[4]網路進行實驗,每個網路都有5個最大池化層和5-13個Conv層(詳見4.1節)。當預先訓練的網路初始化一個快速的r-cnn網路時,它會經歷三個轉換.。

     首先,將最後一個最大池化層替換為ROI池化層,通過設定h和w與網路的第一個全連線層(例如,h=w=7表示vgg16)來配置h和w。

       其次,網路的最後一個全連線層和Softmax(為1000路ImageNet分類訓練)被替換為前面描述的兩個兄弟層(k1類別上的全連線層和Softmax以及特定類別的bounding-box迴歸器)。 

2.2、檢測微調

       利用反向傳播訓練所有網路權值是快速r-cnn的一項重要能力。首先,讓我們闡明為什麼sppnet無法更新空間金字塔池層以下的權重。 

       其根本原因是當每個訓練樣本(即ROI)來自不同的影象時,通過spp層的反向傳播效率很低,這正是r-cnn和sppnet網路被訓練的方式。低效率源於這樣一個事實:每個ROI可能有一個非常大的接受場,通常跨越整個輸入影象。由於前傳必須處理整個接收場,訓練輸入量很大(通常是整個影象)。 

       提出了一種在訓練過程中利用特徵共享的高效訓練方法。在快速rcnn訓練中,隨機梯度下降(SGD)小批被分層取樣,首先對n個影象進行取樣,然後從每幅影象中取樣r/n ROI。關鍵的是,來自同一影象的ROIS在向前和向後傳遞中共享計算和記憶體。使n小了,減少了小批量計算.例如,當使用n=2和r=128時,所提出的訓練方案比從128幅不同影象(即R-CNN和sppnet策略)中取樣一次ROI快約64倍。

        對這種策略的一個關注是,它可能會導致緩慢的訓練收斂,因為來自同一影象的ROI是相關的。這似乎不是一個實際的問題,我們取得了較好的結果,n=2和r=128使用較少的SGD迭代比r-CNN。  

       除了分層抽樣之外,FAST r-cnn還使用了一個簡化的訓練過程,通過一個微調階段聯合優化Softmax分類器和bounding-box迴歸器,而不是將Softmax分類器、svms和迴歸器訓練在三個不同的階段[9,11]。此過程的組成部分(損失、小批量抽樣策略、通過ROI池層的反向傳播和SGD超引數)如下所述。

多工損失:一個Fastr-cnn網路有兩個兄弟輸出層。第一個輸出離散概率分佈(每roi),p=(p_0......p_k),k+1以上類別。和往常一樣,p是由全連線層的k1輸出上的Softmax計算的。第二兄弟層輸出bounding-box迴歸偏移量t^k=(t_{x}^{k},t_{y}^{k},t_{w}^{k},t_{h}^{k})。對於每個k物件類,按k索引。我們使用了[9]中給出的t^k引數化,其中t^k指定了相對於物件方案的尺度不變平移和對數空間高度/寬度移動。 

       每個訓練指標都有一個ground-trut類u和一個ground-truth bounding-box迴歸目標v。我們使用多工損失L對每個標記的roi進行分類和bounding-box迴歸的聯合訓練:

                                   。                     L(p,u,t^u,v)=L_{cls}(p,u)+\lambda [u\geq 1]L_{loc}(t^u,v)

 

其中L_{cls}(p,u)==-logp_u是u的log損失。

     對於u而言,u,v=(v_x,v_y,v_w,v_h)和預測元組t^u=(t_{x}^{u},t_{y}^{u},t_{w}^{u},t_{h}^{u}),定義了第二個任務損失L_{loc}。相反,當u≥1和0時,指示函式[u≥1]計算為1。按照慣例,捕獲所有背景類標記為u=0。對於背景ROI,不存在ground-truth bounding-box的概念,因此L_{loc}被忽略。對於bounding-box迴歸,我們使用損失:

                                                                 L_{loc}(t^u,v)=\sum_{i\in\left \{ x,y,w,h \right \}}smooth_{L_1}(t_i^u-v_i)

                                                    這個   smooth_{L_1}(x)=\left \{ 0.5x^2 if(|x|<1)\right.|x|-0.5otherwise

是一種魯棒的L1損失,它對離群值的敏感性不如r-cnn和sppnet中使用的L2損失。當迴歸目標是無界的,L2損失的訓練可能需要仔細調整學習率,以防止梯度暴漲。Eq3消除了這種敏感性 。

      方程中的超引數λ1控制兩項任務損失之間的平衡。我們將ground-truth迴歸指標vi規範化為零均值和單位方差.所有實驗都使用λ=1。 

      我們注意到,[6]使用相關的損失來訓練一個與類無關的物件提取網路。與我們的AP-proach不同,[6]主張採用兩種網路系統,即SEPA對本地化和分類進行分級。Overfeat[19]、r-cnn[9]和sppnet[11]也訓練分類器和 bounding-box定位器,但是這些方法都是分階段訓練的,我們發現對於快速r-cnn來說,這些方法是次優的(5.1節)。 

小批量抽樣 :在微調過程中,每個SGD小批由n=2幅影象組成,隨機一致地選擇(通常的做法是,我們實際上迭代了資料集的排列)。我們使用r=128的小批次,從每幅影象中抽取64 rois.與[9]一樣,我們從與聯合(IOU)交叉的物件提案中獲取25%的ROI,與至少0.5的ground-truth bounding-box重疊。這些ROI包括標記為前臺物件類(即u≥1)的示例。其餘的ROI是從目標提案中取樣的,這些提案在[11]之後的[0.1,0.5]間隔內有maximum Iou。這些是背景示例,標記為u=0。較低的閾值0.1似乎作為一個啟發式的硬例子挖掘[8]。在訓練期間,影象水平翻轉,概率為0.5。不使用其他資料增強。

通過roi池化層的反向傳播: 反向傳播將衍生物通過ROI池化層傳播。為了清晰起見,我們假設每個小批只有一個影象(n=1),但是對n>1的擴充套件很簡單,因為向前傳遞處理所有影象都是獨立的。 

x_i\in R是ROI池化層的第一個啟用輸入,而y_{rj}是該層從ROI輸出的第j個啟用輸入。ROI池化層計算y_{rj}=x_{i*(r,j)},其中i*(r,j)=argmax_{i\in R(r,j)}x_iR(r,j)是輸出單元y_(rj)的最大池化所經過的子視窗中輸入的索引集。可以將單個xi分配給幾個不同的輸出y_{rj}。 

ROI池化層的後向函式計算損失函式相對於每個輸入變數xi的偏導數,方法是按照argmax轉換: 

                                                                \frac{\partial L}{\partial x_i}=\sum_{r}\sum_{j}[i=i^*(r,j)]\frac{\partial L}{\partial y_{rj}}

      也就是說,對於每個小型批處理ROI,r和每個池輸出單元y_{rj},如果我是通過最大池化為y_{rj}選擇的argmax,則會累積偏導數\frac{\partial L}{\partial y_{rj}}。在反向傳播中,偏導數\frac{\partial L}{\partial y_{rj}}已經由ROI池化層上的層的後向函式來計算。 

SGD超引數 :利用標準差分別為0.01和0.001的零均值高斯分佈,對用於softmax(軟最大值分類)和bounding-box迴歸的全連線層進行了初始化。偏差被初始化為0。所有層都使用1的每層學習速率作為權重,2用於偏置,全域性學習速率為0.001。在VOC07或VOC12的訓練中,我們執行SGD進行30k的小批量迭代,然後將學習率降低到0.0001,再訓練10K的迭代。當我們對較大的資料集進行訓練時,我們執行SGD進行更多的迭代,如後面所述。動量為0.9,引數衰減為0.0005(關於權重和偏置)。 

2.4.尺度不變性

       我們探討了兩種實現尺度不變目標檢測的方法:(1)通過“brute force”學習和(2)利用影象金字塔。這些戰略遵循[11]中的兩種方法。在“brute force”法中,在訓練和測試過程中,每幅影象都以預先定義的畫素大小進行處理。網路必須從訓練資料中直接學習尺度不變的目標檢測.。

       相比之下,多尺度方法通過影象金字塔為網路提供了近似的尺度不變性.在測試時,影象金字塔被用來對每一個目標方案進行近似規模的規範化。在多尺度訓練中,我們隨機抽樣一個金字塔尺度,每次一幅影象被取樣,如下[11],作為資料增強的一種形式。由於GPU記憶體的限制,我們只對較小的網路進行多尺度訓練。

三、Fast R-CNN的檢驗

       一旦fast r-cnn網路被微調,檢測就相當於向前通過(假設目標提案是預先計算的)。該網路以影象(或影象金字塔,編碼為影象列表)和r物件提案列表來得分作為輸入。在測試時,r通常在2000左右,儘管我們將考慮它更大的情況(≈45k)。當使用影象金字塔時,每個ROI被分配到縮放,使得縮放後的ROI在區域[11]中最接近224x224畫素。   

       對於每個測試的ROI,r正向傳遞輸出一個類後驗概率分佈p和一組相對於r的預測bounding-box偏移量(每個k類都有自己的精化邊界盒預測)。我們使用估計的概率Pr(class=k|r)=p_k為每個物件類k指定一個檢測置信度為r。然後,我們使用r-cnn[9]中的演算法和設定,獨立地對每個類執行非極大抑制。

3.1.截斷SvD以提高檢測速度

       對於全影象分類,計算全連線層的時間比Conv層少。相反,為了檢測要處理的ROI數目很大,並且幾乎一半的前向通過時間用於計算全連線層(參見圖)。使用截斷的SvD[5,23]壓縮大的全連線的層很容易加速。

在這種技術中,含有權重為u×v的矩陣w引數的層被近似分解為 :

                                                                             W\approx U\sum _tV_T

       使用SvD。在這個因式分解中,u是一個u×t矩陣,它包含w的第一個t左奇異向量,σt是包含w的t個奇異值的t×t對角矩陣,v是包含w的第一個t-右奇異向量的v×t矩陣。截斷的SvD將引數從UV減少到t(Uv),如果t比min(u,v)小得多,這是非常顯著的。為了壓縮網路,將對應於w的單個全連線層替換為兩個全連線層,它們之間沒有非線性。這些層中的第一層使用權重矩陣σtv t(和無偏差),第二層使用u(具有與w相關的原始偏差)。這種簡單的壓縮方法提供了良好的加速比,當ROIs的數目很大時。

四、主要結論

 三個主要結果支援了本文的貢獻:

1、最新VOC07,2010和2012

2、與r-cnn,sppnet 相比,快速訓練和測試。

3、微調vgg16中的conv層改進map 

4.1.實驗裝置 

       我們的實驗使用了三個預先訓練過的ImageNet模型,它們都可以在線上使用。第一個是來自r-cnn[9]的caffenet(本質上是alexnet[14])。我們也可以將此caffenet稱為模型s,表示“小”。第二個網路是[3]的vgg CNN m 1024,其深度與s相同,但更寬。我們把這個網路模型叫做m,意思是“中等”。最後的網路是[20]中非常深的vgg16模型。因為這個模型是最大的,所以我們稱它為模型L。在本節中,所有的實驗都使用單尺度的訓練和測試(s=600;詳見5.2節)。

    

表3.2012年VOC測試平均檢測精度(%)。在C 2000中,BabyLearning和NUS nus使用基於[17]的網路。所有其他方法都使用vgg16。訓練設定鍵:見表2,Unk。:未知。

4.2.2010年和2012年成果 

       在這些資料集上,我們比較了FAST r-CNN(簡稱FRCN)與Comp 4(外部資料)軌道上來自公共領導板的頂級方法(表2,表3)。3對於NUS nin C 2000和嬰兒學習方法,目前還沒有相關的出版物,我們無法找到使用的ConvNet體系結構的確切資訊;它們是網路中網路設計的變體[17]。所有其他方法都是從同一個預先訓練的vgg16網路中初始化的。

       FAST r-CNN以65.7%的特徵(和68.4%的額外資料)獲得了VOC12的最高結果。這也是兩個數量級的速度比其他方法,這都是基於“慢”的r-cnn管道。在VOC10上,SegDeepM[25]實現了一個更高的mAP比快速的r-cnn(67.2%比66.1%)。SegDeepM是關於VOC12加分割註釋的訓練;它的設計是為了提高r-cnn的準確性,使用馬爾可夫隨機場對r-cnn檢測和從O2P[1]語義分割方法中的分段進行推理。快速r-cnn可以用SegDeepM代替r-cnn,這樣可以得到更好的效果。當使用擴大的07 12訓練集(見表2標題)時,快速r-cnn的地圖增加到68.8%,超過了SegDeepM。

4.3. VOC 2007 結果

      在VOC2007,我們比較了快速的r-cnn,r-cnn和sppnet.所有方法都從相同的預先訓練的vgg16網路開始,並使用bounding-box迴歸。vgg16sppnet結果由[11]作者計算。sppnet在訓練和測試中使用五種量表。快速r-cnn在sppnet上的改進說明,儘管FAST r-cnn使用單尺度的訓練和測試,但對conv層的微調使MAP得到了很大的改進(從63.1%提高到66.9%)。R-CNN實現了66.0%的map。作為一個小問題,sppnet在Pascal沒有被標記為“困難”的例子進行了訓練。刪除這些例子提高了快速r-cnn map到68.1%.所有其他實驗都使用“困難”的例子。

4.4.訓練和測試時間 

        快速的訓練和測試時間是我們的第二大成果。表4比較了快速rcnn、r-cnn和sppnet之間的訓練時間(小時)、測試速率(每張影象秒數),以及voE 07上的地圖。對於vg 16,快速r-cnn處理影象的速度比沒有截斷SvD的r-cnn快146×,用它處理影象的速度為213×。訓練時間從84小時減少到9.5小時,縮短了9×10。與sppnet相比,快速rcnn列車vg 16 2.7×捷(9.5比25.5小時),測試速度7×快而不截斷SvD或10×快。快速r-cnn也消除了數百GB的磁碟儲存,因為它沒有快取功能。

      

表4.快速rcnn、r-cnn和sppnet中相同模型的執行時比較。快速r-cnn採用單尺度模式。sppnet使用[11]中規定的五個比例。†時間由[11]的作者提供。在NVIDIA K40 GPU上測量時間。

       截段的SvD:截斷的SvD可以減少30%以上的檢測時間,只需在特徵圖上下降一點點(0.3個百分點),並且無需在模型壓縮後執行額外的微調。Fig2說明利用vgg16層fc6層中25088×4096矩陣的前1024個奇異值和4096×4096fc7層的前256個奇異值如何在不損失MAP的情況下減少執行時。如果壓縮後再進行一次細調的話,map上會有更小的下降,從而可以進一步加快速度.。

                                  

圖2.在截斷SvD之前和之後進行vgg16的計時。在SvD之前,全連線層fc6和fc7佔45%的時間。

4.5.哪一層要細調?

       對於sppnet論文[11]中考慮的深度較小的網路,僅對全連線層進行微調似乎就足以獲得很好的精度。我們假設這一結果不會適用於非常深的網路。為了驗證微調conv層對於vgg16很重要,我們使用快速r-cnn來微調,但是凍結13個conv層,以便只有全連線層才能學習。此消融模擬單尺度sppnet訓練,將MAP從66.9%降至61.4%(表5)。本實驗驗證了我們的假設:通過ROI池化層進行訓練對於非常深的網非常重要。 

       這是否意味著所有的conv層都應該進行微調?總之,沒有。在較小的網路(s和m)中,我們發現conv1是泛型的和任務無關的(眾所周知的事實[14])。是否允許conv1學習,對map沒有任何意義。對於vgg16,我們發現只需要從conv3_1和以上更新層(13個conv層中的9個)。這是一種實用的觀察方法:(1)用conv2_1進行更新,使訓練速度比從conv3_1學習慢1.3倍(12.5比9.5小時);(2)從conv1溢位GPU記憶體中進行更新。從conv2_1向上學習時,map的差異僅為0.3點(表5,最後一欄)。所有快速r-cnn的結果在本文中使用vgg16微調層conv3_1及以上;所有的實驗模型s和m微調層conv2以上。

5.設計評價

       我們進行了實驗,以瞭解rcnn與r-cnn和sppnet相比有多快,以及評估設計決策。按照最佳實踐,我們在Pascal語音07資料集上進行了這些實驗。 

5.1.多工訓練有用嗎? 

       多工訓練是很方便的,因為它避免了管理一系列經過連續訓練的任務。但是它也有改善結果的潛力,因為任務通過共享表示(ConvNet)相互影響[2]。多工訓練能提高快速r-cnn的目標檢測精度嗎?

       為了測試這個問題,我們在eq中訓練只使用分類損失LCLS的基線網路。1(即設定λ=0)。這些基線是在表6每組的第一欄中為模型s、m和l列印的。請注意,這些模型沒有bounding-box迴歸器。接下來(每組第二列),我們採用多工損失(Eq)訓練的網路。1,λ=1),但我們在測試時禁用了bounding-box迴歸。這隔離了網路的分類精度,並允許將蘋果與基線網路進行比較。 

 

      在這三個網路中,我們觀察到多工訓練相對於單純的分類訓練提高了純分類的準確性。改進範圍為0.8~1.1個地圖點,多工學習顯示出一致的積極效果。

       最後,我們採用基線模型(只對分類損失進行訓練),在bounding-box迴歸層上定位,並使用L_{loc}對其進行訓練,同時保持所有其他網路引數的凍結。每組中的第三列顯示了這種分階段訓練方案的結果:MAP比第一列有所改進,但分階段訓練的效果不如多工訓練(每組第四列)。 

5.2.尺度不變性:蠻力還是技巧? 

       我們比較了兩種實現尺度不變目標檢測的策略:蠻力學習(單尺度)和影象金字塔(多尺度).在任何一種情況下,我們定義影象的尺度s為其最短邊的長度。

       對於某些影象,所有使用s=600畫素的單尺度實驗都可能小於600,因為我們將最長的影象側限制在1000個畫素,並保持影象的高寬比。選擇這些值是為了使vgg16在微調期間適合GPU記憶體。較小的模型不受記憶體約束,可以從更大的s值中受益;但是,為每個模型優化s不是我們主要關心的問題。我們注意到PASCAL影象平均為384×473畫素,因此單尺度設定通常會將影象提升1.6倍。因此,ROI池化層的平均有效步長為≈10畫素。

       在多尺度設定中,我們使用[11](s∈{480,576,688,864,1200})中指定的五個標度,以便於與sppnet進行比較。然而,我們限制最長的一面在2000畫素,以避免超過GPU記憶體。 

       表7顯示了用一種或五種尺度訓練和測試的模型s和m。也許在[11]中最令人驚訝的結果是單尺度檢測的效能幾乎和多尺度檢測一樣好。我們的發現證實了他們的結果:深度網路擅長直接學習尺度不變性。多尺度方法在計算時間上只提供了少量的地圖增長,但成本卻很高(表7)。在vgg16(模型l)的情況下,我們僅限於通過實現細節使用單個比例。然而,它實現了66.9%的map,略高於為r-cnn[10]報道的66.0%,儘管r-cnn使用“無限”尺度,即每個提案都被扭曲成標準大小。 

       由於單尺度處理提供了速度和精度之間的最佳折衷,特別是對於非常深的模型,在這個分割槽之外的所有實驗都使用單尺度的訓練和測試,s=600畫素。

5.3.我們需要更多的訓練資料嗎?

       當提供更多的訓練資料時,一個好的目標檢測器應該得到改進。朱等人[24]發現DPM[8]地圖僅在幾百到1000個訓練示例之後就飽和了。在這裡,我們用VOC12斜交集增加了VOC07的斜交集,大致將影象的數量增加到16.5k,以評估快速的r-cnn。訓練集的擴大提高了VOC07測試的MAP,從66.9%提高到70.0%(表1)。在此資料集上進行訓練時,我們使用60k的小批處理迭代,而不是40k。

       我們對VOC10和2012進行了類似的實驗,我們為其構建了一個21.5k影象的資料集,該資料集來自VOC07trainval、test和voc12trainval。在此資料集上進行訓練時,我們使用100 k SGD迭代,將學習速度降低0.1×每40k迭代(而不是每30k)。10和2012年,MAP分別從66.1%提高到68.8%,從65.7%提高到68.4%。

5.4.svms的表現優於Softmax嗎? 

       快速r-cnn使用在微調過程中學習到的Softmax分類器,而不是像在r-cnn和sppnet中所做的那樣訓練1-VS-REST線性svms。為了瞭解這一選擇的影響,我們在快速r-cnn中實施了帶有硬負挖掘的特設svm訓練。我們使用與r-cnn相同的訓練演算法和超引數。

                            

表8顯示,在所有三個網路中,Softmax略優於svm,比svm高0.1至0.8個百分點。這一效果很小,但它表明,“一次”微調比以往的多階段訓練方法是足夠的。我們注意到,與1-VS-REST svms不同的是,Softmax在得分ROI時引入了類間的競爭。

5.5.更多的建議總是更好嗎?

       有(廣義)兩種型別的物件檢測器:使用稀疏的物件建議集(例如選擇性搜尋[21])和使用密集的檢測器(例如DPM[8])。分類稀疏提案是一種級聯式[22],在這種型別中,提案機制首先拒絕了大量的候選方案,使分類器有一小部分待評估的集合。當應用於DPM檢測時,這種級聯提高了檢測精度[21]。我們發現,提出的分類器級聯也提高了快速的r-CNN的準確性。

       採用選擇性搜尋的質量模式,對每幅影象從1k到10k的方案進行掃描,每次對模型m進行再訓練和再測試。如果提案是一個純粹的計算角色,增加每個影象的建議數量不應該損害mAp。

                                         

       我們發現,隨著建議數的增加,map會上升,然後略有下降(圖)。3、實心藍線)。這個實驗表明,用更多的建議淹沒深層分類器並沒有幫助,甚至輕微地降低了準確性。

       如果沒有實際的實驗,這個結果是很難預測的。測量物件提案質量的最新技術是平均召回(Ar)[12]。當每幅影象使用固定數目的建議時,AR與map有很好的相關性,使用r-cnn的幾種建議方法。Fig3表明AR(實心紅線)與map的相關性不是很好,因為每幅影象的建議數是不同的。必須謹慎使用AR;更多提案所導致的更高的AR並不意味著MAP將增加。幸運的是,使用m模型進行訓練和測試所需時間不到2.5個小時。因此,快速r-cnn能夠有效、直接地評估物件提案圖,這比代理度量更可取。

       我們還研究了快速r-cnn時,使用密集產生的盒子(超過規模,位置,和縱橫比),在大約45K盒/影象。這個密集足夠豐富,當每個選擇性搜尋框被其最近的(IOU)密集框所取代時,MAP只下降1個點(到57.7%,圖)。3,藍色三角形)。 

        密集框的統計量與選擇性搜尋框的統計值不同。從2k選擇性搜尋盒開始,加入1000×{2,4,6,8,10,32,45}密集盒的隨機樣本,對map進行測試。對於每個實驗,我們重新訓練和再測試模型m。當新增這些密集框時,MAP下降的幅度比新增更多選擇性搜尋框時更大,最終達到53.0%。 

       我們還訓練和測試快速r-cnn只使用密集盒(45K/影象)。此設定產生的map為52.9%(藍色鑽石)。最後,我們檢查是否需要硬負挖掘的svms來處理密集盒分佈。svms做得更糟:49.3%(藍色圓圈)。 

5.6.初步的Ms coco結果

        我們將快速r-cnn(Vg 16)應用於Ms coco資料集[18],以建立一個初步的基線。我們在80k影象訓練集上訓練240 k迭代,並使用評估伺服器在“test-dev”集上進行評估。帕斯卡式地圖為35.9%;新的coco式AP(平均超過IOU閾值)為19.7%。 

六、結論

       本文提出了一種對R-CNN和sppnet進行快速更新的方法.除了報告最新的檢測結果外,我們還提供了詳細的實驗,希望能提供新的見解。特別值得注意的是,稀疏的目標建議似乎提高了檢測器的質量。在過去,這個問題花費太大(時間太長),但隨著r-cnn的快速增長,這個問題變得實際起來。當然,可能還存在一些尚未被發現的技術,這些技術允許密集的盒子執行以及稀疏的建議。這些方法,如果得到發展,可能有助於進一步加快目標檢測。

致謝。我感謝凱明,他,拉里齊尼克,和皮奧特美元提供了有益的討論和鼓勵。 

References [1] J. Carreira, R. Caseiro, J. Batista, and C. Sminchisescu. Semantic segmentation with second-order pooling. In ECCV, 2012. 5 [2] R. Caruana. Multitask learning. Machine learning, 28(1), 1997. 6 [3] K. Chatfield, K. Simonyan, A. Vedaldi, and A. Zisserman. Return of the devil in the details: Delving deep into convolutional nets. In BMVC, 2014. 5 [4] J. Deng, W. Dong, R. Socher, L.-J. Li, K. Li, and L. FeiFei. ImageNet: A large-scale hierarchical image database. In CVPR, 2009. 2 [5] E. Denton, W. Zaremba, J. Bruna, Y. LeCun, and R. Fergus. Exploiting linear structure within convolutional networks for efficient evaluation. In NIPS, 2014. 4 [6] D. Erhan, C. Szegedy, A. Toshev, and D. Anguelov. Scalable object detection using deep neural networks. In CVPR, 2014. 3 [7] M. Everingham, L. Van Gool, C. K. I. Williams, J. Winn, and A. Zisserman. The PASCAL Visual Object Classes (VOC) Challenge. IJCV, 2010. 1 [8] P. Felzenszwalb, R. Girshick, D. McAllester, and D. Ramanan. Object detection with discriminatively trained part based models. TPAMI, 2010. 3, 7, 8 [9] R. Girshick, J. Donahue, T. Darrell, and J. Malik. Rich feature hierarchies for accurate object detection and semantic segmentation. In CVPR, 2014. 1, 3, 4, 8 [10] R. Girshick, J. Donahue, T. Darrell, and J. Malik. Regionbased convolutional networks for accurate object detection and segmentation. TPAMI, 2015. 5, 7, 8 [11] K. He, X. Zhang, S. Ren, and J. Sun. Spatial pyramid pooling in deep convolutional networks for visual recognition. In ECCV, 2014. 1, 2, 3, 4, 5, 6, 7 [12] J. H. Hosang, R. Benenson, P. Dollar, and B. Schiele. What ´ makes for effective detection proposals? arXiv preprint arXiv:1502.05082, 2015. 8 [13] Y. Jia, E. Shelhamer, J. Donahue, S. Karayev, J. Long, R. Girshick, S. Guadarrama, and T. Darrell. Caffe: Convolutional architecture for fast feature embedding. In Proc. of the ACM International Conf. on Multimedia, 2014. 2 [14] A. Krizhevsky, I. Sutskever, and G. Hinton. ImageNet classification with deep convolutional neural networks. In NIPS, 2012. 1, 4, 6 [15] S. Lazebnik, C. Schmid, and J. Ponce. Beyond bags of features: Spatial pyramid matching for recognizing natural scene categories. In CVPR, 2006. 1 [16] Y. LeCun, B. Boser, J. Denker, D. Henderson, R. Howard, W. Hubbard, and L. Jackel. Backpropagation applied to handwritten zip code recognition. Neural Comp., 1989. 1 [17] M. Lin, Q. Chen, and S. Yan. Network in network. In ICLR, 2014. 5 [18] T. Lin, M. Maire, S. Belongie, L. Bourdev, R. Girshick, J. Hays, P. Perona, D. Ramanan, P. Dollar, and C. L. Zit- ´ nick. Microsoft COCO: common objects in context. arXiv e-prints, arXiv:1405.0312 [cs.CV], 2014. 8

[19] P. Sermanet, D. Eigen, X. Zhang, M. Mathieu, R. Fergus, and Y. LeCun. OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks. In ICLR, 2014. 1, 3 [20] K. Simonyan and A. Zisserman. Very deep convolutional networks for large-scale image recognition. In ICLR, 2015. 1, 5 [21] J. Uijlings, K. van de Sande, T. Gevers, and A. Smeulders. Selective search for object recognition. IJCV, 2013. 8 [22] P. Viola and M. Jones. Rapid object detection using a boosted cascade of simple features. In CVPR, 2001. 8 [23] J. Xue, J. Li, and Y. Gong. Restructuring of deep neural network acoustic models with singular value decomposition. In Interspeech, 2013. 4 [24] X. Zhu, C. Vondrick, D. Ramanan, and C. Fowlkes. Do we need more training data or better models for object detection? In BMVC, 2012. 7 [25] Y. Zhu, R. Urtasun, R. Salakhutdinov, and S. Fidler. segDeepM: Exploiting segmentation and context in deep neural networks for object detection. In CVPR, 2015. 1,