1. 程式人生 > >SOD-MTGAN: Small Object Detection via Multi-Task Generative Adversarial Network

SOD-MTGAN: Small Object Detection via Multi-Task Generative Adversarial Network

SOD-MTGAN: Small Object Detection via Multi-Task Generative Adversarial Network

基於多工GAN的細小物體檢測

摘要

物體檢測是計算機視覺中的一個基本而重要的問題。雖然在大規模檢測基準(例如COCO資料集)中對大/中型物體取得了令人印象深刻的結果,但小物體的效能遠遠不能令人滿意。原因是小物體缺乏足夠詳細的外觀資訊,這可以將它們與背景或類似物體區分開來。為了解決小目標檢測問題,我們提出了一種端到端的多工生成對抗網路(MTGAN)。在MTGAN中,生成器是一個超解析度網路,可以將小模糊影象上取樣到精細影象中,並恢復詳細資訊以便更準確地檢測。判別器是多工網路,其描述具有真/假性得分,物件類別得分和邊界框迴歸偏移的每個超分辨影象塊。此外,為了使生成器恢復更多細節以便於檢測,判別器中的分類和迴歸損失在訓練期間反向傳播到生成器中。在具有挑戰性的COCO資料集上進行的大量實驗證明了所提出的方法在從模糊的小影象中恢復清晰的超分辨影象的有效性,並表明檢測效能,特別是對於小尺寸物體,提高了state-of-the-art。

 

1.引言

物體檢測是計算機視覺中的一個基本而重要的問題。 它通常是許多實際應用的關鍵步驟,包括影象檢索,智慧監控,自動駕駛等。在過去的幾十年中,物件檢測已經得到了廣泛的研究,並且隨著深度卷積神經網路的出現,已經取得了巨大的進步。。 目前,基於CNN的物件檢測有兩個主要框架:(1)one-stage,如YOLO [27]和SSD [24],它們以密集的方式應用物件分類器和迴歸器而無需物件修剪; (2)two-stage,如Faster-RCNN [29],RFCN [3]和FPN [22],它們提取建議目標,然後按照提案分類和迴歸。

圖1. FPN檢測器 [22]在COCO資料集的大,中,小子集上的所有類別的效能總體誤差分析[23]。 每個子影象中的圖是在[23]中定義的不同評估設定下的一系列精確回憶曲線。 從比較中我們可以看出,小型和大型/中型物體的效能之間存在很大差距。

 

如圖1(a)和1(b)所示,兩個框架的目標檢測器在大規模檢測基準(例如COCO資料集[23])中對大/中尺寸的物體取得了令人印象深刻的結果。然而,小尺寸物體(在[23]中定義)的效能遠非令人滿意,如圖1(c)所示。從比較中我們可以看出,小型和大型/中型物體的效能之間存在很大差距。小物體檢測(SOD)的主要困難在於小物體缺少將它們與背景(或類似類別)區分開來所需的外觀資訊並且實現更好的定位。為了在這些小物件上獲得更好的檢測效能,SSD [24]利用中間轉換特徵對映來表示小物件。然而,淺細粒度轉換特徵圖不那麼具有辨別力,這導致許多假陽性結果。另一方面,FPN [22]使用特徵金字塔來表示不同尺度的物件,其中具有強語義資訊的低解析度特徵圖被上取樣並與具有弱語義資訊的高解析度特徵圖融合。但是,上取樣可能會產生偽像,這會降低檢測效能。

 

為了解決SOD問題,我們提出了一種基於經典生成對抗網路(GAN)框架的統一端到端卷積神經網路,該框架可以結合到任何現有的檢測器中。根據開創性的GAN工作 [9, 21] 的結構,我們的模型中有兩個子網路:生成器網路和判別器網路。在生成器中,引入了超解析度網路(SRN)以將較小的目標影象上取樣到更大的比例。與使用雙線性插值直接調整影象大小相比,SRN可以生成更高質量的影象,並且在大的放大因子(在我們當前實現中為4倍)時產生更少的偽像。在判別器中,我們引入了物件檢測任務的分類和迴歸分支。真實的和生成的超解析度影象通過判別器網路,該網路共同區分它們是真實的還是生成的高解析度影象,確定它們屬於哪個類,並且細化預測的邊界框。更重要的是,分類和迴歸損失進一步反向傳播到生成器,這鼓勵生成器產生更高質量的影象,以便更容易分類和更好的定位。

 

