Pytorch實作系列 — SETR

mz bai
5 min readDec 15, 2024

--

SETR 是由 Zheng et al.(2020, 復旦大學)在 Rethinking Semantic Segmentation from a Sequence-to-Sequence Perspective with Transformers 提出,屬於較早在語意分割任務上應用Transformer的框架。

前情提要

網路概念

破題是以"如果ViT證明Transformer可在圖像分類成功,那在語意分割是否也可行呢?",類似ViT和DETR的成功,作者證明將語意分割視為圖片區塊的Seq2seq任務,是可以運作的。

論文中也提到以Transformer可引入長距離依賴,相比FCN有限的感受野有利、不像CNN需要降低圖片解析度才能從局部資訊逐步擴大成全域資訊。

這兩點幾乎從FCN以後的每篇語意分割論文都聲稱自己改進了這些問題XD。你可以從我每篇語意分割的模型都看到這些論點。

網路結構

整體而言是典型的encoder-decoder結構,encoder跟ViT相同,把圖片拆成patch,結合position encoding, 交由Layer normalization在前的Transformer layers。

不同的是decoder,共有兩種,仍是使用卷積層,一種是上採樣變形被命名為PUP,此結構也常出現在Deconvolution network和DCGAN,另一種是多尺度特徵融合被命名為MLA,此結構與DeepLabV3+的decoder相似。

圖中的encoder有24層Transformer layer,即Vit_L。

(a) SETR architecture, the encoder has 24 transformer layers, the same as Vit_L, (b) PUP variant, (c) MLA variant

資料集

PASCAL VOC 2012,著名的影像資料集,包含物件偵測和語意分割等任務。

評估

沒有使用auxiliary loss。

SETR-MLA-Vit_B16 在 VOC 2007資料集的Jaccard index為0.76。訓練模型大小達到349MiB。

Jaccard index of MLA

SETR-PUP-Vit_B16 在 VOC 2007資料集的Jaccard index為0.69。訓練模型大小達到339MiB。

Jaccard index of PUP

儘管MLA在本次實驗中,分數較高,PUP的預測結果在邊緣上比MLA平整許多。

demo of MLA
demo of PUP

筆記

不算有新意,也算Transformer在semantic segmentation的其中一種形式。

實作

參考

--

--

mz bai
mz bai

Written by mz bai

Math is math, math is universal Code is code, code is horrifying unique.

No responses yet