&.原文信息

原文:《SegFormer: Simple and Efficient Design for Semantic Segmentation with Transformers》

引用:Xie E, Wang W, Yu Z, et al. SegFormer: Simple and efficient design for semantic segmentation with transformers[J]. Advances in Neural Information Processing Systems, 2021, 34: 12077-12090.

原文链接:https://proceedings.neurips.cc/paper/2021/file/64f1f27bf1b4ec22924fd0acb550c235-Paper.pdficon-default.png?t=N7T8https://proceedings.neurips.cc/paper/2021/file/64f1f27bf1b4ec22924fd0acb550c235-Paper.pdf

0.摘要

        我们提出了SegFormer,这是一个简单、高效且强大的语义分割框架,它将Transformer与轻量级多层感知机(MLP:Multilayer Perceptron,人工神经网络)解码器结合在一起。

关于MLP的内容可参考:机器学习(4)多层感知机(MLP) - 知乎 (zhihu.com)icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/158976635

SegFormer具有两个吸引人的特点:

        1)SegFormer包含一个新颖的层次结构的Transformer编码器,它输出多尺度特征。它不需要位置编码,从而避免了位置编码的插值问题,当测试分辨率训练不同时,导致性能下降。

        2)SegFormer避免了复杂的解码器。提出的MLP解码器从不同层级聚合信息,从而结合了局部注意力和全局注意力,以生成强大的表示。

        我们展示了这种简单轻量级的设计是在Transformer上实现高效分割的关键。我们将我们的方法扩展到一系列模型,从SegFormer-B0到SegFormer-B5,达到了比以前的对应方法更好的性能和效率。例如,SegFormer-B4在ADE20K上以64M参数达到了50.3%的mIoU,比之前的最佳方法小了5倍,效果提升了2.2%。我们最好的模型SegFormer-B5在Cityscapes验证集上达到了84.0%的mIoU,并且在Cityscapes-C上表现出了出色的零样本鲁棒性。代码将在github上发布:github.com/NVlabs/SegFormer。

1.引言

        语义分割是计算机视觉中的一项基础任务,可以实现许多下游应用。它与图像分类密切相关,因为它产生的是像素级别的类别预测,而不是图像级别的预测这种关系在一项开创性的工作[1]中被指出并进行了系统研究,作者在语义分割任务中使用了全卷积网络(FCN)。

        自那以后,FCN启发了许多后续工作,并成为密集预测的主要设计选择。由于分类和语义分割之间存在着强烈的关联,许多最先进的语义分割框架都是基于在ImageNet上进行图像分类的流行架构的变体。因此,设计骨干网络架构一直是语义分割中一个活跃的领域。事实上,从使用VGGs[1,2]的早期方法到具有更深层次和更强大骨干网络的最新方法[3],骨干网络的演进极大地推动了语义分割的性能边界。除了骨干网络架构,另一方面的工作将语义分割定义为结构化预测问题,并专注于设计模块运算符,可以有效地捕捉上下文信息。在这个领域的一个代表性例子是膨胀卷积[4,5],它通过“扩大”带有孔的卷积核来增加感受野。

        在自然语言处理(NLP)取得巨大成功的背景下,最近出现了将Transformer引入视觉任务的兴趣激增。Dosovitskiy等人[6]提出了用于图像分类的视觉Transformer(ViT)。在NLP中遵循Transformer的设计思路,作者将图像分成多个线性嵌入的patch,并将它们馈入带有位置编码(PE)的标准Transformer,从而在ImageNet上取得了令人印象深刻的性能。在语义分割任务中,Zheng等人[7]提出了SETR来展示在这个任务中使用Transformer的可行性。SETR采用ViT作为骨干网络,并结合了几个CNN解码器来增加特征分辨率。尽管ViT表现良好,但也存在一些限制:        

        1)ViT输出单尺度低分辨率特征,而不是多尺度特征。

        2)在处理大图像时计算代价较高。

        为了解决这些限制,Wang等人[8]提出了金字塔视觉Transformer(PVT),这是ViT的自然扩展,采用金字塔结构进行密集预测。PVT在目标检测和语义分割上相比ResNet取得了显著的改进。然而,与Swin Transformer [9]和Twins [10]等其他新兴方法一起,这些方法主要考虑了Transformer编码器的设计,而忽视了解码器对进一步改进的贡献。

        本论文介绍了SegFormer,一种先进的用于语义分割的Transformer框架,同时考虑了效率、准确性和鲁棒性。与以前的方法不同,我们的框架重新设计了编码器解码器。我们方法的关键创新点包括:

        • 一种新颖的无位置编码分层Transformer编码器

        • 一种轻量级的全连接多层感知机(All-MLP)解码器设计,可以在不使用复杂和计算要求高的模块的情况下生成强大的表示。

        • 如图1所示,SegFormer在三个公开可用的语义分割数据集上在效率、准确性和鲁棒性方面取得了新的最先进水平。

 图1:在ADE20K数据集上性能与模型效率的对比。所有结果都是使用单一模型和单一尺度的推断得出的。SegFormer在显著更高效的情况下实现了新的最先进的51.0% mIoU。

        首先,我们提出的编码器在对分辨率与训练分辨率不同的图像进行推断时避免了插值位置编码的操作。因此,我们的编码器可以轻松适应任意的测试分辨率而不影响性能。此外,分层结构使得编码器能够生成高分辨率的细粒度特征和低分辨率的粗粒度特征,这与ViT只能产生具有固定分辨率的单一低分辨率特征图形成对比。

         其次,我们提出了一个轻量级的MLP(多层感知机)解码器,其关键思想是利用Transformer引发的特征,其中较低层次的注意力倾向于保持局部性,而最高层次的注意力则具有高度的非局部性。通过聚合来自不同层次的信息,MLP解码器结合了局部和全局的注意力。因此,我们得到了一个简单直观的解码器,可以产生强大的表示。

        我们在三个公开可用的数据集:ADE20K,Cityscapes和COCO-Stuff上展示了SegFormer在模型大小、运行时间和准确性方面的优势。在Cityscapes数据集上,我们的轻量级模型SegFormer-B0,在没有加速实现(如TensorRT)的情况下,以48 FPS的速度达到了71.9%的mIoU,相对于ICNet [11],性能和延迟分别提升了60%和4.2%。我们最大的模型SegFormer-B5,在比SETR [7]快5倍的情况下,达到了84.0%的mIoU,相对提升了1.8%的mIoU。 在ADE20K数据集上,该模型以51.8%的mIoU创造了新的最先进水平,同时比SETR小4倍。此外,我们的方法在常见的损坏和扰动下表现出更强的鲁棒性,因此适用于安全关键的应用。代码将公开提供。