貢獻。 本文主要做出以下三點貢獻。 (1)提出了一種用於小物體檢測的新型統一端到端多工生成對抗網路(MTGAN),可以與任何現有的檢測器結合使用。 (2)在MTGAN中,生成器網路生成超解析度影象,並引入多工判別器網路,以同時區分真實的高解析度影象與偽造影象,預測物件類別和細化邊界框。 更重要的是,分類和迴歸損失被反向傳播,以進一步指導生成器網路產生超解析度影象,以便更容易分類和更好的定位。 (3)最後,我們證明了MTGAN在物體檢測管道中的有效性,其中檢測效能比幾個最先進的基線檢測器(主要用於小物體)提高了很多。

 

2.相關工作

2.1 通用目標檢測

作為經典主題,在過去十年左右的時間裡已經提出了許多物體檢測系統。 傳統的物體檢測方法基於手工製作的特徵和可變形的部件模型(DPM)。 由於手工製作的特徵的有限表現,傳統的物體探測器記錄了低的效能,特別是在小尺寸的物體上。

近年來,隨著包括CNN在內的深度神經網路的復興,影象分類和場景識別的優越效能得以實現[19,32,34]。類似地,由於CNN [7]從大規模影象資料集中學到的更豐富的外觀和空間表示,物體檢測的效能得到了顯著提升。目前,基於CNN的物件檢測器可以簡單地歸類為屬於兩個框架之一:two-stage框架和one-stage框架。基於區域的CNN (RCNN) [7] 可以被認為是用於物體檢測的兩階段框架的里程碑,並且它已經實現了最先進的檢測效能。每個區域提案都在RCNN [7]中單獨處理,這是非常耗時的。之後,在Fast-RCNN [6]中引入了ROI-Pooling,它可以在提案提取和分類步驟之間共享計算,從而大大提高了效率。通過端到端地學習這兩個階段,更快的RCNN [29]在檢測效能和計算效率方面都取得了進一步的進步。但是,該框架的所有檢測器在COCO基準測試中對小物件的效能都不令人滿意,因為它們沒有任何明確的策略來處理這些物件。為了更好地檢測小物體,FPN [22]通過自上而下的路徑和橫向連線將低解析度,語義上強大的特徵與高解析度,語義上較弱的特徵相結合,其中學習的轉換特徵對映預期包含強語義小物件的資訊。因此,FPN在檢測小物體的任務中表現出優於快速RCNN的效能。然而,FPN中的低解析度特徵圖被上取樣以建立特徵金字塔,該過程傾向於將偽像引入特徵中並因此降低檢測效能。與FPN相比,我們提出的方法採用超解析度網路從低解析度影象生成高解析度(4倍向上縮放)的影象,從而避免了FPN中上取樣運算元引起的偽像問題。

在一階段框架中,檢測器直接將錨分類為特定類,並以密集方式迴歸邊界框。 例如,在SSD [24](典型的單級檢測器)中,高解析度的低階中間轉換特徵圖用於檢測小物件。 然而,這些轉換特徵通常僅捕獲沒有強語義資訊的基本視覺模式,這可能導致許多誤報結果。 與SSD類探測器相比,我們的判別器使用深度強大的語義特徵來更好地表示小物體,從而降低誤報率。

2.2 生成對抗網路

