SegFormer

SegFormer: Simple and Efficient Design for Semantic Segmentation with Transformers

https://arxiv.org/abs/2105.15203

E Xie, W Wang, Z Yu, A Anandkumar, J M. Alvarez, P Luo

[The University of Hong Kong & Nanjing University & NVIDIA]

一作的其它工作:

https://github.com/xieenze

Pyramid Vision Transformer: A Versatile Backbone for Dense Prediction without Convolutions

PVTv2: Improved Baselines with Pyramid Vision Transformer

PolarMask: Single Shot Instance Segmentation with Polar Representation

PolarMask++: Enhanced Polar Representation for Single-Shot Instance Segmentation and Beyond

Unsupervised Pretraining for Object Detection by Patch Reidentification

DetCo: Unsupervised Contrastive Learning for Object Detection

OneNet: Towards End-to-End One-Stage Object Detection

Differentiable Hierarchical Graph Grouping for Multi-Person Pose Estimation

摘要:我們提出了一個簡單、高效、但功能強大的語義分割框架SegFormer,它將Transformers與輕量級多層感知(MLPs)解碼器結(jié)合起來。SegFormer有兩個吸引人的特點:1)SegFormer包含一個新的層次結(jié)構(gòu)的Trandformer編碼器,輸出多尺度特征。它不需要位置編碼,這樣就不用對位置編碼做插值(當測試分辨率不同于訓練分辨率時,性能就會下降It does not need positional encoding, thereby avoiding the interpolation of positional codes which leads to decreased performance when the testing resolution differs from training.)。2)SegFormer避免了復雜的解碼器。所提出的MLP解碼器從不同的層聚集信息,從而結(jié)合局部注意和全局注意來呈現(xiàn)強大的表示。我們表明,這種簡單而輕量級的設計是用Transformer高效地做分割的關鍵。我們擴展了我們的方法,得到了一系列不同大小型號的模型,從SegFormer-B0 到 SegFormer-B5,比先前的模型達到更好的性能和效率。例如,SegFormer-B4在ADE20K上以64M參數(shù)實現(xiàn)了50.3%的mIoU,比以前的最佳方法小5倍,好2.2%。我們的最佳模型SegFormer-B5在Cityscapes驗證集上實現(xiàn)了84.0%的mIoU,并且在Cityscapes-C上顯示出極好的零樣本魯棒性。代碼將發(fā)布在:github.com/NVlabs/SegFormer

1. 引言

語義分割是計算機視覺中的一項基本任務,為許多下游應用提供了可能。它與圖像分類有關,而它產(chǎn)生每像素類別預測而不是圖像級預測。在一項開創(chuàng)性的工作[1]中,作者指出并系統(tǒng)地研究了這種關系,其中作者將全卷積網(wǎng)絡(FCNs)用于語義分割任務。從那時起,F(xiàn)CN激發(fā)了許多后續(xù)工作,并成為密集預測的主要設計選擇。

由于分類和語義分割之間有著密切的聯(lián)系,許多最先進的語義分割框架都是ImageNet上流行的圖像分類體系結(jié)構(gòu)的變體。因此,主干結(jié)構(gòu)的設計一直是語義分割的一個活躍領域。事實上,從使用VGGs的早期方法[1,2],到具有更深和更強大主干的最新方法[3],主干的演變極大地推動了語義分割的性能邊界。除了主干架構(gòu)之外,另一項工作將語義分割描述為一個結(jié)構(gòu)化的預測問題,并著重設計能夠有效捕獲上下文信息的模塊和操作。這方面的一個典型例子是擴張卷積[4,5],它通過用孔洞“膨脹”卷積核來增加感受野。

隨著自然語言處理(NLP)的巨大成功,最近人們對將Transformers引入視覺任務產(chǎn)生了極大的興趣。Dosovitskiy等人[6]提出了用于圖像分類的視覺變換器(ViT)。根據(jù)NLP中的Transformers設計,作者將一幅圖像分割成多個線性嵌入的圖塊,并將它們輸入到帶有位置嵌入(PE)的標準Transformer中,從而在ImageNet上獲得了令人印象深刻的性能。在語義分割方面,Zheng等人[7]提出了SETR來證明在這個任務中使用Transformers的可行性。

