Rethinking Semantic Segmentation from a Sequence-to-Sequence Perspective with Transformers

TL;DR

SETR用纯Transformer做分割,ADE20K达50.28%mIoU。

cs.CV 🟡 进阶级 2021-01-01 37 次浏览
Sixiao Zheng Jiachen Lu Hengshuang Zhao Xiatian Zhu Zekun Luo Yabiao Wang Yanwei Fu Jianfeng Feng Tao Xiang Philip H. S. Torr Li Zhang
语义分割 Transformer 序列到序列 ViT 多尺度推理

核心发现

方法论

作者把语义分割重写为序列到序列任务:先将图像切成16×16 patch,线性映射为token序列,再送入纯Transformer编码器。编码器不做卷积下采样,而是用多头自注意力在每一层建模全局上下文;随后用简单解码器把序列恢复到像素级预测。论文给出三种解码器:Naive、PUP和MLA,用于验证编码器表征能力。

关键结果

  • 在ADE20K上,SETR-MLA于160k训练+多尺度测试达到50.28%mIoU,SETR-PUP为50.09%,明显高于FCN(41.40%)和Deeplab V3+(46.40%)等强基线。
  • 在Pascal Context上,SETR-MLA多尺度达到55.83%mIoU,超过APCNet(54.70%)、Strip Pooling(54.50%)等方法;SETR-PUP为55.27%。
  • 在Cityscapes上,SETR-PUP-DeiT-Base达到79.45%mIoU,优于FCN(76.61%)、PSPNet(78.50%)和DeepLab-v3(79.30%),说明纯Transformer在高分辨率城市场景也具竞争力。

研究意义

这项工作的重要性在于,它首次系统地把语义分割从“卷积编码器+上采样解码器”的FCN范式,改写为真正的序列建模问题。传统方法依赖逐步扩大感受野来捕获上下文,而SETR让每一层都拥有全局感受野,避免了低层特征因下采样过早丢失空间信息。对于研究界,它证明Transformer不只适合分类,也能成为像素级理解的主干;对于工业界,它提供了一个更统一、可扩展的视觉编码框架。

技术贡献

技术贡献主要有三点:第一,提出纯Transformer编码器SETR,输入为patch序列而非卷积特征图,核心计算由Q=ZW_Q、K=ZW_K、V=ZW_V与scaled dot-product attention完成。第二,提出三种解码器,分别对应一次性恢复、渐进式2×上采样,以及类似FPN的多层特征聚合,系统分析编码器表征质量。第三,在ViT/DeiT预训练、T-Base/T-Large配置与Cityscapes/ADE20K/PASCAL Context上验证了可迁移性与SOTA性能。

新颖性

新颖性在于它不是在FCN上“加注意力”,而是直接取消卷积式下采样,保持全程统一分辨率的序列表示。这与Non-Local、DANet、CCNet、Axial-Attention等方法不同:后者仍依附于卷积骨干或渐进降采样结构。SETR把Transformer作为唯一编码器,并用简单解码器证明全局上下文本身就足以支撑强分割性能。

局限性

  • 计算与显存开销较大:即便采用16×16 patch,T-Large仍有305.67M参数,训练依赖较强GPU资源;全局自注意力的二次复杂度限制了更高分辨率输入的直接扩展。
  • 论文主要依赖大规模预训练(ViT/DeiT的1K或21K权重),随机初始化时性能明显下降,例如Cityscapes上SETR-PUP-R仅42.27%mIoU,说明预训练对收敛和泛化非常关键。

未来方向

未来可从更高效的注意力机制、层次化序列表示和更轻量的解码器三方面推进;同时可探索弱监督、视频分割与高分辨率遥感分割等任务,以检验“纯Transformer分割”在复杂场景中的可扩展性。

AI 总览摘要

