
目標檢測是計算機視覺的重要任務。DETR模型是面向這一任務的新型端到端方法。它集合了set prediction思想,以創新的object query結構,打破了之前傳統的基於人工錨點進行識別再進行重複結果合併的流程。我們將探討其中的實現原理以及後續的改進工作,這也將幫助我們思考與DETR類似的使用Transformer結構在計算機視覺領域的應用及其特點。
物體檢測的任務是找到影像中所有感興趣的物體並給出它們的所屬類標籤(category label)和邊界框(bounding box)。之前SOTA的物體檢測模型很多都是基於先檢測再合併的兩步(two-stage)流程,也就是先預測出很多包含物體的候選框,然後再做一次後處理,將很多本應該屬於同一物體的候選框集合成一個。這樣做的缺點是檢測模型本身由於要連線到後處理模組,無法做端到端的訓練和最佳化。同時候選框的生成通常基於預設錨點框(anchor box)的方法,它們是在影像的初始滑窗中所預設的一系列形狀和大小各異的矩形框,用來匹配和識別不同形狀特徵的物體。
DEtection TRansformer(DETR)[1]則打破這一舊正規化,它可以直接給出預測結果的集合(set prediction),本質上去掉了之前方法中人為給出預測框的步驟,這需要網路對影像的語義有更直接的理解能力,進而也避免了作為第二步的後處理過程,實現了對於物體檢測的集合預測任務的完全端到端的輸出。
模型結構如下圖1所示。它使用了一個接在CNN backbone後的Transformer encoder-decoder結構,其中的Transformer encoder接收展開後的影像深度特徵圖並做self-attention機制的處理,decoder部分則接收來自encoder的輸出結果和一組可學習的object queries,最終輸出預測結果的集合。Decoder中的cross-attention層非常重要,它讓該可學習object queries中的每個元素可以捕獲原影像中不同位置與大小特徵等的物體資訊。結合對於輸出結果與ground truth優秀的雙邊匹配規則,DETR得以在其包含的attention機制中自動去掉重複的檢測。

總體過程為輸入原始影像,輸出組(可自由限定)識別物體的資訊,每組資訊包含物體所屬類別和所在位置的邊界框,組資訊中不一定每組都包含了識別出的物體,如果識別出的物體總數小於,則組資訊中有些是空的,物體名稱和位置範圍都用空集表示。
有關模型結構更具體的內容,相關解讀很多,可參考相關資料及原文。
模型中很有意思的一點是Decoder部分中作為輸入的object queries實則是decoder部分的positional encoding。該positional encoding 非常重要,因為作為要最後變成輸出的物體識別的結果資訊組,它所學習到的資訊需要能夠體現各自在影像中的對應不同位置、大小的物體檢測能力。下圖2展示的是模型中object queries裡的其中20個元素所預測的最終結果的統計,其中每個小點都是該元素在某個資料(影像)上給出的識別物體的所在位置的中心點,顏色則代表識別的該物體的邊界框特性,綠色代表較小邊界框,紅色代表較大的垂直型邊界框,藍色則代表較大的水平型邊界框。可以看到作為decoder位置編碼輸入的object queries中的每個元素都基本代表了一種或多種位置及物體大小的識別模式。