SETR采用ViT作為主干,并結(jié)合多個CNN解碼器來提高特征分辨率。盡管ViT具有良好的性能,但它也有一些局限性:1)ViT輸出單尺度低分辨率特征,而不是多尺度特征。2) 在大圖像上計算量大。為了解決這些局限性,Wang等人[8]提出了一種金字塔視覺變換器(PVT),它是一種具有金字塔結(jié)構(gòu)的ViT的自然擴展,用于密集預測。PVT在目標檢測和語義分割方面比ResNet有很大的改進。然而,與其他新興方法如Swin-Transformer[9]和Twins[10]一起,這些方法主要考慮變壓器編碼器的設計,而忽略了解碼器對進一步改進的貢獻。

本文介紹了SegFormer,一個綜合考慮了效率、準確性和魯棒性的用于語義分割的前沿Transformer框架。與以前的方法不同,我們的框架重新設計了編碼器和解碼器。我們的方法的關鍵創(chuàng)新點是:

?????一種新穎的無位置編碼分層變壓器編碼器。

?????輕量級全MLP解碼器設計,無需復雜和計算要求高的模塊即可產(chǎn)生強大的表示。

?????如圖1所示,SegFormer在三個公開可用的語義分割數(shù)據(jù)集的效率、準確性和魯棒性方面創(chuàng)下了最新水平。

圖1:ADE20K上的性能和效率。所有結(jié)果均采用單模型和單尺度推理。SegFormer實現(xiàn)了最新的51.0%mIoU,同時比以前的方法效率更高。

首先,當測試分辨率不同于訓練分辨率時,該編碼器沒有對位置編碼做插值。因此,我們的編碼器可以很容易地適應任意的測試分辨率而不影響性能。此外,分層部分使編碼器能夠生成高分辨率的高質(zhì)量特征和低分辨率的粗特征,這與ViT只能生成具有固定分辨率的單個低分辨率特征圖不同。其次,我們提出了一個輕量級的MLP解碼器,其核心思想是利用由Transformer推導的特性,其中較低層的注意力傾向于關注局部,而最高層的注意力具有高度的非局部特性。通過聚合不同層的信息,MLP解碼器將局部和全局注意力結(jié)合起來。因此,我們得到一個簡單而直接的解碼器,呈現(xiàn)強大的表示。

我們在三個公開的數(shù)據(jù)集上展示了 SegFormer 在模型大小、運行時間和準確性方面的優(yōu)勢:ADE20K、Cityscapes和COCO等。在Citysapces上,我們的輕量級模型 SegFormer-B0達到48 FPS和71.9%mIoU(沒有使用加速器如TensorRT),與ICNet[11]相比,分別在延遲和性能上分別提高了60%和4.2%。我們最大的型號SegFormer-B5的產(chǎn)量為84.0%,相比SETR[7]提升1.8%的mIoU并且快5倍。在ADE20K上,該模型達到51.8%mIoU的最先進水平并且比SETR小4倍。此外,我們的方法比現(xiàn)有方法對常見的腐蝕和擾動更為魯棒,因此適合于safety-critical 應用。代碼將公開使用。

2 相關工作

語義分割。? ? 語義分割可以看作是圖像分類從圖像層次到像素級的延伸。在深度學習時代[12–16],F(xiàn)CN[1]是語義分割的基礎工作,它是一個全卷積網(wǎng)絡,它以端到端的方式進行像素到像素的分類。之后,研究人員從不同的方面對FCN進行了改進,如:擴大感受野[17-19,5,2,4,20];細化上下文信息[21–29];引入邊界信息[30–37];設計各種注意力模塊[38–46];或者使用AutoML技術(shù)[47–51]。這些方法在引入大量經(jīng)驗模塊的基礎上,顯著提高了語義分割性能,使得框架計算量大,復雜。最近的方法證明了基于Transformers的語義分割體系結(jié)構(gòu)的有效性[7,46]。然而,這些方法在計算上仍然很苛刻。

Transformers主干。? ? ViT[6]是第一個證明純Transformers在圖像分類中能達到最先進性能的工作。ViT將每個圖像視為一系列tokens,然后將它們反饋到多個Transformers層以進行分類。隨后,DeiT[52]進一步探索了ViT的數(shù)據(jù)高效培訓策略和蒸餾方法。更新的方法,如T2T ViT[53]、CPVT[54]、TNT[55]、CrossViT[56]和LocalViT[57]等,引入了針對ViT的定制更改,以進一步提高圖像分類性能。