在開創性的工作[9]中,引入了生成對抗網路(GAN)以從隨機噪聲輸入生成逼真的影象。 GAN在影象生成[4],影象編輯[35],表示學習[25],影象超解析度[21]和風格轉移[16]方面取得了令人矚目的成果。最近,GAN已成功應用於超解析度(SRGAN)[21],從而產生了令人印象深刻且有希望的結果。與自然影象上的超解析度相比,COCO基準中的特定物件的影象例如充滿了多樣性(例如模糊,姿勢和照明),因此,使得對這些影象的超解析度處理更具挑戰性。事實上,SRGAN生成的超解析度影象特別適用於低解析度的小物體,這對於訓練精確的物體分類器沒有幫助。為了緩解這個問題,我們在生成器的損失函式中引入了新的loss,即分類和迴歸loss在我們提出的MTGAN中反向傳播到生成器網路,這進一步指導生成器重建更精細的超解析度影象,以便更容易分類和更好的本地化。

3. MTGAN

圖2.我們提出的小物體檢測系統(SOD-MTGAN)的pipeline。 (A)影象被送入網路。 (B)基線檢測器可以是任何型別的檢測器(例如,更快的RCNN [29],FPN [22]或SSD [24])。它用於從輸入影象中裁剪正(即物件)和負(即背景)示例,用於訓練生成器和判別器網路,或生成用於測試的感興趣區域(ROI)。 (C)正面和負面的例子(或ROI)由現成的檢測器產生。 (D)生成器子網重建低解析度輸入影象的超分辨版本(4×放大)。 (D)判別器網路將實際與生成的高解析度影象區分開來,同時預測物件類別並對物件位置進行迴歸。判別器網路可以使用任何典型的架構,如AlexNet [20],VGGNet [32]或ResNet [12]作為骨幹網路。我們在實驗中使用ResNet-50或ResNet-101。

 

在本節中,我們將詳細介紹所提出的方法。 首先,我們給出了經典GAN網路的簡要描述,以便為描述我們提出的用於小物件檢測的多工GAN(MTGAN)奠定上下文。 然後,描述了我們框架的整個架構(參見圖2的插圖)。 最後,我們分別介紹了MTGAN網路的每個部分,並定義了用於訓練生成器和判別器的損失函式。

3.1 GAN

表1.生成器和判別器網路的體系結構。 “conv”和“layer *”表示卷積層,“x5”表示具有5個卷積層的殘差塊,“de-conv”表示上取樣卷積層,“2x”表示上取樣的因子 在圖2中,“fc”表示完全連線的層。 請注意,我們僅使用ResNet-50釋出判別器網路的體系結構。

 

GAN [9] 通過對抗過程同時學習生成器網路G和判別器網路D. 訓練過程交替地優化生成器和判別器,它們彼此競爭。 生成器G被訓練以產生樣本以欺騙判別器D,並且訓練D以區分由G產生的真實影象和偽影象。待優化的GAN損失定義如下:

其中z是隨機噪聲,x表示實數,θ和ω分別表示D和G的引數。 在這裡,G試圖最小化目標函式,而D試圖將其最大化為等式(2):

與[9,21]類似,我們設計了一個生成器網路Gw,它以交替的方式優化,具有判別器網路Dθ,尋求聯合解決小物體檢測的超解析度,物體分類和邊界框迴歸問題。 因此,整體損失定義如下:

其中I LR和I HR分別表示低解析度和高解析度影象。 u是類標籤,v是地面實況邊界框迴歸目標。與[9]不同,我們的生成器的輸入是低解析度影象而不是隨機噪聲。與[21] 相比,我們在判別器中有多個任務,我們將生成的超分辨影象與真實高解析度影象區分開來,對物件類別進行分類,並共同迴歸物件位置。具體地,方程(3)背後的一般思想是它允許人們訓練生成器G,其目的是欺騙可區分的判別器D,該判別器被訓練以將超分辨影象與真實高解析度影象區分開。此外,我們的方法(SOD-MTGAN)通過新增兩個並行分支來擴充套件經典SRGAN [21],以對類別進行分類並對候選ROI影象的邊界框進行迴歸。此外,判別器中的分類損失和迴歸損失被反向傳播到生成器,以進一步促進它產生超分辨影象,其也適合於更容易分類和更好的定位。在下面的小節中,我們將詳細介紹MTGAN的體系結構和訓練損失。

3.2 網路結構

 

我們的生成器將低解析度影象作為輸入,而不是隨機噪聲,並輸出超解析度影象。 出於物件檢測的目的,判別器被設計為將生成的超分辨影象與真實高解析度影象區分開來,對物件類別進行分類,並聯合迴歸位置。

生成器網路(Gw)。 如表1和圖2所示,我們採用深度CNN架構,其在[13]中的影象去模糊和[1]中的面部檢測中顯示出有效性。 與[13]不同,我們的生成器包括上取樣層(即表1中的反轉)。 在網路中有兩個上取樣的分數跨度轉換層,三個轉換層和五個殘餘塊。 特別是,在這些殘差塊中,我們使用兩個帶有3x3核心和64個特徵對映的轉換層,然後是批量歸一化層[15]和引數化ReLU [11]作為啟用函式。 每個去卷積層由學習的核心組成,它將低解析度影象上取樣到2倍超解析度影象,這通常比通過插值方法重新調整相同影象大小更好[5,17,33]。

 

我們的生成器首先通過去卷積層對包括物件和背景候選ROI影象的低解析度小影象進行上取樣到4×超分辨影象,然後執行卷積以產生相應的清晰影象。 生成器的輸出(清晰的超分辨影象)更容易使判別器分類為偽或真實並執行物件檢測(即物件分類和邊界框迴歸)。

判別網路(Dθ)。 我們使用ResNet-50或ResNet-101 [12]作為判別器中的骨幹網路,表1顯示了ResNet-50網路的體系結構。 我們在骨幹網的最後一個平均池層後面添加了三個並行的f c層,它們分別起到區分真實高解析度影象和生成的超解析度影象,分類物件類別和迴歸邊界框的作用。 對於這個特定的任務,第一個fc層(稱為f cGAN)使用sigmoid損失函式[26],而分類fc層(稱為f ccls)和迴歸fc層(稱為f creg)使用softmax和平滑L1損失[ 6]功能,分別。

判別器的輸入是高解析度ROI影象,f cGAN分支的輸出是輸入影象是真實影象的概率(pGAN),f ccls分支的輸出是概率(pcls =(p0) ,...,pK))輸入影象是K + 1個物件類別,f creg branch的輸出是邊界框迴歸偏移(t =(tx,ty,tw,th)) ROI候選物件。

 

3.3 總損失函式

我們採用了一些最先進的GAN方法[21,16]的畫素和對抗性損失來優化我們的發生器。 與[21]相比,我們刪除了特徵匹配損失,以降低計算複雜度,同時不會犧牲太多的生成效能。 此外,我們將分類和迴歸損失引入生成器目標函式,以驅動生成器網路從小尺度影象中恢復精細細節,以便於檢測。

畫素損失。 我們的生成器網路的輸入是小ROI影象而不是隨機噪聲[9]。 強制生成器的輸出(即超分辨影象)接近地面實況影象的一種自然而簡單的方法是通過最小化畫素方式的MSE損失,並將其計算為方程(4):

其中我LR i,Gw(I LR i)和I HR i分別表示小的低解析度影象,生成的超解析度影象和真實的高解析度影象。 G表示生成器網路,w表示其引數。 然而,眾所周知,MSE優化問題的解決方案通常缺乏高頻內容,這導致影象模糊,紋理過於平滑。

對抗性損失。 為了獲得更真實的結果,我們將對抗性損失[21]引入客觀損失,定義為方程(5):

對抗性損失促使網路產生更清晰的高頻細節,以便欺騙鑑別器D.在方程(5)中,Dθ(Gw(I LR i))表示解析影象Gw(I LR i)的概率 一個真正的高解析度影象。

分類損失。 為了完成物件檢測的任務並使生成的影象更容易分類,我們將分類損失引入整體目標。 設{I LR i,i = 1,2,....。。 ,N}和{I HR i,i = 1,2 ,.。。 ,N}分別表示低解析度影象和真實高解析度影象,{ui,i = 1,2,...。。 ,N}代表它們對應的標籤,其中ui∈{0,...,K}表示物件類別。 因此,我們將分類損失表述為:

其中pI LR i = Dcls(Gw(I LR i))和pIHR i = Dcls(I HR i))分別表示生成的超解析度影象和屬於真實類別ui的真實高解析度影象的概率。

在我們的方法中,我們的分類損失起著兩個作用。 首先,它引導鑑別器學習分類器,該分類器將高解析度影象(儘管是生成的超解析度和真實高解析度影象)分類為真實或假的。 其次,它促使生成器恢復更清晰的影象,以便於分類。

迴歸損失。 為了實現更準確的定位,我們還向方程(7)中定義的目標函式引入了一個邊界框迴歸損失[6]:

其中,

其中vi =(vi,x,vi,y,vi,w,vi,h)表示真正的邊界框迴歸目標的元組,ti =(ti,x,ti,y,ti,w,ti, h)表示預測的迴歸元組。 t HR i和t SR i分別表示第i個真實高解析度和生成的超分辨影象的元組。 當ui≥1時,括號指示器功能[ui≥1]等於1,否則為0。 有關回歸損失的更詳細描述,請參閱讀者[6]。

與分類損失類似,我們的迴歸損失也有兩個目的。 首先,它鼓勵鑑別器迴歸從基線檢測器裁剪的候選物件的位置。 其次,它促使生成器生成具有精細細節的超解析度影象,以實現更準確的定位。

目標函式。 基於上述分析,我們將方程(5)中的對抗性損失,方程(6)中的分類損失和方程(7)中的迴歸損失與方程(4)中的逐畫素MSE損失相結合。 因此,我們的GAN網路可以通過優化方程(9)中的目標函式來訓練:

其中α,β和γ是權衡不同條款的權重。 這些權重在我們的實驗中交叉驗證。

直接優化關於用於更新發生器G的w的方程(9)使得w快速地發散到無窮大,因為大的w總是使得目標獲得大的損失。 為了更好的行為,我們以固定點優化的方式優化目標函式,就像之前的GAN工作[21,16]一樣。 具體地說,我們優化發生器G的引數w,同時保持鑑別器D固定,然後更新其引數θ,保持發生器固定。 以下是產生的兩個子問題,這些子問題被迭代優化為:

方程(10)中發生器G的損失函式包括對抗性損失方程(5),MSE損失方程(4),分類損失方程(6)和迴歸損失方程(7),強制重建影象類似於 具有高頻細節的真實,物件特定和可本地化的高解析度影象。 與之前的GAN相比,我們將生成的超分辨物體影象的分類和迴歸損失新增到生成器損耗中。 通過引入這兩個損失,從生成器網路恢復的超分辨影象比僅使用對抗和MSE損耗優化的影象更加真實。

方程(11)中鑑別器D的損失函式引入了分類損失Eq(6)和迴歸損失Eq(7)。 分類損失的功能是對真實高解析度和生成的超分辨影象的類別進行分類,這與GAN [9]的基本公式並行,以區分真實或生成的高解析度影象。 在小物體檢測領域,眾所周知,一些畫素漂移可能使預測的邊界框不能滿足評估標準。 因此,我們將回歸損失(迴歸分支)引入鑑別器網路以實現更好的定位。

 

4. 實驗

在本節中,我們在具有挑戰性的公共物體檢測基準(即COCO資料集[23])上驗證了我們提出的SOD-MTGAN探測器,其中包括一些消融研究和與其他現有技術探測器的比較。

4.1 訓練和驗證集

我們使用COCO資料集[23]進行所有實驗。 如[23]中所述,資料集中有大於/大型物件的小物件,大約41%的物件很小(區域<322)。 因此,我們使用此資料集進行培訓並驗證所提出的方法。 對於物體檢測任務,在自然環境和日常生活中拍攝125K影象(即具有多樣性的物體)。 隨機選擇80K / 40K / 5K資料進行訓練,驗證和測試。 在之前的工作[2,22]之後,我們使用80k訓練影象和35k驗證影象(trainval135k)的子集進行訓練,並報告其餘5k驗證影象(迷你)的消融結果。在評估期間,COCO資料集根據物件的區域分為三個子集(小,中和大)。 中型和大型子集包含分別大於322和962畫素的物件,而小子集包含面積小於322畫素的物件。 在本文中,我們專注於使用我們提出的MTGAN網路進行小物體檢測。 我們使用標準COCO指標報告最終檢測效能,其中包括AP(平均所有IoU閾值,即[0.5:0.05:0.95]),AP50,AP75和APS,APM,APL(不同規模的AP)。

