天天看點

完全基于Transformer的目标檢測器,ICLR匿名論文實作視覺統一

作者:極市平台

來源丨機器之心

編輯丨極市平台

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。

完全基于Transformer的目标檢測器,ICLR匿名論文實作視覺統一
論文位址: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 比對新概念,它可以在不影響檢測效率的情況下從大型模型到小型模型帶來額外的性能提升。
完全基于Transformer的目标檢測器,ICLR匿名論文實作視覺統一

RAM 子產品

該研究引入了 RAM 子產品,它将與 [PATCH] 和 [DET] token 相關的單個全局注意力分解為三個不同的注意力,即 [PATCH]×[PATCH]、[DET]× [DET] 和 [DET] × [PATCH] 注意力。如圖 3 所示,通過共享 [DET] 和 [PATCH] token 的投影層,全部複用 Swin Transformer 的所有參數,并執行三種不同的注意力操作:

完全基于Transformer的目标檢測器,ICLR匿名論文實作視覺統一

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,聚合從多尺度特征圖

完全基于Transformer的目标檢測器,ICLR匿名論文實作視覺統一

中采樣的一小組關鍵内容:

完全基于Transformer的目标檢測器,ICLR匿名論文實作視覺統一

用于目标檢測的 token 比對知識蒸餾

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

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

完全基于Transformer的目标檢測器,ICLR匿名論文實作視覺統一

評估

表 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。

完全基于Transformer的目标檢測器,ICLR匿名論文實作視覺統一
完全基于Transformer的目标檢測器,ICLR匿名論文實作視覺統一

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

完全基于Transformer的目标檢測器,ICLR匿名論文實作視覺統一

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

完全基于Transformer的目标檢測器,ICLR匿名論文實作視覺統一

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

完全基于Transformer的目标檢測器,ICLR匿名論文實作視覺統一

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

完全基于Transformer的目标檢測器,ICLR匿名論文實作視覺統一

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