Transformer在語(yǔ)義分割上的應(yīng)用
作者:晟沚
語(yǔ)義分割方法主要采用具有編碼器-解碼器體系結(jié)構(gòu)的全卷積網(wǎng)絡(luò)(FCN)。編碼器逐漸降低空間分辨率,并通過(guò)更大的感受野學(xué)習(xí)更多的抽象/語(yǔ)義視覺(jué)概念。由于上下文建模對(duì)于分割至關(guān)重要,因此,最新的工作集中在通過(guò)以擴(kuò)張/空洞卷積或插入注意模塊來(lái)增加感受野。但是,基于編碼器/解碼器的FCN體系結(jié)構(gòu)保持不變。在本文介紹的文章中,作者旨在通過(guò)將語(yǔ)義分割視為序列到序列的預(yù)測(cè)任務(wù)來(lái)提供替代。具體而言,作者部署了一個(gè)純transformer(即不使用卷積和不存在分辨率降低的情況)來(lái)對(duì)圖像按patch的順序進(jìn)行編碼。借助在transformer的每層中建模的全局上下文,可以將此編碼器與簡(jiǎn)單的解碼器組合起來(lái),以提供功能強(qiáng)大的分割模型,稱為SEgmentation TRANSformer(SETR)。
論文地址:https://arxiv.org/abs/2012.15840
01
網(wǎng)絡(luò)結(jié)構(gòu)
網(wǎng)絡(luò)首先將圖像分解為一個(gè)個(gè)固定大小的patches網(wǎng)格,形成一個(gè)patches序列。通過(guò)將每個(gè)patch的像素向量輸入到線性embedding層,得到一系列特征嵌入向量作為transformer的輸入。給定從編碼器transformer學(xué)習(xí)到的特征,然后使用解碼器恢復(fù)原始圖像的分辨率。關(guān)鍵的是,在空間分辨率上沒(méi)有下采樣,而是在編碼器轉(zhuǎn)換器的每一層進(jìn)行全局上下文建模,也就是完全用注意力機(jī)制來(lái)實(shí)現(xiàn)了Encoder的功能,從而為語(yǔ)義分割問(wèn)題提供了一個(gè)全新的視角。
作者提出的模型實(shí)質(zhì)上是一個(gè)ViT+Decoder結(jié)構(gòu),如下圖,其中 VIT論文鏈接如下,感興趣的可以去看這篇 https://arxiv.org/abs/2010.11929

首先是輸入圖像需要處理為序列,如果按照pixel-wise來(lái)處理圖像計(jì)算量會(huì)很大,所以作者采用patch-wise的進(jìn)行flatten, 將H*W*3的圖像序列化為 256個(gè)H/16*W/16*3的patch。這樣transformer的輸入sequence length就是H/16*W/16 ,向量化后的patch p_i經(jīng)過(guò)Linear Projectionfunction得到向量e_i ,然后得到Transformer層的輸入如下:
E = { e1 + p1, e2 + p2, ..., e_L + p_L }
其中,e_i是patch embedding, p_i是position embedding。
然后序列化后的圖像輸入到Transformer中,如下圖所示

每個(gè)Transformer層由多頭注意力、LN層、MLP層構(gòu)成。其輸出結(jié)果即{Z1,Z2,Z3…ZLe}將上一步得到的E輸入到24個(gè)串聯(lián)的transformer中,即每個(gè)transformer的感受野是整張image。
最后作者提出了三種decoder:
Naive upsampling (Naive)
將Transformer輸出的特征維度降到分類類別數(shù)后經(jīng)過(guò)雙線性上采樣恢復(fù)原分辨率, 也就是2-layer: 1 × 1 conv + sync batch norm (w/ ReLU) + 1 × 1 conv
Progressive UPsampling (PUP)
為了從H/16 × W/16 × 1024 恢復(fù)到H × W × 19(19是cityscape的類別數(shù)) 需要4次操作, 交替使用卷積層和兩倍上采樣操作來(lái)恢復(fù)到原分辨率,結(jié)構(gòu)如下圖所示

Multi-Level feature Aggregation (MLA)
首先將Transformer的輸出{Z1,Z2,Z3…ZLe}均勻分成M等份,每份取一個(gè)特征向量。如下圖, 24個(gè)transformer的輸出均分成4份,每份取最后一個(gè),即{Z6,Z12,Z18,Z24},后面的Decoder只處理這些取出的向量。
具體是先將ZL 從2D (H × W)/256 × C恢復(fù)到3D H/16 × W/16 × C,然后經(jīng)過(guò)3-layer的卷積1 × 1, 3 × 3, and 3 × 3后再經(jīng)過(guò)雙線性上采樣4×自上而下的融合。以增強(qiáng)Zl 之間的相互聯(lián)系,如下圖最后一個(gè)Zl理論上擁有全部上面三個(gè)feature的信息,融合,再經(jīng)過(guò)3 × 3卷積后通過(guò)雙線性插值4× 恢復(fù)至原分辨率。

02
實(shí)驗(yàn)結(jié)果
模型在Cityscapes、ADE20K和PASCAL Context三個(gè)數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果優(yōu)于用傳統(tǒng)FCN(with & without attention module)抽特征的方法, 在ADE20k數(shù)據(jù)集上和FCN對(duì)比可視化如下圖:

在Pascal Context數(shù)據(jù)集下和FCN對(duì)比可視化結(jié)果如下:

在三個(gè)數(shù)據(jù)集上結(jié)果如下表:




END
機(jī)器學(xué)習(xí)算法工程師
一個(gè)用心的公眾號(hào)

