前言
本文介紹了一篇CVPR2021的語義分割論文,論文将語義分割視為序列到序列的預測任務,基于transformer作為編碼器,介紹了三種解碼器方式,選擇其中效果最好的解碼器方式與transformer編碼器組成了一個新的SOTA模型--SETR。
論文:Rethinking Semantic Segmentation from a Sequence-to-Sequence Perspective with Transformers
代碼:https://fudan-zvg.github.io/SETR
本文來自公衆号CV技術指南的論文分享系列
創新思路
現有的語義分割模型基本都基于FCN,FCN是由編碼器和解碼器組成的架構。編碼器用于特征表示學習,而解碼器用于對編碼器産生的特征表示進行像素級分類。在這兩者中,特征表示學習(即編碼器)可以說是最重要的模型元件。與大多數其他為圖像了解而設計的 CNN 一樣,編碼器由堆疊的卷積層組成。由于對計算成本的關注,特征圖的分辨率逐漸降低,是以編碼器能夠學習更多抽象/語義視覺概念,感受野逐漸增加。
然而,編碼器有一個基本限制,即學習遠端依賴資訊對于無限制場景圖像中的語義分割至關重要,由于仍然有限的感受野而變得具有挑戰性。
為了克服上述限制,最近引入了許多方法。一種方法是直接操縱卷積操作。這包括大核心大小、多孔卷積和圖像/特征金字塔。另一種方法是将注意力子產品內建到 FCN 架構中。這樣的子產品旨在對特征圖中所有像素的全局互動進行模組化。當應用于語義分割時,一個常見的設計是将注意力子產品與 FCN 架構相結合,注意力層位于頂部。無論采用哪種方法,标準編碼器解碼器 FCN 模型架構都保持不變。最近,已經嘗試完全擺脫卷積并部署注意力模型。
最近,一些SOTA方法表明将 FCN 與注意力機制相結合是學習遠端上下文資訊的更有效政策。這些方法将注意力學習限制在更小的輸入尺寸的更高層,因為它的複雜度是特征張量的像素數的平方。這意味着缺乏對較低級别特征張量的依賴學習,導緻次優表示學習。
為了克服這個限制,論文旨在重新思考語義分割模型設計并貢獻一個替代方案,用純transformer代替基于堆疊卷積層的編碼器,逐漸降低空間分辨率,進而産生一種新的分割模型,稱為 SEgmentation TRansformer (SETR)。這種單獨的transformer編碼器将輸入圖像視為由學習的更新檔嵌入表示的圖像更新檔序列,并使用全局自注意力模型轉換該序列以進行判别特征表示學習。
Methods
Segmentation transformers (SETR)

