SETR: 使用 Transformer 從序列到序列的角度重新思考語義分割 | CVPR2021
點(diǎn)擊下方“AI算法與圖像處理”,一起進(jìn)步!
重磅干貨,第一時間送達(dá)
前言?本文介紹了一篇CVPR2021的語義分割論文,論文將語義分割視為序列到序列的預(yù)測任務(wù),基于transformer作為編碼器,介紹了三種解碼器方式,選擇其中效果最好的解碼器方式與transformer編碼器組成了一個新的SOTA模型--SETR。
論文:Rethinking Semantic Segmentation from a Sequence-to-Sequence Perspective with Transformers
代碼:https://fudan-zvg.github.io/SETR
想互相圍觀朋友圈的可以添加我哈(微信:nvshenj125)
創(chuàng)新思路
現(xiàn)有的語義分割模型基本都基于FCN,F(xiàn)CN是由編碼器和解碼器組成的架構(gòu)。編碼器用于特征表示學(xué)習(xí),而解碼器用于對編碼器產(chǎn)生的特征表示進(jìn)行像素級分類。在這兩者中,特征表示學(xué)習(xí)(即編碼器)可以說是最重要的模型組件。與大多數(shù)其他為圖像理解而設(shè)計的 CNN 一樣,編碼器由堆疊的卷積層組成。由于對計算成本的關(guān)注,特征圖的分辨率逐漸降低,因此編碼器能夠?qū)W習(xí)更多抽象/語義視覺概念,感受野逐漸增加。
然而,編碼器有一個基本限制,即學(xué)習(xí)遠(yuǎn)程依賴信息對于無約束場景圖像中的語義分割至關(guān)重要,由于仍然有限的感受野而變得具有挑戰(zhàn)性。
為了克服上述限制,最近引入了許多方法。一種方法是直接操縱卷積操作。這包括大內(nèi)核大小、多孔卷積和圖像/特征金字塔。另一種方法是將注意力模塊集成到 FCN 架構(gòu)中。這樣的模塊旨在對特征圖中所有像素的全局交互進(jìn)行建模。當(dāng)應(yīng)用于語義分割時,一個常見的設(shè)計是將注意力模塊與 FCN 架構(gòu)相結(jié)合,注意力層位于頂部。無論采用哪種方法,標(biāo)準(zhǔn)編碼器解碼器 FCN 模型架構(gòu)都保持不變。最近,已經(jīng)嘗試完全擺脫卷積并部署注意力模型。
最近,一些SOTA方法表明將 FCN 與注意力機(jī)制相結(jié)合是學(xué)習(xí)遠(yuǎn)程上下文信息的更有效策略。這些方法將注意力學(xué)習(xí)限制在更小的輸入尺寸的更高層,因為它的復(fù)雜度是特征張量的像素數(shù)的平方。這意味著缺乏對較低級別特征張量的依賴學(xué)習(xí),導(dǎo)致次優(yōu)表示學(xué)習(xí)。
為了克服這個限制,論文旨在重新思考語義分割模型設(shè)計并貢獻(xiàn)一個替代方案,用純transformer代替基于堆疊卷積層的編碼器,逐漸降低空間分辨率,從而產(chǎn)生一種新的分割模型,稱為 SEgmentation TRansformer (SETR)。這種單獨(dú)的transformer編碼器將輸入圖像視為由學(xué)習(xí)的補(bǔ)丁嵌入表示的圖像補(bǔ)丁序列,并使用全局自注意力模型轉(zhuǎn)換該序列以進(jìn)行判別特征表示學(xué)習(xí)。
?
Methods
Segmentation transformers (SETR)

