SegFormer:Simple and Efficient Design for Semantic Segmentation with Transformers
约 5034 字大约 17 分钟
2025-09-04
SegFormer: Simple and Efficient Design for Semantic Segmentation with Transformers
Enze Xie1, Wenhai Wang2, Zhiding Yu3, Anima Anandkumar3,4, Jose M. Alvarez3, Ping Luo1
摘要
我们提出SegFormer,这是一个简单、高效且强大的语义分割框架,它将Transformer与轻量级多层感知机(MLP)解码器统一起来。SegFormer有两个吸引人的特点:1) SegFormer包含一个新型的分层结构化Transformer编码器,可输出多尺度特征。该编码器无需位置编码,从而避免了位置编码的插值操作——当测试分辨率与训练分辨率不同时,这种插值操作会导致性能下降。2) SegFormer摒弃了复杂的解码器设计。我们提出的多层感知机(MLP)解码器通过整合不同层级的信息,将局部注意力与全局注意力相结合,从而生成强大的表征特征。实验证明,这种简洁轻量的设计正是实现Transformer模型高效分割的关键所在。我们通过扩展SegFormer-B0到SegFormer-B5系列模型,取得了显著优于前代方法的性能和效率。例如,SegFormer-B4在ADE20K数据集上以6400万参数实现了50.3%的平均IoU值,体积缩小5×倍且性能提升2.2%,超越了此前最佳方法。我们的旗舰模型SegFormer-B5在Cityscapes验证集上达到84.0%的平均IoU值,并在Cityscapes-C数据集上展现出出色的零样本鲁棒性。
代码将在以下位置发布:github.com/NVlabs/SegFormer。
1.引言
语义分割是计算机视觉领域的基础性任务,能够支持众多下游应用。由于其输出的是逐像素的类别预测而非全局图像预测,因此与图像分类密切相关。这一关联性在经典研究[1]中得到明确阐述与系统性探讨,该论文采用全卷积网络(FCN)完成语义分割任务。自那时起,全卷积网络不仅启发了大量后续研究,更成为密集预测领域的主流设计方案。由于分类与语义分割存在密切关联,当前众多前沿语义分割框架都是基于ImageNet图像分类主流架构的变体。因此,设计骨干网络架构始终是语义分割领域的研究热点。事实上,从早期使用VGG模型[1,2]的方法,到最新采用深度更强、性能更优骨干网络[3]的技术,骨干网络的演进已显著突破了语义分割的性能极限。除架构设计外,另一研究方向将语义分割视为结构化预测问题,重点设计能有效捕捉上下文信息的模块与运算符。该领域的代表性成果是扩张卷积[4,5]技术,通过在卷积核中添加孔洞来扩大感受野,从而提升网络的感知能力。
随着自然语言处理(NLP)取得重大突破,近期视觉任务领域对Transformer模型的兴趣激增。多索维茨基团队[6]提出视觉Transformer(ViT)用于图像分类,该模型沿用NLP中Transformer的设计思路,将图像分割成多个线性嵌入的区块,并输入带有位置嵌入(PE)的标准Transformer网络,最终在ImageNet数据集上取得了亮眼表现。在语义分割领域,郑等人[7]提出的SETR模型则验证了Transformer在该任务中的应用可行性。
SETR采用ViT作为骨干网络,并通过集成多个CNN解码器来提升特征分辨率。尽管ViT性能优异,但仍存在以下局限:1)输出单一尺度的低分辨率特征而非多尺度特征;2)在处理大尺寸图像时计算成本较高。针对这些问题,王等人[8]提出了金字塔视觉变换器(PVT),这是ViT的自然扩展架构,采用金字塔结构进行密集预测。PVT在目标检测和语义分割任务中相比ResNet架构展现出显著提升。然而,与Swin Transformer [9]、Twins[10]等新兴方法类似,这些研究主要聚焦于Transformer编码器的设计优化,而忽视了解码器对性能提升的贡献。
本文提出SegFormer——一种面向语义分割的前沿Transformer框架,该框架在效率、精度和鲁棒性三方面实现协同优化。与现有方法不同,我们对编码器和解码器进行了全新设计。本方案的核心创新点包括:
- 一种新的无位置编码和层次结构的Transformer编码器。
- 一种轻量级的全多层感知器解码器设计,能够在不使用复杂且计算密集型模块的情况下生成强大的表示。
- 如图1所示,SegFormer在三个公开语义分割数据集上,在效率、准确性和鲁棒性方面都达到了新的最高水平。
首先,我们提出的编码器在处理不同分辨率图像进行推理时,避免了对位置编码进行插值操作。因此,该编码器能够轻松适应任意测试分辨率而不影响性能表现。此外,其分层结构使编码器既能生成高分辨率的精细特征,又能生成低分辨率的粗略特征——这与只能生成固定分辨率低分辨率特征图的ViT模型形成鲜明对比。其次,我们提出了一种轻量级多层感知机解码器,其核心思路是利用Transformer生成的特征:低层注意力机制倾向于保持局部性,而高层注意力则具有高度非局部性。通过整合不同层级的信息,多层感知机解码器实现了局部与全局注意力的协同作用。这种设计使我们获得了一个结构简洁、实现高效的解码器,能够生成强大的表征。
我们在三个公开数据集ADE20K、Cityscapes和COCO-Stuff上验证了SegFormer模型在体积、运行时间和精度方面的优势。在Cityscapes数据集上,我们的轻量级模型SegFormer-B0(未采用TensorRT等加速技术)以48帧/秒的运行速度获得71.9%的平均IoU值,相比ICNet [11]模型分别实现了60%的性能提升和4.2%的延迟优化。最大规模的SegFormer-B5模型不仅达到84.0%的IoU值,其运行速度比SETR [7]快5×倍,性能提升达1.8%。在ADE20K数据集上,该模型以51.8%的IoU值刷新了行业纪录,体积却比SETR缩小4×倍。此外,我们的方法对常见图像篡改和扰动具有更强的鲁棒性,特别适合安全关键型应用场景。相关代码将对外公开。
3.方法
本节将介绍SegFormer——一个无需人工设计且计算量低的高效、稳健、强大的分割框架。如图2所示,该框架包含两大核心模块:(1)分层Transformer编码器,用于生成高分辨率粗粒度特征和低分辨率细粒度特征;(2)轻量级全多层感知机解码器,通过融合这些多层次特征生成最终的语义分割掩膜。

图2:本文提出的SegFormer框架包含两大核心模块——分层Transformer编码器负责提取粗粒度和细粒度特征,轻量级全多层感知机解码器则直接融合这些多层次特征并生成语义分割掩膜。其中“FFN”表示前馈网络。
对于尺寸为H×W×3的图像,我们首先将其分割为4×4大小的图像块。与ViT采用16×16的分割方式不同,使用细粒度图像块更有利于语义分割。其次,我们将这些图像块作为输入传递给分层Transformer编码器,从而生成分辨率分别为原始图像{1/4、1/8、1/16、1/32}的多层级特征。随后,我们将这些多层级特征输入全 MLP 解码器,以生成分辨率为4H×4W×Ncls的分割掩码(Ncls为类别数量)。在本节后续部分,我们将首先详细阐述所提出的编码器与解码器设计,继而总结本方法与 SETR 的主要差异。
3.1 分层变换编码器
我们设计了一系列Mix Transformer编码器(MiT),包括MiT-B0至MiT-B5,其架构相同但尺寸各异。在PVT[8]提出的分层架构和高效自注意力模块基础上,我们进一步提出若干创新特征,包括重叠补丁合并和无位置编码设计,这些改进将显著提升分割任务的性能。
层级特征表示
与ViT[6]不同,我们的编码器能根据输入图像生成多层级、多尺度的特征。这些特征既包含高分辨率的粗粒度特征,也包含低分辨率的细粒度特征,从而显著提升语义分割的性能。具体而言,对于尺寸为H×W×3的输入图像,我们通过块拼接生成层级特征图Fi,其分辨率达到2i+1H×2i+1W×Ci(其中i∈{1,2,3,4}),且Ci+1的尺寸大于Ci。
高效自注意力机制
上述分层特征表示方法的主要瓶颈在于:当输入为高分辨率特征的长序列时,其自注意力机制的二次复杂度问题。回顾原始多头自注意力机制,每个头Q、K、V的维度均为N×C(其中N=H×W表示序列长度),此时自注意力的计算公式为:
Attention(Q,K,V)=Softmax(dheadQKT)V.
我们转而采用文献[8]中提出的序列缩减流程。该流程通过缩减比R按如下方式缩短序列长度:
K^=Reshape(RN,C⋅R)(K)K=Linear(C⋅R,C)(K^),
其中K表示待降维的序列,Reshape(RN,C⋅R)(K)表示将K重塑为RN,(C⋅R)维度的张量,Linear(Cin,Cout)(⋅)表示线性层,该层以Cin维张量为输入,输出Cout维张量。因此新生成的K具有N×C维度。这使得自注意力机制的计算复杂度从O(N²)降至O(RN2)。在实验中,我们从第一阶段到第四阶段将R参数设置为[64,16,4,1]。
**重叠补丁融合**
在ViT模型中,补丁融合过程会将N×N×3的图像补丁整合为1×1×C的向量。该方法可轻松扩展为将$2\times2\times C_i$特征路径整合为$1\times1\times C_{i+1}$向量,从而生成层级特征图。通过此方法,我们可以将层级特征从F1($\frac{H}{4}\times\frac{W}{4}\times C_{1}$)缩减至F2($\frac{H}{8}\times\frac{W}{8}\times C_{2}$),并对层级中的其他特征图进行迭代处理。该过程最初设计用于合并非重叠图像或特征补丁,因此无法保留这些补丁周围的局部连续性。为此,我们采用重叠补丁融合方案。为此,我们定义K、S和P参数:K为补丁尺寸,S为相邻补丁间的步长,P为填充尺寸。实验中,我们分别设置K=7、S=4、P=3以及K=3、S=2、P=1进行重叠补丁融合,最终生成与非重叠过程尺寸相同的特征。类似于ViT模型中原有的补丁嵌入[6],该操作可通过PyTorch中的“nn.Conv2D”实现。
无位置编码设计
ViT中的位置编码(PE)分辨率是固定的,因此当测试分辨率与训练分辨率不同时,需要对位置编码进行插值处理。这会导致准确率下降,而这种分辨率不匹配在语义分割中很常见,因此是不可取的。考虑零填充对位置信息泄漏[67]的影响,我们转而引入Mix- FFN,通过在前馈网络(FFN)中直接使用3×3卷积层。Mix- FFN 的数学表达式为:
xout=MLP(GELU(Conv3×3(MLP(xin)))))+xin,
其中xin是自注意力模块的特征。Mix- FFN 将3×3卷积和 MLP 混合到每个 FFN 中。实验表明,3×3卷积足以为Transformer提供位置信息。具体而言,我们采用深度卷积来减少参数量并提升效率。
需要指出的是, CPVT [52]通过使用3×3卷积层生成不同分辨率的条件位置编码(PE),并将其添加到特征图中,同样缓解了这一问题。我们的研究在概念上更进一步,认为在语义分割中无需在特征图中添加位置编码。另一项近期研究CvT[56]引入3×3卷积层来建模标记之间的空间关系。尽管设计思路相近,但我们的工作在动机和应用层面都有所不同——我们旨在完全消除位置编码,以解决语义分割中训练/测试分辨率不匹配的问题。我们的灵感源自[67],而CvT并未讨论这一相同思路。
3.2 轻量级全 MLP 解码器
SegFormer采用仅由 MLP 层构成的轻量级解码器,从而避免了其他方法中通常使用的手工设计且计算密集型组件。实现这种简单解码器的关键在于,我们的分层Transformer编码器比传统CNN编码器具有更大的有效感受野(ERF)。
该 MLP 解码器架构包含四个核心步骤。首先,MiT编码器输出的多层级特征Fi经 MLP 层处理以统一通道维度。随后,特征被上采样至1/4比例并进行拼接。接着, MLP 层融合这些拼接后的特征F。最后,另一 MLP 层利用融合后的特征预测分辨率为4H×4W×Ncls(Ncls为类别数量)的分割掩码M。由此可将解码器结构表述为:
F^i=Linear(Ci,C)(Fi),∀iF^i=Upsample(4W×4W)(F^i),∀iM=Linear(C,Ncls)(F),
其中M表示预测掩模,Linear(Cin,Cout)(⋅)表示线性层,其输入向量维度为Cin,输出向量维度为Cout。
有效感受野分析
在语义分割领域,保持大感受野以包含上下文信息一直是核心问题[5,17,18]。本文采用有效感受野(ERF)[68]作为可视化工具,阐释 MLP 解码器设计在Transformer模型上为何如此高效。图3展示了DeepLabv3+和SegFormer模型四个编码器阶段及解码器头的ERF分布。