除了分類之外,PVT[8]是第一個在Transformers中引入金字塔結(jié)構(gòu)的工作,它顯示了純Transformers主干相比CNN在密集預測任務中的潛力。之后,Swin[9]、CvT[58]、CoaT[59]、LeViT[60]和Twins[10]等方法增強了特征的局部連續(xù)性,消除了固定尺寸的位置嵌入,提高了變壓器在密集預測任務中的性能。

特定任務的Transformers。????DETR[52]是第一個使用變壓器構(gòu)建無最大抑制(NMS)的端到端目標檢測框架的工作。其他作品也在各種任務中使用Transformers,例如跟蹤[61,62]、超分辨率[63]、ReID[64]、著色[65]、檢索[66]和多模式學習[67,68]。在語義分割方面,SETR[7]采用ViT[6]作為骨干提取特征,取得了令人印象深刻的性能。然而,這些基于Transformers的方法效率很低,因此難以在實時應用中部署。

3????方法

本節(jié)介紹SegFormer,我們的高效、健壯和強大的分割框架,無需手工制作和計算量大的模塊。如圖2所示,SegFormer由兩個主要模塊組成:(1)一種分層Transformers編碼器,產(chǎn)生高分辨率粗特征和低分辨率高質(zhì)量特征;以及(2)一種輕量級的全MLP解碼器,將這些多層次特征融合,生成最終的語義分割掩碼。

給定一張大小為H×W×3的圖片,我們首先將其劃分為一些大小為4×4的圖塊。和ViT的16×16圖塊不同,我們將圖塊分得更小,這樣更適應密集預測任務。

然后,我們使用這些圖塊作為層次Transformers編碼器的輸入,以獲得原始圖像分辨率{1/4、1/8、1/16、1/32}的多級特征。然后,我們將這些多級特征傳遞給全MLP解碼器,以預測尺寸為\frac{H}{4} \times \frac{W}{4} \times N_{cls} 的分割掩膜,其中N_{cls}是類別數(shù)。在本節(jié)的其余部分,我們將詳細介紹所提出的編碼器和解碼器設計,并總結(jié)我們的方法和SETR之間的主要區(qū)別。

圖2。Segmenter框架包括兩個主要模塊:分級Transformer編碼器,用于提取大而粗、小而精的特征;以及一個輕量級的全MLP解碼器來直接融合這些多層次特征并預測語義分割掩碼。“FFN”表示前饋網(wǎng)絡。

3.1 分級Transformer編碼器

我們設計了一系列的Mix Transformer編碼器(MiT),MiT-B0到MiT-B5,具有相同的結(jié)構(gòu),但尺寸不同。MiT-B0是我們用于快速推理的輕量級模型,而MiT-B5是用于最佳性能的最大模型。我們設計的MiT部分靈感來自ViT,但針對語義分割進行了定制和優(yōu)化。

分層特征表示。????不同于ViT只能生成單一分辨率的特征圖,該模塊的目標是在給定輸入圖像的情況下,生成類似CNN的多層次特征。這些特征提供了高分辨率的粗特征和低分辨率的精細(fine-grained)特征,通常可以提高語義分割的性能。更準確地說,給定分辨率為H×W×3的輸入圖像,我們通過patch merging以獲得一個層次化的特征圖F_{i} ,其分辨率為\frac{H}{2^{i+1} } \times \frac{W}{2^{i+1} } \times C_{i} ,其中i\in \left\{ 1,2,3,4 \right\} C_{i+1} 要比C_{i} 要大。

Overlapped Patch Merging.? ? 給定一個圖像塊(image patch),ViT里用到的patch merging流程是將一個N×N×3的圖塊unifies into 為一個1×1×C的向量。這很容易擴展為將2×2×C_{i} 圖塊unify into 為一個1×1×C_{i+1}的向量,以獲得層次特征圖。這樣,我們可以將層次特征F_{1}({\frac{H}{4 } \times \frac{W}{4} \times C_{1} } ) 收縮為F_{2}({\frac{H}{8} \times \frac{W}{8} \times C_{2} } ) ,然后迭代層次結(jié)構(gòu)中的任何其他特征映射。這個過程最初是設計來結(jié)合非重疊的圖像塊或特征塊。因此,它無法保持這些塊周圍的局部連續(xù)性(local continuity around those patches)。相反,我們使用重疊的塊合并過程。為此,我們定義了KSP,其中K是塊大小,S是兩個相鄰塊之間的步幅,P是填充大小。在我們的實驗中,我們設置K=7,S=4,P=3,以及K=3,S=2,P=1來進行重疊的塊合并,以產(chǎn)生與非重疊過程相同大小的特征。

高效的自注意力。????編碼器的主要計算瓶頸是自注意力層。在原來的多頭自注意過程中,每個頭的Q,K,V都有相同的維數(shù)N× C、 其中N=H× W是序列的長度,自注意力的計算為:

\mathrm{Attention} (Q,K,V)=\mathrm{Softmax}(\frac{QK^T }{\sqrt{d_{head} } } )V?????(1)

這個過程的計算復雜度是O(N^2 ),這對于大的圖像分辨率是禁止的。相反,我們使用PVT[8]中介紹的序列縮減過程。此過程使用縮減比R來縮短序列長度,如下所示:

\hat{K}  = \mathrm{Reshape}(\frac{N}{R} ,C\cdot R)(K)

K  =\mathrm{Linear}(C\cdot R ,C)( \hat{K} )????????????? ??(2)

其中K是要縮減的序列,\mathrm{Reshape}(\frac{N}{R} ,C\cdot R)(K)表示將K變形為\frac{N}{R} \times (C \cdot R)\mathrm{Linear}(C_{in} ,C_{out})(\cdot )表示輸入通道數(shù)為C_{in} 、輸出通道數(shù)為C_{out} 的線性層。因此,新的K的維度為\frac{N}{R} \times C。這樣,自注意力的復雜度就從O(N^2 )降為O(\frac{N^2 }{R} )。在我們的實驗中,我們將第一到第4階段的R設置為[64,16,4,1]。

MixFFN????ViT使用位置編碼(PE)來引入位置信息。然而,PE的分辨率是固定的。因此,當測試分辨率與訓練分辨率不同時,需要對位置編碼進行插值,這常常導致精度下降。為了緩解這個問題,CPVT[54]使用了3×3卷積與PE一起實現(xiàn)數(shù)據(jù)驅(qū)動PE。我們認為,對于語義分割,位置編碼實際上是沒有必要的。相反,我們引入了Mix-FFN,它考慮了zero-padding對位置信息的泄露[69],在前饋網(wǎng)絡(FFN)中直接使用3×3卷積。MixFFN可寫為:

\mathrm{x}_{out} =\mathrm{MLP}(\mathrm{GELU}(\mathrm{Conv}_{3\times 3}(\mathrm{MLP}(\mathrm{x}_{in} )) ))+\mathrm{x}_{in}? ??(3)

其中\mathrm{x}_{in}是自注意力輸出的特征。MixFFN將一個3×3卷積和MLP混入到每個FFN中。在我們的實驗中,我們將證明3×3卷積足以為Transformers提供位置信息。具體地,我們使用深度卷積以減少參數(shù)量和提高計算效率。

3.2 輕量級All-MLP解碼器

SegFormer集成了一個僅由MLP層組成的輕量級解碼器,這避免了其他方法中通常用的手工制作和計算要求很高的組件。實現(xiàn)這種簡單解碼器的關鍵是我們的分層Transformer編碼器比傳統(tǒng)的CNN編碼器具有更大的有效感受野(ERF)。

我們提出的全MLP解碼器由四個主要步驟組成。首先,來自MiT編碼器的多級特征F_i會通過MLP層來統(tǒng)一通道維度。然后,第二步,特征上采樣到1/4尺寸并拼接在一起。第三步,采用MLP層融合拼接后的特征F。最后一步,另一個MLP層利用融合后的特征,預測分割掩膜M,其分辨率為\frac{H}{4} \times \frac{W}{4} \times N_{cls} ,其中N_{cls} 是類別個數(shù)。公式為:

 {\hat{F} }  _{i}   =\mathrm{Linear}(C_i ,C)( F_{i}  ),? ??\forall i

 {\hat{F} }  _{i}   = \mathrm{Upsample}(\frac{H}{4} \times \frac{W}{4}  )(  { \hat{ F} }  _{i}  ),? ??\forall i

