24-SCTNet(代码)-具有Transformer语义信息的单分支CNN用于实时分割-80.5%-17.4M-3090-T105.0+62.8FPS-1024×2048-顶会

摘要

​ 目前的实时语义分割方法通常采用额外的语义分支来追求丰富的远程上下文。然而,额外的分支会导致不必要的计算开销,并降低推理速度。为了消除这种困境,我们提出了SCTNet,一种具有transformer语义信息的单分支CNN,用于实时分割。SCTNet既具有无推理语义分支的丰富语义表示,又保留了轻量级单分支CNN的高效率。SCTNet利用转换器作为只用于训练的语义分支,因为它具有提取远程上下文的卓越能力。利用本文提出的类变压器(transformer-like)CNN块CFBlock语义信息对齐模块(semantic information alignment module),SCTNet可以在训练中捕获变压器分支丰富的语义信息。在推理过程中,只需要部署单个分支CNN。我们在cityscape、ADE20K和COCO-Stuff10K上进行了大量的实验,结果表明我们的方法达到了最新的性能。代码和模型可在https://github.com/xzz777/SCTNet上获得。

1 介绍

​ 语义分割是计算机视觉中的一项基本任务,其目的是为输入图像中的每个像素分配一个语义类标签。它在自动驾驶、医疗图像处理、移动应用和许多其他领域发挥着至关重要的作用。为了获得更好的语义分割性能,最近的语义分割方法追求丰富的远程上下文。已经提出了不同的方法来捕获和编码丰富的上下文信息,包括大接受域(14基于深度卷积网络和全连接crfs的语义图像分割;17deepplab:语义图像分割与深度卷积网络,自然卷积,和完全连接的crfs;18基于可分离卷积的语义图像分割编解码器;),多尺度特征融合(15U-net:生物医学图像分割的卷积网络;17金字塔场景解析网络),自我注意机制(19场景分割的双注意网络;19语义分割的交叉关注;18Ocnet:场景解析的对象上下文网络;18Psanet:用于场景解析的逐点空间注意网络;20一张图像相当于16x16个单词:用于大规模图像识别的变形金刚;)等。其中,自注意机制作为变压器的重要组成部分,已被证明具有显著的远程上下文建模能力。虽然这些工作有了很大的改进,但它们通常导致较高的计算成本。请注意,基于自我注意的作品在图像分辨率方面甚至具有平方计算复杂性,这大大增加了处理高分辨率图像的延迟。这些限制阻碍了它们在实时语义分割中的应用。

​ 近年来的许多实时工作都采用双边架构来快速提取高质量的语义信息。BiSeNet (18BiSeNet:用于实时语义分割的双边分割网络;)提出了一个双边网络,在早期阶段分离详细的空间特征和充足的上下文信息,并并行处理,如图2(a)所示。继BiseNet之后,BiSeNetV2 (21Bisenet v2:带引导聚合的双边网络,用于实时语义分割;)和STDC (21对双元组实时语义分割的再思考;)进一步致力于增强提取丰富远程上下文的能力或降低空间分支的计算成本。为了平衡推理速度和准确性,DDRNet (22用于交通场景实时准确语义分割的深度双分辨率网络)、RTFormer (22RTFormer:基于变压器的实时语义分割的高效设计;)和SeaFormer (23SeaFormer:用于移动语义分割的挤压增强轴向变压器;)采用了一种特征共享架构,在深度阶段划分空间和上下文特征,如图2(b)所示。然而,这些方法在两个分支之间引入密集的融合模块来增强提取特征的语义信息。总之,所有这些双边方法都存在推理速度有限和计算成本高的问题,因为它们需要额外的分支和多个融合模块

image-20240601234307754

图2:实时语义分割范例。(a)解耦双边网络在早期划分语义分支和空间分支。(b)特征共享双边网络在后期将两个分支分开,采用密集融合模块。©我们的SCTNet采用带有语义提取转换器的单一层次分支,在推理中不需要额外的分支和昂贵的融合模块。FM:融合模块,SIAM:语义信息对齐模块。虚线箭头和方框表示仅用于培训。

​ 为了消除上述困境,我们提出了一种具有转换语义信息的单分支CNN用于实时分割的网络(SCTNet)。该方法可以有效地提取语义信息,避免了双边网络带来的大量计算。具体来说,SCTNet从一个只训练的转换语义分支学习到CNN分支的远程上下文。为了减轻变压器和CNN之间的语义差距,我们精心设计了一个类似变压器的CNN块,称为CFBlock,并在对齐之前使用共享解码器头。通过训练中对齐的语义信息,单分支CNN可以对语义信息和空间细节进行联合编码。因此,SCTNet可以在保持轻量级单分支CNN架构的高效推理的同时,从变压器架构的大有效接受场中对齐语义表示。整个体系结构如图2©所示。在三个具有挑战性的数据集上进行的大量实验结果表明,所提出的SCTNet在精度和速度之间具有更好的平衡。图1直观地展示了SCTNet与其他实时分割方法在cityscape值集上的对比。

image-20240602123508370

图1:cityscape验证集上的速度精度性能。我们的方法用红星表示,其他方法用蓝点表示。我们的SCTNet建立了一个新的最先进的速度和精度权衡。