2.相关工作

语义分割语义分割可以看作是从图像级别像素级别的图像分类的扩展。在深度学习时代,FCN是语义分割的基础工作,它是一个完全卷积网络,以端到端的方式对像素进行分类。此后,研究人员从不同的方面对FCN进行改进,例如:扩大感受野优化上下文信息引入边界信息设计各种注意力模块,或使用自动机器学习技术。这些方法在提高语义分割性能的同时引入了许多经验模块,使得结果框架在计算上具有很大的要求和复杂性。最近的方法证明了基于Transformer的架构在语义分割中的有效性。然而,这些方法仍然在计算上具有很大的要求。

Transformer骨干网络。ViT是第一篇证明纯Transformer在图像分类中可以达到最先进性能的工作。ViT将每个图像视为令牌序列,然后将它们输入到多个Transformer层进行分类。随后,DeiT进一步探索了一种数据高效的训练策略和对ViT的蒸馏方法。更近期的方法,如T2T ViT,CPVT,TNT,CrossViT和LocalViT,对ViT进行了定制化的改进,进一步提高了图像分类的性能。除了分类之外,PVT是第一篇在Transformer中引入金字塔结构的工作,在密集预测任务中展示了纯Transformer骨干与CNN对比的潜力。在此之后,Swin,CvT,CoaT,LeViT和Twins等方法增强了特征的局部连续性,并去除了固定大小的位置嵌入,以提高Transformer在密集预测任务中的性能。

特定任务中的Transformer应用。DETR(Detection Transformer:是一种基于Transformer架构的目标检测模型)是第一篇使用Transformer构建端到端目标检测框架的工作,而无需使用非极大值抑制(NMS)。其他工作也在多个任务中使用Transformer,例如目标跟踪、超分辨率、ReID、着色、检索和多模态学习。在语义分割方面,SETR采用ViT作为骨干网络提取特征,取得了令人印象深刻的性能。然而,这些基于Transformer的方法效率非常低,因此在实时应用中很难部署。

 图2:提出的SegFormer框架由两个主要模块组成:

一个分层Transformer编码器用于提取粗糙和细致的特征;

以及一个轻量级的All-MLP解码器,用于直接融合这些多级特征并预测语义分割掩码。

“FFN”表示前馈神经网络。

注释Overlap Patch Merging的翻译可以为"重叠块合并",