F  =\mathrm{Linear}(4C,C)(\mathrm{Concat}(  { \hat{F } }  _{i}  )),? ??\forall i

M = \mathrm{Linear}(C, N_{cls} )(F),? ??(4)

其中M表示預測的掩碼,\mathrm{Linear}(C_{in} ,C_{out})(\cdot )表示輸入通道數(shù)為C_{in} 、輸出通道數(shù)為C_{out} 的線性層。

有效的感受野分析。????對于語義分割,保持大的感受野以包含上下文信息是一個核心問題[5,19,20]。在這里,我們使用有效感受野(ERF)[70]作為一個工具來可視化和解釋為什么我們的MLP解碼器設計對Transformers如此有效。在圖3中,我們展示了DeepLabv3+和SegFormer的編碼器4個階段與解碼器頭的ERFs。我們可以做以下觀察:

?????即使在最深的第4階段,DeepLabv3+的ERF也相對較小。

?????SegFormer的編碼器在較低的階段能夠自然地產(chǎn)生局部的關注,類似于卷積;同時在第4階段能夠輸出高度非局部的關注,有效捕獲上下文。

?????如圖3中的放大所示,MLP頭部(藍色框)的ERF與第4階段(紅色框)不同,除了非局部注意外,局部注意明顯更強(differ from...with a significant stronger local attention besides the non-local attention)。

圖3:Cityscapes的有效感受野(ERF)(在100幅圖像上取平均)。上面一行:Deeplabv3+。下面一行:SegFormer。兩種網(wǎng)絡結(jié)構(gòu)的編碼器4階段和解碼器頭的ERFs都可視化了。最好放大看。

CNN中有限的感受野要求人們求助于諸如ASPP[18]這樣的上下文模塊,這些模塊擴大了感受野,但不可避免地變得計算量大。我們的解碼器設計得益于Transformers中的非局部關注,并在不復雜的情況下獲得更大的感受野。然而,同樣的解碼器設計在CNN主干上并不適用,因為在第4階段,總體感受野(overall receptive filed)的上限是有限的,我們將在后面的表1d中對此進行驗證。

更重要的是,我們的解碼器設計基本上利用了由Transformer引出的特性,這種特性可以同時產(chǎn)生高度的局部和非局部關注。通過統(tǒng)一它們,我們的MLP解碼器通過添加少量參數(shù)來呈現(xiàn)互補的和強大的表示。這是促使我們設計的另一個關鍵原因。單從第4階段的非局部關注不足以產(chǎn)生良好的結(jié)果,如表1d所示。

3.3????與SETR的關系。

與SETR[7]相比,SegFormer包含了多種更高效、更強大的設計:

?????我們只使用ImageNet-1K進行預訓練。SETR中的ViT在較大的ImageNet-22K上預訓練。

?????SegFormer的編碼器具有分層結(jié)構(gòu),比ViT更小,可以捕獲高分辨率粗特征和低分辨率精特征。相比之下,SETR的ViT編碼器只能生成單一的低分辨率特征圖。

?????我們?nèi)コ司幋a器中的位置嵌入,而SETR使用固定尺寸的位置嵌入,當推理的分辨率與訓練的分辨率不同時,會降低精度。

?????我們的MLP解碼器比SETR中的更緊湊,計算要求更低。這導致了可以忽略不計的計算開銷。相反,SETR需要多個3×3卷積的計算量大的解碼器。

4????實驗

4.1????實驗設置

數(shù)據(jù)集:????我們使用了三個公開的數(shù)據(jù)集:Cityscapes[71]、ADE20K[72]和COCOStuff[73]。ADE20K是一個場景解析數(shù)據(jù)集,包含150個細粒度語義概念,由20210幅圖像組成。Cityscapes是一個用于語義分割的駕駛數(shù)據(jù)集,由5000個精細注釋的19類高分辨率圖像組成。COCO Stuff包含172個標簽,由164k張圖片組成:118k用于訓練,5k用于驗證,20k用于test-dev,20k用于test-challenge。

