在这里插入图片描述
论文地址:https://arxiv.org/abs/2105.15203
发表年份:2021

我们提出了SegFormer,一个简单,高效但强大的语义分割框架,它将Transformers与轻量级多层感知器(MLP)解码器统一起来。SegFormer有两个吸引人的特点:1)SegFormer包括一个新的层次结构Transformers编码器,输出多尺度特征。它不需要位置编码,从而避免了位置码的插值,当测试分辨率与训练不同时,会导致性能下降。2)SegFormer避免了复杂的解码器。所提出的MLP解码器聚合了来自不同层的信息,从而结合了局部注意和全局注意,呈现出强大的表示。我们证明,这种简单和轻量级的设计是在Transformers上高效分割的关键。我们将我们的方法进行扩展,获得了从SegFormer-B0到SegFormer-B5的一系列模型,达到了比以前的模型更好的性能和效率。例如,SegFormer-B4在64M参数的ADE20K上达到50.3%的mIoU,比之前的最佳方法小5倍,好2.2%。我们最好的模型Segfrar-B5在Cityscapes验证集上达到了84.0%的mIoU,并在Cityscapes-c上显示出优秀的小样本鲁棒性。代码地址为:github.com/NVlabs/SegFormer

1 Introduction

语义分割是计算机视觉中的一项基本任务,并使许多下游应用成为可能。它与图像分类有关,因为它产生每像素的类别预测,而不是图像级的预测。这一关系在一个开创性的工作[1]中得到了指出和系统的研究,其中作者使用完全卷积网络(FCNs)进行语义分割任务。从那时起,FCN启发了许多后续工作,并已成为密集预测的主要设计选择。

由于分类和语义分割之间有很强的关系,许多状态下最先进的语义分割框架是在ImageNet上进行图像分类化的流行架构的变体。因此,设计backbone结构仍然是语义分割的一个活跃领域。事实上,从使用VGGs[1,2]的早期方法开始,到具有更深入、更强大的骨干[3]的最新方法,骨干的发展极大地推动了语义分割的性能边界。除了主干架构外,另一项工作还将语义分割作为一个结构化的预测问题,并专注于设计模块和特征操作,从而可以有效地捕获上下文信息。这方面的一个典型例子是膨胀卷积[4,5],它通过用孔“膨胀”核来增加感受野。

亲眼目睹了自然语言处理(NLP)的巨大成功,最近人们对将Transformers引入视觉任务的兴趣激增。Dosovitskiy等人[6]提出了将视觉Transformers(ViT)用于图像分类。根据NLP中的Transformers设计,作者将一个图像分割成多个线性嵌入的补丁,并将其输入一个带有位置嵌入(PE)的标准Transformers,从而在ImageNet上取得了令人印象深刻的性能。在语义分割中,Zheng等人[7]提出了SETR来演示在该任务中使用Transformers的可行性。

SETR采用ViT作为骨干,并合并了几个CNN解码器来扩大特征分辨率。尽管ViT性能良好,但也有一些局限性:1)ViT输出单尺度低分辨率特性,而不是多尺度特性。2)它在大图像上的计算成本较高。为了解决这些限制,Wang等人[8]提出了一种金字塔视觉Transformers(PVT),这是一种具有金字塔结构的ViT的自然扩展,用于密集预测。PVT在目标检测和语义分割方面比ResNet有相当大的改进。然而,与其他新兴的方法如Swin Transformers[9]和Twins[10]一起,这些方法主要考虑了Transformers编码器的设计,而忽略了解码器对进一步改进的贡献。

本文介绍了SegFormer,一个尖端的语义分割Transformer框架,共同考虑了效率、准确性和鲁棒性。与以前的方法相比,我们的框架重新设计了编码器和解码器。我们的方法的关键新颖性是:

  • 一种新的无位置编码的分层变压器编码器。
  • 一种轻量级的All-MLP解码器设计,产生一个强大的表示,没有复杂的和计算要求的模块。
  • 如图1所示,在三个公开的语义分割数据集的效率、准确性和鲁棒性方面设置了一种最先进的新方法。
    在这里插入图片描述

