SCASeg: 条形交叉注意力 for 高效语义分割

paper: https://arxiv.org/pdf/2411.17061

coda: 暂无

目录

一、动机

二、背景知识

三、方法

[1. 整体架构](#1. 整体架构)

[2. CLB模块](#2. CLB模块)

[3. SCA模块](#3. SCA模块)

[4. LPM模块](#4. LPM模块)

四、实验结果

五、结论


一、动机

视觉transformer (vit)被设计为通用的视觉编码器,往往忽略了任务解码器的具体需求。Vit在语义分割领域尚无专用的解码器,因此,作者提出了条形交叉注意力网络------SCASeg,这是专为VIT语义分割设计的解码器。

二、背景知识

语义分割:

语义分割可以看作是图像分类的演变,从对整个图像进行分类以在像素级分配标签 9, 25, 37, 41, 51。在深度学习时代,全卷积网络(fcn)27通过利用全卷积架构进行端到端像素级分类,在语义分割方面取得了重大突破。在 fcn 的开发之后,研究人员专注于从不同的角度对其进行增强,例如:1)扩大感受野 7, 23, 29:deeplab-v3 6 在 atrous 空间金字塔池 (aspp) 模块中引入了膨胀率,允许更大、更多尺度的感受野。2)改进上下文信息17,45,49:cpnet45通过将真值编码为单热表示并在编码器之前引入上下文来增强特征学习的准确性,为特征学习提供了更精确的指导。3)结合边界信息12,48,50: bpkd26采用边缘检测算子对目标物体进行扩张和侵蚀,有效提取边缘,利用知识蒸馏将教师模型的准确边缘信息转移到学生网络。4)设计各种注意机制14,19,36,52: danet14和ccnet19通过整合通道注意概念来扩展非局部注意,以提高整体模型性能。尽管这些方法显着提高了语义分割性能,但它们还引入了许多经验模块,从而产生了计算密集型和复杂的框架。

解码器头:

对于语义分割,Segmenter 32 利用与图像块相关的输出嵌入,并使用逐点线性解码器或掩码 transformer 解码器从这些嵌入中检索类标签。metaseg20引入了一个轻量级的解码器模块,称为通道缩减注意,它可以在每个阶段的输出中实现自我注意,同时减少计算负载。然而,一个限制是缺乏跨层交互,这表明潜在的改进领域。informer31通过将高级编码器特征作为查询,将底层编码器特征作为键和值来提高效率。然而,这种方法独立处理特征映射,而不需要跨解码器阶段进行渐进传播,错过了逐步细化的机会,可以增强对象边界检测。umixformer44引入了一种混合注意机制,该机制首先从不同层次的特征下采样,并将它们连接起来形成查询。然后将来自每个编码器级别的特征视为键和值,交叉注意逐步跨层应用。新生成的特征图被合并到原始连接的特征中以形成新的查询。

三、方法

1. 整体架构

  • SCASeg可以和任何具有4stage的backbone相结合 ,这里用了轻量的vit backbone作为encoder;
  • 在decoder中使用了类似U-Net的横向连接,并在其中集成了Cross-Layer Block(CLB,跨层模块)来增强层间交互;

整体来看:

  1. 给定大小为 h × w × 3 的图像 i 作为输入;
  2. 从encoder可以提取1~4个stage的1/4、1/8、1/16、1/32尺寸的feature map------Fi;
  3. 将F1~F4分别下采样后进行concat,得到第四层注意力模块X_4的key和alue,并将F4作为X4的query,这样经过一个CLB模块进行处理,就可得到细化的特征D4;D4再作为stage3中的注意力模块X3的key和alue,和query F3一起得到D3;
  4. 对于每个stage输出的feature map Fi,分别经过上述CLB模块处理过程,就可得到D1~D4;
  5. D1~D4经过上采样后送入MLP,就可得到1/4尺寸的分割mask;

整个过程如公式所示:

其中 Cat 表示连接操作,ρ 表示下采样池化操作,CLB 表示跨层块,Up 表示上采样函数,包括缩放因子。MLP 使用线性函数实现。