實施細節(jié):????我們使用mmsegmentation的代碼基礎,并在一臺裝有8個Tesla V100的服務器上進行訓練。我們在Imagenet-1K數(shù)據(jù)集上預訓練編碼器,并隨機初始化解碼器。在訓練過程中,我們做數(shù)據(jù)增強有:隨機resize(比率為0.5-2.0)、隨機水平翻轉(zhuǎn)、隨機裁剪到512×512(ADE20K)、1024×1024(Cityscapes)、512×512(COCO)。Following [9],在ADE20K上我們最大型號的模型B5的裁剪大小設置為640×640。我們使用AdamW優(yōu)化器在ADE20K、Cityscapes上訓練160K次迭代,在COCO上訓練80K次迭代。例外的是,對于消融研究,我們訓練了40K迭代的模型。我們對ADE20K和COCO使用16的批量大小,對Cityscapes使用8的批量大小。初始學習率為0.00006,使用系數(shù)為1的poly學習率衰減。為了簡單起見,我們沒有采用廣泛使用的技巧,如OHEM,輔助損失或類別平衡損失。在評估過程中,在ADE20K和COCO上,我們將測試圖像的短邊縮放到訓練階段的crop size,縮放的時候保持寬高比;在Cityscapes上,?using sliding window test by cropping1024×1024 windows。我們用mIoU報告性能。

4.2消融研究

模型尺寸的影響。????我們首先分析了增加編碼器大小對性能和模型效率的影響。圖1顯示了在不同大小的編碼器下,ADE20K的性能與模型效率。表1a總結(jié)了三個數(shù)據(jù)集的結(jié)果。這里首先要觀察的是解碼器相比編碼器的大小。如圖所示,對于輕量級模型,解碼器只有0.4M的參數(shù)。對于MiT-B5編碼器,解碼器只占模型參數(shù)總數(shù)的4%。在性能方面,我們可以觀察到,總的來說,增加編碼器的大小會對所有數(shù)據(jù)集產(chǎn)生一致的改進。我們的輕量級模型SegFormer-B0在保持競爭性能的同時,結(jié)構(gòu)緊湊、效率高,這表明我們的方法對于實時應用非常方便。另一方面,我們最大的型號SegFormer-B5在所有三個數(shù)據(jù)集上都取得了最先進的結(jié)果,顯示了我們Transformers編碼器的潛力。

MLP解碼器通道維度C的影響。? ? 我們現(xiàn)在分析MLP解碼器中通道維度C的影響,參見第3.2節(jié)。在表1b中,我們展示了不同維度下的性能、FLOPs和參數(shù)量。我們可以觀察到設置C=256提供了非常有競爭力的性能和計算成本。性能隨C的增加而提高;然而,它會導致更大、效率更低的模型。有趣的是,通道數(shù)大于768后,性能的提升會飽和。考慮到這一點,我們將我們的實時模型B0和B1設置為C=256,其余模型設置為C=768

Mix-FFN vs.位置編碼器(PE)。? ? 在本實驗中,我們分析了移除Transformer編碼器中的位置編碼而使用所提出的Mix-FFN的效果。為此,我們使用位置編碼(PE)和提出的Mix-FFN訓練Transformer編碼器,并對具有兩種不同圖像分辨率的Cityscapes進行推斷:768×768使用滑動窗口,1024×2048年使用整張圖片。

表1c顯示了本實驗的結(jié)果。如圖所示,對于給定的分辨率,使用Mix-FFN的方法明顯優(yōu)于使用位置編碼的方法。此外,我們的方法對測試分辨率的差異不太敏感:當測試分辨率低時,使用位置編碼,準確率下降3.3%。相比之下,使用Mix-FFN,性能下降僅為0.7%。從這些結(jié)果,我們可以得出結(jié)論,使用Mix-FFN比使用位置編碼導致更好和更魯棒的編碼器。

有效的感受野評估。????在第3.2節(jié)中,我們認為我們的MLP解碼器得益于Transformers相比CNN有更大有效感受野。為了量化這種影響,在本實驗中,我們比較了MLP解碼器與基于CNN的編碼器(如ResNet或ResNeXt)的性能。如表1d所示,將我們的MLP解碼器與基于CNN的編碼器耦合,與將其與Transformers編碼器耦合相比,產(chǎn)生顯著更低的精度。直觀地說,由于CNN的感受野比Transformers小(見第3.2節(jié)的分析),MLP解碼器 is not enough for global reasoning。相比之下,耦合我們的Transformers編碼器與MLP解碼器導致最佳性能。此外,對于Transformers編碼器,需要將低層局部特征和高層非局部特征相結(jié)合,而不是只使用高層特征。