首先,该编码器在对分辨率与训练图像不同的图像进行推理时,避免了插值位置码。因此,我们的编码器可以很容易地适应任意的测试分辨率,而不影响性能。此外,分层部分使编码器能够生成高分辨率的精细特征和低分辨率的粗特征,这与ViT只能生成固定分辨率的单一低分辨率特征图形成了对比。其次,我们提出了一个轻量级的MLP解码器,其关键思想是利用Transformer诱导的特征,其中较低层的注意倾向于保持局部,而最高层的注意是高度非局部的。通过聚合来自不同层的信息,MLP解码器结合了局部和全局的关注。因此,我们获得了一个简单而直接的解码器,可以呈现强大的表示。

我们在三个公开数据集上展示了ADE20K、Cityscapes和COCO-Stuff,展示了SegFormer在模型大小、运行时和准确性方面的优势。在Cityscapes上,我们的轻量级模型segformer-b0没有使用TensorRT等加速实现,在48FPS时产生71.9%的mIoU,与ICNet[11]相比,在延迟和性能方面分别相对提高了60%和4.2%。我们最大的模型SegFormer-B5产生84.0%的mIoU,相对提高了1.8%的mIoU,同时比SETR[7]快5×。在ADE20K上,该模型设置了一个最新的51.8%的mIoU,同时比SETR小4个×。与现有的方法相比,我们的方法对常见的破坏和扰动更具鲁棒性,因此适用于安全关键型的应用。

2 Related Work

Semantic Segmentation 语义分割可以看作是图像分类从图像级到像素级的一种扩展。在深度学习时代,[12–16],FCN[1]是语义分割的基本工作,这是一个完全卷积的网络,以端到端的方式进行像素到像素的分类。在此之后,研究人员从不同的方面关注于改善FCN,如:扩大接受域[17-19、5、2、4、20];细化上下文信息[21-29];介绍边界信息[30–37];设计各种注意模块[38–46];或使用AutoML技术[47–51]。这些方法以引入许多经验模块为代价,显著提高了语义分割的性能,使得所得到的框架计算要求高且复杂。最近的方法已经证明了基于变压器的架构对语义分割[7,46]的有效性。然而,这些方法仍然需要计算量。

Transformer backbones ViT[6]是第一个证明一个纯Transformer可以在图像分类中达到最先进的性能的工作。ViT将每幅图像视为一系列token,然后将它们输入多个Transformer以进行分类。随后,DeiT[52]进一步探索了一种数据高效的训练策略和一种蒸馏方法。最近的方法,如T2TViT[53],CPVT[54],TNT[55],CrossViT[56]和LocalViT[57],对ViT进行了量身定制的更改,以进一步提高图像分类性能。

除了分类之外,PVT[8]是第一个在Transformer中引入金字塔结构的工作,与CNN相比,展示了纯Transformer主干在密集预测任务中的潜力。之后,Swin[9]、CvT[58]、CoaT[59]、LeViT[60]和Twins[10]等方法增强了特征的局部连续性,去掉了固定大小的位置嵌入,提高了展示了在密集预测任务中的性能。

Transformers for specific tasks DETR[52]是第一个使用Transformer构建一个无非最大抑制(NMS)的终端到端目标检测框架的工作。其他作品也在各种任务中使用了Transformer,如跟踪[61,62]、超分辨率[63]、ReID[64]、着色[65]、检索[66]和多模态学习[67,68]。在语义分割方面,SETR[7]采用ViT[6]作为骨干来提取特征,取得了令人印象深刻的性能。然而,这些基于Transformer的方法的效率非常低,因此很难在实时应用程序中部署。

3 Method

本节介绍SegFormer,我们的高效、健壮和强大的分割框架,没有手工制作和计算要求很高的模块。如图2所示,前者由两个主要模块组成:(1)是分层Transformers编码器,生成高分辨率粗特征和低分辨率精细特征;(2)是一个轻量级的All-MLP解码器,融合这些多层特性,生成最终的语义分割掩码。
在这里插入图片描述

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

3.1 Hierarchical Transformer Encoder

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

Hierarchical Feature Representation 与ViT只能生成单分辨率的特征图不同,该模块的目标是,给定一个输入图像,生成类似cnn的多层次特征。这些特性提供了高分辨率的粗特征和低分辨率的细粒度特征,通常可以提高语义分割的性能。更准确地说,给定一个输入图像分辨率H×W×3,我们执行patch合并获得分辨率为 H 2 i + 1 × W 2 i + 1 × C i \frac{H}{2^{i+1}}×\frac{W}{2^{i+1}}×C_i 2i+1H×2i+1W×Ci的分层特征图 F i ,    i ∈ { 1 , 2 , 3 , 4 }     a n d    C i + 1 > C i F_i ,\ \ i∈\{1,2,3,4\} \ \ \ and \ \ C_{i+1}>C_i Fi,  i{1,2,3,4}   and  Ci+1>Ci

Overlapped Patch Merging 给定一个图像补丁,在ViT中使用的补丁合并过程,将一个N×N×3补丁统一为一个1×1×C向量。这可以很容易地扩展到将一个 2 × 2 × C i 2×2×C_i 2×2×Ci特征路径统一为一个 1 × 1 × C i + 1 1×1×C_{i+1} 1×1×Ci+1向量,以获得层次特征映射。使用这个方法,我们可以将我们的层次结构特征从 F 1 ( H 4 × W 4 × C 1 ) F_1(\frac{H}{4}×\frac{W}{4}×C_{1}) F1(4H×4W×C1)缩小到 F 2 ( H 8 × W 8 × C 2 ) F_2(\frac{H}{8}×\frac{W}{8}×C_{2}) F2(8H×8W×C2),然后迭代层次结构中的任何其他特征映射。这个过程最初被设计为结合不重叠的图像或特征patch。因此,它不能保持这些patch周围的局部连续性。相反,我们使用了一个重叠的补丁合并过程。为此,我们定义了K、S和P,其中K是patch大小,S是两个相邻斑块之间的步幅,P是填充大小。在我们的实验中,我们设置K=7、S=4、P=3和K=3、S=2、P=1进行重叠补丁合并,产生与非重叠过程具有相同大小的特征。

Efficient Self-Attention 编码器的主要计算瓶颈是自注意层。在原始的多头自注意过程中,每个头Q、K、V具有相同的维度N×C,其中N=H×W为序列的长度,自注意估计为:
A t t e n t i o n ( Q , K , V ) = S o f t m a x ( Q K T d h e a d ) V (1) Attention(Q,K,V)=Softmax(\frac{QK^T}{\sqrt{d_{head}}})V \tag{1} Attention(Q,K,V)=Softmax(dhead QKT)V(1)
该过程的计算复杂度为 O ( n 2 ) O(n^2) O(n2),这对于大的图像分辨率是禁止的。相反,我们使用了在[8]中引入的序列缩减过程。此过程使用还原比R来减少序列的长度如下:
K ′ = R e s h a p e ( N R , C ⋅ R ) ( K ) K = L i n e a r ( C ⋅ R , C ) ( K ′ ) (2) K'=Reshape(\frac{N}{R},C·R)(K) \\ \tag{2} K=Linear(C·R,C)(K') K=Reshape(RN,CR)(K)K=Linear(CR,C)(K)(2)
其中K是要减少的序列, K ′ = R e s h a p e ( N R , C ⋅ R ) ( K ) K'=Reshape(\frac{N}{R},C·R)(K) K=Reshape(RN,CR)(K)表示重塑K为形状为 N R × ( C ⋅ R ) \frac{N}{R}×(C·R) RN×(CR) L i n e a r ( C i n , C o u t ) ( ⋅ ) Linear(C_{in},C_{out})(·) Linear(CinCout)()表示线性层,以一个顺维张量作为输入,生成一个 C o u t C_{out} Cout维张量作为输出。因此,新的K的维数为 ( N R , C ) (\frac{N}{R},C) (RN,C),因此,自注意机制的复杂性从 O ( n 2 ) O(n^2) O(n2)降低到 O ( n 2 R ) O(\frac{n^2}{R}) O(Rn2)。在我们的实验中,我们从第一阶段到第四阶段将R设置为[64,16,4,1]。

Mix-FFN ViT使用位置编码(PE)来引入位置信息。然而,PE的分辨率是固定的。因此,当测试分辨率与训练分辨率不同时,需要插值位置代码,这往往会导致精度下降。为了缓解这个问题,CPVT[54]使用3×3 Conv和Position embedding一起实现一个数据驱动的PE。我们认为,位置编码实际上并不是语义分割所必需的。相反,我们引入了Mix-FFN,它考虑了零填充对泄漏位置信息[69]的影响,通过直接在前馈网络(FFN)中使用3×3 Conv。Mix-FFN可定义为:
x o u t = M L P ( G E L U ( C o n v 3 × 3 ( M L P ( x i n ) ) ) ) + x i n x_{out} = MLP(GELU(Conv_{3×3}(MLP(x_{in})))) + x_{in} xout=MLP(GELU(Conv3×3(MLP(xin))))+xin
其中, x i n x_{in} xin是来自self-attention模块的特征。Mix-FFN将每个FFN中混合一个3×3的卷积和一个MLP。在我们的实验中,我们将证明一个3×3卷积足以为Transformers提供位置信息。特别是,我们使用深度卷积来减少参数的数量和提高效率。