Overlap Patch Merging是一种图像处理技术,用于将重叠的图像块合并成为一个完整的图像。 在图像处理中,将图像分成小块进行处理可以带来一些好处,比如降低计算复杂度、提高处理效率等。然而,当图像块之间存在重叠时,需要将它们合并起来以恢复图像的完整性。 Overlap Patch Merging的过程通常包括以下步骤:

  1. 划分图像:将原始图像划分成重叠的块。这些块通常有固定的大小,并且相邻块之间有一定的重叠区域。
  2. 特征提取:对每个图像块进行特征提取,可以使用各种图像特征提取方法,如卷积神经网络(CNN)等。
  3. 重叠区域处理:对于处于重叠区域的图像块,需要通过一定的处理方式来合并它们。常见的方式包括取平均值、加权平均值等。
  4. 块合并:将经过处理的图像块合并成为一个完整的图像。这可以通过将块的像素值复制到相应的位置来实现。 通过Overlap Patch Merging,可以将多个重叠的图像块合并成为一个无重叠的完整图像,从而恢复原始图像的细节和完整性。这种技术常用于图像拼接、图像重建等应用中,可以提高图像处理的准确性和效果。

Overlap Patch Embeddings是一种图像编码方法,用于将图像分成多个重叠的图像块,并将每个图像块编码为一个向量表示。这种方法常用于图像分割、目标检测和图像生成等计算机视觉任务中。 在Overlap Patch Embeddings中,图像被划分为多个重叠的图像块,每个图像块通常是一个固定大小的正方形或矩形区域。这些图像块之间通常有一定的重叠部分,以确保不会丢失重要的图像信息。然后,每个图像块通过一个预训练的卷积神经网络(CNN)模型进行特征提取,得到一个高维的向量表示。 通过使用重叠的图像块,Overlap Patch Embeddings能够捕捉到图像中更细节的信息,而不仅仅是整个图像的概览。这对于处理具有复杂纹理、细小结构或需要更精确定位的目标非常有用。 使用Overlap Patch Embeddings时,可以将每个图像块的向量表示连接起来,形成整个图像的编码表示。这样,图像中的每个部分都可以被独立地表示和处理,从而提供更多的局部信息和上下文关系。

Mix-FFN:(Mixed Feed-Forward Network),在传统的Transformer模型中,每个注意力子层之后都会连接一个全连接前馈神经网络(FFN)。而在Mix-FFN中,除了传统的FFN,还引入了另一种类型的FFN,即Mix-FFN。 Mix-FFN通过引入一种不同的前馈神经网络结构,提供了一种更加灵活的特征提取方式。传统的FFN在每个位置上都采用相同的非线性变换,而Mix-FFN则允许在不同位置使用不同的非线性变换,从而增加了模型的表达能力。 具体来说,Mix-FFN使用了两种不同的前馈神经网络结构:全局前馈神经网络(Global FFN)局部前馈神经网络(Local FFN)全局FFN是一个具有较大感受野的前馈神经网络,能够更好地捕捉全局上下文信息。而局部FFN是一个具有较小感受野的前馈神经网络,能够更好地捕捉局部细节信息。 通过同时使用全局FFN和局部FFN,Mix-FFN能够在处理不同位置的特征时更加灵活和准确。全局FFN可以帮助模型捕捉到更长范围的依赖关系和语义信息,而局部FFN则可以更好地处理局部细节和细微变化。

3.方法

        本节介绍了SegFormer,我们的高效、稳健和强大的分割框架,没有手工设计和计算需求高的模块。如图2所示,SegFormer由两个主要模块组成:

        (1)分层Transformer编码器,用于生成高分辨率的粗糙特征低分辨率的细致特征

        (2)轻量级的All-MLP解码器,用于融合这些多级特征以生成最终的语义分割掩码

        给定大小为H × W × 3的图像,我们首先将其分割成大小为4 × 4的补丁。与使用大小为16 × 16的补丁的ViT相反,使用较小的补丁有利于密集预测任务然后,我们将这些补丁作为输入传递给分层Transformer编码器,以获得原始图像分辨率的{1/4、1/8、1/16、1/32}的多级特征。然后,我们将这些多级特征传递给All-MLP解码器,以在H/4 × W/4 × N_cls的分辨率上预测分割掩码,其中N_cls是类别的数量。在本节的其余部分,我们详细介绍了提出的编码器和解码器设计,并总结了我们的方法与SETR之间的主要区别。

3.1分层Transformer编码器

        我们设计了一系列具有相同架构但不同大小的混合Transformer编码器(MiT),从MiT-B0到MiT-B5。MiT-B0是我们用于快速推理的轻量级模型,而MiT-B5是性能最佳的最大模型。我们对MiT的设计部分受到了ViT的启发,但针对语义分割进行了定制和优化。

分层特征表示。与只能生成单一分辨率特征图的ViT不同,该模块的目标是给定输入图像,生成类似CNN的多级特征。这些特征提供了高分辨率的粗糙特征低分辨率的细粒度特征,通常可以提高语义分割的性能。更具体地说,给定分辨率为H × W × 3的输入图像,我们执行补丁合并操作,获得分辨率为 的分层特征图Fi,其中i属于集合{1,2,3,4},而Ci+1大于Ci。

重叠补丁合并。给定一个图像补丁,ViT中使用的补丁合并过程将一个N × N × 3的补丁统一成一个1 × 1 × C的向量。这可以很容易地扩展到将一个2 × 2 × Ci特征路径统一成一个1 × 1 × Ci+1的向量,以获得分层特征图。使用这种方法,我们可以从F1(H/4 × W/4 × C1)缩小到F2(H/8 × W/8 × C2),然后对层次结构中的任何其他特征图进行迭代。此过程最初设计用于合并非重叠的图像或特征补丁。因此,它无法保持这些补丁周围的局部连续性。相反,我们使用重叠补丁合并过程。为此,我们定义了K、S和P,其中K是补丁大小S是相邻补丁之间的步长P是填充大小。在我们的实验中,我们设置K = 7,S = 4,P = 3和K = 3,S = 2,P = 1,以执行重叠补丁合并,以生成与非重叠过程相同大小的特征。

高效的自注意力编码器的主要计算瓶颈是自注意力层。在原始的多头自注意力过程中,每个头部的Q、K、V都具有相同的维度N × C,其中N = H × W是序列的长度,自注意力估计为:Attention(Q;K;V) = Softmax(pQK dhead T) V:

        (1)该过程的计算复杂度为O(N2),对于大图像分辨率来说是禁止的。相反,我们使用了[8]中介绍的序列缩减过程。该过程使用缩减比率R来缩减序列的长度,具体如下:K^=Reshape(N R R ;C ·R)(K) K=Linear(C ·R;C)(K^);

        (2)其中K是要缩减的序列,Reshape(N R ;C ·R)(K)表示将K重塑为形状为NR × (C ·R)的序列,Linear(Cin;Cout)(·)表示将Cin维张量作为输入,生成Cout维张量作为输出的线性层。因此,新的K的维度为N R × N R × C。因此,自注意力机制的复杂度从O(N2)降低到O(NR2 )。在我们的实验中,我们将R设置为从第1阶段到第4阶段的[64,16,4,1]。

Mix-FFN。ViT使用位置编码(PE)来引入位置信息。然而,PE的分辨率是固定的。因此,当测试分辨率与训练分辨率不同时,需要对位置编码进行插值,这往往会导致准确性下降。为了缓解这个问题,CPVT [54]使用3 × 3卷积和PE来实现数据驱动的PE。我们认为在语义分割中实际上并不需要位置编码。相反,我们引入了Mix-FFN(Mixed Feed-Forward Network​​​​​​​),它考虑了零填充泄漏位置信息的影响[69],通过在前馈网络(FFN)中直接使用3 × 3卷积来实现。Mix-FFN可以表示为:        其中xin是来自自注意力模块的特征。Mix-FFN在每个FFN中将一个3 × 3卷积和一个MLP混合在一起。在我们的实验中,我们将展示一个3 × 3卷积足以为Transformer提供位置信息。特别是,我们使用深度可分离卷积来减少参数数量并提高效率。

3.2 轻量级全MLP解码器

        SegFormer使用了一个轻量级的解码器,该解码器仅由MLP层组成,避免了其他方法中通常使用的手工设计和计算量较大的组件。实现如此简单的解码器的关键在于我们的分层Transformer编码器具有比传统CNN编码器更大的有效感受野(ERF)提出的全MLP解码器包括四个主要步骤。

        首先,来自MiT编码器的多级特征Fi通过一个MLP层进行通道维度统一

        然后,在第二步中,特征被上采样到1/4大小,并进行拼接

        第三步,采用MLP层来融合拼接后的特征F

        最后,另一个MLP层将融合后的特征输入,预测分割掩码M,分辨率为H/4 × W/4 × Ncls,其中Ncls是类别的数量。

        可以将解码器表示为:F^i = Linear(Ci; C)(Fi); 对于所有i F^i = Upsample(W4×4 × W4)(F^i); 对于所有i F = Linear(4C; C)(Concat(F^i)); 对于所有i M = Linear(C; Ncls)(F); (4) 其中M表示预测的掩码,Linear(Cin; Cout)(·)表示具有输入和输出向量维度Cin和Cout的线性层。

 

 图3:在Cityscapes数据集上的有效感受野(ERF)(平均值基于100张图像)。上排:DeepLabv3+。下排:SegFormer。可视化了两种架构的四个阶段和解码器头部的有效感受野。最好通过放大查看。

有效感受野分析。对于语义分割任务,保持较大的感受野以包含上下文信息是一个核心问题[5,19,20]。在这里,我们使用有效感受野(ERF)[70]作为工具来可视化和解释为什么我们的MLP解码器设计在Transformer模型中如此有效。在图3中,我们可视化了DeepLabv3+和SegFormer的四个编码器阶段和解码器头部的有效感受野。我们可以得出以下观察结果:

  • DeepLabv3+的有效感受野即使在最深的Stage-4阶段也相对较小。
  • SegFormer的编码器在较低的阶段自然产生类似卷积的局部注意力,同时能够输出高度非局部的注意力,在Stage-4阶段有效地捕捉上下文信息。
  • 如图3中的放大补丁所示,MLP头部(蓝色框)的有效感受野与Stage-4 (红色框)不同,除了非局部注意力外,还具有显著更强的局部注意力。
  • CNN中有限的感受野要求我们使用上下文模块(如ASPP [18])来扩大感受野,但这不可避免地增加了复杂性。我们的解码器设计借鉴了Transformer的非局部注意力,并实现了更大的感受野,而不会变得复杂。然而,同样的解码器设计在CNN骨干网络上效果不佳,因为总体感受野的上限由Stage-4的有限感受野决定,我们将在表1d中验证这一点。更重要的是,我们的解码器设计基本上利用了Transformer产生的既具有高度局部注意力又具有非局部注意力的特征。通过统一它们,我们的MLP解码器通过增加少量参数产生了互补且强大的表示。这是我们设计的另一个关键原因。仅仅使用Stage-4的非局部注意力是不足以产生良好结果的,这将在表1d中得到验证。

3.3 与SETR的关系

与SETR相比,SegFormer包含了多个更高效和更强大的设计[7]:

  • 我们只使用ImageNet-1K进行预训练。SETR中的ViT是在更大的ImageNet-22K上进行预训练的。
  • SegFormer的编码器具有分层的架构,比ViT更小,能够捕捉到高分辨率的粗糙特征低分辨率的细节特征。相比之下,SETR的ViT编码器只能生成单个低分辨率的特征图。
  • 我们在编码器中去除了位置嵌入,而SETR使用了固定形状的位置嵌入,当推断时的分辨率与训练时不同时,这会降低准确性。
  • 我们的MLP解码器比SETR中的解码器更紧凑且计算需求较低。这导致了可以忽略不计的计算开销。相比之下,SETR需要使用多个3×3的卷积进行重型解码。 这些设计使得SegFormer在效率和性能方面相比SETR有所优势。选择使用哪种方法取决于具体的应用需求和任务要求。

4.实验

4.1 实验设置

数据集:我们使用了三个公开可用的数据集:Cityscapes [71],ADE20K [72]和COCO Stuff [73]。 ADE20K是一个场景解析数据集,包含了20210张图像,涵盖了150个细粒度的语义概念。 Cityscapes是一个用于语义分割的驾驶数据集,包含了5000张精细标注的高分辨率图像,涵盖了19个类别。 COCO Stuff涵盖了172个标签,包括了164k张图像:其中118k张用于训练,5k张用于验证,20k张用于测试开发集,以及20k张用于测试挑战集。

实现细节:我们使用了mmsegmentation1代码库,并在一台配备8张Tesla V100的服务器上进行训练。我们在Imagenet-1K数据集上对编码器进行预训练,并随机初始化解码器。在训练过程中,我们通过随机调整大小(比例为0.5-2.0)、随机水平翻转随机裁剪到512×512、1024×1024和512×512的大小来进行数据增强,分别针对ADE20K、Cityscapes和COCO-Stuff数据集。根据[9]的建议,对于ADE20K中最大的模型B5,我们将裁剪尺寸设置为640×640。我们在ADE20K、Cityscapes上进行了160K次迭代的训练,在COCO-Stuff上进行了80K次迭代的训练。特别地,在消融实验中,我们进行了40K次迭代的训练。ADE20K和COCO-Stuff的批量大小为16,Cityscapes的批量大小为8。学习率初始值为0.00006,并使用“poly”LR调度,默认因子为1.0。为了简化,我们没有采用常用的技巧,如OHEM、辅助损失或类别平衡损失。在评估过程中,我们将图像的短边调整为训练时的裁剪大小,并保持长宽比,用于ADE20K和COCO-Stuff。对于Cityscapes,我们使用滑动窗口测试的方式进行推断,裁剪成1024×1024大小的窗口。我们使用平均交并比(mIoU)来报告语义分割的性能。

