UP-DETR:收斂更快!精度更高!華南理工 & 微信開源無監督預訓練目標檢測模型

語言: CN / TW / HK

關注公眾號,發現CV技術之美

寫在前面

基於Transformer編碼器-解碼器結構的DETR達到了與Faster R-CNN類似的效能。受預訓練Transformer在自然語言處理方面取得巨大成功的啟發,作者提出了一種基於 random query patch detection 預訓練代理任務的無監督預訓練DETR(UP-DETR)來用於目標檢測。

該模型在預訓練過程中,能夠從原始影象中檢測出查詢patch。在預訓練任務中,作者主要解決了兩個關鍵問題: 多工學習 多查詢定位

1)為了權衡代理任務中的分類和定位的重要性,作者凍結了CNN主幹網路,並提出了一個與patch檢測聯合優化的 patch特徵重構分支

2)為了實現多查詢定位,作者基於單查詢patch,將其擴充套件到具有 物件查詢shuffle注意力掩碼 的多查詢patch中,進一步縮小預訓練任務和目標檢測任務之間的gap。

實驗表明,UP-DETR顯著提高了DETR的效能,在目標檢測、one-shot檢測和全景分割任務上具有更快的收斂速度和更高的精度。

論文和程式碼地址

UP-DETR: Unsupervised Pre-training for Object Detection with Transformers

論文地址:https://arxiv.org/abs/2011.09094

程式碼地址:https://github.com/dddzg/up-detr

CVPR 2021 Oral 論文。

Motivation

DETR是目前目標檢測的一個新框架,它將目標檢測任務視為通過Transformer編碼器-解碼器的直接預測問題。在沒有手工設計的anchor機制和nms的情況下,DETR達到了與Faster R-CNN相似的效能。

然而,DETR需要大規模的訓練資料和更長的訓練時間。上表展示了DETR和UP-DETR在訓練過程中精度的變化,可以看出DETR的收斂速度更慢。此外,作者也發現,當DETR用於小規模的資料訓練時(比如:PASCAL VOC),它的模型效能會有顯著的下降。

通過設計良好的預訓練代理任務,無監督的預訓練模型在自然語言處理(如GPT和BERT)和計算機視覺(如MoCo和SwAV)上取得了快速的發展。在DETR中,CNN主幹網路是用ImageNet預訓練過的,能夠提取良好的視覺表示,但Transformer模組並沒有進行預訓練。

此外,雖然無監督視覺表徵學習在最近的研究中引起了廣泛關注,但現有的這些代理任務都不能直接應用於DETR的預訓練。其主要原因是 DETR主要關注空間定位學習,而不是基於影象例項或基於聚類的對比學習

受自然語言處理中無監督預訓練的啟發, 本文的目標是在一個大規模的資料集(如ImageNet)上對DETR中的Transformer進行無監督的預訓練,並將目標檢測作為下游任務進行處理 。然而,現有的代理任務大多是基於影象例項和聚類的學習,不適用於目標檢測。

因此,作者在本文中提出了一個新的用於目標檢測的代理任務—— random query patch detection ,並基於這個預訓練代理任務提出了無監督預訓練DETR(UP-DETR)。該任務從給定的影象中隨機裁剪多個查詢patch,並對Transformer進行檢測的預訓練,以預測給定的影象中這些查詢patch的邊界框。

在預訓練過程中,作者主要解決了兩個問題:

1) 多工學習 :目標檢測是目標分類和目標定位任務的耦合。為了避免查詢patch檢測破壞分類特徵,作者提出 凍結預訓練主幹網路 patch特徵重建 ,以保持Transformer的特徵識別。

2) 多查詢定位 :單查詢patch預訓練不能滿足目標檢測的要求,而直接將單查詢patch的版本拓展為多查詢版本又會存在一些問題。因此,對於多查詢patch,作者設計了 物件查詢shuffle 注意掩碼機制 ,來解決查詢patch和物件查詢之間的分配問題。

方法

UP-DETR包括預訓練和微調兩個過程:

1)Transformer在無任何人工標註的大規模資料集上進行無監督預訓練;

2)整個模型使用標註的資料進行微調,這與下游任務上的原始DETR相同。

UP-DETR的流程如上圖所示,首先一個凍結引數的CNN backbone用於提取視覺特徵 。然後,將位置編碼新增到特徵對映中,並傳遞到DETR中的Transformer編碼器。對於隨機裁剪的查詢patch,用具有全域性平均池化(GAP)的CNN主幹網路提取patch特徵,然後將其與目標查詢相加之後輸入到Transformer的解碼器中。在預訓練過程中,解碼器預測與查詢patch的位置相對應的邊界框。

3.1. Single-Query Patch

DETR為每個物件查詢(object queries)學習不同的空間位置,這表明不同的物件查詢關注於不同的位置區域和框大小。由於這些patch是從影象中隨機裁剪的,因此沒有任何關於查詢patch的位置和框大小的先驗。為了使得patch和查詢能夠對應,作者顯式地為所有物件查詢(M=3)指定單個查詢patch(M=1),如上圖所示。

在預訓練過程中,將patch特徵p新增到每個不同的物件查詢q中,解碼器生成N個預測來檢測p的邊界框在輸入影象中的位置和大小。與DETR相同,作者也是通過匈牙利演算法來進行查詢和patch之間的匹配。