3.2 Lightweight All-MLP Decoder

segformer集成了一个只由MLP层组成的轻量级解码器,这就避免了在其他方法中通常使用的手工制作和计算要求很高的组件。

所提出的All-MLP解码器包括四个主要步骤。首先,来自MiT编码器的多级特性Fi通过一个MLP层来统一信道维度。然后,在第二步中,特征被上采样到1/4,并连接在一起。第三,采用MLP层融合连接的特征f。最后,另一层MLP层采用融合的特征,以 H / 4 × W / 4 × N c l s H/4×W/4×N_{cls} H/4×W/4×Ncls分辨率预测分割掩模M,其中 N c l s N_cls Ncls为类别数。这让我们可以将解码器表述为:
在这里插入图片描述
其中M为预测的mask, L i n e a r ( C i n , C o u t ) ( ⋅ ) Linear(C_{in},C_{out})(·) Linear(CinCout)()为分别以 C i n C_{in} Cin C o u t C_{out} Cout为输入和输出向量维数的线性层.
Effective Receptive Field Analysis. 对于语义分割,保持较大的接受域以包含上下文信息一直是[5,19,20]的中心问题。在这里,我们使用有效的接受域(ERF)[70]作为一个工具包来可视化和解释为什么我们的MLP解码器设计在变压器上如此有效。在图3中,我们可视化了DeepLabv3+和分段器的四个编码器阶段和解码器头的ERF。我们可以观测到:
在这里插入图片描述

  • DeepLabv3+的ERF,即使在最深阶段4也相对较小。
  • SegForter的编码器自然地产生类似于较低阶段卷积的局部注意,同时能够输出高度非局部注意,有效地捕获阶段4的上下文。
  • 如图3中的放大补丁所示,MLP头部(蓝框)的ERF与第4阶段(红框)不同,除了非局部注意外,还有明显更强的局部注意。

CNN中有限的接受域要求人们求助于背景模块,如ASPP[18],这些模块既扩大了接受域,但不可避免地变得沉重。我们的解码器设计受益于Transformers的非局部注意,并导致一个更大的接受域而不复杂。然而,同样的解码器设计并不能很好地适用于CNN主干,因为在第四阶段,整体接受域是有限的,我们将稍后在表1d中验证这一点。

更重要的是,我们的解码器设计本质上利用了Transformers的特性,同时产生高度局部和非局部的注意。通过统一它们,我们的MLP解码器通过添加一些参数来呈现互补和强大的表示。这是推动我们设计的另一个关键原因。仅从第4阶段进行非局部关注并不足以产生良好的结果,这将在表1d中得到验证。

3.3 Relationship to SETR

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

  • 我们只使用ImageNet-1K进行预训练。SETR中的ViT在更大的ImageNet-22K上进行预训练。
  • Segformer的编码器具有分层架构,比ViT小,可以捕获高分辨率的粗糙和低分辨率的精细特征。相比之下,SETR的ViT编码器只能生成单一的低分辨率特征图。
  • 我们删除了编码器中的位置嵌入,而SETR使用固定形状的位置嵌入,当推理时的分辨率与训练时的分辨率不同时,这降低了精度。
  • 我们的MLP解码器比SETR中的一个更紧凑,计算要求更低。这使的计算开销可以忽略不计。相比之下,SETR需要具有多个3×3卷积的重解码器。

4 Experiments

4.1 Experimental Settings

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

