論文筆記3:SegFormer Simple and Efficient Design for Semantic Segmentation with Transformers


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

1 引言

文章提出了一種基於transformer的語義分割網絡,不同於ViT模型,SegFormer使用一種分層特征表示的方法,每個transformer層的輸出特征尺寸逐層遞減,通過這種方式捕獲不同尺度的特征信息。並且舍棄了ViT中的position embedding操作,避免了測試圖像與訓練圖像尺寸不同而導致模型性能下降的問題。在decoder部分采用簡單的MLP結構,聚合transformer層不同尺度的特征,可以同時融合局部注意力和全局注意力。

SegFormer-B4以64M參數在ADE20K上達到50.3% mIoU,比之前最好的模型小5倍,准確率高2.2%。SegFormer-B5在Cityscapes驗證集上達到84.0% mIoU。

2 模型

SegFormer由兩個部分組成:

  1. 一個分層的Transformer encoder,用來提取大尺度的粗粒度特征和小尺度的細粒度特征。
  2. 一個輕量級的ALL-MLP decoder,用來混合encoder中不同層輸出的特征並產生最終的語義分割遮罩。

2.1 Hierarchical Transformer Encoder

2.1.1 Hierarchical Feature Representation

不同於ViT中產生的單一尺寸的特征映射,文中的Hierarchical Transformer Encoder會產生像是CNN網絡一樣的多層次特征,靠近輸入的層提供大尺度的粗粒度信息,靠近輸出的層提供小尺度的細粒度信息,通過聚合不同尺度的特征表示可以有效的提升模型在語義分割任務中的表現。

2.1.2 Overlapped Patch Merging

文中通過Overlapped Patch Merging來實現特征圖尺寸遞減的操作,減少特征圖的尺寸而增加特征圖的通道數。這種操作的弊端是不能保留不同patch之間的連續信息。

2.1.3 Efficient Self-Attention

由於Attention操作的復雜度與序列長度的平方成正比,文中采用一種序列減少操作(先reshape在通過一個線性層)降低序列長度,以此來減少計算的復雜度。

2.1.4 Mix-FFN

ViT模型中的positional encoding操作不適用於訓練圖像和測試圖像尺寸不同的情況,文章提出一種Mix-FFN結構,通過添加一個3×3卷積和一個MLP層到FFN中,實驗證明3×3卷積足夠給Transformer層提供位置信息。

2.2 Lightweight ALL-MLP Decoder

SegFormer的decoder層僅由MLP構成,它主要包含四步:

  1. 將transformer各層的輸出轉換成統一的額維度。
  2. 將特征上采樣然后進行拼接。
  3. 使用MLP混合拼接的不同特征。
  4. 最后使用一個MLP生成遮罩。

2.3 Relationship to SERT

SegFormer與SERT的對比:

  1. SegFormer使用的預訓練數據集更小。
  2. SegFormer使用層次化的encoder,參數量更小,且能同時捕獲不同尺度的特征。
  3. SegFormer摒棄了Positional Embedding的操作,可以適應訓練集和測試集圖像尺寸不同的情況。
  4. SegFormer更加緊湊,且需要更少的計算資源。

3 總結

文章中包含大量的設計細節,且更改了原始的transformer結構,使得模型計算量更小,雖然整體的設計思路並無太大亮點,但在小細節上下了很多功夫,值得參考。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM