前言 本文介紹了一篇CVPR2021的語義分割論文,論文將語義分割視為序列到序列的預測任務,基於transformer作為編碼器,介紹了三種解碼器方式,選擇其中效果最好的解碼器方式與transformer編碼器組成了一個新的SOTA模型--SETR。
論文:Rethinking Semantic Segmentation from a Sequence-to-Sequence Perspective with Transformers
代碼:https://fudan-zvg.github.io/SETR
創新思路現有的語義分割模型基本都基於FCN,FCN是由編碼器和解碼器組成的架構。編碼器用於特徵表示學習,而解碼器用於對編碼器產生的特徵表示進行像素級分類。在這兩者中,特徵表示學習(即編碼器)可以說是最重要的模型組件。與大多數其他為圖像理解而設計的 CNN 一樣,編碼器由堆疊的卷積層組成。由於對計算成本的關注,特徵圖的解析度逐漸降低,因此編碼器能夠學習更多抽象/語義視覺概念,感受野逐漸增加。
然而,編碼器有一個基本限制,即學習遠程依賴信息對於無約束場景圖像中的語義分割至關重要,由於仍然有限的感受野而變得具有挑戰性。
為了克服上述限制,最近引入了許多方法。一種方法是直接操縱卷積操作。這包括大內核大小、多孔卷積和圖像/特徵金字塔。另一種方法是將注意力模塊集成到 FCN 架構中。這樣的模塊旨在對特徵圖中所有像素的全局交互進行建模。當應用於語義分割時,一個常見的設計是將注意力模塊與 FCN 架構相結合,注意力層位於頂部。無論採用哪種方法,標準編碼器解碼器 FCN 模型架構都保持不變。最近,已經嘗試完全擺脫卷積並部署注意力模型。
最近,一些SOTA方法表明將 FCN 與注意力機制相結合是學習遠程上下文信息的更有效策略。這些方法將注意力學習限制在更小的輸入尺寸的更高層,因為它的複雜度是特徵張量的像素數的平方。這意味著缺乏對較低級別特徵張量的依賴學習,導致次優表示學習。
為了克服這個限制,論文旨在重新思考語義分割模型設計並貢獻一個替代方案,用純transformer代替基於堆疊卷積層的編碼器,逐漸降低空間解析度,從而產生一種新的分割模型,稱為 SEgmentation TRansformer (SETR)。這種單獨的transformer編碼器將輸入圖像視為由學習的補丁嵌入表示的圖像補丁序列,並使用全局自注意力模型轉換該序列以進行判別特徵表示學習。
MethodsSegmentation 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技術指南,持續關注,持續學習
由於公眾號採用亂序推送,設置星標才能及時看到本公眾號更新的文章