首先将圖像分解為固定大小的更新檔網格,形成更新檔序列。将線性嵌入層應用于每個更新檔的扁平像素向量,然後獲得一系列特征嵌入向量作為transformer的輸入。給定從編碼器transformer學習的特征,然後使用解碼器來恢複原始圖像分辨率。至關重要的是,編碼器transformer的每一層都沒有空間分辨率的下采樣,而是全局上下文模組化,進而為語義分割問題提供了一個全新的視角。
Image to sequence
此處沒什麼創新,将圖像分成16塊,每塊通過flatten操作變成向量,向量的長度為HW/16,分塊的目的是為了縮小向量的長度,否則計算量太大。為了學習到像素之間的空間資訊,将對每個像素進行位置編碼,再與向量相加。
transformer encoder
此處沒什麼創新,與原始transformer一樣,由multi-head self-attention (MSA) 和 Multilayer Perceptron(MLP) 塊組成。MSA與MLP是transformer的基本部分,此處對于MSA與MLP的介紹略過。重點介紹下面論文的創新部分。
Decoder designer
為了評估編碼器部分的特征表示,論文設計了三種解碼器方式。在此之前需要将編碼器的輸出Z從向量reshape成H/16 x W/16 x C的形狀。
1. 原始上采樣 (Naive unsampling)
解碼器将編碼器輸出的特征映射到類别空間,做法是采用了一個簡單的 2 層網絡将通道數變為類别數量。其架構為:1 × 1 conv + 同步BatchNorm(w/ ReLU)+ 1 × 1 conv。之後,簡單地将輸出雙線性上采樣到完整的圖像分辨率,然後是具有像素級交叉熵損失的分類層。當使用這個解碼器時,這種模型表示為 SETR-Naive。
2. Progressive UPsampling (PUP)
論文考慮一種漸進式上采樣政策,而不是可能會引入嘈雜預測的一步上采樣政策,該政策交替使用 conv 層和上采樣操作。為了最大限度地減輕對抗效應,我們将上采樣限制為 2 倍。是以,總共需要 4 次操作才能從 H/ 16 × W /16 轉換到圖像原分辨率。這個過程的更多細節在圖 1(b) 中給出。使用此解碼器時,将模型表示為 SETR-PUP。
3. Multi-Level feature Aggregation (MLA)
第三種設計的特點是多級特征聚合(圖 c)與特征金字塔網絡類似。然而,我們的解碼器根本不同,因為每個 SETR 層的特征表示 Zl共享相同的分辨率,沒有金字塔形狀。
具體來說,我們将來自 M 層的特征表示 {Zm} (m ∈ { Le /M , 2 Le/ M , · · · , M Le /M }) 作為輸入,這些特征表示從 M 層均勻分布在具有步驟長為 Le /M 。然後部署 M 個流,每個流都專注于一個特定的標明層。
在每個流中,我們首先将編碼器的特征 Zl 從 HW /256 × C 的 2D 形狀reshape為 3D 特征圖 H/ 16 × W/ 16 × C。一個 3 層(kernel大小為 1 × 1、3 × 3 和 3 × 3) 網絡,第一層和第三層的特征通道分别減半,第三層後通過雙線性操作将空間分辨率提升4倍。
為了增強不同流之間的互動,我們在第一層之後通過逐元素添加引入了自上而下的聚合設計。在逐元素添加功能之後應用額外的 3 × 3 conv。在第三層之後,我們通過通道級連接配接從所有流中獲得融合特征,然後将其雙線性上采樣 4 倍至全分辨率。使用此解碼器時,将模型表示為 SETR-MLA。
Conclusion
三種解碼器方式之間的結果對比,結果表明SETR-PUP方式最好。
與其它SOTA模型的對比。SETR 在 ADE20K (50.28% mIoU)、Pascal Context (55.83% mIoU) 和 Cityscapes 上的競争結果上取得了最新SOTA結果。特别是,在送出當天就在競争激烈的ADE20K測試伺服器排行榜中獲得了第一名。
效果可視化
歡迎關注公衆号 CV技術指南 ,專注于計算機視覺的技術總結、最新技術跟蹤、經典論文解讀。
在公衆号中回複關鍵字 “技術總結”可擷取公衆号原創技術總結文章的彙總pdf。
其它文章
ICCV2021 | SMCA:即插即用的共同注意力模型,可使DETR收斂加速10倍
深度學習模型大小與模型推理速度的探讨
速度提升2倍,超強悍CPU級骨幹網絡PP-LCNet出世
目标檢測中回歸損失函數總結
視訊目标檢測與圖像目标檢測的差別
單階段執行個體分割綜述
Siamese network綜述 | 姿态估計綜述 | 語義分割綜述
視覺Transformer綜述 | 2021年小目标檢測最新研究綜述
CV算法工程師的一年工作經驗與感悟
視訊了解綜述:動作識别、時序動作定位、視訊Embedding
CVPR2021提出的一些新資料集彙總
小目标檢測常用方法總結
從CVPR 2021的論文看計算機視覺的現狀
ICCV2021 | MicroNet:以極低的 FLOPs 改進圖像識别
ICCV2021 | 深度了解CNN
ICCV2021 | 重新思考視覺transformers的空間次元
CVPR2021 | TransCenter: transformer用于多目标跟蹤算法
CVPR2021 | 繼SE,CBAM後的一種新的注意力機制Coordinate Attention
CVPR2021 | 開放世界的目标檢測
CVPR2021 | 開放世界檢測綜述
CVPR2021 | TimeSformer-視訊了解的時空注意模型
CVPR2021 | 一個高效的金字塔切分注意力子產品PSA
CVPR2021 | 特征金字塔的新方式YOLOF
CVPR2021 | 華為諾亞實驗室提出Transformer in Transformer
CVPR2021 | 行人搜尋中的第一個anchor-free模型
經典論文系列 | 膠囊網絡:新的深度學習網絡
經典論文系列 | 重新思考在ImageNet上的預訓練
經典論文系列 | Group Normalization & BN的缺陷
經典論文系列 | 目标檢測--CornerNet & 又名 anchor boxes的缺陷
經典論文系列 | 縮小Anchor-based和Anchor-free檢測之間差距的方法:自适應訓練樣本選擇