深度学习论文: SegNeXt: Rethinking Convolutional Attention Design for Semantic Segmentation及其PyTorch实现
SegNeXt: Rethinking Convolutional Attention Design for Semantic Segmentation
PDF: https://arxiv.org/pdf/2209.08575.pdf
PyTorch代码: https://github.com/shanglianlm0525/CvPytorch
PyTorch代码: https://github.com/shanglianlm0525/PyTorch-Networks
1 概述
作者分析了一些经典的语义分割网络,总结出经典的网络具备的关键属性:
- 1 采用强骨干网络作为编码器;
- 2 多尺度信息交互;
- 3 空域注意力;
- 4 低计算复杂度。
基于此,不同于已有Transformer方案,提出的SegNeXt对编码器模块采用传统卷积模块设计但引入了多尺度卷积注意力,对解码器模块采用了Hamberger(自注意力的一种替代方案)进一步提取全局上下文信息。提出的SegNeXt兼具性能和速度的优势;
2 SegNeXt
2-1 Convolutional Encoder
在Encoder部分同样采用了金字塔架构,每个构成模块采用了类似ViT的结构,但不同之处在于:本文并未使用自注意力,而是设计一种多尺度卷积注意力模块MSCA. MSCAN是VAN的多尺度版本。
如上图所示,MSCA由三部分构成:
- depth-wise 卷积:用于聚合局部信息
- 多分支depth-wise卷积:用于捕获多尺度上下文信息
- 1x1卷积:用于在通道维度进行相关性建模
通过堆叠MSCA而得到的不同MSCAN骨干信息,如下
2-2 Decoder
解码器结构
- a,源自SegFormer的解码器,它是一种纯MLP架构;
- b,常被CNN方案使用,如ASPP、PSP、DANet等;
- c,综合a和b, 采用轻量型Hamberger模块对后三个阶段的特性进行聚合以进行全局上下文建模。
Hamburger:
Hamburger通过去噪和完善其输入来学习可解释的全局上下文,并重新调整光谱的浓度。当仔细处理通过 MDs 回传的梯度时,具有不同 MDs 的 Hamburgers 可以对流行的全局上下文模块 self-attention 有良好的表现。