Implementation details 我们使用了mmsegmentation代码库,并在一个使用8台特斯拉V100的服务器上进行了训练。我们在Imagenet-1K数据集上对编码器进行预训练,并随机初始化解码器。在训练过程中,我们分别对ADE20K、Cityscapes和2.0进行随机水平翻转裁剪和随机裁剪512×512、1024×1024×1024、512×512。在[9]之后,我们将我们最大的型号B5的ADE20K上的作物大小设置为640×640。我们使用AdamW优化器对模型在ADE20K上进行160K迭代,在Coco-Stuff上进行80K迭代。特别的是,对于消融研究,我们对模型进行了40k次迭代的训练。我们使用了ADE20K和COCO-Stuff的批大小为16,而Cityscapes的批大小为8。学习速率被设置为初始值为0.00006,然后使用默认的因子为1.0的“poly”LR调度。为简单起见,我们没有采用广泛使用的技巧,如OHEM、辅助损失或类平衡损失。在评估过程中,我们将图像的短边重新调整为训练裁剪大小,并保持ADE20K和COCO-Stuff的长宽比。对于Cityscapes,我们通过裁剪1024×1024窗口,使用滑动窗口测试进行推理。我们报告了使用语义分割指标mIoU的性能。

4.2 Ablation Studies

Influence of the size of model 我们首先分析了增加编码器的大小对性能和模型效率的影响。图1显示了ADE20K的性能与模型效率作为编码器大小的函数,表1a总结了三个数据集的结果。这里首先要观察到的是解码器与编码器相比的大小。如图所示,对于轻量级模型,解码器只有0.4M的参数。对于MiT-B5编码器,解码器只占模型中总参数数的4%。在性能方面,我们可以观察到,总的来说,增加编码器的大小会对所有数据集产生一致的改进。我们的轻量级模型Segfrorer-B0是紧凑和高效的,同时保持了具有竞争力的性能,这表明我们的方法对于实时应用非常方便。另一方面,我们的Segfrer-b5,最大的模型,在所有三个数据集上取得了最先进的结果,显示了我们的Transformer编码器的潜力。
在这里插入图片描述
Influence of chanel, the MLP decoder channel dimension 我们现在分析了在MLP解码器中的通道维度C的影响,见第3.2节。在表1b中,我们显示了性能、flops和参数作为这个维度的函数。我们可以观察到,设置C=256提供了一个非常有竞争力的性能和计算成本。性能随着C的增加而增加;然而,它会导致更大、效率更低的模型。有趣的是,当通道尺寸大于768时,这种性能趋于稳定。鉴于这些结果,我们选择C=256作为我们的实时模型SegFormer-B0,B1,C=768作为其余的模型(SegFormer-B2…SegFormer-B5)。

Mix-FFN vs. Positional Encoder (PE) 在本实验中,我们分析了移除Transformer编码器中的位置编码的效果,从而有利于使用所提出的Mix-FFN。为此,我们使用位置编码(PE)和提出的Mix-FFN训练Transformer编码器,并对具有两种不同图像分辨率的Cityscapes进行推理:使用滑动窗口的768×768和使用整个图像的1024×2048。

本实验的结果为表1c。如图所示,对于给定的分辨率,我们使用Mix-FFN的方法明显优于使用位置编码的方法。此外,我们的方法对测试分辨率的差异不那么敏感:当使用较低分辨率的位置编码时,准确率下降了3.3%。相比之下,当我们使用提议的Mix-FFN时,性能下降降低到只有0.7%。从这些结果中,我们可以得出结论,使用所提出的Mix-FFN产生了比那些使用位置编码的更好和更鲁棒的编码器。

Effective receptive field evaluation 在第3.2节中,我们认为,与其他CNN模型相比,我们的MLP解码器受益于Transformers具有更大的有效接受域。为了量化这种效应,在这个实验中,我们比较了我们的MLP-解码器与基于cnn的编码器,如ResNet或ResNeXt一起使用时的性能。如表1d所示,将我们的MLP-解码器与基于cnn的编码器耦合,与与所提出的Transformers编码器耦合相比,产生的精度明显较低。直观地说,由于CNN的接受域比Transformers要小(见第3.2节的分析),MLP-解码器不足以进行全局推理。相比之下,耦合我们的Transformers编码器和MLP解码器可以得到最好的性能。此外,对于Transformers编码器,需要将低级局部特征和高级非局部特征相结合,而不是只结合高级特征。

4.3 Comparison to state of the art methods

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