解碼器的預測結果包含三個部分,其中為每個物件查詢分類的結果;為每個檢測框的中心位置和寬高,為重建之後的特徵(這一部分的重建損失函式會在下一節中介紹)。最後,預訓練的損失函式定義如下:

其中為物件查詢是否匹配的二分類損失函式;為用於定位的L1損失函式;是用於平衡分類任務和定位任務的損失函式。

3.1.1 Patch Feature Reconstruction

目標檢測是目標分類和目標定位任務的耦合,其中這兩個任務具有不同的特徵偏好。與DETR不同,作者提出了一個特徵重構損失函式來在定位預訓練任務中保持分類特徵的特性。因此,這個損失函式是為了將CNN的特徵輸入到Transformer中之後,依舊能夠保持CNN的特徵性質。的定義如下所示:

3.1.2 Frozen Pre-training Backbone

由於作者希望讓Transformer之後的特徵能和CNN的特徵儘可能相似,從而保留分類的特徵特性。因此,作者在預訓練的時候固定住了CNN Backbone的引數,並通過損失函式,使得Transformer之後的特徵與CNN提取的特徵儘可能相似。此外,穩定CNN主幹網路的引數更有利於Transformer的訓練,從而加速模型的訓練。

3.2. Multi-Query Patches

對於一般的目標檢測,每個影象中都有多個目標例項(例如,COCO資料集中每個影象平均有7.7個目標例項)。此外,當物件查詢的數量N較大時,單個查詢patch可能會收斂困難。因此,單查詢patch預訓練與多目標的檢測任務目標是不一致的。然而,將單個查詢patch擴充套件到多查詢patch也是不簡單的,因為M個查詢patch和N個物件查詢之間的如何對齊也存在一定的問題。

為了解決這個問題,作者將N個物件查詢劃分為M個組,其中每個查詢patch都按順序被分配給N/M個物件查詢。例如,第一個查詢patch被分配給第一組N/M個物件查詢,第二個查詢patch被分配給第二組N/M個物件查詢,以此類推。但是在這裡,預訓練需要滿足兩個要求:

1) 查詢patch的獨立性(Independence of query patches) :所有的查詢patch都是從影象中隨機裁剪出來的。因此,它們是獨立的,沒有任何關係。

2) 物件查詢的多樣性(Diversity of object queries) :在下游任務的物件查詢之間沒有顯式的組分配。換句話說,查詢patch在理想情況下可以新增到任意的N/M個物件查詢中。

3.2.1 Attention Mask

為了滿足查詢patch的獨立性,作者使用一個attention mask矩陣來控制不同物件查詢之間的互動。具體實現為,將mask矩陣新增到原來self-attention中softmax之後的attention矩陣上。mask矩陣定義如下:

其中,用來確定物件查詢是否與物件查詢進行互動。

3.2.2 Object Query Shuffle

在上述的描述中,物件查詢組都是人工分配的。但是,在下游目標檢測任務中,物件查詢之間沒有顯式的組分配。因此,為了模擬目標檢測的下游任務,作者在預訓練過程中隨機打亂所有物件查詢的排列。

如上圖所示,作者使用了基於注意力mask和物件查詢shuffle的多查詢patch預訓練。此外,為了提高模型泛化性,作者在預訓練過程中隨機將10%的查詢patch設定為0,類似於dropout。

實驗

4.1. PASCAL VOC Object Detection

上表顯示了PASCAL VOC資料集上DETR和UP-DETR的效能對比,可以看出,在小資料集上,UP-DETR的效能明顯優於DETR。

4.2. COCO Object Detection

上表顯示了COCO資料集上各種目標檢測方法的效能對比,可以看出UP-DETR能夠達到比較不錯的效能。

4.3. One-Shot Detection

上表展示了one-shot detection任務上的不同模型效能對比。與DETR相比,UP-DETR在見過和未見過的類上都顯著提高了DETR的效能。

4.4. Panoptic Segmentation

上表顯示了全景分割任務上,本文方法和SOTA方法的對比,可以看出,相比於DETR,UP-DETR依舊具備效能上的優勢。

4.5. Ablations

上表顯示了凍結CNN引數和特徵重建模組的消融實驗,可以看出,凍結CNN的引數對於模型效能的提升有非常大的作用。

上表顯示了四種不同UP-DETR模型在訓練過程中,模型效能的變化。可以看出(d) UP-DETR相比於其他UP-DETR模型結構具有更快的收斂速度和更高的精度。

4.6. Visualization

上圖顯示了不同查詢patch在預訓練過程中,得到的無監督結果。說明採用隨機查詢patch檢測的UP-DETR可以有效地學習目標定位的能力。

總結

在本文中,作者提出了一種新的預訓練代理任務—— random query patch detection ,來對DETR中的Transformer進行預訓練。在無監督預訓練下,UP-DETR在目標檢測、one-shot檢測和全景分割任務上顯著優於DETR。即使在有足夠訓練資料的COCO資料集上,UP-DETR仍然表現優於DETR。

近年來對無監督預訓練的研究主要集中在對比學習的特徵識別上,而沒有為目標檢測任務這類空間定位的任務設計專門的模組。UP-DETR填補了這一部分的空白,使得模型能夠通過學習空間位置來進行預訓練。

▊  作者簡介

研究領域:FightingCV公眾號運營者,研究方向為多模態內容理解,專注於解決視覺模態和語言模態相結合的任務,促進Vision-Language模型的實地應用。

知乎/公眾號:FightingCV

END

歡迎加入「目標檢測 交流群:point_down:備註: OD