Rethinking Semantic Segmentation from a Sequence-to-Sequence Perspective with Transformers


一、研究背景

语义分割方法采用了具有编解码结构的全卷积网络——FCN。

上下文建模对于语义分割至关重要,通过更大的感受野学习更多的抽象/语义视觉概念。

增大感受野最直接的方法是增加卷积网络的深度,但是事实表明,一旦达到一定的深度,增加更多层带来的收益逐渐降低。因此,上下文建模的接收域有限是普通FCN体系结构的一个内在限制。

为突破该限制,逐渐提出了如下方法:

  • 方法一:直接操作卷积。这包括增大卷积核大小、无卷积和图像/特征金字塔。例如DeepLab引入扩张卷积等等…
  • 方法二:将注意力模块集成到FCN体系结构中。对特征映射中所有像素的全局交互进行建模。例如PSANet开发了点向空间注意模块、DANet嵌入空间注意和通道注意等等…

但是仍然有一定缺陷:

  • 标准的编-解码器FCN模型体系结构仍然不变
  • 注意力学习限制在输入大小较小的高层。这意味着缺乏对低级特征张量的依赖学习,导致表示学习结果不是最优!

在此背景下,论文提出:图像特征不一定需要通过降低空间分辨率从局部到全局的逐步学习。

论文的SETR通过引入Transformer,不仅为模型设计提供了一个新的视角,而且在一些基准上达到了新的最先进水平。


二、研究重点
  • 从序列-序列学习的角度重新提出了图像语义分割问题的解决方案,为主导的编解码器FCN模型设计提供了一种替代方案
  • 通过序列化图像和利用Transformer框架来实现完全注意的特征表示编码器
  • 为了更好地测试注意力特征表示的效果,提出了三种复杂程度不同的解码器设计

实验表明,与有或没有注意力模块的多种不同 FCN 相比,SETR可以学习到更好的特征表示。


三、研究方法
3.1 图像序列化

SETR遵循与NLP相同的输入输出结构,用于一维序列之间的转换。 因此,二维图像与一维序列之间存在不匹配。

具体来说,Transformer接受一个1D序列的特征嵌入Z∈RL×C作为输入,L是序列的长度,C是隐藏的信道大小。 因此,需要图像序列化来将输入图像x∈RH×W×3转换为Z。

方法一:flatten。考虑到Transformer的模型复杂度,这种高维向量在空间和时间上都是不可能处理的。

方法二:典型的语义分割编码器将二维图像x∈RH×W×3降采样为特征映射XF∈RH×16×W×16×C,因此我们决定将变压器输入序列长度L设置为(H/16)×(W/16)=H×W/256。 这样,变压器的输出序列就可以简单地重塑到目标特征映射XF。

即:H × W × 3 --> H/16 × W/16 × 3 --> H×W/256 × C

因此,为了获得H×W/256的输入序列,将图片均匀分为(H/16)×(W/16)的网格,然后将这个网格扁平成一个序列。

将这个序列输入一个线性映射中,即可得到Patch embedding和Position embedding(这两个向量是Transformer的输入,具体可见Transformer相关论文,即下图中的黄色向量ei和灰色向量pi)。

在这里插入图片描述

至此,便得到Encoder的输入:E = {e1 + p1, e2 + p2, … , eL + pL}

3.2 Encoder

在这里插入图片描述

该论文中Encoder由24个Transformer层构成。每个Transformer层由多头注意力、LN层、MLP层构成。每层的输出结果即{Z1,Z2,Z3…ZLe},其计算过程如下:
在这里插入图片描述

说明:

  • self-Attention输入是一个三元组(q,k,v)
  • 三元组(q,k,v)的计算方式如上图公式1,其中WQ,WK,WV是随机矩阵
  • 多头注意力机制是指有多组(q,k,v)矩阵,一组(q,k,v)矩阵代表一次注意力机制的运算,将这多个矩阵拼接起来后再乘以一个参数矩阵WO,即可得出最终的多注意力层的输出
  • 利用残差思想得到最终结果
3.3 Decoder
3.3.1 Naive upsampling (Naive)
  • 将Transformer特征投影到类别数的维度。采用了一个简单的2层网络,结构:1×1conv + BN(w/RELU) + 1×1conv
  • 双线性上采样:将上一步输出转换为完整的图像
  • 像素级交叉熵损失的分类层
3.3.2 Progressive UPsampling (PUP)

一步向上缩放这可能会引入噪声,所以考虑一种渐进的上采样策略。
在这里插入图片描述

交替使用卷积层和上采样操作。为了最大限度地减轻对抗效应,将上采样限制在2×。因此,总共需要4次操作,以达到完全分辨率。

3.3.3 Multi-Level feature Aggregation (MLA)

在这里插入图片描述

Transformer层的输出是:{Z1,Z2,Z3…ZLe}。将这些输出均匀分为M份,并在每一份中取出一个输出特征,即:

在这里插入图片描述

原文将取出来的这些Zm称之为流(Stream)。Decoder只考虑这些流。

操作过程:

  • 2D --> 3D
  • 1 × 1, 3 × 3, and 3 × 3
  • upscaled 4× by bilinear operation
  • a top-down aggregation
  • 3 × 3
  • bilinear upsampled 4× to the full resolution

四、实验及结果
4.1 实验相关参数
数据集CityscapesADE20KPASCAL Context
迭代次数40,000和其他160,00080,000
学习率0.0010.010.01
动量和权重衰减0.9 and 00.9 and 00.9 and 0
批处理大小8816
随机调大小比例between 0.5 and 2between 0.5 and 2between 0.5 and 2
随机裁剪768512480
评估指标mIoUmIoUmIoU
Baselinesdilated FCN and Semantic FPNdilated FCN and Semantic FPNdilated FCN and Semantic FPN
4.2 ADE20K结果

在这里插入图片描述

4.3 Pascal Context结果

在这里插入图片描述

4.4 Cityscapes结果

在这里插入图片描述


五、消融实验

在这里插入图片描述


六、其他可视化
6.1 注意力机制

在这里插入图片描述

6.2 位置向量

在这里插入图片描述

6.3 层间特征

在这里插入图片描述


七、总结

在本工作中,我们通过引入序列到序列预测框架,提出了一种用于图像语义分割的替代视角。 与现有的基于FCN的方法相比,传统的方法通常在组件级别上以扩展的卷积和注意模块来扩大感受野,我们在体系结构级别上做了一个步骤更改,以完全消除对FCN的依赖,并优雅地解决有限的感受野挑战。 我们用Transformer实现了所提出的思想,它可以在特征学习的每个阶段对全局上下文进行建模。 结合一组不同复杂度的解码器设计,建立了强分割模型。广泛的实验表明,我们的模型在ADE20K(50.28%mIoU)、Pascal context(55.83%mIoU)和Cityscapes上的竞争结果上很出色。 令人鼓舞的是,我们的方法在高度竞争的ADE20K测试服务器领导板中排名第一(44.42%mIoU)。

  • 17
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值