Transformer 进军语义分割

  • 进军方向
  • SETR: Rethinking Semantic Segmentation from a Sequence-to-Sequence Perspective with Transformers (CVPR 2021)
  • 网络结构图
  • 实验效果
  • ADE20K 数据集上效果
  • Pascal Voc 数据集上的效果
  • TransUNet: Transformers Make Strong Encoders for Medical Image Segmentation
  • 网络结构图
  • 实验效果
  • Synapse multi-organ CT 数据集上的效果
  • SegFormer: Simple and Efficient Design for Semantic Segmentation with Transformers (NeuralPS 2021)
  • 网络结构图
  • 实验效果
  • ADE20K和Cityscape数据集上的效果


进军方向

   Transformer自2017年诞生之后,迅速在NLP领域攻城略地,在极短的时间内晋升成为NLP领域绝对的霸主。Transformer进军CV领域的行动早在2018年就开始了,但是行进缓慢,直到2020年谷歌再次出手,提出Transformer进军CV领域的里程碑式的神作 ViT ,屠榜ImageNet、CIFAR10、CIFAR100,将Transformer在CV领域的潜力展示给世人,大家深受震撼与启发,随即争相涌入ViT研究浪潮中,直接推动了ViT的蓬勃发展。

   在阐述Transformer在CV领域开疆拓土的行军路线前,简单概括一条范式。基于深度学习的方法解决计算机视觉领域的各种任务,诸如图像分类、目标检测、语义分割、实例分割等,都遵循统一的范式,即,特征提取模块+任务模块。
特征提取模块 + 分类器 = 图像分类网络
特征提取模块 + 检测器 = 目标检测网络
特征提取模块 + 分割器 = 语义分割网络

  到这里,读者朋友可能已经猜到了,Transformer可以取代语义分割任务中的特征提取模块。但Transformer是否比原本基于 CNN 的特征提取模块更好?答案是肯定的,
语义分割模型准确率提升 语义分割transformer_transformer
   至此,我们了解到,用Transformer取代语义分割中的特征提取模块是可行的,接下来,首先介绍Transformer在语义分割领域的开山制作 SETR

SETR: Rethinking Semantic Segmentation from a Sequence-to-Sequence Perspective with Transformers (CVPR 2021)

SETRSegmentation Transformer 前两个字母的组合

作者单位是 复旦、牛津大学、萨里大学、腾讯优图、Facebook

网络结构:ViT 特征提取 + 多层次特征融合 + 解码器

网络结构图

语义分割模型准确率提升 语义分割transformer_语义分割模型准确率提升_02


  在语义分割中特征提取模块又称编码器分割器又称解码器,SETR中直接采用 ViT 中 24 层做高层语义上下文建模。

   ViT 特征提取:ViT先将输入图像等分为许多个patch,然后通过 展平(Flatten) 和 线性映射(Linear Projection) 操作将这些patch映射为序列,然后加上各自的位置编码,输入Transformer中做特征提取。

  多层次特征融合:编码器中包括 24个 Transformer Layer,为了同时获得高层语义和低层语义信息,作者将 第6、12、18、24层的输出结果从序列恢复到二维,然后按通道维度拼接(concat),得到具有丰富语义层次的特征向量。

  解码器:采用的传统的 CNN 逐级解码,将特征向量的宽高恢复到原图像大小,扩大宽高的同时缩减通道数为类别数。

实验效果

在ADE20K取得 50.28%的mIoU,这是该数据集首次出现mIoU超过50%的记录,同时在 Pascal Context取得 55.83%的mIoU,均是 STOA效果。

ADE20K 数据集上效果

语义分割模型准确率提升 语义分割transformer_深度学习_03

Pascal Voc 数据集上的效果

语义分割模型准确率提升 语义分割transformer_语义分割模型准确率提升_04

TransUNet: Transformers Make Strong Encoders for Medical Image Segmentation

面向医学图像分割,结合 擅于长距离上下文建模的Transformer 和 擅于捕捉低层细节信息的UNet。

作者单位:约翰霍普金斯大学、电子科技大学、斯坦福大学

网络结构:CNN特征提取 + 长距离上下文建模 + UNet解码器

网络结构图

语义分割模型准确率提升 语义分割transformer_人工智能_05


  CNN特征提取:级联卷积提取特征向量,各个stage的输出用于跳跃连接。

  长距离上下文建模:使用12个Transformer层对CNN特征提取模块中得到特征向量,进一步做长距离上下文建模。

  UNet解码器:跳跃连接,逐级解码。

实验效果

Synapse multi-organ CT 数据集上的效果

语义分割模型准确率提升 语义分割transformer_语义分割模型准确率提升_06

SegFormer: Simple and Efficient Design for Semantic Segmentation with Transformers (NeuralPS 2021)

作者单位:香港大学、南京大学、英伟达、加州理工大学

网络结构:Mix-FFN取代位置嵌入 + Efficient Self-Attention缩减时间复杂度 + Overlapped patch Merging 保留局部连续性 + 极简decoder

网络结构图

语义分割模型准确率提升 语义分割transformer_transformer_07


  Mix-FFN:ViT中位置编码的分辨率是固定的,在模型测试使用阶段,输入图像的分辨率并不固定,因此如果采用位置编码,则需通过重采样获得位置编码,显然,这会影响模型预测。本文作者认为通过填充零,卷积核尺寸3x3的卷积可以获得位置信息。具体做法是在一个简单的 前馈神经网络(FFN)中加入3x3 Conv,公式表示如下:

语义分割模型准确率提升 语义分割transformer_特征提取_08

  Efficient Self-Attention:作者指出经典的自注意力机制算法时间复杂度为语义分割模型准确率提升 语义分割transformer_人工智能_09,其中N为序列的长度。在ViT中序列长度 N 通常等于 H*W,其中H、W分别为图像高和宽。作者指出对于高分辨率图像,自注意力机制的时间复杂度太大,因此提出更高效的自制注意力算法。核心步骤为:
1)通过 reshape 操作,将输入序列的shape从语义分割模型准确率提升 语义分割transformer_语义分割模型准确率提升_10变为语义分割模型准确率提升 语义分割transformer_深度学习_11,其中R为缩减系数;
2)通过线性映射,将 shape为 语义分割模型准确率提升 语义分割transformer_深度学习_11 的序列映射为 shape为 语义分割模型准确率提升 语义分割transformer_特征提取_13 的序列。
SegFormer的四个stage的缩减系数分别为 64、16、 4、1。

  Overlapped patch Merging:本文的作者认为ViT中采用的 patch merging 算法丢失了patch周围的局部连续性信息。因此提出,重叠的patch划分方法,具体做法通过一个宽高为3的窗口,步长为2,边缘填充为1,进行滑动。通过重叠保留了patch周围的局部连续性。

  极简decoder:作者认为特征提取过程中使用的自注意力机制,已经提取到了充分高层的语义特征,因此在解码阶段,无需通过级联卷积进一步提升模型感受野。因此,本文中的解码器只包含几个简单的线性映射和上采样层。

实验效果

ADE20K和Cityscape数据集上的效果

语义分割模型准确率提升 语义分割transformer_特征提取_14

面向移动设备的TopFormer (CVPR 2022),医学分割 DS-TransUNet,…