第一章 SegFormer(语义分割篇)——SegFormer: 简单高效的基于Transformer的语义分割设计

news2024/11/23 20:00:46

0.摘要

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

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

 图2:提出的SegFormer框架由两个主要模块组成:一个分层Transformer编码器用于提取粗糙和细致的特征;以及一个轻量级的All-MLP解码器,用于直接融合这些多级特征并预测语义分割掩码。“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解码器,以在H4 × W4 × Ncls的分辨率上预测分割掩码,其中Ncls是类别的数量。在本节的其余部分,我们详细介绍了提出的编码器和解码器设计,并总结了我们的方法与SETR之间的主要区别。

3.1分层Transformer编码器

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

分层特征表示。与只能生成单一分辨率特征图的ViT不同,该模块的目标是给定输入图像,生成类似CNN的多级特征。这些特征提供了高分辨率的粗糙特征和低分辨率的细粒度特征,通常可以提高语义分割的性能。更具体地说,给定分辨率为H × W × 3的输入图像,我们执行补丁合并操作,获得分辨率为H 2i+H 2i+1 × 2Wi+1 × Ci的分层特征图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,它考虑了零填充对泄漏位置信息的影响[69],通过在前馈网络(FFN)中直接使用3 × 3卷积来实现。Mix-FFN可以表示为:xout = MLP(GELU(Conv3×3(MLP(xin))))+xin;(3),其中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,分辨率为H4 × W4 × 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)来报告语义分割的性能。

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个严重程度的测试。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/748582.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C语言】猜数字游戏

问题描述 猜数字游戏是令游戏机随机产生一个100以内的正整数,用户输入一个数对其进行猜测,需要你编写程序自动对其与随机产生的被猜数进行比较,并提示大了(“Too big”),还是小了(“Too small”…

springboot项目target下面没有mapper.xml文件

文件结构是这个样子,mapper.xml文件在resources/mappers/fdms目录下面 通常来说, 将mapper打包到target目录下只需要在maven下面配置 <resources><resource><directory>src/main/resources</directory><filtering>true</filtering><inc…

prometheus采集服务的jmx数据,grafana通过dashboard展示jmx数据

prometheus采集服务的jmx数据&#xff0c;grafana通过dashboard展示jmx数据 一、下载prometheus二、解压prometheus三、查看prometheus目录四、查看prometheus版本五、查看prometheus的配置文件六、启动prometheus七、登陆prometheus八、查看prometheus jmx九、下载grafana十、…

嵌入式内核及驱动开发高级

一、起源 仅devfs&#xff0c;导致开发不方便以及一些功能难以支持&#xff1a; 热插拔 不支持一些针对所有设备的统一操作&#xff08;如电源管理&#xff09; 不能自动mknod 用户查看不了设备信息 设备信息硬编码&#xff0c;导致驱动代码通用性差&#xff0c;即没有分离…

AI实现口语练习技术解决方案

最近AI技术取得了技术上的突破&#xff0c;可以非常智能化的实现人机交互。在应用场景上很自然会想到利用AI来实现口语练习&#xff0c;下面和大家分享AI实现口语练习的AI技术方案和开发流程&#xff0c;只列出的整体思路和概略步骤&#xff0c;具体的步骤可能会根据具体的需求…

HttpClient——入门案例(发送http请求)

前言介绍 总结就是使得可以在java程序中发送http请求。 导入依赖 <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.13</version></dependency> 发送get请求 用…

分享电商平台美食产品—味尚拉面半干面

很高兴跟您分享电商平台上一款刚推出的热门美食产品——味尚拉面 半干面。 味尚拉面 半干面&#xff0c;由厂家精心制作而成&#xff0c;是一款十分劲道爽口的拉面&#xff0c;让您在繁忙的生活中享受到美味的口感。 作为一款电商平台上备受瞩目的产品&#xff0c;味尚拉面 半干…

​揭示嵌入式系统中的难题和解决方案

嵌入式系统设计和开发过程中存在一些常见难题&#xff0c;下面是这些难题以及相应的解决方案的简要概述。 处理资源受限&#xff1a;嵌入式系统通常具有有限的处理能力、存储容量和能源。解决方案包括&#xff1a;优化算法和数据结构&#xff0c;选择适合的硬件平台&#xff0c…

VUE2教程-基础-简介

Vue.js 是什么 Vue (读音 /vjuː/&#xff0c;类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是&#xff0c;Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层&#xff0c;不仅易于上手&#xff0c;还便于与第三方库或既有项目整合。另一…

【教程】爬取和统计Google Scholar上指定关键词的文章信息

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhang.cn] 目录 背景介绍 未来改进 参考代码 背景介绍 通过自动点击页面来抓取文章信息。这个脚本对于用来看某个关键词在近几年的研究趋势很有用~半自动&#xff1a;当遇到谷歌人机验证&#xff0c;需要手动完成。注意…

SAP MIRO发票过账报错 这个项目不允许输入税

SAP MIRO发票过账报错 这个项目不允许输入税 J3税额0.01为手动输入 原因是含税金额0.08 * J3对应税率&#xff0c;结果保留2位小数大小&#xff0c;系统不允许输入税额

HarmonyOS/OpenHarmony应用开发-Stage模型UIAbility组件使用(四)

UIAbility组件与UI的数据同步 基于HarmonyOS的应用模型&#xff0c;可以通过以下两种方式来实现UIAbility组件与UI之间的数据同步。 1.EventHub&#xff1a;基于发布订阅模式来实现&#xff0c;事件需要先订阅后发布&#xff0c;订阅者收到消息后进行处理。 2.globalThis&…

XSS靶场【1-10关】攻击攻略

文章目录 第一关第二关第三关第四关第五关第六关第七关第八关第九关第十关 通过&#xff08;xss-labs-master&#xff09;[]PHPStudy搭建的XSS靶场1-10关的攻击教程需要下载好XSS靶场源码&#xff0c;导入到phpstudy的WWW目录下攻击主机需要安装BurpSuit、FoxyProxy浏览器插件&…

第三十章:数据库其他调优策略

第三十章&#xff1a;数据库其他调优策略 30.1&#xff1a;数据库调优的措施 调优的目标 尽可能的节省系统资源&#xff0c;以便系统可以提供更大负荷的服务(吞吐量更大)。合理的结构设计和参数调整&#xff0c;以提高用户操作响应的速度。(响应速度更快)。减少系统的瓶颈&…

Win32汇编对话框子控件复习学习

在此已经做了Win32汇编的对话框子控件ListBox和ComboBox&#xff1b; Win32汇编ListBox最简Demo_win32 list列表_bcbobo21cn的博客-CSDN博客 Win32汇编最简ComboBox Demo_bcbobo21cn的博客-CSDN博客 它们的代码是相似的&#xff1b; 以ComboBox为例&#xff1b; 首先是要…

java 如何快速实现异步调用方法

java 如何快速实现异步调用方法 什么是异步编程CompletableFuturejava 演示 什么是异步编程 在实现异步调用之前&#xff0c;我们先了解一下&#xff0c;什么是异步编程&#xff1f;什么场景下适用等等情况。 我们都知道&#xff0c;在传统的同步编程中&#xff0c;当一个操作…

Linux——深度解析IO文件流缓冲区问题(原理详解+代码手撕)

深度剖析缓存区 1.&#x1f4ad;缓冲区介绍1.1&#x1f4ab;什么是缓冲区1.2&#x1f4ab;缓冲区有什么用1.3 &#x1f4ab;缓冲区的初步认识 2.&#x1f4ad;缓存区测试3.&#x1f951;缓冲区是谁提供的3.1测试 一下 在fork&#xff08;&#xff09;之前刷新缓冲区会怎么样&am…

avue 表单绑定值;avue表单项根据某项的值去联动显隐或是联动下拉数据;avue select切换与另外一个select的options联动

效果&#xff1a;发布type为shp时 数据相关的都隐藏&#xff0c;当发布type为postgis时则显示 1.avue表单绑定值 html <avue-form :option"option" v-model"publishForm"></avue-form> js data中定义 data() {return {publishForm: {},optio…

Go语言基础教程:变量、基本数据类型、输出、注释、运算符、if-else条件判断、函数

文章目录 一、变量的使用1.1 定义变量1.2 常量1.3 变量的赋值与内存相关 二、变量基本类型2.1 有符号整型2.2 无符号整型2.3 string类型2.4 bool类型 三、输出3.1 常用打印功能3.2 格式化输出3.3 内置输出方法与fmt的区别 四、注释五、运算符六、条件语句6.1 基本使用6.2 条件嵌…

12.7 跳转与存储器访问指令

目录 跳转指令 方式一 方式二 方式三 程序返回 ARM指令的条件码 比较指令 内存访问指令&#xff08;一&#xff09; load&#xff08;LD加载&#xff09;/srore&#xff08;ST存储&#xff09;指令&#xff1a;访问&#xff08;读写&#xff09;内存 写内存 读内存 …