这篇工作挑战了语义分割领域长期默认的FCN范式。传统方法通常先通过卷积和下采样提取特征,再用解码器恢复空间细节;其优势是局部归纳偏置强,但缺点也很明显:感受野增长慢,长程依赖难建模,尤其在ADE20K这类复杂场景理解任务中容易受限。作者因此提出一个根本不同的视角:把语义分割看成序列到序列预测,而不是“特征图到标签图”的卷积流水线。

SETR(SEgmentation TRansformer)的核心做法是把图像切成固定大小的16×16 patch,将每个patch线性投影为token,并加入位置编码后送入纯Transformer编码器。编码器不做卷积、不做分辨率递减,而是在每一层通过多头自注意力(MSA)实现全局上下文交互:Q=ZW_Q,K=ZW_K,V=ZW_V,再经softmax(QK^T/√d)V聚合信息。作者进一步设计了三种解码器:Naive一次性上采样,PUP逐步2×上采样,MLA从多个Transformer层抽取特征做多层聚合,以验证不同恢复方式对分割性能的影响。

实验表明,这一范式转变是有效的。采用21K预训练的SETR-MLA在ADE20K验证集上达到50.28%mIoU,在Pascal Context上达到55.83%mIoU;在Cityscapes上,SETR-PUP-DeiT-Base达到79.45%mIoU。更重要的是,随机初始化会显著掉点,而ViT/DeiT预训练能大幅提升稳定性,说明Transformer表征学习能力强,但对预训练质量也更敏感。总体而言,这篇论文不仅给出一个新的SOTA模型,更重要的是重写了分割问题的“建模语法”。

深度分析

研究背景

语义分割从FCN时代开始,主流做法一直是编码器—解码器结构:编码器逐步压缩空间分辨率,换取更大感受野与更抽象语义,解码器再把粗粒度预测还原到像素级。DeepLab的空洞卷积、PSPNet的PPM、DeepLabV2/V3的ASPP、PSANet/DANet/CCNet等注意力方法,都试图弥补上下文建模不足,但多数仍建立在ResNet/VGG等卷积骨干上。与此同时,ViT与DeiT证明Transformer可用于图像分类,提示“图像特征必须由局部卷积逐步长成全局语义”并非唯一道路。

核心问题

核心问题是:如何在像素级任务中同时保留空间位置与建模全局关系?卷积网络依赖局部性,感受野增长慢;而普通注意力虽然擅长全局交互,却常被限制在高层小分辨率特征图上,无法在低层就充分学习长程依赖。对于ADE20K这类150类细粒度场景,或Cityscapes这类高分辨率街景,局部纹理与全局布局都重要,因此需要一种既保留位置、又天然全局的编码方式。

核心创新

第一,作者把输入从2D图像直接转成1D patch序列,避免卷积下采样带来的早期信息损失;第二,提出纯Transformer编码器作为唯一特征提取器,使每层都拥有全局感受野;第三,设计Naive/PUP/MLA三种解码器,分别测试一次性恢复、渐进恢复与多层融合的有效性;第四,结合ViT或DeiT预训练,并通过位置嵌入插值适配不同输入尺寸,证明该框架具备可迁移性。

方法详解

  • �� 图像序列化:将输入x∈R^{H×W×3}切成16×16 patch,展平成向量后经线性投影得到token embedding,序列长度为HW/256。

  • �� 位置建模:为每个patch位置学习一个位置嵌入p_i,并与patch embedding e_i相加,形成E={e_i+p_i},从而保留空间顺序信息。

  • �� Transformer编码:使用Le层标准Transformer,每层含LayerNorm、MSA与MLP。单头注意力按SA(Z)=Z+softmax(ZW_Q(ZW_K)^T/√d)(ZW_V)计算,多头则将多个SA输出拼接后再线性映射。

  • �� 输出恢复:将编码器输出Z reshape为H/16×W/16×C特征图,再交给解码器。

  • �� Naive解码器:2层1×1 conv后直接双线性上采样到原图大小,最简单但可能较粗糙。

  • �� PUP解码器:交替进行卷积与2×上采样,共4次恢复到原分辨率,更平滑。

  • �� MLA解码器:从Z_6、Z_12、Z_18、Z_24抽取多层特征,各分支经1×1/3×3/3×3卷积与4×上采样后,做自顶向下融合并拼接,类FPN但不依赖金字塔分辨率。