2. CLB模块

所提出的CLB模块加入了MetaFormer块来增强来自encoder的全局特征表示,主要关注跨不同层次特征整合上下文信息。

如图2b所示,CLB包含3个残差子模块、一个Local Perception Module (局部表示模块,LPM)、一个新颖的Strip Cross-Attention (条形交叉注意力,SCA)模块。SCA模块有效地捕获特征的局部和全局上下文,同时以最小的计算成本无缝地集成不同层次级别的信息。

该模块的公式表示如下:

3. SCA模块

SCA模块作为CLB内的创新令牌混合器,旨在有效地处理全局和局部特征提取,同时保持交叉注意中语义分割任务的计算效率。

首先,传统的transformer 块中,注意力模块使用以下公式计算:

在 self-attention 中,用于生成查询、键和值的特征是相同的(表示为 q、k、v ),并且源自一个共同的输入源 Fi,如图 3 (a) 所示。在交叉注意中,处理两组不同的特征(xq和xkv),每个特征都来自一个单独的源Fi和Fj,如图3 (b)所示。

在SCA模块中,k、v是从多个阶段获取的,记为Mi。这种设计使q能够在具有不同上下文粒度级别的多个阶段识别匹配,从而支持改进的特征细化。从效率的角度来看,我们战略性地设计了条形标记来实现注意力图。原始q和k的通道维度嵌入到单个维度中,进一步减少了计算开销。这种一维变换显着降低了计算复杂度。

此外,受 metaseg 20 的启发,我们观察到通道压缩的特征标记查询 q 和键 k可以有效地捕获全局相似性 。

总的SCA操作可以表示为:

4. LPM模块

全局注意力可以有效地捕获长期依赖关系,但它经常忽略局部上下文。为了解决标准自我注意和交叉注意机制中局部感知的不足,我们在CLB中引入了局部感知模块(LPM),从xcit1、smt24和cmt15等骨干中汲取灵感。如图4所示,可以使用以下等式导出LPM:

其中 dw conv 表示深度可分离卷积,σ 表示 relu 激活函数,⊙ 通过通道表示逐元素乘法。

四、实验结果

五、结论

本文提出了一种新的解码器设计 scaseg,它结合了条带跨层块。在四个基准数据集上进行的大量实验表明,scaseg 的通用解码器在各种配置中始终实现 sota 性能,在所有四个基准测试中都优于现有的分割架构。这些结果强调了在优化编码器的同时,设计针对特定任务(例如语义分割)量身定制的解码器的重要性,以提高性能和计算效率。

相关推荐
DogDaoDao1 天前
AV1 解码器核心:decodeframe.c文件深度剖析
音视频·实时音视频·视频编解码·av1·解码器·decode·vp9
weixin_4684668513 天前
DeepLab 语义分割模型新手部署与实战指南
人工智能·深度学习·机器学习·语义分割·机器视觉·deeplab
苏渡苇18 天前
微服务间的远程接口调用:OpenFeign 的使用
spring cloud·微服务·架构·springboot·openfeign·sca
爱听歌的周童鞋20 天前
YOLO26-Sem推理详解及部署实现
tensorrt·cuda·语义分割·高性能·yolo26-sem
DN金猿1 个月前
spring.cloud.nacos.discovery.server-addr和spring.cloud.nacos.server-addr区别
java·开发语言·nacos·springcloud·sca
DN金猿1 个月前
SpringCloudAlibaba微服务启动报错
微服务·云原生·nacos·架构·springcloud·sca
苏渡苇1 个月前
万字长文 | Spring Cloud Alibaba组件之Nacos实战及Nacos客户端服务注册源码解析
spring cloud·微服务·nacos·注册中心·配置中心·sca
123_不打狼2 个月前
基于UNET的语义分割
人工智能·语义分割
暂未成功人士!2 个月前
语义分割标注工具(isat-sam):利用 AI 辅助完成深度学习语义分割的图像数据标注
人工智能·深度学习·语义分割·数据标注