ADE20K and Cityscapes: 表2总结了我们的结果,包括ADE20K、Cityscapes的参数、FLOPS、延迟和准确性。在表的顶部部分,我们报告了实时方法,其中我们包括了最先进的方法和我们使用MiT-B0轻量级编码器的结果。在底部,我们关注性能,并报告我们的方法的结果和相关工作。
在这里插入图片描述
如上所示,在ADE20K上,SegFormer-B0仅使用3.8M参数和8.4GFLOPs产生37.4%的mIoU,在参数、FLOPs和延迟方面优于所有其他实时对应。例如,与DeeplabV3+(MobileNetV2)相比,segformer-b0为7.4FPS,速度更快,保持mIoU好3.4%。此外,segformer-b5优于其他所有方法,包括之前的最佳SETR,并建立了一个新的最先进的51.8%,即比SETR好1.6%的mIoU,同时明显更有效。

如表2所示,我们的结果也适用于Cityscapes。SegFormer-B0产生15.2FPS和76.2%的mIoU(输入图像较短的一侧为1024),与DeeplabV3+相比,提高了1.3%的mIoU,加速了2×。此外,由于输入图像的短边为512,SegFormer-B0在47.6FPS下运行,产生71.9%的mIoU,比ICNet快17.3FPS,快4.2%。SegFormer-B5的最佳IoU为84.0%,至少比所有现有方法高出1.8%,运行速度比SETR[7]快5×,比SETR[7]小4×。

在Cityscapes测试集上,我们遵循通用设置[20],并将验证图像合并到训练集中,并使用Imagenet-1K预训练和辅助视觉[76]报告结果。如表3所示,仅使用Cityscapes精细数据和Imagenet-1K预训练,我们的方法达到了82.2%的mIoU,优于所有其他方法,包括SETR,它使用了ImageNet-22K预训练和额外的Cityscapes粗数据。使用Mapillary预训练,我们建立了一个新的83.1%mIoU的最先进的结果。图4显示了Cityscapes的定性结果,其中SegFormer提供了比SETR更好的细节,比DeeplabV3+更平滑的预测。
在这里插入图片描述
在这里插入图片描述

COCO-Stuff 最后,我们在完整的COCO-Stuff数据集上评估SegFormer。为了进行比较,由于现有的方法没有在这个数据集上提供结果,我们复制了最具代表性的方法,如DeeplabV3+、OCRNet和SETR。在这种情况下,该数据集上的失败与ADE20K上报告的失败相同。如表4所示,SegFormer-B5仅有84.7M参数,mIoU达到46.7%,比SETR好0.9%,小4×。综上所述,这些结果证明了seg前体在语义分割的精度、计算成本和模型大小方面的优越性。
在这里插入图片描述

4.4 Robustness to natural corruptions

模型的鲁棒性对于许多考虑安全任务都很重要,如自动驾驶[77]。在这个实验中,我们评估了分段前体对常见的腐败和扰动的鲁棒性。为此,我们遵循[77]并生成Cityscapes-c,它扩展了Cityscapes验证集,包括16种来自噪声、模糊、天气和数字类别的算法生成的破坏。我们将我们的方法与DeeplabV3+的变体和[77]中报道的其他方法进行了比较。本实验的结果汇总见表5。
在这里插入图片描述

我们的方法明显优于以前的方法,在高斯噪声上相对提高了588%,在雪的天气上提高了295%。结果表明segfrorer具有很强的鲁棒性,我们设想这有利于鲁棒性重要的安全关键应用。

5 Conclusion

在本文中,我们提出了一种简单、干净而又强大的语义分割方法,它包含一个无位置编码的分层转换编码器和一个轻量级的AllMLP解码器。它避免了以往方法中常见的复杂设计,从而实现了高效率和性能。SegFormer不仅在公共数据集上取得了新的研究结果,而且显示出了很强的小样本鲁棒性。我们希望我们的方法能够作为语义分割的坚实基础,并激发进一步的研究。一个限制是,虽然我们最小的370万参数模型比已知的CNN模型要小,但尚不清楚它是否能在只有100k内存的边缘设备芯片上工作良好。我们把它留给以后的工作吧。

A Details of MiT Series

在本节中,我们列出了我们的Mix Transformer(MiT)编码器的一些重要的超参数。通过改变这些参数,我们可以很容易地将编码器从b0扩展到b5。综上所述,我们的MiT的超参数列表如下:
Ki:Stage i中,重叠patch嵌入的patch 大小;
Si:Stage i中,重叠的patch 嵌入的步幅;
Pi:Stage i中,重叠patch 嵌入的填充大小;
Ci:Stage i中,输出的通道数
Li: Stage i中,编码器层数
Ri:Stage i中, Efficient Self-Attention的降低率
Ni:Stage i中,Efficient Self-Attention的head数
Ei:Stage i中, feed-forward layer[78]的膨胀比