前面提到DETR之所以能透過訓練實現直接端到端的物體檢測任務,除了模型本身結構外也源於它的輸出結果與ground truth優秀的雙邊匹配規則。訓練時的輸入為初始圖片和對應的標記好的圖中物體分類和對應位置邊界框。訓練時將不帶任何標記資訊的初始圖片輸入給DETR模型後,模型生成個指定數量的分類資訊與位置邊界框,下面的問題是怎樣計算模型輸出結果與標記好的待識別物體對應資訊間的損失函式,因為這兩組資訊中各自的物體識別的結果是沒有一一對應好的。
首先這兩組資訊的總數很可能是不匹配的,是我們預先規定的,為了有一定模型預測的冗餘能力,往往圖片中所含的可識別物體數量要更少。所以首先要將輸入的標記好的資訊組數量用空集填充至同樣為個。接下來我們將輸入資訊組與模型輸出資訊組找到一種兩兩匹配的方法,使得匹配後的損失函式最小,即
其中 是輸入資訊組, 是模型輸出資訊組, 是求損失函式時需要先找到的最佳匹配規則,透過調換輸入資訊組 的順序實現最佳匹配。
對於 組輸出資訊,和的匹配可能性總數是 ,這意味著如果用遍歷法找到最佳匹配是一個時間複雜度很高的問題。因此模型對於這個問題採用了匈牙利演算法(Hungarian algorithm),可以將匹配的時間複雜度降低到 ,具體可參考文獻[2]。
實驗中DETR取得了優秀的成績,在和SOTA的Fast R-CNN類模型的比較中,DETR取得了很具有競爭力結果,在引數量相當的情況下,DETR對較大物體的檢測能力比Fast R-CNN更優,對小物體檢測的能力則偏弱。
DETR無疑是一種很有啟發意義的新型檢測方法。作為很有潛力的模型,它一方面提供了面向相關研究的擴充套件空間,同時又留下了進一步提升效能的可能性。效能提升的研究主要集中在下述方向。
在DETR中,decoder embeddings和來自encoder輸出的global features間的作用是稠密的,這給模型帶來了很大的運算複雜度,相關的改進也層出不窮。
該模型包含一個可學習的deformable attention和一個多層級的feature maps,分別用於加速收斂和提高預測準確性。所謂deformable attention是在原有的attention機制中對於輸入加入了可學習的擾動偏移項,使得該attention只需要關注feature maps中的部分關鍵內容,替代原有的需要對feature maps整體都進行關注的普通attention機制。更具體一點,它對於attention中的query項只關注它鄰域內的部分key tokens,而不是計算它對於全域性所有key tokens的self-attention weights。同時多層級feature maps的引入使得影像特徵表示更加豐富,進一步提升了deformable attention的效果,其模型結構如下圖3所示。

Deformable DETR顯著提高了DETR的收斂速度,同時在檢測效果上也有了進一步提升,在多個指標上比原先的DETR更優。
觀察到有相似語義特徵和相近空間位置的元素在DETR的encoder中有相似的query-key attention map,因此可以透過減小encoder中attention map的queries數量來提高計算速度。透過一種雜湊演算法,ACT可以動態地將encoder queries進行聚類組合,再將組合後較少的原型類queries用於近似產生原先的query-key attention map。ACT在降低encoder中self-attention機制運算量的前提下對檢測準確性影響很小,同時無需重新訓練,可以直接用於預訓練好的模型最佳化。
DETR使用具有隨機初始的object queries隱式地學習了影像中的空間資訊,這與之前包含了具有初始空間先驗的目標檢測模型有著很大不同。於是考慮可以在DETR中加入類似的空間先驗資訊幫助提高模型收斂速度和預測準確性。
首先SMCA可以動態產生關於不同object query所對應的不同bounding box資訊(中心點位置和尺寸),將這樣的對應關係weight map新增在cross-attention map上後就可以直接指導object queries對於實際空間資訊的快速學習。不僅如此,在encoder中部分,SMCA還加入了多層級特徵提取。Encoder中的intra-scale self-attention用於學習層內的特徵,另外還有multi-scale self-attention用於學習全位置空間中的不同尺度特徵,並加以彙總。配合之前每個object query對應產生的具備尺度選擇能力的attention weight,每個不同的object query就可以自動檢測不同位置上不同尺度的目標。
DETR中的decoder部分含有cross-attention機制,它產生了作為decoder輸入的object queries和來自encoder的positional encoding之間的spatial attention map。作者發現該spatial attention map在訓練較少的模型中對於位置較為極端的關聯呈現出更大的相異性,於是設計了一個稱為conditional spatial embedding的空間先驗,用於表達位置較為極端的物體,從而縮窄了定位這些區域的空間範圍。
為了直接避免由Transformer結構中的cross-attention機制帶來的收斂速度慢的問題,人們也開始關注只含Transformer中encoder部分的物體檢測模型。
YOLOS的作者認為ViT的最大特點是在計算機視覺領域完全保留了Transformer的純粹sequence型輸入以及這意味著的基於全域性的attention機制,而沒有加入任何的類似CNN體現的鄰域空間依賴關係甚至金字塔式的多級鄰域特徵關係,儘管加入後兩者之後在具體視覺任務上往往能進一步提高效能。類似ViT那樣,YOLOS的具體結構如下圖4所示。