实验设计

作者在三大基准上评估:Cityscapes(5000张精标,19类)、ADE20K(20210/2000/3352训练/验证/测试,150类)、PASCAL Context(59类+背景,共60类)。训练使用mmsegmentation默认增强:随机缩放0.5~2、随机裁剪、水平翻转;优化器为SGD,poly学习率,Cityscapes用batch 8,其余batch 16。主比较对象包括FCN、Semantic FPN、DeepLab V3+、CCNet、DANet、OCRNet、UperNet、APCNet等。设置单尺度与多尺度测试,并报告T-Base与T-Large、ViT/DeiT预训练和随机初始化的差异。

结果分析

结果显示,SETR在多个数据集上超过或逼近当时最强方法。ADE20K上,SETR-MLA多尺度50.28%mIoU,相比FCN(41.40%)提升8.88点;PASCAL Context上55.83%,优于APCNet 54.70%;Cityscapes上SETR-PUP-DeiT-Base达到79.45%,高于FCN 76.61%与PSPNet 78.50%。同时,Hybrid(ResNet-50+SETR)说明纯Transformer并非唯一实现,但纯SETR在精度上更强。消融上,PUP通常优于Naive,MLA在ADE20K/PASCAL Context上更占优,表明多层特征融合对复杂场景更有效。

应用场景

该方法适合需要强全局理解的视觉场景,如自动驾驶街景解析、遥感地物分割、医学影像器官分割和室内场景理解。对工程部署而言,SETR更像一个统一的视觉序列建模骨架:只需替换输入token化和解码头,就能迁移到不同分割任务。它特别适合预训练资源充足、对精度要求高的场景。

局限与展望

SETR的主要代价是算力与数据依赖。全局自注意力对token数敏感,patch切得更细时开销迅速增加;T-Large参数量高达305.67M。其次,模型对大规模预训练依赖明显,随机初始化结果大幅下降,例如Cityscapes上的SETR-PUP-R只有42.27%。因此,如何在保持全局建模能力的同时降低复杂度,是后续必须解决的问题。

通俗解读 非专业人士也能看懂

你可以把这篇论文想成“把看图做题改成做拼图”。以前的方法像是先把一张大海报不断缩小、缩小,再凭着模糊的小图去猜每个位置是什么;这样虽然省力,但很容易把细节弄丢。SETR的做法更像把海报切成很多大小一致的小块,每块都保留原来的信息,然后让一个非常聪明的“总指挥”在看每一块时,都能同时看到所有其他小块。这样它就不需要一步步把图像越压越小,也能知道“左边这个人”和“右边那辆车”是什么关系。最后再把这些小块的判断重新拼回整张图,得到每个像素的类别。论文的意思就是:做分割不一定非得靠卷积一路缩小、一路放大;只要拼图方式和总指挥足够强,直接按“序列”来理解图片,也能做得很好,甚至更好。

简单解释 像给14岁少年讲一样

想象你在玩一个超大的拼图游戏。以前的分割方法有点像:先把整张图越缩越小,缩到最后只剩个迷你版本,再从这个小图里猜哪里是路、哪里是车、哪里是人。问题是,图缩得太狠,很多细节就像被橡皮擦掉了!

SETR就不这么干。它先把图片切成一块块小方块,像把拼图零件摆整齐。然后它请来一个“超级班长”——Transformer。这个班长很厉害,每看一块拼图时,都会同时观察所有别的拼图,知道谁和谁是一家、谁在路边、谁在天空里。这样它就不会只盯着眼前一点点小范围。

接着,系统再把这些信息拼回去,画出完整的分割图。论文里还试了三种“拼回去”的办法:有的像一次性把积木全倒出来,有的像一层一层慢慢搭,有的会把不同阶段的判断一起综合。结果很强:在ADE20K上拿到50.28%mIoU,在Pascal Context上到55.83%,在Cityscapes上也有79.45%。

所以你可以把这项工作理解成:不是先把图片看糊再猜,而是从一开始就让模型看“整张图的关系网”。这就是它厉害的地方!

术语表

Transformer(Transformer)

一种主要依靠自注意力进行信息交互的模型。通俗地说,它不是只看附近,而是能让每个位置直接和所有位置“对话”。在技术上,它通过Q/K/V投影和scaled dot-product attention实现全局建模。

作为SETR的唯一编码器,用来替代卷积式特征提取网络。

Patch Embedding(块嵌入)

把图像切成固定大小小块,再把每块展平并映射到向量空间的方法。这样图像就能像句子一样被Transformer处理。

SETR将输入图像转成长度为HW/256的token序列。

Multi-Head Self-Attention(多头自注意力)

把注意力分成多个“头”并行计算,让模型同时关注不同关系。每个头捕捉不同类型的上下文,再把结果拼接。

Transformer编码器每层的核心运算模块。

mIoU(平均交并比)

语义分割最常用指标,衡量预测区域与真实区域的重叠程度。数值越高,说明分割越准确。

论文在Cityscapes、ADE20K和PASCAL Context上都用它作主指标。

Decoder(解码器)

把高层特征还原为像素级分类图的模块。它负责把抽象表示变回原始分辨率的预测。

SETR中比较了Naive、PUP和MLA三种解码器。

开放问题 这项研究留下的未解疑问

  • 1 作者证明了纯Transformer在分割上可行,但没有回答“最优的token粒度是多少”以及“何时该采用层次化表示”。如何在更高分辨率下保持全局建模而不过度消耗显存,仍是开放问题。
  • 2 论文高度依赖大规模预训练权重;对于标注稀缺或领域差异很大的场景,SETR是否仍能稳定保持优势,需要更多弱监督、跨域和小样本实验来验证。

应用场景

近期应用

自动驾驶路面理解

可用于车道、车辆、行人、建筑等像素级识别,尤其适合复杂城市场景。前提是具备较强算力和较好的预训练模型,输出可直接服务于路径规划与安全检测。

高精度场景解析

适合遥感、室内导航和医学影像等需要全局上下文的任务。工程上可直接替换现有FCN骨干,结合现成数据管线做迁移。

远期愿景

统一视觉序列建模框架

长期来看,分割、检测、深度估计等任务可能共享类似的序列化输入和Transformer骨架。若进一步降低计算成本,可能推动视觉模型从“卷积主导”转向“统一token建模”。

原文摘要

Most recent semantic segmentation methods adopt a fully-convolutional network (FCN) with an encoder-decoder architecture. The encoder progressively reduces the spatial resolution and learns more abstract/semantic visual concepts with larger receptive fields. Since context modeling is critical for segmentation, the latest efforts have been focused on increasing the receptive field, through either dilated/atrous convolutions or inserting attention modules. However, the encoder-decoder based FCN architecture remains unchanged. In this paper, we aim to provide an alternative perspective by treating semantic segmentation as a sequence-to-sequence prediction task. Specifically, we deploy a pure transformer (ie, without convolution and resolution reduction) to encode an image as a sequence of patches. With the global context modeled in every layer of the transformer, this encoder can be combined with a simple decoder to provide a powerful segmentation model, termed SEgmentation TRansformer (SETR). Extensive experiments show that SETR achieves new state of the art on ADE20K (50.28% mIoU), Pascal Context (55.83% mIoU) and competitive results on Cityscapes. Particularly, we achieve the first position in the highly competitive ADE20K test server leaderboard on the day of submission.

cs.CV