表6显示了我们的MiT系列的详细信息。为了便于有效的讨论,我们将MiT编码器的代号B0分配给B5,其中B0为实时设计的最小模型,B5为为高性能设计的最大模型。
在这里插入图片描述在这里插入图片描述

B More Qualitative Results on Mask Predictions

在图5中,与SETR和DeepLabV3+相比,我们展示了更多关于Cityscapes、ADE20K和COCO-Stuff的定性结果。
与SETR相比,我们的SegFormer预测的mask在物体边界附近有更精细的细节,因为我们的Transformer编码器可以捕获比SETR更高的分辨率的特征,它保存了更详细的纹理信息。与DeepLabV3+相比,Transformer编码器的有效接受域更大,从而减少了远程误差。
在这里插入图片描述

C More Visualization on Effective Receptive Field

在图6中,我们选择了DeepLabV3+和SegFromer的一些代表性图像和有效感受野(ERF)。除了较大的ERF外,SegFromer的ERF对图像的上下文更敏感。我们看到SegFrther的ERF学习了道路、汽车和建筑的模式,而DeepLabV3+的ERF显示了一个相对固定的模式。结果还表明,我们的Transformer编码器比卷积神经网络具有更强的特征提取能力。
在这里插入图片描述

D More Comparison of DeeplabV3+ and SegFormer on Cityscapes-C

在本节中,我们详细展示了SegFromer和DeepLabV3+关于zero-shot鲁棒性。在[77]之后,我们测试了4种“噪声”的3种严重程度,以及其余12种腐蚀和扰动的5种严重程度。如图7所示,随着严重程度的增加,DeepLabV3+显示出相当大的性能下降。相比之下,SegFormer的性能相对稳定。此外,SegFormer在所有腐败/扰动和所有严重程度上都比DeepLabV3+具有显著优势,显示出良好的zero-shot鲁棒性。
在这里插入图片描述

GitHub 加速计划 / tra / transformers
130.24 K
25.88 K
下载
huggingface/transformers: 是一个基于 Python 的自然语言处理库,它使用了 PostgreSQL 数据库存储数据。适合用于自然语言处理任务的开发和实现,特别是对于需要使用 Python 和 PostgreSQL 数据库的场景。特点是自然语言处理库、Python、PostgreSQL 数据库。
最近提交(Master分支:2 个月前 )
33868a05 * [i18n-HI] Translated accelerate page to Hindi * Update docs/source/hi/accelerate.md Co-authored-by: K.B.Dharun Krishna <kbdharunkrishna@gmail.com> * Update docs/source/hi/accelerate.md Co-authored-by: K.B.Dharun Krishna <kbdharunkrishna@gmail.com> * Update docs/source/hi/accelerate.md Co-authored-by: K.B.Dharun Krishna <kbdharunkrishna@gmail.com> * Update docs/source/hi/accelerate.md Co-authored-by: K.B.Dharun Krishna <kbdharunkrishna@gmail.com> --------- Co-authored-by: Kay <kay@Kays-MacBook-Pro.local> Co-authored-by: K.B.Dharun Krishna <kbdharunkrishna@gmail.com> 11 天前
e2ac16b2 * rework converter * Update modular_model_converter.py * Update modular_model_converter.py * Update modular_model_converter.py * Update modular_model_converter.py * cleaning * cleaning * finalize imports * imports * Update modular_model_converter.py * Better renaming to avoid visiting same file multiple times * start converting files * style * address most comments * style * remove unused stuff in get_needed_imports * style * move class dependency functions outside class * Move main functions outside class * style * Update modular_model_converter.py * rename func * add augmented dependencies * Update modular_model_converter.py * Add types_to_file_type + tweak annotation handling * Allow assignment dependency mapping + fix regex * style + update modular examples * fix modular_roberta example (wrong redefinition of __init__) * slightly correct order in which dependencies will appear * style * review comments * Performance + better handling of dependencies when they are imported * style * Add advanced new classes capabilities * style * add forgotten check * Update modeling_llava_next_video.py * Add prority list ordering in check_conversion as well * Update check_modular_conversion.py * Update configuration_gemma.py 11 天前
Logo

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

更多推荐