注释:"poly" LR调度是一种学习率调度方法,通常在深度学习模型的训练过程中使用。它基于多项式函数对学习率进行动态调整。 在"poly" LR调度中,学习率会根据当前的训练步数(或周期数)进行调整。具体来说,"poly" LR调度会将初始学习率与当前的训练步数进行多项式函数的乘法运算,从而得到当前的学习率。这个多项式函数通常采用指数衰减的形式,即学习率随着训练步数的增加而逐渐减小。 多项式函数的形式可以表示为: lr = lr_0 * (1 - step / max_step) ^ power 其中,lr表示当前的学习率,lr_0是初始学习率,step是当前的训练步数,max_step是总的训练步数,power是一个控制学习率衰减速度的参数。 "poly" LR调度的优点是简单易用,并且可以根据训练的进展自动调整学习率。随着训练的进行,学习率会逐渐减小,使得模型在训练后期更加稳定收敛。此外,"poly" LR调度还可以在一定程度上防止模型陷入局部最优点,并提高模型的泛化能力。

4.2消融实验研究

模型大小的影响:我们首先分析了增加编码器大小对性能和模型效率的影响。图1显示了ADE20K的性能与模型效率随编码器大小变化的关系,表1a总结了三个数据集的结果。首先要观察的是解码器与编码器的大小比较。如图所示,对于轻量级模型,解码器只有0.4M个参数。对于MiT-B5编码器来说,解码器只占模型总参数数量的4%。在性能方面,我们可以观察到,总体上增加编码器的大小可以在所有数据集上产生一致的改进效果。我们的轻量级模型SegFormer-B0既紧凑又高效,同时保持着竞争性的性能,表明我们的方法非常适用于实时应用。另一方面,我们的SegFormer-B5,最大的模型,在所有三个数据集上都取得了最先进的结果,展示了我们Transformer编码器的潜力。

C的影响,即MLP解码器通道维度:我们现在分析MLP解码器中通道维度C的影响,详见第3.2节。在表1b中,我们展示了性能、计算量和参数随着通道维度的变化。我们可以观察到,设置C=256可以提供非常有竞争力的性能和计算成本。随着C的增加,性能也会增加,但会导致更大且效率较低的模型。有趣的是,当通道维度超过768时,性能趋于稳定。基于这些结果,我们选择C=256作为我们的实时模型SegFormer-B0、B1的通道维度,而选择C=768作为其他模型的通道维度。

Mix-FFN和位置编码(PE)的比较:在这个实验中,我们分析了在Transformer编码器中去除位置编码,而使用提出的Mix-FFN的影响。为此,我们训练了带有位置编码(PE)和提出的Mix-FFN的Transformer编码器,并在Cityscapes数据集上使用两种不同的图像分辨率进行推理:使用滑动窗口的768×768和使用整个图像的1024×2048。表1c展示了这个实验的结果。如表所示,在给定的分辨率下,使用Mix-FFN的方法明显优于使用位置编码的方法。此外,我们的方法对于测试分辨率的差异不太敏感:使用较低分辨率的位置编码时,准确率下降了3.3%。相反,当我们使用提出的Mix-FFN时,性能下降仅为0.7%。从这些结果可以得出结论,使用提出的Mix-FFN比使用位置编码产生更好、更稳定的编码器。

有效感受野评估:在第3.2节中,我们认为与其他CNN模型相比,我们的MLP解码器受益于Transformer具有更大的有效感受野。为了量化这种效果,在这个实验中,我们比较了将我们的MLP解码器与基于CNN的编码器(如ResNet或ResNeXt)结合使用时的性能。如表1d所示,将我们的MLP解码器与基于CNN的编码器相结合,与将其与提出的Transformer编码器相结合相比,准确率显著降低。直观地说,由于CNN的感受野较小(见第3.2节的分析),MLP解码器无法进行全局推理。相反,将我们的Transformer编码器与MLP解码器相结合可以获得最佳性能。此外,对于Transformer编码器来说,有必要将低层局部特征高层非局部特征结合起来,而不仅仅是高层特征。

表1:与模型大小、编码器和解码器设计相关的消融研究

(a)在三个数据集上,模型大小、参数和计算量随模型大小的变化。“SS”和“MS”表示单尺度/多尺度测试。 注:由于没有提供具体的表格数据,无法进行准确的翻译

(b)在ADE20K数据集上,准确率随解码器中MLP维度C的变化而变化。