首先將圖像分解為固定大小的補(bǔ)丁網(wǎng)格,形成補(bǔ)丁序列。將線性嵌入層應(yīng)用于每個補(bǔ)丁的扁平像素向量,然后獲得一系列特征嵌入向量作為transformer的輸入。給定從編碼器transformer學(xué)習(xí)的特征,然后使用解碼器來恢復(fù)原始圖像分辨率。至關(guān)重要的是,編碼器transformer的每一層都沒有空間分辨率的下采樣,而是全局上下文建模,從而為語義分割問題提供了一個全新的視角。
Image to sequence
此處沒什么創(chuàng)新,將圖像分成16塊,每塊通過flatten操作變成向量,向量的長度為HW/16,分塊的目的是為了縮小向量的長度,否則計算量太大。為了學(xué)習(xí)到像素之間的空間信息,將對每個像素進(jìn)行位置編碼,再與向量相加。
transformer encoder
此處沒什么創(chuàng)新,與原始transformer一樣,由multi-head self-attention (MSA) 和 Multilayer Perceptron(MLP) 塊組成。MSA與MLP是transformer的基本部分,此處對于MSA與MLP的介紹略過。重點(diǎn)介紹下面論文的創(chuàng)新部分。
?
Decoder designer
為了評估編碼器部分的特征表示,論文設(shè)計了三種解碼器方式。在此之前需要將編碼器的輸出Z從向量reshape成H/16 x W/16 x C的形狀。
1. 原始上采樣 (Naive unsampling)?
解碼器將編碼器輸出的特征映射到類別空間,做法是采用了一個簡單的 2 層網(wǎng)絡(luò)將通道數(shù)變?yōu)轭悇e數(shù)量。其架構(gòu)為:1 × 1 conv + 同步BatchNorm(w/ ReLU)+ 1 × 1 conv。之后,簡單地將輸出雙線性上采樣到完整的圖像分辨率,然后是具有像素級交叉熵?fù)p失的分類層。當(dāng)使用這個解碼器時,這種模型表示為 SETR-Naive。
2. Progressive UPsampling (PUP)?
論文考慮一種漸進(jìn)式上采樣策略,而不是可能會引入嘈雜預(yù)測的一步上采樣策略,該策略交替使用 conv 層和上采樣操作。為了最大限度地減輕對抗效應(yīng),我們將上采樣限制為 2 倍。因此,總共需要 4 次操作才能從 H/ 16 × W /16 轉(zhuǎn)換到圖像原分辨率。這個過程的更多細(xì)節(jié)在圖 1(b) 中給出。使用此解碼器時,將模型表示為 SETR-PUP。

3. Multi-Level feature Aggregation (MLA)
?第三種設(shè)計的特點(diǎn)是多級特征聚合(圖 c)與特征金字塔網(wǎng)絡(luò)類似。然而,我們的解碼器根本不同,因為每個 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) 網(wǎng)絡(luò),第一層和第三層的特征通道分別減半,第三層后通過雙線性操作將空間分辨率提升4倍。
為了增強(qiáng)不同流之間的交互,我們在第一層之后通過逐元素添加引入了自上而下的聚合設(shè)計。在逐元素添加功能之后應(yīng)用額外的 3 × 3 conv。在第三層之后,我們通過通道級連接從所有流中獲得融合特征,然后將其雙線性上采樣 4 倍至全分辨率。使用此解碼器時,將模型表示為 SETR-MLA。
?
Conclusion
三種解碼器方式之間的結(jié)果對比,結(jié)果表明SETR-PUP方式最好。

與其它SOTA模型的對比。SETR 在 ADE20K (50.28% mIoU)、Pascal Context (55.83% mIoU) 和 Cityscapes 上的競爭結(jié)果上取得了最新SOTA結(jié)果。特別是,在提交當(dāng)天就在競爭激烈的ADE20K測試服務(wù)器排行榜中獲得了第一名。

效果可視化

若文章對您有幫助的話,請點(diǎn)個贊或“ 在看 ”吧
交流群
歡迎加入公眾號讀者群一起和同行交流,目前有美顏、三維視覺、計算攝影、檢測、分割、識別、醫(yī)學(xué)影像、GAN、算法競賽等微信群
個人微信(如果沒有備注不拉群!) 請注明:地區(qū)+學(xué)校/企業(yè)+研究方向+昵稱
下載1:何愷明頂會分享
在「AI算法與圖像處理」公眾號后臺回復(fù):何愷明,即可下載。總共有6份PDF,涉及 ResNet、Mask RCNN等經(jīng)典工作的總結(jié)分析
下載2:終身受益的編程指南:Google編程風(fēng)格指南
在「AI算法與圖像處理」公眾號后臺回復(fù):c++,即可下載。歷經(jīng)十年考驗,最權(quán)威的編程規(guī)范!
下載3 CVPR2021 在「AI算法與圖像處理」公眾號后臺回復(fù):CVPR,即可下載1467篇CVPR?2020論文 和 CVPR 2021 最新論文

