Open xingchenshanyao opened 1 year ago
2.相关工作 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的方法的效率非常低,因此很难在实时应用程序中部署。
给定一个大小为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.cls分辨率下的分割掩模,其中N.cls是类别的数量。在本节的其余部分中,我们将详细介绍所提出的编码器和解码器的设计,并总结了我们的方法和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) x W/2^(i+1) x C.i的分层特征图F.i,i属于{1, 2, 3, 4} and C.(i+1)>C.i Overlapped Patch Merging 给定一个图像补丁,在ViT中使用的补丁合并过程,将一个N×N×3补丁统一为一个1×1×C向量。这可以很容易地扩展到将一个 2 × 2 × C.i特征路径统一为一个 1 × 1 × C.(i+1)向量,以获得层次特征映射。使用这个方法,我们可以将我们的层次结构特征从 F.1 x ( H/4 × W/4 × C.1 ) 缩小到 F.2 ( H/8 × W/8 × C.2 ),然后迭代层次结构中的任何其他特征映射。这个过程最初被设计为结合不重叠的图像或特征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为序列的长度,自注意估计为: 该过程的计算复杂度为O(n^2),这对于大的图像分辨率是禁止的。相反,我们使用了在[8]中引入的序列缩减过程。此过程使用还原比R来减少序列的长度如下: 其中K是要减少的序列, K′ = Reshape x ( N/R , C⋅R) x ( K )表示重塑K为形状为 N/R × ( C⋅R ) , Linear( C.in ,C.out)(⋅)表示线性层,以一个顺维张量作为输入,生成一个 C.out维张量作为输出。因此,新的K的维数为 ( N/R , C ) ,因此,自注意机制的复杂性从O(n^2)降低到O(n^2/R) 。在我们的实验中,我们从第一阶段到第四阶段将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.in是来自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.cls分辨率预测分割掩模M,其中N.cls为类别数。这让我们可以将解码器表述为: 其中M为预测的mask,Linear(C.in,C.out)(⋅)为分别以 C.in和C.out为输入和输出向量维数的线性层。 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包含了多个更高效和更强大的设计:
1.我们只使用ImageNet-1K进行预训练。SETR中的ViT在更大的ImageNet-22K上进行预训练。 2.Segformer的编码器具有分层架构,比ViT小,可以捕获高分辨率的粗糙和低分辨率的精细特征。相比之下,SETR的ViT编码器只能生成单一的低分辨率特征图。 3.我们删除了编码器中的位置嵌入,而SETR使用固定形状的位置嵌入,当推理时的分辨率与训练时的分辨率不同时,这降低了精度。 4.我们的MLP解码器比SETR中的一个更紧凑,计算要求更低。这使的计算开销可以忽略不计。相比之下,SETR需要具有多个3×3卷积的重解码器。
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具有很强的鲁棒性,我们设想这有利于鲁棒性重要的安全关键应用。
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鲁棒性。
参考来源:
SegFormer是一个简单,高效但强大的语义分割框架,它将Transformers与轻量级多层感知器(MLP)解码器统一起来。 特点: -1. SegFormer包括一个新的层次结构Transformers编码器,输出多尺度特征。它不需要位置编码,从而避免了位置码的插值,当测试分辨率与训练不同时,会导致性能下降。 -2 SegFormer避免了复杂的解码器。所提出的MLP解码器聚合了来自不同层的信息,从而结合了局部注意和全局注意,呈现出强大的表示。我们证明,这种简单和轻量级的设计是在Transformers上高效分割的关键。 SegFormer-B4在64M参数的ADE20K上达到50.3%的mIoU,比之前的最佳方法小5倍,好2.2%。我们最好的模型Segfrar-B5在Cityscapes验证集上达到了84.0%的mIoU,并在Cityscapes-c上显示出优秀的小样本鲁棒性。代码地址为:
论文名称:
论文地址: