論文筆記 — MViTv2: Improved Multiscale Vision Transformers for Classification and Detection

Watson Wang
7 min readFeb 7, 2023
Photo by Brett Jordan on Unsplash

Paper Link : https://arxiv.org/pdf/2112.01526.pdf

Code Link: https://github.com/facebookresearch/mvit

Introduction

電腦視覺對計算和內存要求提出了嚴峻的挑戰,因為這些在基於 Transformer 的模型的 Self-Attention Module 中的複雜性呈二次方增長。 一些研究已經用不同的策略來解決這個問題:兩個常見的策略是

  1. 用於對象檢測的窗口內的local attention計算
  2. 在計算影片任務中的自我注意力之前先聚合特徵圖(pooling attention)

第二點為Multi-scale Vision Transformer (MViT)提供靈感,這是一種以簡單方式擴展 ViT 的架構:它不是在整個網絡中具有固定分辨率,而是具有從高分辨率到低分辨率的多個階段的特徵層次結構。

在本文中,我們開發了兩個簡單的技術改進以進一步提高其性能,用於跨越 3 個任務的視覺識別:圖像分類、目標檢測和影片分類, 我們的實證研究帶來了改進的架構 (MViTv2),並包含以下內容:

  1. 我們創建了強大的baseline來提高沿兩個軸的集中註意力:(a) 使用分解的位置距離在 Transformer 塊中註入位置信息的位移不變位置嵌入; (b) 一個殘差池化連接(residual pooling connection) 來補償注意力計算中池化步幅的影響。
  2. 使用改進的 MViT 結構,我們採用標準的密集預測框架:Mask R-CNN 和特徵金字塔網絡 (FPN),並將其應用於對象檢測和實例分割。

Revisiting Multiscale Vision Transformers

MViTv1 的關鍵思想是為 低級和高級視覺建模 構建不同的階段,而不是 ViT 中的單尺度塊。 MViT 緩慢擴展通道寬度(Channel width) D,同時降低網絡輸入到輸出階段的分辨率 L(即序列長度)。

為了在 Transformer Module 內執行下採樣,MViT 引入了 Pooling Attention。 具體來說,對於輸入序列 X ∈ R(L×D),它應用線性投影 W_Q 、W_K、W_V ∈ R(D×D),然後分別對 query、key和value 張量 應用pooling operator(P):

Pooling Attention 通過池化查詢張量 Q 來降低 MViT 不同階段之間的分辨率,並通過池化 key K 和value V 張量來顯著降低計算和內存複雜性。

Improved Multiscale Vision Transformers

1. Improved Pooling Attention

Decomposed relative position embedding

雖然 MViT 已經顯示出其在tokens之間建模交互方面的能力,但它們關注的是內容,而不是結構。 Spatial Structure Modeling 完全依賴於“絕對”位置嵌入來提供位置信息,忽略了視覺中移位不變性的基本原理。

因此,MViT 對兩個補丁之間的交互進行建模的方式也會根據它們在圖像中的絕對位置而改變。 為了解決這個問題,我們結合了相對位置嵌入,它只依賴於標記之間的相對位置距離到Pooled Self-attention Computation 中。

我們將兩個輸入元素 i 和 j 之間的相對位置編碼為位置嵌入 R_p(i)_p(j) ∈ R(d),其中 p(i) 和 p(j) 表示空間(或時空)位置然後嵌入到自我注意模塊:

然而,可能嵌入的數量 Rp(i),p(j) 在 O(T*W*H) 中縮放,其中T為time,計算起來可能很昂貴。 為了降低複雜度,我們分解了元素 i 和 j 沿時空軸的距離計算:

相比之下,我們的分解嵌入將學習嵌入的數量減少到 O(T + W + H),這對早期的高分辨率特徵圖有很大的影響。

Residual pooling connection

MViTv1 在 K 和 V 張量上的Stride 大於 Q 張量的stride,如果輸出序列的分辨率跨階段發生變化,Q 張量只會被下採樣。 我們藉由添加與(池化)Q 張量的residual pooling connection,以增加信息流並促進 MViT 中池化注意塊的訓練。如圖所示。具體來說,我們將池化查詢張量添加到輸出序列 Z。所以等式為:

2. MViT for Object Detection

FPN integration

ViT 的層次結構分四個階段生成多尺度特徵圖,因此自然地集成到特徵金字塔網絡 (FPN) 中用於目標檢測任務,如圖所示。自上而下的金字塔與橫向 FPN 中的連接為所有尺度的 MViT 構建 語義強大的特徵圖。

Hybrid window attention

在本文中,我們研究了兩種顯著降低這種計算和內存複雜性的方法:

  1. 在 MViT 的Attention module 中設計的池化注意力
  2. 窗口注意力以減少 Swin 中對象檢測計算量

這兩種方法的內在差異促使我們研究它們是否可以在目標檢測任務中執行互補。

我們提出了一種簡單的Hybrid Window Attention(Hwin) 設計來添加 cross window 連接。 Hwin 在輸入 FPN 的最後三個階段的最後一個塊之外的所有窗口內計算local Attention

Positional embeddings in detection

對於 MViT 中的位置嵌入(絕對或相對),我們首先從有 224×224 輸入大小的位置嵌入的 ImageNet 預訓練權重初始化參數,然後將它們插值到相應的大小以進行對象檢測訓練。

3. MViT for Video Recognition

Initialization from pre-trained MViT

與基於圖像的 MViT 相比,基於影片的 MViT 只有三個不同處

  1. 補丁化主幹中的投影層需要將輸入投影到時空立方體而不是 2D Patch中
  2. Pooling Operator 需要參考時空特徵圖。
  3. 相對位置嵌入參考時空位置。

5. Experiments

Comparison to published work on ImageNet-1K
Results on COCO object detection with (a) Mask R- CNN [36] and (b) Cascade Mask R-CNN

參考

--

--