完全基於Transformer的目標檢測器,ICLR匿名論文實現視覺、檢測統一


機器之心報道

編輯:陳萍

一種新的整合視覺和檢測Transformer 的目標檢測器ViDT。

Transformer 在NLP 任務中取得不錯的發展,許多研究將其引入到計算機視覺任務中。毫不誇張的說,Transformer 正在改變計算機視覺的格局,尤其是在識別任務方面。例如Detection transformer 是第一個用於目標檢測的、端到端的學習系統,而vision transformer 是第一個完全基於transformer 的影像分類架構。在本文中,一篇被ICLR 2022 接收的匿名論文整合了視覺和檢測Transformer (Vision and Detection Transformer,ViDT) 來構建有效且高效的目標檢測器。

ViDT 引入了一個重新配置的注意力模組(reconfigured attention module),將Swin Transformer 擴充套件為一個獨立的目標檢測器,之後是一個計算高效的Transformer 解碼器,該解碼器利用多尺度特徵和輔助(auxiliary)技術,在不增加計算負載的情況下提高檢測效能。

在Microsoft COCO 基準資料集上的評估表明,ViDT 在現有的完全基於transformer 的目標檢測器中獲得了最佳的AP 和延遲權衡,其對大型模型的高可擴充套件性,可達49.2AP。

論文地址:https://openreview.net/pdf?id=w4cXZDDib1H

ViDT:視覺與檢測Transformer

ViDT 架構如下圖2 (c) 所示:

首先,ViDT 引入了一種改進的注意力機制,名為Reconfigured Attention Module (RAM),該模組有助於ViT 變體處理附加的 [DET(detection tokens)] 和 [PATCH(patch tokens)] token 以進行目標檢測。因此,ViDT 可以將最新的帶有RAM 的Swin Transformer 主幹修改為目標檢測器,並利用其具有線性複雜度的區域性注意力機制獲得高可擴充套件性;

其次,ViDT 採用輕量級的無編碼器neck 架構來減少計算開銷,同時仍然在neck 模組上啟用額外的最佳化技術。請注意,neck 編碼器是不必要的,因為RAM 直接提取用於目標檢測的細粒度表示,即 [DET ] token。結果,ViDT 獲得了比neck-free 對應物更好的效能;

推薦文章  ​實力派演員熱依扎,《山海情》飾演水花一角,讓無數觀眾淚目

最後,該研究引入了用於知識蒸餾的token 匹配新概念,它可以在不影響檢測效率的情況下從大型模型到小型模型帶來額外的效能提升。

RAM 模組

該研究引入了RAM 模組,它將與 [PATCH] 和 [DET] token 相關的單個全域性注意力分解為三個不同的注意力,即 [PATCH]×[PATCH]、[DET]× [DET] 和 [DET] × [PATCH] 注意力。如圖3 所示,透過共享 [DET] 和 [PATCH] token 的投影層,全部複用Swin Transformer 的所有引數,並執行三種不同的注意力操作:

ENCODER-FREE neck 結構

為了利用多尺度特徵圖,ViDT 結合了多層可變形transformer 解碼器。在DETR 家族中(圖2 (a)),其neck 部分需要一個transformer 編碼器,用於將從骨幹中提取的用於影像分類的特徵轉換為適合目標檢測的特徵;編碼器通常在計算上很昂貴,因為它涉及 [PATCH] × [PATCH] 注意力。然而,ViDT 只保留了一個Transformer 解碼器作為其neck,因為帶有RAM 的Swin Transformer 直接提取適合目標檢測的細粒度特徵作為獨立的目標檢測器。因此,ViDT 的neck 結構在計算上是高效的。

解碼器從帶有RAM 的Swin Transformer 接收兩個輸入:(1)從每個階段生成的 [PATCH] token(2)從最後階段生成的 [DET ] token,如圖2 (c) 的Neck 所示。在每個可變形的transformer 層中,首先執行 [DET] × [DET] 注意力。對於每個 [DET] token,應用多尺度可變形注意力以生成一個新的 [DET] token,聚合從多尺度特徵圖中取樣的一小組關鍵內容:

推薦文章  環球市場:俄羅斯批准海外作戰

用於目標檢測的token 匹配知識蒸餾

雖然大型模型具有實現高效能的高容量,但在實際使用中它的計算成本可能很高。因此,該研究還提出了一種簡單的知識蒸餾方法,可以透過token 匹配從大型ViDT 模型中遷移知識。

匹配每一層的所有token 在訓練中非常低效,因此,該研究只匹配對預測貢獻最大的token。兩組token 直接相關:(1)P:用作多尺度特徵圖的 [PATCH] token 集合,由body 中的每個階段生成,(2)D:[DET ] token 的集合,它們是從neck 的每個解碼層生成的。因此,基於token 匹配的蒸餾損失公式為:

評估

表2 將ViDT 與DETR (ViT) 和YOLOS 的AP、FPS 等進行了比較,其中DETR (ViT) 有兩個變體:DETR 和Deformable DETR。

實驗結果表明:ViDT 實現了AP 和FPS 之間的最佳權衡。憑藉其高可擴充套件性,其效能優於1 億個引數的Swin-base,在相似的AP 的下,FPS 比Deformable DETR 快2 倍。此外,ViDT 引數為16M,得到40.4AP,比DETR (swin-nano) 和DETR (swin-tiny) 高分別高6.3AP、12.6AP。

表3 對比了不同空間位置編碼與ViDT(wo Neck)的結果。結果表明:pre-addition 比post-addition 帶來的效能提升更高,即sinusoidal encoding 優於learnable 編碼;因此,正弦空間編碼的2D 歸納偏置在目標檢測中更有幫助。特別是,與不使用任何編碼相比,使用正弦編碼的預加法(pre-addition)將AP 增加了5.0。

表4 總結了使用不同選擇策略進行交叉注意力(cross-attention)時的AP 和FPS,其中Swin Transformer 總共包含四個階段。有趣的是,只要在最後階段啟用交叉注意力,所有策略都表現出相似的AP。由於在各個階段中以自下而上的方式提取特徵,因此在低階別階段很難直接獲得有關目標物件的有用資訊。因此,研究者想要獲得較高的AP 和FPS,只使用最後階段是最好的設計選擇,因為 [PATCH] token 的數量最少。

推薦文章  假面騎士:永夢新劇海報公開,映司想要內褲花紋的口罩

為了徹底驗證輔助解碼損失(auxiliary decoding loss)和迭代框細化(iterative box refinement)的有效性,該研究甚至對YOLOS 等neck-free 檢測器進行了擴充套件。表5 顯示了兩種neck-free 檢測器YOLOS 和ViDT (wo Neck) 效能。實驗結果證明在ViDT 中使用Neck 解碼器來提高目標檢測效能是合理的。

下圖表明:教師模型的規模越大,學生模型的收益越大。從係數來看,係數值越大,效能越好。模型蒸餾將AP 提高了1.0-1.7,而不會影響學生模型的推理速度。

研究者將所有提議的元件結合起來,以實現目標檢測的高精度和速度。如表8 所示,有四個元件:(1) RAM 將Swin Transformer 擴充套件為獨立的目標檢測器,(2) neck 解碼器利用多尺度特徵和兩種輔助技術,(3) 從大模型中獲益知識蒸餾,(4) 解碼層drop 進一步加快推理速度。結果表明:當使用Swin-nano 作為其主幹時,它僅使用13M 引數就達到了41.7AP 和合理的FPS。此外,當使用Swin-tiny 時,它僅損失了2.7 FPS 而表現出46.4AP。

.

Scroll to Top