Deep Neural Networks for Object Detection(翻譯)


0 - Abstract

  深度神經網絡(DNNs)最近在圖像分類任務上表現出了突出的性能。在這篇文章中,我們進一步深入探究使用DNNs進行目標檢測的問題,這個問題不僅需要對物體進行分類,並且還需要對各種各樣類別的物體進行精確定位。我們提出了簡單但依然有效的將目標檢測問題形式化為回歸問題從而來對物體邊界框進行定位。我們提出了一個多尺度推理程序(模型?),它可以通過應用少量網絡層來產生高分辨率的具有小誤差的目標檢測。並在Pascal VOC上展示了當前最好方法的效果。

1 - Introduction

  隨着我們更加關注完整圖像的理解,更加精確和細致的目標識別變得越來越重要。在本文內容中,我們不僅關注圖像的分類,同時也關注圖像中包含的目標的類別的精確評估及其坐標,該問題成為目標檢測問題。

  目標檢測的主要改進歸功於目標表示以及機器學習模型的提升。一個當前最先進的檢測系統突出例子是the Deformable Part-based Model(DPM)。它是基於仔細設計的表示以及目標在運動學上的分解而構建起來的圖解模型。對圖解模型進行分離的學習使得能夠對於各種各樣的目標類別構造高精度的基於部分(part-based)模型。

  結合人工手工設計表示的淺層分離訓練模型是關於目標分類的相關問題的最佳范例之一。然而,在過去幾年里,深度神經網絡(DNNs)作為有利的機器學習模型而出現了。

  DNNs展示了與傳統分類方法的主要區別。首先,它們的深度架構使得它們相比淺層網絡能夠學習更加復雜的模型。這種表示性以及健壯性訓練算法使得模型能夠脫離手工設計特征而學習到有效的目標表示。這通過了ImageNet的上千個類別的分類任務挑戰進行了經驗上的證明。

  在這篇文章中,我們探索DNNs對於目標檢測問題的能力,這其中我們不僅解決分類任務,也嘗試進行精確目標定位。我們在此提出的這個問題是具有挑戰性的,因為我們想要使用有限的計算資源在同一幅圖像中檢測出潛在的許多具有不同尺寸的目標實例。

  我們提出一種形式化,其能夠對於給定的一張圖像預測出多個目標的邊界框。更准確地說,我們將基於DNN的回歸形式化為輸出目標邊界框的二進制掩碼(以及部分盒子 and portions of the box as well),如圖1所示。此外,我們實現了一個簡單的邊界框推理去從掩碼中提取檢測結果。為了提高定位的准確率,我們DNN掩碼生成器應用在完整圖像的多尺度表示以及小數量的大圖片切片上,后續跟着一個精心制作的步驟(見於圖2)。用這種方法,只需要經過一些DNN回歸我們就獲得了當前最佳的邊界框定位性能。

圖1:基於DNN的回歸模型的目標檢測框圖

   