4.2 實現細節

在生成器網路中,我們設定權衡權重α= 0.001,β=γ= 0.01。 生成器網路從頭開始訓練,每層的權重用零均值高斯分佈初始化,標準偏差為0.02,偏差用0初始化。為了避免不理想的區域性最優,我們首先訓練一個基於MSE的SR網路 初始化生成器網路。 對於鑑別器網路,我們使用在ImageNet上預訓練的ResNet-50或ResNet-101 [12]模型作為我們的骨幹網路,並新增三個並行的fc層,如第3.2節所述。 fc層由零均值高斯分佈初始化,標準偏差為0.1,偏差用0初始化。

表2.我們提出的方法SOD-MTGAN相對於COCO迷你子集的基線方法的檢測效能(AP)。 [8]提供了更快的RCNN [29]和Mask-RCNN [10]的AP效能。 顯然,SOD-MTGAN優於基線方法,特別是在AP效能增加超過1.5%的小子集上。

我們的基線檢測器基於更快的RCNN和ResNet50-C4 [12]以及FPN和ResNet101 [22]。 基線檢測器的所有超引數都來自[10]中的設定。 為了訓練我們的發生器和鑑別器網路,我們使用我們的基線檢測器從COCO [23] trainval135k中設定正負ROI示例。 通過使用因子4的雙三次插值對高解析度影象進行下采樣來生成相應的低解析度影象。在測試期間,我們的基線檢測器裁剪100個ROI,然後將其饋送到我們的MTGAN網路以產生最終檢測。

在訓練期間,我們使用Adam優化器[18]作為生成器,使用SGD優化器作為鑑別器網路。 SGD的學習率最初設定為0.01,然後在每40k小批量後減少10倍。 在最多80k次迭代後終止訓練。 我們交替更新發生器和鑑別器網路,如[9]。 我們的系統在PyTorch中實現,原始碼將公開發布。

4.3 ablation 研究

我們首先將我們提出的方法與基線檢測器進行比較,以證明MTGAN對小物體檢測的有效性。 此外,我們通過比較具有/不具有該分支的AP效能來驗證迴歸分支在鑑別器網路中的積極影響。 最後,為了驗證每個損失(對抗性,分類和迴歸)對發生器的損失函式的貢獻,我們還通過逐漸將它們中的每一個逐漸新增到畫素方式的MSE損失來進行消融研究。 除非另有說明,否則所有消融研究都使用ResNet-50作為鑑別器中的骨幹網路。

多工GAN(MTGAN)的影響。表2(第2行與第3行以及第4行與第5行)將基線檢測器的效能與COCO迷你子集上的方法進行比較。從表2中,我們觀察到我們的MTGAN與ResNet-50的效能優於Faster-RCNN(ResNet-50-C4檢測器)在小子集上的相當大的餘量(即AP中的1.5%)。同樣,使用ResNet-101的MTGAN比使用ResNet-101的FPN檢測器提高了1.6%。原因是基線檢測器在提取轉換特徵圖時執行下采樣操作(即,用步幅2進行卷積)。小物件本身包含有限的資訊,大部分詳細資訊將在下采樣後丟失。例如,如果輸入是16×16畫素物件ROI,則結果是1×1 C4特徵對映,並且沒有為C5特徵對映保留任何內容。這些有限的轉換特徵對映降低了這些小物件的檢測效能。相比之下,我們的方法將低解析度影象上取樣到精細尺度,從而恢復詳細資訊並使檢測成為可能。圖3顯示了我們的MTGAN生成器生成的一些超解析度影象。