可見其中物體檢測結果的輸出來自於和圖片patches同時輸入的Det-Toks,它們都僅僅透過Transformer encoder層就完成了模型輸出。實驗中YOLOS取得了很不錯的成績,儘管和更復雜的DETR比較,YOLOS的絕對錶現要差一些,但作者也強調,YOLOS並不是為了在物體檢測上的最佳表現而設計,更多是想探究ViT模型在遷移到目標識別任務中的表現。而在經過對於ViT模型儘量少的調整後,YOLOS取得的結果已經很好地揭示了Transformer的通用性。
作者更直接地將作為patches輸入的圖片經過Transformer encoder後的輸出結果用於物體檢測。更具體地,將一張HxW的圖片轉成(H/32)x(W/32)後的feature map輸入Transformer encoder,其中每個feature的輸出都會進入一個detection head以產生一個最終的預測結果。為了解決該encoder-only結構對於大小各異的物體檢測能力較弱的問題,作者引入了FCOS(Fully Convolutional One-Stage Object Detector)用於輸入前的預處理,因而具體模型也叫做TSP-FCOS,另外還有引入R-CNN作前處理的TSP-RCNN。實驗中,在大部分指標上包含了隨機裁剪(random crop augmentation)機制的TSP-RCNN+取得了SOTA的結果。
還有一些其他的研究,比如再次引入two-stage流程的Two-Stage Deformable DETR[3]和Efficient DETR[9],或者引入自監督學習的Unsupervised Pre-training DETR(UP-DETR)[10]。另外將Transformer作為backbone用於影像分類已經取得了很多成功,這些Transformer-based backbone很容易被引入到其他如R-CNN等模型中完成更多密集型的預測任務。而在這些任務中,Transformer結構本身也獲得了改進,如多層級的PVT[11]可以從高到低處理不同解析度下的影像特徵,而如SWIN-Transformer[12]透過滑窗的attention機制可以在避免計算量平方型增長的情況下同樣實現短程和長程依賴關係的描述。
除了方法最佳化,DETR還被應用於目標分割任務中。首先DETR的檢測結果可作為分割模型的參考,其次透過新增分割query,改進的DETR模型也可以實現端到端的目標檢測分割任務。DETR用於影像分割是目前的熱點研究之一,限於篇幅不再展開。
這一由DETR開創的端到端的set prediction型的物體檢測方法打破了之前一直被採用的使用錨點框並分成兩步處理的物體檢測思路,是創新利用Transformer結構的很好的例子,也取得了優秀的效果,這也再次證明了Transformer結構在視覺領域的強大可拓展性。當然由於Transformer本身的特徵,DETR也有收斂較慢和對小目標檢測能力較弱等問題。後續人們對這些問題有了很多富有理論依據的改進,也讓我們對Transformer結構,特別是將其在視覺任務上運用時顯現的特徵有了更多的認識。
[1] Nicolas Carion, et al., ‘End-to-EndObject Detection with Transformers’, arXiv: 2005.12872
[2] Kuhn, H.W.: The Hungarian method for the assignment problem (1955)
[3] X. Zhu, et al., “Deformable DETR: Deformable transformers for end-to-end object detection,” in Proc. ICLR, 2021.
[4] M. Zheng, et al., “End-to-end object detection with adaptive clustering transformer,” arXiv: 2011.09315, 2020.
[5] P. Gao, at al., “Fast convergence of DETRwith spatially modulated co-attention,” in Proc. ICCV, 2021, pp. 3621–3630.
[6] D. Meng, et al., “Conditional DETR for fast training convergence,” in Proc. ICCV, 2021, pp. 3651–3660.
[7] Y. Fang, et al., “You only look at one sequence: Rethinking transformer in vision through object detection,” arXiv: 2106.00666, 2021.
[8] Z. Sun, et al., “Rethinkingtransformer-based set prediction for object detection,” in Proc. ICCV, 2021, pp. 3611–3620.
[9] Z. Yao, et al., “Efficient DETR: Improving end-to end object detector with dense prior,” arXiv: 2104.01318,2021.
[10] Z. Dai, et al., “Up-DETR: Unsupervisedpre-training for object detection with transformers,” in Proc. CVPR, 2021, pp.1601–1610.
[11] W. Wang, et al., “Pyramid vision transformer: A versatile backbone for dense prediction without convolutions,” in Proc. ICCV, 2021, pp. 568–578.
[12] Z. Liu, et al., “Swin transformer: Hierarchical vision transformer using shifted windows,” in Proc. ICCV, 2021,pp. 10 012–10 022.


壁仞科技研究院作為壁仞科技的前沿研究部門,旨在研究新型智慧計算系統的關鍵技術,重點關注新型架構,先進編譯技術和設計方法學,並將逐漸拓展研究方向,探索未來智慧系統的各種可能。壁仞科技研究院秉持開放的原則,將積極投入各類產學研合作並參與開源社群的建設,為相關領域的技術進步做出自己的貢獻。


關鍵詞
問題
資訊
作者
特徵
結果