​ 提出的SCTNet的主要贡献可以概括为以下三个方面:

  • 我们提出了一种新的单分支实时分割网络,称为SCTNet。SCTNet通过学习利用变压器与CNN的语义信息对齐来提取丰富的语义信息,在保持轻量级单支路CNN的快速推理速度的同时,获得了transformer的高准确度

  • 为了减轻CNN特征和变压器特征之间的语义差距,我们设计了CFBlock (ConvFormer Block),它可以仅使用卷积操作捕获远程上下文作为变压器块。此外,我们提出了语义信息对齐模块(Semantic Information Alignment Module,SIAM)来更有效地对齐特征。

  • 大量的实验结果表明,所提出的SCTNet在cityscape(1024×2048)、ADE20K和COCO-Stuff-10K上的实时语义分割优于现有的最先进的方法。SCTNet为提高实时语义分割的速度和性能提供了新的思路。

2 相关工作

语义分割

​ FCN 导致使用CNN进行语义分割的趋势。在FCN之后,提出了一系列改进的基于cnn的语义分割方法。DeepLab (Chen et al . 2017)通过扩张卷积扩大了接受野。PSPNet (Zhao et al . 2017)、U-Net和RefineNet (Lin et al . 2017)融合了不同级别的特征表示来捕获多尺度上下文。一些方法(Fu et al . 2019;Huang et al . 2019;Yuan et al . 2018;Zhao等人(2018b)提出了各种注意力模块来提高分割性能。近年来,transformer被用于语义分割,并显示出良好的性能。SETR (21)首次将视觉变压器直接应用于图像分割。SegViT (22)尝试使用普通 vision transformer进行语义分割。PVT (21)将CNN中典型的层次结构引入到基于变压器的语义分割模型中。SegFormer (21)提出了一种高效的基于多尺度变压器的分割模型。

实时语义分割

​ 早期实时语义分割方法(Paszke et al . 2016;Wu, Shen, and Hengel(2017)通常通过压缩通道快速降采样来加速推理。ICNet (18)首先引入了一种多分辨率图像级联网络(multi-resolution image cascade network)来加快速度。BiSeNetV1 (18)和BiSeNetV2 (21)采用双分支架构特征融合模块,在速度和精度之间实现了更好的权衡。STDC (21)重新考虑了BiSeNet的双分支网络,去掉了空间分支,增加了详细的引导模块。DDRNets (22)通过在早期阶段共享分支实现了更好的权衡。近年来,人们提出了一些高效的变压器实时分割方法,但仍存在一些尚未解决的问题。TopFormer(22)只在特征图的1/64尺度上使用变压器,导致精度较低。RTFormer (22)和SeaFormer (23)需要两个分支之间频繁的交互。这种额外的计算降低了推理速度。还有一些单分支和多分支方法。参见附录D中的更多讨论。

附录D 讨论

其他类型的实时语义分割方法

​ 我们的动机是加速和改进实时语义分割的双边分支网络。因此,我们重点介绍了相关工作中双边分支实时语义分割网络的发展情况,帮助读者在有限的篇幅内快速了解我们的工作。然而,在该领域中还有一些其他类型的方法。为了避免遗漏,我们在这里讨论更全面的相关工作。

单个的分支网络

​ 目前已有一些研究工作集中在单分支实时分割网络上。然而,轻量级的单分支网络通常缺乏远程语义信息,导致准确率较低。为了捕获高质量的语义信息并实现高性能,AFFormer (23)使用复杂的编码器块,SegNext (22)堆叠了大量的多尺度卷积层,SFNet (22)采用了重型解码器。所有这些都导致了更大的推理延迟,削弱了原有轻量级单分支网络的速度优势。

多分支网络

​ 多分支机构网络将双边网络扩展到更多分支机构。例如,PIDNet (23)采用分层主分支以及详细分支和语义分支。虽然多分支设计可以提高性能,但它们也带来了更高的计算成本,导致与双分支方法相比推理速度更慢。

与MSCA的区别

​ 在SegNext中也有一种卷积注意,称为MSCA(Multi-Scale convolutional attention)。虽然我们提出的CFBlock中的MSCA和卷积注意都由几个卷积组成,但它们有很大的不同。MSCA利用多尺度条纹卷积捕获多尺度上下文,然后将提取的上下文特征图作为权重图,对原始特征图进行重加权。我们的卷积注意利用外部核作为键和值,计算外部核与特征图之间的相似度,并使用外部核的值来增强特征图。MSCA包含多尺度卷积层和更大的内核(如内核大小=21),导致更多的计算成本。如表4(主要论文)所示,我们的CFBlock以更少的参数和更快的速度显示出与MSCAN相似的性能。

异构模型的知识蒸馏

​ 知识蒸馏最早由Hinton等人提出(15)。大多数蒸馏方法只考虑教师和学生的同源结构。最近,一些方法(21;22)在CNN老师和变压器学生之间进行蒸馏,解决变压器小数据集缺失局部信息的问题。Liu 等人 (22)研究了变压器老师和CNN学生在分类上的升华。在语义分割领域,Zhu等人(2023)引入了一种协作学习过程,提高了CNN和transformer模型的性能。相比之下,我们的方法侧重于利用变压器的高质量语义信息作为语义分支来辅助单分支CNN的学习。因此,我们不需要联合培训,并且培训成本更低。虽然我们的主要目标是使用变压器来提高实时语义分割,但我们结合使用SIMA和CFBlock的有希望的性能也为从变压器到CNN的异构蒸馏提供了见解。

局限性和未来工作

​ 我们展示了SCTNet在各种GPU设备和数据集上的有效性,包括torch和Tensor-RT模型。但是,我们不报告移动设备上的CPU延迟。为CPU延迟构建一致的基准并评估如此多的方法超出了本文的讨论范围。此外,SCTNet的设计没有对CPU进行特殊的修改,比如用深度可分离卷积代替卷积运算,或者用ReLU6代替ReLU。我们计划在未来的工作中修改SCTNet的CPU使用情况。

​ 虽然我们已经在各种数据集的准确性和速度之间实现了新的最先进的权衡,但通过将我们的SCTNet扩展到SCTNet- l,有可能进一步提高性能。这是因为我们的SCTNet-B超过了实时标准(30FPS) 32.8 FPS。我们将在未来的工作中对此进行探讨,并在本文的后续版本中更新我们的结果。

注意力机制

​ 近年来,注意机制在计算机视觉中得到了广泛的应用。多种方法(Chu et al . 2021;Liu et al . 2021;Fang等人(2022)有助于降低注意力机制的计算复杂性。虽然它们中的一些实现了线性复杂度,但它们包含频繁的移位或重塑操作,带来了很大的延迟。MSCA (22)表现出了很好的性能,但是大内核不适合雇佣,并且注意力的多尺度设计进一步导致了推理速度的降低。外部注意(22)的形式非常简单。它采用外部参数作为键和值,实现了两层线性的关注机制。GFA(GPU- friendly Attention,在图形处理器单元(GPU)上高效执行的注意力机制) (Wang et al . 2022)通过用组双范数取代EA中的头裂来改善外部注意力,这对GPU设备更友好。

3 方法

动机

​ 去除双边网络的语义分支可以显著提高推理速度。然而,这导致浅单分支网络缺乏远程语义信息,导致准确性低。虽然使用深度编码器和强大的解码器或复杂的增强模块可以恢复精度,但它减慢了推理过程。为了解决这个问题,我们提出了一种只训练对齐的方法,在不牺牲推理速度的情况下丰富语义信息。具体来说,我们提出了带有只训练语义提取变压器的单分支卷积网络SCTNet,它具有变压器的高准确度和CNN的快推理速度。SCTNet的概述如图3所示。

image-20240602123824247

图3:SCTNet的架构。CFBlock(卷积前块,见图4)通过SIAM(语义信息对齐模块)利用仅训练的Transformer分支(虚线框中灰色),SIAM(语义信息对齐模块)由BFA(Backbone Feature Alignment,主干特征对齐)SDHA(Shared Decoder Head Alignment,共享解码器头部对齐)组成。

Conv-Former块

​ 作为不同类型的网络,CNN和transformer提取的特征表示存在显著差异。直接对齐CNN和变压器之间的特征会使学习过程变得困难,导致性能提高有限。为了使CNN分支能够轻松地学习如何从变压器分支中提取高质量的语义信息,我们设计了ConvFormer模块。转换前块尽可能模拟变压器块的结构,以便更好地学习变压器支路的语义信息。同时,卷积前块只使用有效的卷积操作来实现注意函数。

​ convo - former模块的结构类似于典型的变压器编码器的结构(Vaswani et al . 2017),如图4左侧所示。这个过程可以描述如下:

image-20240602110247111

其中Norm(·)为批归一化(Ioffe and Szegedy 2015), x、f、y分别表示输入、隐藏特征和输出。

image-20240602124059583

图4:Conv-Former块的设计(左)和卷积注意的细节(右)。GDN表示分组双归一化。⊗表示卷积运算,⊕表示加法,k表示核大小。

Convolutional Attention

​ 用于实时分割的注意机制应具有低延迟和强大的语义提取能力。正如在相关工作中讨论的那样,我们认为GFA是一种潜在的候选物质。我们的卷积注意力来源于GFA(GPU- friendly Attention,在图形处理器单元(GPU)上高效执行的注意力机制)

​ GFA和卷积注意之间有两个主要的区别。首先,我们将GFA中的矩阵乘法替换为逐像素卷积运算。点卷积相当于像素到像素的乘法,但没有特征平坦化和重塑操作。这些操作不利于保持固有的空间结构,并带来额外的推理延迟。

​ 此外,卷积提供了一种更灵活的方式来扩展外部参数。然后,由于transformer和CNN之间的语义差距,简单地计算几个可学习向量与每个像素之间的相似度,然后根据相似度图和可学习向量对像素进行增强,是不足以捕获丰富的上下文的。为了更好地对齐变压器的语义信息,我们将可学习向量扩展到可学习核。一方面,这将像素与可学习向量之间的相似性计算转化为具有可学习核的像素块之间的相似性计算。另一方面,具有可学习核的卷积运算在一定程度上保留了更多的局部空间信息。卷积注意的操作可以概括如下:

image-20240602110458465

式中,X∈R C×H×W,K∈R C×N×k×k, KT∈R N×C×k×k分别表示输入图像,表示可学习查询,表示键。

​ C、H、W分别表示特征映射的通道、高度和宽度。N表示可学习参数的个数,k表示可学习参数的核大小。θ表示分组双归一化,在H × W维数上应用softmax,在n维数上应用分组L2 Norm。⊗表示卷积操作。

​ 考虑到效率,我们使用条纹卷积而不是标准卷积来实现卷积注意力。更具体地说,我们利用1 × k和k × 1卷积来近似k × k卷积层。图4展示了卷积注意的实现细节。

前馈网络(FFN,Feed Forward Network)

​ 典型FFN在提供位置编码和嵌入信道方面起着至关重要的作用。在最近的变压器模型中,典型的FFN(前馈网络)由一个扩展点卷积、一个深度3×3卷积和一个挤压点卷积组成。与典型的FFN不同,我们的FFN由两个标准的3 × 3卷积层组成。与典型的FFN相比,我们的FFN效率更高,并且提供了更大的接受场。

语义信息对齐模块(SIAM,Semantic Information Alignment Module)

​ 我们提出了一个简单而有效的对准模块来进行训练过程中的特征学习,如图3所示。它可以分为主干特征对齐和共享解码器头部对齐。

主干特征对齐(Backbone Feature Alignment)

​ 由于逆变模块的结构类似变压器,因此对中损耗可以很容易地将逆变模块的特征与变压器的特征相匹配。简而言之,骨干特征对齐首先对变压器和CNN分支的特征进行下采样或上采样以进行对齐。然后将CNN的特征投影到变压器的尺寸上。投影可以:1)统一通道数,2)避免特征的直接对齐,这会损害CNN在训练过程中对地面真实度的监督。最后,对投影特征应用语义对齐损失来对齐语义表示。

共享解码器头部对齐(Shared Decoder Head Alignment)

​ 变压器解码器通常使用多级的特征进行复杂的解码,而SCTNet解码器只选择stage2和stage4的特征。考虑到它们之间解码空间的显著差异,直接对解码特征和输出逻辑进行对齐只能得到有限的改进。因此,我们提出共享解码器头部对齐。具体来说,将单分支CNN的拼接stage2&stage4特征输入到一个点卷积中进行维数扩展。然后将高维特征通过变压器解码器。变压器解码器的新输出特性和logits用于计算与变压器解码器原始输出的对中损耗。

总体架构

​ 为了降低计算成本,同时获得丰富的语义信息,我们将流行的两分支架构简化为一个用于推理的快速CNN分支和一个用于语义对齐的变压器分支,仅用于训练。

主干网

​ 为了提高推理速度,SCTNet采用了典型的分层CNN骨干网。SCTNet从一个由两个顺序的3×3卷积层组成的干块开始。前两个阶段由堆叠的剩余块组成(He et al . 2016),后两个阶段包括被提议的类似变压器的块,称为卷积前块(CF Blocks)。CFBlock采用了几个精心设计的卷积操作来执行与变压器块类似的远程上下文捕获功能。在第2 ~ 4阶段开始时,我们应用了一个由具有批量归一化(batch normal)和ReLu激活的跨行卷积组成的卷积层进行下采样,为了清晰起见,在图3中省略了该层。

解码器的头

​ 解码器头由DAPPM (Pan et al 2022)和分割头组成。为了进一步丰富上下文信息,我们在第4阶段的输出之后添加了一个DAPPM。然后我们将输出与阶段2的特征图连接起来。最后,这个输出特征被传递到分割头中。准确地说,分割头由3×3 convn - bn - relu算子和1×1卷积分类器组成。

培训阶段

​ 众所周知,transformer擅长捕获全局语义上下文。另一方面,CNN已被广泛证明比变压器更善于建模层次局部信息。在变压器和CNN各自优点的激励下,我们探索了一种同时具备变压器和CNN优点的实时分割网络。我们提出了一个单分支CNN,它学习将其特征与强大变压器的特征对齐,如图3中蓝色虚线框所示。这种特征对齐使单分支CNN能够提取丰富的全局上下文和详细的空间信息。具体来说,在训练阶段有两个流程。SCTNet采用纯列车转换器作为语义分支,提取功能强大的全局语义上下文。语义信息对齐模块监督卷积分支来对齐来自转换器的高质量全局上下文。

推理阶段

​ 为了避免两个分支的巨大计算成本,在推理中只部署CNN分支。利用变压器对齐的语义信息,单分支CNN可以产生准确的分割结果,而无需额外的语义提取或昂贵的密集融合。具体来说,输入图像被送入单分支层次卷积主干。然后,解码器头在主干中拾取特征并进行简单的串联,然后进行逐像素分类。

对齐的损失

​ 为了更好地对齐语义信息,需要一个关注语义信息而不是空间信息的对齐损失。在实现中,我们使用CWD Loss (channel-wise distillation Loss,通道级别的蒸馏损失) (Shu et al 2021)作为对准损失,其效果优于其他损失函数。CWD损失可以总结如下:

image-20240602111342570

式中c = 1,2,…, C为通道索引,i = 1,2,…式中,H·W为空间位置, x T x^T xT x S x^S xS分别为变压器支路和CNN支路的特征图。ϕ将特征激活转换为信道方向的概率分布,消除了变压器和紧凑CNN之间尺度的影响。为了最小化Lcwd,当φ (x c,i T)很大时,φ (x c,i S)应该很大。但是当ϕ(x c,i T)很小时,ϕ(x c,i S)的值无关紧要。这迫使CNN学习前景显著性的分布,其中包含了语义信息。T表示称为温度的超参数。T越大,概率分布越软。关于线向损失选择的更多讨论和详细的消融研究,请参见附录B

附录 B更多消融实验

CFBlock设计的消融研究

image-20240602133205927

​ 为了进一步阐明我们的卷积前块的结构,我们对所提出的卷积注意模块的细节进行了一些消融研究。考虑到效率,我们使用条纹卷积而不是标准卷积来实现卷积注意力模块。更具体地说,我们利用1×7和7×1卷积来近似7×7卷积层。表8显示了可学习核的核大小的消融研究。如表8所示,当内核大小设置为7,即使用1×7和7×1条卷积时,SCTNet达到最高mIoU,比单个1× 1卷积高1.0%,而FPS仅降低4.6。当内核大小大于7时,mIoU停止提高,但计算成本仍然增加。因此,我们在所有实验中将超参数内核大小设置为7。请注意,尽管7 × 7标准卷积拥有最慢的速度,但与1 × 7和7 × 1条纹卷积相比,它的mIoU更低。表8中所有实验均未经预训练。

语义对齐丢失的消融研究

​ 我们对对齐损失的类型、位置和权重进行了广泛的实验。

image-20240602133525457

​ 本文提出的语义信息对齐模块旨在指导CNN从变压器学习远程语义信息。因此,能够监督上下文信息学习的损失更适合我们的对齐损失。从表9(a)的结果可以看出,CWD损耗对性能有积极影响,而L2损耗与基线相比降低了精度。同时,KL损耗在对准前表现基本相同。这种现象可能是由于CWD损失将特征激活转换为通道方向的概率分布,从而将重点放在每个通道的整体信息对齐上,这些通道可能包含丰富的全局上下文。而L2损耗和KL损耗则以元素的方式直接对齐特征映射,而不将特征映射视为一个集合。与KL损耗相比,L2损耗采用更硬的对准,导致性能更差。MI损失是指互信息损失,是两个随机变量之间相互依赖的度量。我们在VID (Ahn et al 2019)中使用变分估计技术来估计每个信道分布的互信息,并获得与CWD损失相似的性能。MI和CWD损失都应用于通道分布。因此,在我们的SCTNet中,重要的是通道之间分布的对齐,而不是相似性测量的具体形式。这是因为SCTNet旨在对齐语义分支的远程上下文,语义分支包含在整个信道分布中,而不是每个像素或局部区域中。考虑到CWDloss的形式更简单,读者更容易理解,我们最终采用了CWDloss。

表9(b)显示了对中损失位置的影响。在层次CNN的深层阶段可能存在更多的远程语义信息,并且结果也表明在阶段3和4、解码器和输出逻辑上应用语义对齐是mIoU性能的最佳设置。请注意,对齐丢失的位置对推断FPS没有任何影响

​ 最后,我们在表9©中探讨了对齐损失的权重。对于输出逻辑,3是如下的最佳选择(Shu et al . 2021)。对于特征,我们发现15是最合适的。较小的权值不能充分利用变压器的高质量语义信息,而较大的权值又与CE损失相竞争。此外,我们观察到,当权重过大时,例如50,训练损失的值波动很大,导致准确率较低。请注意,所有这些消融研究都是在没有共享解码器头部对准的情况下进行的。

训练短语语义分支的消融研究

image-20240602133625995

​ 我们还对不同的训练语义分支进行了消融实验,以筛选合适的语义分支。表10给出了四种语义分支的影响:OCRNet、InternImage、Swin和SegFormer。我们采用这些类型的分支,准确率相似,训练设置相同。实验中观察到的一致性改进证明了所提出的SIAM的有效性。在候选分支中,SegFormer和InternImage显示出最有希望的改进。然而,与其他软件相比,SegFormer需要更少的训练时间和记忆。因此,我们选择SegFormer作为训练阶段的最终语义分支

4 实验

数据集和实现细节

​ 我们在三个数据集上进行了SCTNet的实验,即cityscape (Cordts et al . 2016), ADE20K (Zhou et al . 2017)和COCO-Stuff-10K (Caesar, ujlings, and Ferrari 2018),以证明我们方法的有效性。为了公平比较,我们构建了与RTFormer-B/DDRNet-23/STDC2大小相当的基础模型SCTNet-B。此外,我们还介绍了一个较小的变种,称为SCTNet-S。我们首先在ImageNet上预训练我们的CNN主干(Deng et al . 2009),然后在语义分割数据集上对其进行微调。训练短语中的语义变压器分支可以是任意层次变压器网络。在我们的实现中,我们选择SegFormer作为所有实验的变压器分支。我们在单个NVIDIA RTX 3090上测量所有方法的推理速度。除非特别说明,所有报告的FPS结果都是在相同的输入分辨率下获得的,以进行公平的性能比较。对于cityscape,我们使用torch和tensor-RT测量实现的速度。关于模型实例化、度量和特定数据集的训练设置的更多细节可以在附录A中找到。

附录A 更多实现细节

ImageNet训练

​ 为了公平的比较,所提出的SCTNet的CNN主干是使用8个gpu在ImageNet-1K (Deng et al . 2009)上预训练的。在预训练阶段,我们基于MMClassification构建代码,遵循在ImageNet-1K上的swing -transformer (Liu et al . 2021)的训练设置。预训练设置的主要细节如表7所示。

image-20240602132647555

数据集和实现细节

Cityscapes

​ cityscape (Cordts et al . 2016)是一个从汽车角度分析城市街道语义场景的数据集。它包含5000张精细标注的图像,有19个类别用于分割,这些图像被分为训练集、验证集和测试集,分别有2975张、500张和1525张图像。对于cityscape (Cordts et al . 2016),我们使用AdamW (Loshchilov and Hutter 2017)优化器训练所有模型,初始学习率为0.0004,权重衰减为0.0125。我们采用0.9次幂的聚学习策略来降低学习率,并实现数据增强方法,包括随机裁剪、随机缩放和随机水平翻转。对于seg75和Seg50,我们采用随机裁剪为1024×512,并在0.25到1.5的范围内随机缩放,而对于Seg100,我们采用1024× 1024和0.5到2.0。所有模型都经过160k次迭代训练,批处理大小为16。对于TensorRT速度,我们使用TensorRT v8.2.3进行加速。

ADE20K

​ ADE20K (Zhou et al . 2017)是一个包含150个细粒度语义类的场景解析数据集,它被分成20K、2K和3K的图像,分别用于训练、验证和测试。对于ADE20K,所有模型都以批处理大小为32的16万次迭代进行训练。除了裁剪大小为512 × 512和初始学习率为0.0005之外,其他所有训练设置都与Seg100的cityscape训练设置相同(Cordts et al . 2016)。

COCO-Stuff

​ COCO-Stuff(凯撒、伊利灵和法拉利,2018)。COCO- stuff包含171个语义类和10K(9K用于训练,1K用于测试)在COCO中收集的具有像素级内容注释的困难样本。我们使用AdamW优化器,权重衰减为0.00006,初始学习率为0.01。数据增强包括随机裁剪到640 × 640和在0.5到2.0范围内随机缩放。所有其他训练细节与Seg100的cityscape训练设置相同(Cordts et al . 2016)。

指标

​ 我们采用mIoU(平均交并比)、FPS(每秒帧数)和参数作为评价指标。mIoU是一种广泛应用于语义分割任务的评价指标。它通过计算两组像素的交集与并集的比率来量化预测分割与地面真实分割之间的重叠程度。mIoU分数是通过平均数据集中所有类的IoU分数获得的。它提供了分割模型整体准确性的度量。帧数每秒(FPS)是网络每秒可以处理的帧数的度量,受特定设备的影响。FPS可以直观地衡量网络的推理速度。参数是指在模型训练过程中必须训练的参数总数。这个度量标准通常用于度量模型的大小。在资源受限的边缘设备上,参数体积是一个需要考虑的关键因素。由于FLOPs不能直接估计推理速度,所以没有选择FLOPs作为评价指标。

模型实例化

​ 我们构建了基本模型SCTNet-B,其大小与RTFormer-B/DDRNet-23/STDC2相当。此外,我们还介绍了一个较小的变种,称为SCTNet-S。两种模型变体的网络架构超参数如下:

image-20240602112851662

式中,C为每个阶段的通道数,N为Conv-Former blocks中键/值的个数,k为Conv-Former blocks中可学习核的核大小。

​ 这两个模型变体使用相同的损失设置。我们使用CE损失(Milletari, Navab, and Ahmadi 2016)和CWD损失(Shu et al 2021)作为我们的整体训练损失,其公式如下:

image-20240602113041553

其中λmain和λaux分别表示二级解码器头和辅助头的损耗权值。λcwd为背景制导头损失权值。我们将输出logits、解码器特征、stage 4和stage 3的超参数分别设置为λmain = 1.0、λaux = 0.4和λcwd =[3,15,15,15]。遵循(Shu et al . 2021),我们设置温度T = 4。

​ 对于训练短语中的语义变换分支,可以是任意层次变换分支。在我们的实现中,我们选择SegFormer (Xie et al . 2021)作为所有实验的变压器老师。具体来说,我们为SCTNet-B选择了SegFormer-B3,为SCTNet-S选择了SegFormer-B2。

与最先进方法的比较
城市景观研究结果

image-20240602131633543

表1:与其他最先进的实时方法在cityscape val set上的比较。Seg100、Seg75、Seg50分别表示输入大小为1024 × 2048、768 × 1536、512 × 1024。#Params表示参数的数量。

​ 对cityscape (Cordts et al . 2016)的相应结果如表1所示。我们的SCTNet在很大程度上优于其他实时方法,并且在tensorRT和Torch实现中实现了最佳的速度-精度权衡。例如,我们的SCTNet-B-Seg100以62.8 FPS的速度实现了80.5%的mIoU,这是实时分割的最新性能。我们的SCTNet-B-Seg75达到79.8%的mIoU,在精度上优于最先进的基于变压器的双边网络RTFormer-B和基于cnn的双边网络DDRNet-23,但速度快两倍。我们的SCTNet-B在所有输入分辨率下都比所有其他方法更快,并且具有更好的mIoU结果。此外,与STDC2 (Fan et al . 2021)、RTFormer-S (Wang et al . 2022)、SeaFormer-B (Wan et al . 2023)和TopFormer-B (Zhang et al . 2022b)相比,我们的SCTNet-S也实现了更好的权衡。更多方法在特定设备上的原点速度以及在NVIDIA RTX 2080Ti GPU上的FPS比较可以在附录C中找到。

附录C 与更多方法的比较

ADE20K和COCO-Stuff-10K的权衡

​ 大多数基于cnn的实时分割方法主要关注城市景观(Cordts等人2016),而很少考虑ADE20K (Zhou等人2017)和coco - staff - 10k (Caesar, Uijlings, and Ferrari 2018)。这些数据集包含超过150个类别的大量图像,这使得基于cnn的轻量级模型具有挑战性。然而,最近一些基于变压器的实时分割方法在ADE20K和COCO-Stuff-10K上显示出有希望的改进。虽然我们的SCTNet是一个基于cnn的网络,但它在训练阶段将语义信息与转换器对齐。因此,SCTNet在ADE20K和COCO-Stuff-10K上也表现出具有竞争力的性能。如图6图7所示,我们的SCTNet在实时分割方面明显优于其他基于变压器和基于cnn的方法。

image-20240602125612402

图6:ADE20K验证集上的速度-精度性能。

image-20240602125715236

图7:COCO Stuff-10K测试集上的速度-精度性能。

对RTX 2080Ti的权衡

image-20240602125416921

图8:使用单个NVIDIA RTX 2080Ti在cityscape验证集上的速度(TRT)-精度性能。我们的方法用红点表示,其他方法用蓝点表示。我们的SCTNet建立了一个新的最先进的速度和精度权衡。

image-20240602133823861

​ 为了进一步证明我们的SCTNet在不同设备上的高效率,我们还使用单个NVIDIA RTX 2080Ti测量了我们的SCTNet和上述双边方法的推理速度。结果如表11所示。为了清楚地展示我们提出的SCTNet的效率,我们还在图8中给出了准确度-速度的比较。使用相同的NVIDIA RTX 2080Ti,我们的SCTNet-B也大大优于现有的双边实时语义分割网络。同时,我们的SCTNetS与这些方法保持了速度和准确性的竞争权衡。请注意,TensorRT不支持RTFormer中使用的一些操作(Wang et al 2022),但RTFormer的加速细节不可用。因此,我们在图8中报告了原始论文中的速度,该论文也部署在RTX 2080Ti上。

使用特定设备的更多方法

image-20240602133949818

​ 在主要论文中,为了公平比较,我们在单个RTX 3090上测量了所有速度。由于篇幅限制,我们只比较最近最先进的作品。因此,我们在表12中进行了更全面的比较。请注意,这里提到的所有速度都是用相应的装置从原始论文中获得的。

ADE20K的结果

​ 在ADE20K(Zhou et al . 2017)上,我们的SCTNet以最快的速度实现了最好的精度。例如,我们的SCTNet-B在145.1 FPS的情况下达到43.0%的mIoU,比RTFormer-B (Wang et al 2022)快1.6倍,mIoU性能提高0.9%。我们的SCTNet-S在ADE20K上达到37.7%的mIoU,同时在所有其他方法中保持最高的FPS (Zhou et al . 2017)。考虑到ADE20K中大量的图像和各种语义类别(Zhou et al . 2017),这一出色的结果也进一步证明了我们的SCTNet的泛化能力。

COCO-Stuff-10K的结果

image-20240602132114211

表3:与其他最先进的实时方法在COCO-Stuff-10K测试集上的比较。FPS的测量分辨率为640 × 640。

​ 在COCO-Stuff-10K上的相应结果如表3所示。SCTNet在实时语义分割方法中表现出SOTA的性能,并在coco - staff - 10k上保持最高的推理速度。在输入尺寸为640 × 640的情况下,SCTNet-B以141.5 FPS的速度实现了35.9%的mIoU,比RTFormer-B提高了0.6%,速度提高了约1.6倍。ADE20K和COCO-Stuff-10K的综合精度权衡比较分别见图6和图7(附录C)

消融实验
不同类型块的比较

image-20240602132003350

​ 为了验证我们提出的CFBlock的有效性,我们在实时分割中用其他类型的卷积块和变压器块替换CFBlock。为了快速评估,表4中的所有结果都没有在ImageNet上进行预训练。我们选择了四种类型的块进行比较。如表4所示,我们的CFBlock比典型的ResBlock和轻量级的SegFormer Block的性能要好很多。此外,与最先进的GFABlock (Wang et al . 2022)和SegNext的MSCANBlock (Guo et al . 2022b)相比,我们的CFBlock获得了更好的速度和精度权衡。我们的CFBlock的mIoU比GFABlock高0.9%,并且以比MSCANBlock更少的参数和更快的速度保持了相似的性能。这也证明了我们的SCTNet可以更好地缓解CNN和transformer之间的语义信息差距,同时摆脱了高昂的计算成本。

语义信息对齐模块的有效性

image-20240602132408555

​ 虽然我们的SIAM(语义信息对齐模块)与精心设计的SCTNet密切相关,但它也可以提高其他CNN和变压器分割方法的性能。如表5所示,使用我们的SIAM在SegFormer、SegNext、SeaFormer和DDRNet上实现了一致的改进,这证明了我们提出的SIAM的有效性和泛化能力。同时,作为双侧支路变压器和双侧支路CNN网络的代表,SeaFormer和DDRNet的改进幅度相对较小。这可能是由于它们的双边分支网络结构已经从额外的语义分支中受益。这也证实了我们的SIMA和纯训练转换器的合作确实在双边分支网络中发挥了语义分支的作用,从而提高了单分支网络的准确率。

组件消融

image-20240602132453472

​ 我们在表6中探讨了提议的组成部分的影响。以Seg100为例,简单地用我们的CFBlock替换Resblock,可以在速度损失很小的情况下提高2.1%的mIoU。BFA使mIoU提高了1.2%,而SDHA在不牺牲速度的情况下进一步提高了0.8%

更多消融研究

​ 关于CFBlock设计的更详细的消融研究,语义对齐损耗的讨论,以及训练短语中语义变压器支路的选择,请参见附录B(前面已附)。

可视化的结果

image-20240602130915683

图5:cityscape验证集的可视化结果。与DDRNet-23(Pan et al 2022)和RTFormerB (Wang et al 2022)相比,SCTNet-B生成的掩码细节更精细,如浅蓝色框所示,大面积预测更准确,如黄色框所示。

图5显示了cityscape (Cordts et al 2016)验证集的可视化结果。与DDRNet和RTFormer相比,我们的SCTNet不仅为道路、人行道和大卡车等大区域的类提供了更好的结果,而且为电线杆、交通信号灯、交通标志和汽车等小或薄的对象提供了更准确的边界。这表明SCTNet提取了高质量的远程上下文,同时保留了精细的细节。更多关于城市景观和ADE20K的可视化结果可以在附录E中找到。

附录E 更多可视化结果

​ 在本节中,我们展示了更多关于ADE20K (Zhou et al. 2017)和cityscape (Cordts et al. 2016)的可视化结果,以直观地展示SCTNet的有效性。

​ 对于ADE20K (Zhou et al. 2017),图9给出了所有上述基于变压器的实时分割方法和我们的SCTNet-B的可视化结果。在第一列中,我们的SCTNet以更好的内部一致性分割建筑物,并为树提供更好的掩码。在第二列中,我们的SCTNet具有像GT面具一样的幕和垫的平滑边界。在第三列中,我们的SCTNet生成了更好的扶手椅分割,并且有更少的错误面具用于绘画。在第四列中,我们的SCTNet为栅栏和电线杆生成了更好的掩码。这些可视化结果表明,与SegFormer-B0 (Xie etal. 2021)、RTFormer B(Wangetal. 2021)相比,SCTNet具有更好的区分不同类别的能力。2022)、TopFormer-B (Zhang et al. 2022b)和SeaFormer-B(Wan et al. 2023)。

