动机
这篇论文提出了一个名为SegFormer的语义分割框架,旨在解决现有方法中效率和性能之间的权衡问题。当前的语义分割方法大多基于卷积神经网络(CNN)或基于视觉Transformer,尽管这些方法取得了一定的成功,但在处理多尺度特征、推理效率和适应不同分辨率的测试图像时存在局限性。SegFormer的设计动机在于简化模型结构,提高计算效率,并在保持高性能的同时增强模型的鲁棒性。
主要贡献
-
无位置编码的分层Transformer编码器:SegFormer提出了一种新颖的分层Transformer编码器,不需要位置编码,避免了在测试分辨率与训练分辨率不同时性能下降的问题。
-
轻量级全MLP解码器:SegFormer引入了一个轻量级的全MLP解码器,通过聚合不同层次的信息,结合局部和全局注意力,生成强大的特征表示。
-
模型系列的扩展:SegFormer从B0到B5系列模型,展示了在不同规模下显著的性能和效率提升。比如,SegFormer-B4在ADE20K数据集上实现了50.3%的mIoU,参数仅为64M,比之前的最佳方法小5倍,性能提升2.2%。
-
广泛的实验验证:SegFormer在ADE20K、Cityscapes和COCO-Stuff等数据集上进行了广泛的实验,展示了其在效率、精度和鲁棒性方面的显著优势。
创新点
-
无位置编码的分层Transformer编码器:与传统的视觉Transformer不同,SegFormer的编码器不使用固定的形状位置编码,从而在不同分辨率下具有更好的适应性和鲁棒性。
-
轻量级的全MLP解码器设计:通过将Transformer生成的特征进行聚合,SegFormer避免了复杂和计算量大的解码器设计,实现了高效且强大的特征表示。
-
大有效感受野(ERF):SegFormer的解码器设计利用Transformer的非局部注意力机制,在不增加复杂度的情况下实现了更大的有效感受野,增强了模型的上下文捕捉能力。
-
实证性能和鲁棒性:在多个数据集上的实验表明,SegFormer不仅在精度上超过了现有的方法,还在处理图像扰动和变化时表现出了更强的鲁棒性,适用于安全关键的应用场景。
总结来说,SegFormer通过创新性的编码器和解码器设计,在保持高性能的同时,实现了显著的计算效率和鲁棒性提升。
Abstract
这篇论文提出了SegFormer,一种简洁、高效且功能强大的语义分割框架,该框架将Transformer与轻量级的多层感知机(MLP)解码器结合在一起。SegFormer具有两个显著特点:
-
新颖的分层Transformer编码器:这种编码器输出多尺度特征,不需要位置编码,避免了在测试分辨率与训练分辨率不同情况下因位置编码插值导致的性能下降问题。
-
避免复杂解码器:提出的MLP解码器聚合了来自不同层次的信息,结合了局部和全局注意力,从而生成了强大的特征表示。简单轻量的设计是Transformer高效分割的关键。
通过扩展这种方法,论文展示了一系列从SegFormer-B0到SegFormer-B5的模型,展示了显著优于以往方法的性能和效率。例如,SegFormer-B4在ADE20K数据集上达到了50.3%的mIoU,参数量为64M,比之前的最佳方法小5倍,性能提升2.2%。最强模型SegFormer-B5在Cityscapes验证集上达到了84.0%的mIoU,并在Cityscapes-C上展示了出色的零样本鲁棒性。代码将发布在github.com/NVlabs/SegFormer。
1. Introduction
语义分割是计算机视觉中的一个基础任务,能够实现许多下游应用。它与图像分类相关,因为它生成的是每个像素的类别预测,而不是图像级别的预测。这种关系在一个开创性的工作中被指出并系统研究,该工作使用全卷积网络(FCN)进行语义分割任务。自那以后,FCN激发了许多后续工作,并成为密集预测的主要设计选择。
由于分类和语义分割之间的紧密关系,许多最先进的语义分割框架都是流行图像分类架构的变种。因此,设计骨干网络在语义分割中一直是一个活跃的研究领域。从早期使用VGG的方法,到最近使用显著更深和更强大骨干网络的方法,骨干网络的发展极大地推动了语义分割性能的提升。除了骨干网络的设计,另一条工作路线将语义分割表述为结构化预测问题,重点设计能够有效捕获上下文信息的模块和操作,一个代表性的例子是膨胀卷积。
近年来,受自然语言处理(NLP)中Transformer成功的启发,引入Transformer到视觉任务中的兴趣激增。Dosovitskiy等人提出了视觉Transformer(ViT)用于图像分类。该方法将图像分割成多个线性嵌入的patch,然后将它们输入标准的带有位置嵌入的Transformer,取得了令人印象深刻的ImageNet性能。在语义分割中,Zheng等人提出了SETR,展示了在这一任务中使用Transformer的可行性。
SETR采用ViT作为骨干网络,并结合了几种CNN解码器以放大特征分辨率。尽管表现良好,ViT仍有一些局限性:1)ViT输出单尺度低分辨率特征,而不是多尺度特征;2)在处理大图像时计算成本高。为了解决这些问题,Wang等人提出了金字塔视觉Transformer(PVT),这是ViT的自然扩展,具有金字塔结构用于密集预测。PVT在目标检测和语义分割上展示了相对于ResNet的显著改进。然而,与其他新兴方法如Swin Transformer和Twins一样,这些方法主要关注Transformer编码器的设计,忽略了解码器的贡献。
本文介绍了SegFormer,一个前沿的Transformer框架,用于语义分割,兼顾效率、精度和鲁棒性。与以前的方法不同,我们的框架重新设计了编码器和解码器。我们的方法的关键创新点包括:
- 一种新颖的无位置编码且分层的Transformer编码器。
- 一个轻量级的全MLP解码器设计,无需复杂且计算量大的模块。
- 在三个公开可用的语义分割数据集上,SegFormer在效率、精度和鲁棒性方面设立了新的标准。
首先,提出的编码器在推理分辨率与训练分辨率不同的情况下,避免了插值位置编码的问题。因此,编码器可以轻松适应任意测试分辨率,而不影响性能。此外,分层结构使编码器能够生成高分辨率细节特征和低分辨率粗略特征,这与只能生成固定分辨率单一低分辨率特征图的ViT形成对比。其次,我们提出了一个轻量级的MLP解码器,其关键思想是利用Transformer生成的特征,其中低层次的注意力趋于局部,而高层次的注意力则是高度非局部的。通过聚合不同层次的信息,MLP解码器结合了局部和全局注意力,形成了强大的表示。
我们在三个公开数据集ADE20K、Cityscapes和COCO-Stuff上展示了SegFormer在模型大小、运行时间和精度方面的优势。在Cityscapes上,我们的轻量级模型SegFormer-B0在没有加速实现(如TensorRT)的情况下,达到了71.9%的mIoU,速度为48 FPS,相较于ICNet,性能和延迟分别提高了60%和4.2%。我们的最大模型SegFormer-B5达到了84.0%的mIoU,相较于SETR提高了1.8%的mIoU,同时速度快了5倍。在ADE20K上,该模型设置了51.8%的mIoU新记录,且比SETR小4倍。此外,我们的方法对常见的扰动和干扰表现出显著的鲁棒性,适用于安全关键的应用场景。代码将公开发布。
2. Related Work 内容
语义分割
语义分割可以被看作是从图像级别扩展到像素级别的图像分类任务。在深度学习时代,Fully Convolutional Network(FCN)是语义分割领域的基础工作,能够端到端地进行像素级分类。此后,研究人员从不同方面改进了FCN,包括:
- 扩大感受野:如膨胀卷积、空洞卷积等。
- 优化上下文信息:设计能够捕获更广泛上下文的模块和操作。
- 引入边界信息:许多工作通过结合边界检测来提高分割精度。
- 各种注意力模块的设计:增强模型对不同特征的关注能力。
- 使用AutoML技术:通过自动化机器学习技术优化分割模型的设计。
这些方法显著提升了语义分割性能,但也引入了大量经验模块,使得框架复杂且计算量大。近期的研究证明了基于Transformer的架构在语义分割中的有效性,但这些方法仍然计算量大,难以用于实时应用。
Transformer骨干网络
Vision Transformer(ViT)是首个证明纯Transformer可以在图像分类中达到最先进性能的工作。ViT将每张图像处理为一系列tokens,然后输入多个Transformer层进行分类。之后,DeiT进一步探索了数据高效训练策略和蒸馏方法来优化ViT。更多近期的方法如T2T ViT、CPVT、TNT、CrossViT和LocalViT,通过针对性的改进进一步提升了图像分类性能。
在分类任务之外,Pyramid Vision Transformer(PVT)是第一个在Transformer中引入金字塔结构的工作,展示了纯Transformer骨干网络在密集预测任务中相对于CNN的潜力。随后,Swin Transformer、CvT、CoaT、LeViT和Twins等方法通过增强局部特征连续性和移除固定大小位置嵌入,提升了Transformer在密集预测任务中的性能。
针对特定任务的Transformer
DETR是第一个使用Transformer构建的端到端目标检测框架,无需非极大值抑制(NMS)。其他工作也将Transformer用于各种任务,如跟踪、超分辨率、ReID、图像上色、检索和多模态学习。在语义分割中,SETR采用ViT作为骨干网络来提取特征,取得了令人印象深刻的性能。然而,这些基于Transformer的方法效率较低,难以部署在实时应用中。
小结
这一节详细回顾了语义分割的发展,特别是从早期的FCN到近期的基于Transformer的方法。尽管Transformer在语义分割中展示了潜力,但其计算效率仍然是一个挑战。本文提出的SegFormer通过创新的编码器和解码器设计,试图在效率和性能之间找到更好的平衡。
3. Method
图2: SegFormer框架结构解释
这张图展示了SegFormer框架的整体结构,包含两个主要模块:分层Transformer编码器和轻量级全MLP解码器。以下是对图中各部分的详细解释:
编码器部分
-
Overlap Patch Embedding(重叠patch嵌入):
- 输入图像首先被划分为 4 × 4 4 \times 4 4×4 大小的patch。相比于ViT使用的 16 × 16 16 \times 16 16×16 大小的patch,这样的划分有助于密集预测任务。
-
Transformer Block 1 - 4:
- Block 1:包含Efficient Self-Attn(高效自注意力)和Mix-FFN(混合前馈网络)模块。这些模块帮助处理输入的patch并生成特征。
- Block 2 - 4:每个块后续处理特征,并通过Overlap Patch Merging(重叠patch合并)过程生成不同分辨率的多层次特征。
- 输出分辨率和通道数分别为 H 4 × W 4 × C 1 \frac{H}{4} \times \frac{W}{4} \times C_1 4H×4W×C1、 H 8 × W 8 × C 2 \frac{H}{8} \times \frac{W}{8} \times C_2 8H×8W×C2、 H 16 × W 16 × C 3 \frac{H}{16} \times \frac{W}{16} \times C_3 16H×16W×C3、 H 32 × W 32 × C 4 \frac{H}{32} \times \frac{W}{32} \times C_4 32H×32W×