(c)在Cityscapes数据集上,不同测试分辨率下,使用Mix-FFN和位置编码(PE)的准确率对比。 (d)在ADE20K数据集上,CNN和Transformer编码器与MLP解码器的准确率对比。“S4”表示第四阶段的特征。 注:由于没有提供具体的表格数据,无法进行准确的翻译

表2:在ADE20K和Cityscapes数据集上与现有方法的比较。SegFormer在参数数量、计算量、速度和准确率上具有显著优势。请注意,对于SegFormer-B0,我们将图像的短边缩放为{1024,768,640,512}以获取速度-准确率的权衡。 注:由于没有提供具体的表格数据,无法进行准确的翻译

 4.3与现有技术方法的比较

我们现在将我们的结果与ADE20K [72]、Cityscapes [71]和COCO-Stuff [73]数据集上的现有方法进行比较。

ADE20K和Cityscapes:表2总结了我们在ADE20K和Cityscapes数据集上的结果,包括参数、FLOPS、延迟和准确率。在表的顶部,我们报告了实时方法,包括最先进的方法以及使用MiT-B0轻量级编码器的结果。在底部部分,我们着重于性能,并报告了我们的方法和使用更强大编码器的相关工作的结果。如图所示,在ADE20K上,SegFormer-B0仅使用3.8M参数和8.4G FLOPs即可达到37.4%mIoU,优于所有其他实时对应方法的参数、flops和延迟。例如,与DeeplabV3+(MobileNetV2)相比,SegFormer-B0的帧率为7.4 FPS,更快且保持了3.4%更好的mIoU。此外,SegFormer-B5优于所有其他方法,包括先前最好的SETR,并建立了一个新的最先进结果,达到51.8%,比SETR高出1.6%mIoU,同时更加高效。

        正如表2所示,我们的结果在Cityscapes上也成立。SegFormer-B0在1024像素的输入图像的情况下,帧率为15.2 FPS,mIoU为76.2%,相比DeeplabV3+,mIoU提高了1.3%,速度提高了2倍。此外,当输入图像的短边为512像素时,SegFormer-B0的帧率为47.6 FPS,mIoU为71.9%,比ICNet快17.3 FPS,mIoU高出4.2%。SegFormer-B5的最佳IoU为84.0%,比所有现有方法至少高出1.8%mIoU,而且运行速度是SETR [7]的5倍,体积是SETR的4倍。 在Cityscapes测试集上,我们遵循常见的设置[20],将验证图像合并到训练集中,并使用Imagenet-1K预训练和Mapillary Vistas [76]进行结果报告。如表3所示,仅使用Cityscapes fine数据和Imagenet-1K预训练,我们的方法实现了82.2%mIoU,优于包括使用Imagenet-22K预训练和额外的Cityscapes coarse数据的SETR在内的所有其他方法。使用Mapillary预训练,我们实现了83.1%mIoU的最新最佳结果。图4显示了在Cityscapes上的定性结果,SegFormer提供比SETR更好的细节,并比DeeplabV3+有更平滑的预测。

表3:与Cityscapes测试集上的最新方法进行比较。IM-1K、IM-22K、Coarse和MV分别指的是ImageNet-1K、ImageNet-22K、Cityscapes粗集和Mapillary Vistas。SegFormer在相同或更少的额外数据的情况下优于其他方法。

表4:在包含来自COCO 2017的所有164K图像和172个类别的COCO-Stuff完整数据集上的结果。

COCO-Stuff.最后,我们在完整的COCO-Stuff数据集上评估了SegFormer。为了进行比较,由于现有方法没有在这个数据集上提供结果,我们重新复现了最具代表性的方法,如DeeplabV3+、OCRNet和SETR。在这种情况下,与ADE20K报告的情况相同,数据集上的FLOPS也相同。如表4所示,SegFormer-B5在仅使用84.7M参数的情况下达到了46.7%mIoU,比SETR更好了0.9%,体积小了4倍。总的来说,这些结果表明了在准确性、计算成本和模型大小方面,SegFormer在语义分割方面的优越性。

4.4对自然损坏的鲁棒性

        模型的鲁棒性对于许多安全关键任务(如自动驾驶)非常重要。在这个实验中,我们评估了SegFormer对常见损坏和扰动的鲁棒性。为此,我们按照文献[77]的方法生成了Cityscapes-C数据集,该数据集通过从噪声、模糊、天气和数字等类别生成的16种算法生成的损坏来扩展Cityscapes验证集。我们将我们的方法与DeeplabV3+的变体以及文献[77]中报告的其他方法进行了比较。实验结果总结在表5中。我们的方法在高斯噪声上相对改进了高达588%,在雪天气上相对改进了高达295%。这些结果表明了SegFormer的强大鲁棒性,我们认为这将有助于鲁棒性对重要的安全应用。