4.3????與最新方法的比較

我們現(xiàn)在將我們的結(jié)果與ADE20K[72]、Cityscapes[71]和COCO Stuff[73]數(shù)據(jù)集上的現(xiàn)有方法進行比較。

ADE20K和Cityscapes:表2總結(jié)了我們的結(jié)果,包括ADE20K和Cityscapes的參數(shù)、FLOPs、延遲和準確性。在表的頂部,我們報告了實時方法,其中包括最先進的方法和使用MiT-B0輕量級編碼器的結(jié)果。在底部,我們關注性能,并報告我們的方法和使用更強編碼器的相關工作的結(jié)果。

如圖所示,在ADE20K上,SegFormer-B0僅使用380萬個參數(shù)和8.4G的浮點運算就產(chǎn)生了37.4%的mIoU,在參數(shù)、浮點運算和延遲方面優(yōu)于所有其他實時對應的運算。例如,與DeeplabV3+(MobileNetV2)相比,SegFormer-B0的幀速率為7.4fps,速度更快,mIoU性能提高了3.4%。此外,SegFormer-B5優(yōu)于所有其他方法,包括以前最好的SETR,并建立了一個新的最先進的51.8%,比SETR好1.6%,同時效率顯著提高。

如表2所示,我們的結(jié)果也適用于Cityscapes。SegFormer-B0產(chǎn)生15.2fps和76.2%的mIoU(輸入圖像的短邊為1024),相比DeeplabV3+,mIoU改善了1.3%,并且有2×的加速。此外,當輸入圖像的短邊為512時,SegFormer-B0以47.6fps的速度運行,產(chǎn)生71.9%的mIoU,比ICNet快17.3fps,性能好4.2%。SegFormer-B5有84.0%的最佳IoU,比所有現(xiàn)有方法至少高出1.8%的mIoU,并且它相比SETR[7],運行快5倍,模型小4倍。

在Cityscapes測試集上,我們遵循通用設置[20],將驗證圖像合并到訓練集,并使用Imagenet-1K預訓練,并且也使用Mapillary Vistas[76]。如表3所示,僅使用Cityscapes精細數(shù)據(jù)和Imagenet-1K預訓練,我們的方法比所有其他方法(包括使用Imagenet-22K預訓練和額外的Cityscapes粗數(shù)據(jù)的SETR)的mIoU性能好,達到82.2%。利用Mapillary預訓練,我們?nèi)〉昧?3.1%mIoU的最新成績。圖4顯示了城市景觀的定性結(jié)果,SegFormer比SETR提供了更好的細節(jié),比DeeplabV3+提供了更平滑的預測。

COCO-Stuff????最后,我們在完整的COCO-Stuff數(shù)據(jù)集上評估SegFormer。為了進行比較,由于現(xiàn)有方法無法提供此數(shù)據(jù)集的結(jié)果,因此我們復制了最具代表性的方法,如DeeplabV3+、OCRNet和SETR。在本例中,此數(shù)據(jù)集上的flops與ADE20K報告的flops相同。如表4所示,SegFormer-B5在參數(shù)僅為84.7M的情況下達到46.7%的mIoU,比SETR好0.9%,模型小4倍。綜上所述,這些結(jié)果證明了SegFormer在語義分割的準確性、計算量和模型大小方面的優(yōu)越性。

圖4:Cityscapes的定性結(jié)果。與SETR相比,我們的SegFormer預測的掩模在物體邊界附近具有更精細的細節(jié)。與DeeplabV3+相比,SegFormer減少了遠程錯誤,以紅色突出顯示。最好在屏幕上觀看。

4.4 對自然腐蝕的魯棒性

模型魯棒性對于許多安全關鍵任務非常重要,例如自動駕駛[77]。在這個實驗中,我們評估了SegFormer對常見的腐蝕和擾動的魯棒性。為此,我們遵循[77]并生成Cityscapes-C,它將Cityscapes驗證集擴展為16種算法生成的損壞,包括噪聲、模糊、天氣和digital類別。我們將我們的方法與DeeplabV3+的變體以及[77]中報告的其他方法進行了比較。這個實驗的結(jié)果總結(jié)在表5中。