image-20240602130444726

图9:ADE20K验证集的可视化结果。与SegFormer-B0 (Xie et al. 2021)、RTFormer B(Wang et al. 2022)、TopFormer-B (Zhang et al. 2022b)和SeaFormer-B(Wan et al. 2023)相比,SCTNet-B生成的掩模细节更精细,如深蓝色框所示,大面积预测更准确,如黄色框所示。

image-20240602130558779

图10:cityscape验证集的可视化结果。与SeaFormer-B(Wan et al. 2023)和STDC2 (Fan et al. 2021)相比,SCTNet-B生成的掩码细节更精细,如浅蓝框所示,大面积预测更准确,如黄框所示。

​ 此外,我们在图10中提供了更多关于城市景观的可视化结果(Cordts et al. 2016),由于页面限制,这些结果没有出现在论文文本中。与SeaFormer (Wan etal. 2023)和STDC(Fanetal.2021)相比,我们的sctnet不仅为道路和人行道等大面积的类别提供了更好的结果,而且对于电线杆、交通信号灯、交通标志和汽车等小或薄物体也提供了更准确的边界。这表明SCTNet在保留精细细节的同时提取了高质量的远程上下文。

5 结论

​ 在本文中,我们提出了一种新的单分支架构SCTNet,它可以在不增加推理计算成本的情况下提取高质量的远程上下文。大量的实验表明,SCTNet实现了新的最先进的结果。此外,通过验证SCTNet的有效性,我们对双边分支网络中的语义分支提供了新的见解,并通过采用变压器的结构并将其知识统一起来,为增强实时分割社区提供了一种新的方法。

  • 47
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值