图4:在Cityscapes数据集上的定性结果。与SETR相比,我们的SegFormer在物体边界附近预测出具有更细节的掩码。与DeeplabV3+相比,SegFormer减少了远距离错误,如红色所示。最好在屏幕上查看。

表5:Cityscapes-C上的主要结果。“DLv3+”,“MBv2”,“R”和“X”分别指的是DeepLabv3+,MobileNetv2,ResNet和Xception。比较方法的mIoU结果来自文献[77]。

 5.总结

         在本文中,我们提出了SegFormer,一种简单、清晰而又强大的语义分割方法,它包含了一个无位置编码的分层Transformer编码器和一个轻量级的全连接多层感知机解码器。它避免了以往方法中常见的复杂设计,既高效又具备高性能。SegFormer不仅在常见数据集上取得了新的最先进结果,还展现出了强大的零样本鲁棒性。我们希望我们的方法能够作为语义分割的坚实基线,并激发进一步的研究。一个限制是,尽管我们最小的模型只有3.7M个参数,比已知的CNN模型要小,但不清楚它是否能在只有100k内存的边缘设备芯片上正常工作。这是我们留给未来工作的问题。

A MiT系列的细节

在本节中,我们列出了Mix Transformer (MiT)编码器的一些重要超参数。通过改变这些参数,我们可以轻松地将我们的编码器从B0扩展到B5。总结起来,我们MiT的超参数如下所示:

  • Ki:阶段i中重叠补丁嵌入的补丁大小;
  • Si:阶段i中重叠补丁嵌入的步幅;
  • Pi:阶段i中重叠补丁嵌入的填充大小;
  • Ci:阶段i输出的通道数;
  • Li:阶段i中的编码器层数;
  • Ri:阶段i中高效自注意力的缩减比例;
  • Ni:阶段i中高效自注意力的头数;
  • Ei:阶段i中前馈层的扩展比例[78];

表6显示了我们MiT系列的详细信息。为了方便高效的讨论,我们为MiT编码器分配了代码名称B0到B5,其中B0是设计用于实时应用的最小模型,而B5是设计用于高性能的最大模型

B. 掩码预测的更多定性结果

在图5中,我们与SETR和DeepLabV3+进行了对比,在Cityscapes、ADE20K和COCO-Stuff上展示了更多的定性结果。与SETR相比,我们的SegFormer在物体边界附近预测出具有更细节的掩码,这是因为我们的Transformer编码器可以捕捉比SETR更高分辨率的特征,从而保留了更多的细节纹理信息。与DeepLabV3+相比,SegFormer减少了远距离错误,这要归功于Transformer编码器比ConvNet具有更大的有效感受野。

C. 有效感受野的更多可视化

在图6中,我们选择了一些代表性图像以及DeepLabV3+和SegFormer的有效感受野(ERF)。除了较大的ERF外,SegFormer的ERF对图像的上下文更为敏感。我们可以看到,SegFormer的ERF学习到了道路、汽车和建筑物的模式,而DeepLabV3+的ERF显示出相对固定的模式。这些结果也表明,我们的Transformer编码器比ConvNet具有更强的特征提取能力。

D. 在Cityscapes-C上DeepLabV3+和SegFormer的更多对比

在本节中,我们详细展示了与SegFormer和DeepLabV3+相比的零样本鲁棒性。按照[77]的方法,我们在4种“噪声”和其余12种污染和扰动中测试了3个严重程度。如图7所示,随着严重程度的增加,DeepLabV3+的性能明显下降。相反,SegFormer的性能相对稳定。此外,SegFormer在所有污染/扰动和所有严重程度上都比DeepLabV3+具有显著优势,表现出出色的零样本鲁棒性。

表6:MiT系列的详细设置。我们的设计遵循ResNet[12]的原则:(1)随着层的加深,通道维度增加,空间分辨率减小。(2)第3阶段分配了大部分的计算成本。

 表7:Mix Transformer编码器

 

 图5:Cityscapes、ADE20K和COCO-Stuff的定性结果。第一行:Cityscapes。第二行:ADE20K。第三行:COCO-Stuff。放大以获得最佳视图。

(图6:在Cityscapes上的有效感受野。可视化了两种架构的四个阶段和解码器头的ERF。)

 

 图7:SegFormer和DeepLabV3+在Cityscapes-C上的零样本鲁棒性比较。蓝线代表SegFormer,橙线代表DeepLabV3+。X轴表示损坏程度,Y轴表示mIoU。按照[77]的方法,我们对“噪声”进行了3个严重程度的测试,对其余部分进行了5个严重程度的测试。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