我們的方法明顯優(yōu)于以前的方法,在高斯噪聲和降雪天氣下的相對改善率分別高達588%和295%。結(jié)果表明,SegFormer具有很強的魯棒性,我們認為這將有利于魯棒性非常重要的安全關鍵應用。

5 結(jié)論

在本文中,我們提出了一個簡單,優(yōu)雅,但功能強大的語義分割方法SegFormer,它包含一個不用位置編碼、層次Transformer編碼器和一個輕量級All-MLP解碼器。它避免了以往方法中常見的復雜設計,從而提高了效率和性能。SegFormer不僅在常規(guī)數(shù)據(jù)集上獲得了最新的結(jié)果,而且具有很強的零樣本魯棒性。我們希望我們的方法能為語義分割提供一個堅實的基礎,并推動進一步的研究。一個限制是,盡管我們最小的3.7M參數(shù)模型比已知的CNN模型小,但它是否能在一個只有100k內(nèi)存的邊緣設備芯片上工作還不清楚。我們把它留給以后的工作。

更廣泛的影響

效率、準確性和健壯性是人工智能模型的基本方面,特別是對于安全關鍵應用。我們的工作在這三個方面極大地推動了語義分割模型的發(fā)展。我們設想這項工作將有利于涉及感知和識別的廣泛應用,例如自動駕駛和機器人導航。所提出的方法提高了這些應用程序的“in-the-wild”魯棒性,最終導致更好的安全性。此外,由于我們提出了一套更緊湊的模型,訓練計算更少,從而減少了碳足跡。我們目前沒有預見到明顯的不良道德/社會影響。

附錄

A????MiT系列的細節(jié)

在這一節(jié)中,我們列出了混合Transformer編碼器MiT的一些重要的超參數(shù)。通過改變這些參數(shù),我們可以很容易地將編碼器從B0擴展到B5。

我們MiT的超參數(shù)如下:

?????K_i:第i階段的有重疊圖塊嵌入的大小(the patch size of the overlapping patch embedding);

?????S_i:第i階段有重疊圖塊嵌入的步幅;

?????P_i:第i階段有重疊圖塊嵌入的填充大小(padding size);

?????C_i:第i階段輸出的通道數(shù);

?????L_i:第i階段的編碼層數(shù);

?????R_i:第i階段高效自注意力的縮減率;

?????N_i:第i階段高效自注意力的頭數(shù);

?????E_i:第i階段前饋層[78]的膨脹率;

表6顯示了MiT系列的詳細信息。為了便于高效的討論,我們將MiT編碼器取名為B0到B5,其中B0是設計用于實時的最小模型,而B5是設計用于高性能的最大模型。

B????更多關于掩模預測的定性結(jié)果

在圖5中,與SETR和DeepLabV3+相比,我們給出了有關Cityscapes、ADE20K和COCO的更多定性結(jié)果。

與SETR相比,我們的SegFormer可以在物體邊界附近預測具有更精細細節(jié)的掩模,因為我們的Transformer編碼器可以捕獲比SETR更高分辨率的特征,從而保留更詳細的紋理信息。與DeepLabV3+相比,SegFormer由于變壓器編碼器比ConvNet具有更大的有效感受野,減少了長程誤差。

C????有效感受野的可視化

在圖6中,我們選擇了一些有代表性的圖像的DeepLabV3+和SegFormer的有效感受野(ERF)。除了ERF更大,SegFormer的ERF對圖像的上下文更為敏感。我們看到SegFormer的ERF學習了道路、汽車和建筑物的模式,而DeepLabV3+的ERF顯示了相對固定的模式。實驗結(jié)果也表明我們的Transformer編碼器比ConvNets具有更強的特征提取能力。

D? ? 在Cityscapes-C上DeeplabV3+和SegFormer的更多的比較

在本節(jié)中,我們詳細介紹了與SegFormer和DeepLabV3+相比的零樣本魯棒性。Following [77],we test 3 severities for 4 kinds of “Noise” and 5 severities for the rest 12 kinds of corruptions and perturbations

如圖7所示,隨著嚴重性的增加,DeepLabV3+顯示出相當大的性能下降。相比之下,SegFormer的性能相對穩(wěn)定。此外,SegFormer在所有腐蝕/擾動和所有嚴重性方面都比DeepLabV3+具有顯著優(yōu)勢,表現(xiàn)出出色的零樣本魯棒性。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容