圖2:在對多個尺度和大圖像框的目標掩碼進行回歸后,我們進行目標邊界框提取。獲得的邊界框通過在子圖像(通過當前對象邊界框進行裁剪)上重復應用相同的程序來進行確認。為了簡潔起見,我們只顯示了完整的對象掩碼,但我們使用了所有五個對象的掩碼。

  在這篇文章中,我們證明了基於DNN的回歸模型是有能力學習特征的,其不只是勝任分類任務,也能夠捕獲有效的幾何信息。我們使用用來做分類任務的通用架構,而將其最后一層替換成一個回歸層。是我們有幾分驚喜同時也有效的是該網絡在一定程度能夠在編碼的同時保持不變性並且也能夠捕獲目標的位置。

  其次,我們介紹了多尺度邊界框推理加上一個精心設計的步驟來產生精確的檢測。用這種方法,我們能夠應用DNN來預測一個低分辨率的受限於輸出層尺寸掩碼而在像素方面的准確率上只有少量的誤差——每一張輸入圖片只應用了少量次數的該網絡。

  另外,現在的方法很簡單。它不需要手工設計一個模型去捕獲部分的以及它們之間明確的聯系的信息。這種簡單性的優點不僅容易適用於廣泛的類別,而且對於更大范圍的目標檢測中顯示了更好的性能——不管對於固定的還是變化的對象。在Sec. 7中在Pascal VOC挑戰上比較了該模型與當前最先進的檢測結果。

 2 - Relatd Work

  目標檢測的一個非常值得學習的案例是deformable part-based model,這是最突出的例子。這個方法綜合了一系列的分離訓練部分和一個稱為形象化架構的模型(pictorial structure)。它可以理解為一個二層模型——parts為第一層,而star model為第二層。與統一的網絡層DNNs相反的是,其工作是需要利用領域知識的——parts是基於手動設計Histogram of Gradients(HOG)的描述形式並且parts的架構是根據運動學上的動機設計的。

   已經提出的基於部分的模型和傳統模型的用於目標檢測和分析的深度架構被稱為組成模型,其中目標被表示為圖像基元的網絡層組成部分。一個顯著的例子是$And/Or$圖,其目標被建模為一棵樹,其中$And$結點表示不同部分而$Or$結點表示同一部份的不同模式。類似於DNNs,$And/Or$圖包括了多個層,其中低部分的層表示小部分的統一的圖像基元,而高部分的層表示目標的部分。類似的組成模型比DNNs更容易進行解釋。在另一方面,它們需要進行推理,而本文提出的DNN模型只需要單純的前向傳播而沒有潛在變量需要推理。

  檢測任務的組成模型的更深層樣例是基於片段作為基元的,使用Gabor過濾器或者大規模的HOG過濾器來關注其形狀。這類方法由於訓練的差異性而需要使用專門設計的學習程序從而具有傳統上的挑戰性。此外,在推理時間里,它們綜合了自底向上和自頂向下的處理過程。

  神經網絡(NNs)能夠被抽象考慮為組成模型,相比於上述模型,其結點相更具統一性和可推理性。將NNs應用於視覺問題上已經有數十年的歷史了,其中卷積NNs成為了最具有代表性的樣例。直到最近,這些模型才在大規模圖像分類任務中以DNNs的形式出現。然而它們應用於檢測是受限的。語法分析作為目標檢測的更進一步的細節,已經嘗試使用多層卷積網絡。醫學圖像分析使用了DNNs進行處理。然而這兩種方法都是使用NNs要么在每個像素上要么在超像素上作為局部部分分類。而我們的方法使用整張圖片作為輸入並且通過回歸來進行定位。這樣,這是一種NNs更加有效的應用。

  與我們最相似的方法跟我們有着相似的高層次目標表示但是使用了不一樣的特征、損失函數以及不用額外的機制去相同類別的多個實例間的聯系從而使用了更小的網絡。

3 - DNN-based Detection

  用於目標掩碼的基於DNN的回歸方法的核心如圖1所示。基於這個回歸模型,我們能夠對於整個和部分目標生成掩碼。一個單一的DNN回歸能夠給我們一張圖片中多個目標的掩碼。為了進一步提高定位的精度,我們將DNN定位器應用於一個小規模的大子窗口集合。整體的流如圖2表示,並且在其下面進行解釋。

4 - Detection as DNN Regression

  我們的網絡基於[14]提出的卷積DNN。它一共包含了7個層,前面五個層為卷積層,最后兩個層為全連接層。每一個成使用一個線性調整單元作為非線性變化。其中的三個卷積層有額外加入的最大池化層。更進一步的細節我們參考[14]。

  我們應用上述的統一架構來進行定位。我們不是采用softmax分類器作為最后一層,而是使用了回歸層,它可以產生一個對象的二進制掩碼$DNN(x;\Theta )\in R^N$,其中$\Theta$是網絡的參數,$N$是全部像素的總數量。因為網絡的輸出具有固定的維度,我們對於一個固定尺寸$N=d \times d$預測一個掩碼。在經過放縮到圖像尺寸之后,二進制掩碼表示了一個或者多個目標:如果這個像素位於一個給定類別的目標的邊界框之內,其值應為1,否則為0。

  這個網絡被訓練來最小化對於圖片x預測一個真實邊界掩碼$m \in [0, 1]^N$的$L_2$誤差:

$$\mathop{min}\limits_{\Theta}\sum_{(x,m)\in D}\begin{Vmatrix}(Diag(m+\lambda I)^{1/2}(DNN(x;\Theta)-m))\end{Vmatrix}^2_2$$

  其中的總和包括一個包含采用二進制掩碼表示的目標邊界框的訓練集合D。

  因為我們的基礎網絡是高度非凸的,因此我們的優化不能得到保證,所以有時候必須根據真實邊界框掩碼來對每一個輸出使用不同的權重調整損失函數。一個直覺是,大多數的目標相比於圖片尺寸顯得很小,因此網絡很容易被簡單的解決方案所困,即為每一個輸出都分配零值。為了避免這種不好的行為,通過一個參數$\lambda \in R^{+}$來增加真實邊界框掩碼中與輸出相應的非零值的權重是有用的:如果$\lambda$選擇一個小的值,輸出中有真實數值0的部分的誤差懲罰將小於真實數值為1的部分,因此這激勵網絡即時在信號很弱的情況下(目標很小)也盡力去預測非零的數值。

  在我們的思想中,我們使用感受野為$255 \times 255$的網絡,並且其輸出預測一個尺寸為$d \times d$的掩碼,其中$d=24$。

 5 - Precise Object Localization via DNN-generated Masks

  雖然前面提到的方法有能力生成高質量的掩碼,但是它們也有幾個額外的挑戰。第一,一個簡單的目標掩碼不能有效地區分不同物體。第二,由於輸出尺寸的限制,我們生成的掩碼比原始圖像小了許多。舉個例子,對於一張尺寸為$400 \times 400$的圖像並且$d=24$,每一個輸出會關聯到原始圖像中的一個$16 \times 16$的單元,這使得定位一個目標不夠精確,特別是對於一個小目標。最后,因為我們使用整張圖像作為輸入,小目標只會影響一小部分的輸入神經元因此使得其很難去識別。在下面,我們解釋我們怎么解決這些問題。

5.1 - Multiple Masks for Robust Localization

  為了解決多個接觸目標(multiple touching objects),我們生成了多個掩碼,每一個掩碼代表了一整個目標或者目標的部分。因為我們最后的目的是去產生一個邊界框,所以我們使用一個網絡去預測目標邊界框掩碼以及四個額外的網絡去預測邊界框的四個部分:上下左右,可以被描述為$m^h,h \in {full,bottom,top,left,right}$。這五個預測是過於完備的,但是也在一些掩碼中幫助減少了不確定性以及解決錯誤。更進一步,如果兩個相同類型的目標被放置於彼此旁邊,然后當至少有兩個生成五個掩碼而不會使得目標合並就可以識別出它們。這將可以允許檢測多個目標。

  在訓練的時候,我們需要將目標邊界框轉換為這五個掩碼。因為掩碼能夠比原始圖像小很多,我們需要根據網絡輸出的尺寸按比例縮小真實的邊界框掩碼。用$T(i,j)$表示網絡輸出$(i,j)$預測的在圖像中存在目標的矩形位置。這個舉行的左上角在$(\frac{d_1}{d}(i-1),\frac{d_2}{d}(j-1))$並且尺寸為$\frac{d_1}{d} \times \frac{d_1}{d}$,其中$d$是輸出掩碼的尺寸並且$d_1,d_2$是圖像的高度和寬度。在訓練過程中我們使用$m(i,j)$去預測邊界框$bb(h)$和$T(i,j)$相互覆蓋的部分:

$$m^h(i,j;bb)=\frac{area(bb(h) \cap T(i,j))}{area(T(i,j))}\ (1)$$

  其中$b(full)$對應於真實目標邊界框。對於余下的值$h$,$bb(h)$與原始邊界框的四個值相對應。

  注意到我們使用了整個目標邊界框以及邊界框的上下左右去定義五個不同的覆蓋類型。對於真實邊界框$bb$的結果$m^h(bb)$是在對於類別$h$的網絡中使用的。

  在這一點上,值得注意的是可以訓練一個輸出層產生上述五種信息的網絡來預測所有的掩碼。這支持擴展性。用這種方法,五個定位器將共享大部分層因此能夠共享特征,這看起來更自然,因為它們本來就用來處理相同目標的。一種更加激進的方法是對於多種不同的類別使用同一個定位器,這似乎也是可行的。

 5.2 - Object Localization from DNN output

  為了完成檢測過程,我們需要去對每一張圖像評估一系列邊界框。雖然輸出的分辨率小於輸入圖像,但是我們將二進制掩碼調整大小為與輸入圖像一樣的分辨率。任務的目的是在輸出的掩碼做表中評估出邊界框$bb=(i,j,k,l)$的左上角參數$(i,j)$以及右下角參數$(k,l)$。

  為了實現這個目的,我們使用了分數$S$來結合掩碼表示每一個邊界框的認可度從而來推斷出得分最高的邊界框。一個自然而然的認可度衡量是通過掩碼和邊界框覆蓋率來計算的:

$$S(bb,m)=\frac{1}{area(bb)}\sum_{(i,j)}m(i,j)area(bb\cap T(i,j))\ (2)$$

  我們對所有網絡輸出的索引$(i,j)$以及表示為$m=DNN(x)$的網絡輸出求和。如果我們在全部五種掩碼類型上擴展上面的分數,最后的分數公式如下:

$$S(bb)=\sum_{h \in halves}(S(bb(h),m^h)-S(bb(\bar{h}),m^h))\ (3)$$

   其中$halves={full,bottom,top,left,right}$表明了整一個邊界框以及它的四個部分。$h$表明其中一個$h$是另一個$h$的對邊,例如,一個上部的掩碼應該被上部掩碼覆蓋而不是下部。對於$h=full$,我們用$h$表示矩形回歸邊界$bb$,如果它超出了$bb$則分數會得到懲罰。綜上所述,一個邊界框如果包含了全部五個掩碼,則它的分數將會很高。

  我們使用公式(3)在可能的邊界框中盡可能的搜索。我們考慮了平均尺寸為圖片尺寸的$[0.1,...,0.9]$的邊界框以及在訓練圖像中通過k-means聚類評估的對於目標的邊界框的10種不同寬高比例。我們在圖像上通過5像素的步長移動上述90個邊界框。注意到公式(3)中,在計算了圖像的掩碼m之后,可以用四個操作進行有效的計算。操作的確切數量是5(2×#pixels+20×#boxes$),其中第一部分是計算整體掩碼計算的復雜性,第二部分則是用於計算邊界框分數。

  為了最后產生一系列檢測目標,我們使用了兩種類別的過濾器。第一種是通過公式(2)來保證邊界框的有效分數,例如高於0.5。我們通過訓練一個保留正確分類到當前檢測器的DNN分類器來對它們進行進一步篩選。最后,我們應用了非極大值抑制。

5.3 - Multi-scale Refinement of DNN Localizer

  對於網絡輸出的不足和問題有:(i)應用DNN定位器在不同尺度以及一小部分較大的子窗口上面;(ii)使用DNN定位器對高層推理邊界框的目標檢測進行確認(見於圖2)。

  在不同尺度上使用大窗口,我們產生了幾個掩碼並且將它們合並層更高層次的掩碼,每一個尺度對應一個掩碼。合適的尺度范圍取決於圖像的分辨率以及定位器的接收域尺度,我們希望圖像能夠被更高像素級別的網絡輸出所覆蓋,同時我們希望每一個目標落於至少一個窗口並且這些窗口的數量盡可能少。

  為了實現上述目的,我們使用了三種尺度:整個圖像以及兩個其它尺度以至於其窗口的尺寸是前面給定尺度的窗口尺寸的一半。我們使用每一種尺寸的窗口覆蓋圖片,這些窗口的重合度很小——它們面積的20%。這些窗口的數量相對較少並且在幾個尺度上覆蓋了圖像。最重要的是,最小尺度的窗口允許最高分辨率的定位。

  在推理過程紅,我們將DNN應用於所有窗口。注意到這不同於滑動窗口方法,因為我們需要對每一張圖片使用多個窗口評估,通常是小於40個窗口。對於每一個尺度產生的目標掩碼采用非極大值抑制融合。這給我們提供了三種不同尺寸圖像的掩碼,每一個觀察者觀察不同大小的目標。對於每一個尺度,我們應用Sec. 5.2提到的邊界框推理去獲得一系列的目標檢測結果。在我們的實現中,我們對於每一個尺度取最好的5個檢測結果,一共15個檢測結果。

  為了進一步提高定位效果,我們經過了第二階段的DNN回歸過程,將其稱為確認階段。DNN定位器應用於初始檢測階段識別出來的窗口——15個邊界框中的每一個放大1.2倍(應該是裁剪其周圍1.2倍的圖像)然后被作為確認網絡的輸入。在高分辨率的圖像中應用定位器能夠有效地提高檢測精度。

  完整的算法由算法1進行概述。

 6 - DNN Training

  我們網絡的一個引人注目的特點就是其簡易性:分類器被簡單的替換成一個掩碼生成器而不用其它前置的平滑的或者卷積架構。然而,它需要在一個巨大數量的訓練數據集上進行訓練:每一個位置幾乎都需要有不同尺寸的目標出現過。

  為了訓練掩碼生成器,我們從每一張圖片中生成幾千個樣本,並把樣本划分為60%負樣本以及40%正樣本。如果一個樣本沒有橫切任何一個目標的邊界框,則將其考慮為負樣本。正樣本是那些覆蓋了一些目標邊界框的至少80%區域的樣本。當裁剪圖象的寬度均勻分布在規定的最小尺度和整個圖像的寬度之間時,這些裁剪圖像被作為樣本。

  我們使用和分類器相似的准備步驟進行訓練,只在最后微調我們的檢測結果。加之,我們從每張圖片中取樣幾千個樣本:60%負樣本和40%正樣本。負樣本是那些和真實目標邊界框的Jaccard-similarity小於0.2的樣本,而正樣本是大於0.6的樣本,並且給其打上了最相似類別目標的類別。加入額外的負類可以充當一個正規化的作用並且提高過濾器的質量。在兩種情況中,沒一個類別的樣本數量都有1000萬規模。

  因為相比於分類任務,訓練定位任務更加困難,保證低層次過濾器的高質量權重初始化是非常重要的。為了實現這個目的,我們首先將網絡訓練成為用來做分類任務的,並且將其權重重用於定位任務。為了實現定位任務,我們對整個網絡進行微調,包括卷積層。

  網絡使用隨機梯度來訓練,並且使用ADAGRAD來自動評估網絡層的學習率。

7 - Experiments

  Dataset:我們在Pascal Visual Object Challenge (VOC) 2007測試數據集上評估了上述方法的性能。這個數據集包括了在超過20個類別上的大約5000張測試圖片。因為我們的方法的參數數量很多,我們讓其在大約有11000張圖片的VOC2012訓練和驗證數據集上進行訓練。在測試的時候,該算法為一張圖片產生一個集合的識別結果,結果包括邊界框以及該邊界框內包含目標的類別標簽。我們在每一種類別上使用正確率-召回率曲線以及平均正確率(AP)來衡量算法的性能。

  Evaluation:在完整VOC2007數據集上的完整評估見於表1。我們將我們的方法(稱為DetectorNet)與相關的其它三種方法進行比較。第一種方法是DNN分類器的滑動窗口版本。在訓練這個網絡為一個21通道的分類器(VOC類別數+背景)之后,我們使用在10個不同的尺度上的8個像個5個像素的相位定量來生成邊界框。最小的尺度是圖片尺寸的1/10,而最大的是覆蓋整張圖像。這使得每一張圖像能夠生成大約150000個邊界框。每一個邊界框被映射到$255 \times 255$的接收域。檢測分數由softmax分類器計算。我們通過非極大值抑制減少了邊界框的數量,把其中Jaccard similarity小於0.5的邊界框拋棄掉。在初始訓練之后,我們使用了兩個循環在訓練集上進行硬負樣本挖掘。這使得我們的初始訓練集增加了兩百萬個樣本並且減少了錯誤正樣本的比率。

表1:在Pascal VOC2007測試集中的平均准確率

  第二種方法是一個由[19]提出的三層組成模型,其可以視為一個深層架構。這種方法作為VOC2011的獲勝者其表現出了很好的性能。最后,我們與DPM進行了比較。

  雖然我們的比較有點不太公平,因為我們在更大的VOC2012訓練數據集上進行訓練,但我們展示了大多數模型的最好效果:我們在8個類別和其它類別中都表現出色。注意到,其可以通過調整滑動窗口而使得其表現與DetectorNet同等水平,但是網絡評估的絕對數量使得這個方法是不可行的,而DetectorNet只需要(#windows×#mask types)~120裁剪圖像/類別來做評估。在一個12核機器上,我們的實現對於每一個類別的每一張圖像需要5~6秒進行處理。

  與被廣泛引用的DPM方法相反,DetectorNet擅長於可變形的物體,例如鳥、貓、羊和狗。這說明它能夠以更好的方式處理更少的剛性對象,並且其在例如汽車、公交車等剛性對象上表現很好。

  我們在圖3中展示了目標檢測的例子,其中檢測邊界框和五個生成掩碼都是可見的。這可以看到,DetectorNet具有了不僅能夠找到大目標,並且能夠找到小目標的能力。生成的掩碼很好的定位並且幾乎沒有超出目標之外。類似於這種高質量的回饋是難以去思想的,但是在這種情況下是可能的因為DNN的表達能力以及其自然的內容合並能力。

  

圖3:對於每一張圖像,我們在其右側展示了它的兩個熱圖:第一張是與DNN full相應的輸出,第二張是以紅綠藍黃將四個部分掩碼進行編碼。此外,我們顯示了評估的目標邊界框。除了最后一行之外所有例子都正確檢測了。

  常見的誤檢測是因為相似的目標(例如圖3最后一行左邊目標)或者不精確定位(例如圖3最后一行右側目標)。第二個問題是因為訓練集中對於其的模糊不清的定位——例如在一些圖像中只有鳥的頭部可見而另一些鳥的整個身體都能看到。在一些情況下我們發現如果臉和身體都出現在一張圖像中它們會被一起檢測到(只打一個邊界框?)。

  最后,確認步驟極大的提高了檢測的質量。則能夠從圖4看出,我們展示了DetectorNet在檢測第一步以及經過確認步驟之后的准確率 vs 召回率對比。一個容易看到的顯而易見的提高主要是由於更好的定位真實正樣本分數的提高。

8 - Conclusion

  在這個工作中,我們利用了DNNs的表達性來做目標檢測。我們展示了簡單地將檢測任務抽象為一個基於DNN的目標掩碼回歸任務,將其運用到多尺度由粗到精的程序,其可以產生不錯的結果。這些結果在訓練時會產生一些計算花銷——要在每一個目標類別和掩碼類別上訓練網絡。更進一步的工作,我們通過使用一個簡單的網絡去檢測不同類別的目標從而減少開銷並且能夠擴展到更多數量的類別。

 

  


免責聲明!

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



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