图3:城市景观数据集的有效感受野(ERF)(基于100幅图像的平均值)。上排:Deeplabv3+;下排:SegFormer。可视化展示了两种架构的四个阶段及解码器头的ERF。最佳观察效果需放大查看。
我们可观察到以下特征:
- 即使在第四阶段(最深阶段),DeepLabv3+的ERF仍相对较小。
- SegFormer的编码器自然生成的局部注意力机制类似于低层级阶段的卷积操作,同时能够输出高度非局部的注意力机制,从而有效捕捉第四阶段的上下文信息。
- 如图3放大区域所示, MLP 头部(蓝色框)的ERF与第四阶段(红色框)相比,除了非局部注意外,其局部注意显著更强。
卷积神经网络(CNN)的有限感受野需要借助上下文模块(如 ASPP [16])来扩展感受野,但这些模块不可避免地会变得复杂。我们的解码器设计得益于Transformer的非局部注意力机制,能够在不增加复杂度的情况下获得更大的感受野。然而,同样的解码器设计在CNN主干网络上表现不佳,因为整体感受野的上限受限于第四阶段的有限感受野,我们将在表1d中验证这一点。
更重要的是,我们的解码器设计本质上利用了Transformer产生的特征,该特征能同时产生高度局部和非局部的注意力。通过将两者统一,我们的 MLP 解码器仅需增加少量参数,即可生成互补且强大的表征。这是驱动我们设计的另一个关键原因。仅从第四阶段提取非局部注意力不足以产生良好结果,如表1d所示。
3.3 与 SETR 的关系
与 SETR [7]相比,SegFormer包含多种更高效且功能强大的设计方案:
- 我们仅使用ImageNet-1K进行预训练。 SETR 中的ViT是在更大的ImageNet-22K数据集上预训练的。
- SegFormer的编码器采用分层架构,规模小于ViT,能够同时捕捉高分辨率的粗粒度特征和低分辨率的细粒度特征。相比之下, SETR 的ViT编码器仅能生成单一的低分辨率特征图。
- 我们在编码器中移除了位置嵌入,而 SETR 采用固定形状的位置嵌入,当推理分辨率与训练分辨率不同时,这会降低准确率。
- 我们的 MLP 解码器比 SETR 中的更紧凑,计算需求更低,因此计算开销可忽略不计。相比之下, SETR 需要采用包含多个3×3卷积层的复杂解码器。
5.结论
本文提出了一种简洁高效、性能强劲的语义分割方法SegFormer,该方法采用无位置编码的分层Transformer编码器和轻量级全MLP解码器。相较于传统方法复杂的架构设计,SegFormer不仅实现了高效能与高性能的完美结合,还在常见数据集上取得了业界领先水平,同时展现出强大的零样本鲁棒性。我们期待该方法能为语义分割领域提供坚实的技术基准,并激发更多研究灵感。需要指出的是,即便在最轻量化的模型配置下,部分边缘设备仍可能面临运算压力。因此,混合精度训练、剪枝优化、硬件适配的注意力机制设计以及能耗管理,将成为我们未来研究的重点方向。
广义影响
效率、准确性和鲁棒性是人工智能模型的核心要素。我们的研究在这些维度上突破了语义分割模型的边界,有望为自动驾驶、机器人导航等安全关键领域带来突破性进展。该方法显著提升了这些应用在实际环境中的鲁棒性,从而有效保障安全性能。尽管取得了这些突破,我们清醒认识到当前成果仍存在明显不足,要实现可靠的实际应用仍需攻克诸多技术难关。需要特别说明的是,模型在真实场景中的训练方式不同,可能会产生偏差或其他潜在错误。尽管本模型并非主要针对监控应用设计,但其也可用于与其他人工智能识别方法类似的监控场景。
