简介

主页:https://fudan-zvg.github.io/SETR/

在提交当天,在ADE20K测试服务器排行榜上取得了第一的位置。

多数语义分割方法都采用有编码器-解码器结构的全卷积网络(FCN)。编码器逐步降低空间分辨率,学习更抽象/语义视觉概念与更大的接受域。由于上下文建模对分割至关重要,研究集中在通过扩展卷积或插入注意模块来增加接受域。基于编码器-解码器的FCN架构保持不变。

论文提供另一种视角,将语义分割视为序列到序列的预测任务,提出一个纯transformer的编码器(即,没有卷积)来将图像编码为一系列补丁。在transformer的每一层中对全局上下文进行建模,该编码器可以与简单的解码器相结合,以提供一个强大的分割模型,称为SEgmentation TRansformer (SETR)。

论文关键是在空间分辨率上没有下采样,而是在编码器转换器的每一层进行全局上下文建模,从而为语义分割问题提供了一个全新的视角。

类似论文的区别:Axial-deeplab: Standalone axial-attention for panoptic segmentation. In ECCV, 2020

  1. Axial-deeplab完全消除了卷积(SETR也是如此),但他们的模型仍然遵循传统的FCN设计,特征图的空间分辨率逐渐降低。序列到序列预测模型自始至终保持相同的空间分辨率,因此代表了模型设计的阶梯式变化
  2. 为了最大化现代硬件加速器上的可扩展性并便于使用,SETR坚持标准的self-attention设计。相反,Axial-deeplab采用专门设计的axial-attention这是更少的可伸缩的标准计算设施。

贡献

  1. 序列到序列学习的角度重新表述了图像语义分割问题,为目前主导的编码器-解码器FCN模型设计提供了一种替代方案。
  2. 作为一个实例,利用transformer框架来实现全注意特征表示编码器通过对图像进行排序。
  3. 为了更广泛地研究自关注特性表示,进一步介绍了三种不同的解码器设计,它们具有不同的复杂性。

实现流程


SETR:(a)首先将图像分割成固定大小的小块,线性嵌入每个小块,添加位置嵌入,并将得到的向量序列输入标准的Transformer编码器。
解码器:(b)渐进上采样(产生名为SETRPUP的变体); ( c) 多层次特征聚合(一种称为SETR-MLA的变体)。

将FCN与注意机制相结合能有效学习上下文信息,这些方法由于其二次复杂度w.r.t特征张量的像素数,将注意力学习限制在更高层和更小的输入尺寸。这意味着缺乏对低层次特征张量的依赖学习,导致次优表示学习。为了克服这一限制,提出了一种纯粹的基于自注意的编码器,称为SETR

Image to sequence

如上图 a 所示,接受特征嵌入的一维序列 Z∈RL×CZ∈R^{L×C}Z∈RL×C 作为输入,L 为序列长度,C 为隐藏通道大小,对图像进行序列化,将输入图像 x∈RH×W×3x∈R^{H×W ×3}x∈RH×W×3 转换为 Z

考虑到用于语义分割的典型编码器会将二维图像 x∈RH×W×3x∈R^{H×W ×3}x∈RH×W×3 下采样为特征图 xf∈RH16×W16×Cx_f∈R^{ \frac{H}{16} × \frac{W}{16} ×C}xf​∈R16H​×16W​×C,因此将transformer输入序列长度 L 设为 H16×W16=HW256\frac{H}{16} × \frac{W}{16} = \frac{HW}{256}16H​×16W​=256HW​,从而可以简单地将变压器的输出序列重塑为目标特征映射 xfx_fxf​

为了得到 HW256\frac{HW}{256}256HW​ 长的输入序列,将图像 x∈RH×W×3x∈R^{H×W ×3}x∈RH×W×3 均匀地分成H16×W16\frac{H}{16} × \frac{W}{16}16H​×16W​小块的网格,然后将该网格平展成序列。

通过使用线性投影函数 f 将每个向量化的补丁 p 映射到潜在的 c 维嵌入空间,得到了图像 x 的一维补丁嵌入序列。

为了对补丁空间信息进行编码,对每个位置 i 学习一个特定的嵌入 pip_ipi​,并将其添加到 eie_iei​ 中,形成最终序列输入E={e1+p1,e2+p2,⋅⋅⋅,eL+pL}E = \{e_1 + p_1, e_2 + p_2,···,e_L + p_L\}E={e1​+p1​,e2​+p2​,⋅⋅⋅,eL​+pL​}。从而,尽管 transformer 具有无秩序的自我注意特性,空间信息仍然被保留。

transformer

以一维嵌入序列 E 为输入,采用基于纯 transformer 的编码器学习特征表示。这意味着每个transformer 层都有一个全局接收场,一劳永逸地解决了现有FCN编码器接收场有限的问题。变压器编码器由 LeL_eLe​ 层的多头自注意(MSA)和多层感知器(MLP)块组成。在每一层 l 上,自我注意的输入是由输入 Zl−1∈RL×CZ^{l−1}∈R^{L×C}Zl−1∈RL×C 计算出来的(query、key、value)三元组

其中 WQ/WK/WV∈RC×dW_Q/W_K /W_V∈R^{C×d}WQ​/WK​/WV​∈RC×d 为三线性投影层的可学习参数,d 为(query、key、value)的维数。自我注意(SA)被表述为

**多头自注意(MSA)**是一个扩展,它具有 m 个独立的 SA 操作,并投影它们的连接输出: MSA(Zl−1)=[SA1(Zl−1);SA2(Zl−1);⋅⋅⋅;SAm(Zl−1)]WOMSA(Z^{l−1})= [SA_1(Z^{l−1});SA_2 (Z^{l−1});···;SA_m(Z^{l−1})]W_OMSA(Zl−1)=[SA1​(Zl−1);SA2​(Zl−1);⋅⋅⋅;SAm​(Zl−1)]WO​,其中 WO∈Rmd×CW_O∈R^{md×C}WO​∈Rmd×C 。d 通常设置为 C/m。然后将 MSA 的输出由一个带有剩余跳过的MLP块作为层输出转换为:

层范数应用在MSA和MLP块之前。将{Z1,Z2,⋅⋅⋅,ZLe}\{Z^1, Z^2,···,Z^{L_e}\}{Z1,Z2,⋅⋅⋅,ZLe​}表示为变压器层的特征

Decoder designs

解码器的目标是在原始二维图像空间(H × W)中生成分割结果,需要将编码器的特征(在解码器中使用)Z从二维形状HW256×C\frac{HW}{256} × C256HW​×C重塑为标准的三维特征图H16×W16×C\frac{H}{16} × \frac{W}{16}× C16H​×16W​×C

普通解码器(SETR-Naive)

这个简单的解码器首先将transformer特征 ZLeZ^{L_e}ZLe​投影到类别编号的维度上。这里采用了一个简单的2层网络结构:1 × 1 conv + sync batch norm (w/ ReLU) + 1 × 1 conv。

简单地双线性上采样输出到完整的图像分辨率,然后是一个具有像素级交叉熵损失的分类层。

Progressive UPsampling(SETR-PUP)

一种交替转换层和上采样操作的渐进上采样策略。为了最大限度地缓解对抗效应,将上采样限制在2×以内。从尺寸为 H16×W16\frac{H}{16} × \frac{W}{16}16H​×16W​ 的 ZLeZ^{L_e}ZLe​ 中获得全分辨率总共需要4个操作,如上图b。

Multi-Level feature Aggregation (MLA)(SETR-MLA)

MLA特点是多层次特征聚合(上图(c )),与特征金字塔网络相似,但是,论文的decoder 是不同的,因为每个SETR层的特征表示 ZlZ^lZl 共享相同的分辨率,没有金字塔形状

具体来说,取 m 个层的特征表示 {Zm}(m∈{Lem,2Lem,⋅⋅⋅,mLem})\{Z^m\} (m∈\{ \frac{L_e}{m}, 2\frac{L_e}{m},···,m\frac{L_e}{m}\}){Zm}(m∈{mLe​​,2mLe​​,⋅⋅⋅,mmLe​​}) 作为输入,这些层均匀分布,步长 Lem\frac{L_e}{m}mLe​​ 到解码器。

在每个流中,首先将编码器的特征 ZlZ^lZl 从二维形状 HW256×C\frac{HW}{256} × C256HW​×C 重塑为三维特征映射H16×W16×C\frac{H}{16} × \frac{W}{16} × C16H​×16W​×C ,采用3层(核大小为1 × 1,3 × 3和3 × 3)网络,特征通道在第一层和第三层分别减半,在第三层之后通过双线性运算将空间分辨率提升4倍。

为了增强不同流之间的交互,通过在第一层之后添加元素引入了自上而下的聚合设计。一个额外的3 × 3 conv应用在按元素添加的特征之后,在第三层之后,通过通道级联从所有流中获得融合特征,然后双线性上采样4×到全分辨率

效果

消融实验中,使用基于ResNet-50的FCN编码器并将其输出特征输入SETR来设置混合基线hybrid。为了解决GPU内存的限制和公平的比较,在Hybrid中只考虑“T-Base”,并设置FCN的输出步长为1/16。也就是说,Hybrid是ResNet-50和SETR-Naive-base的组合。


“Pre”为transformer部件的预训练。“R”表示随机初始化变压器部分

在ADE20K值和城市景观值集上与不同预训练的FCN进行单尺度推理的比较。

可以观察到以下几点:
(i)逐步对特征地图进行上采样,SETR-PUP在cityscape上的所有变体中取得了最好的性能。SETR-MLA性能较差的一个可能原因是,不同变压器层的特征输出不具有特征金字塔网络(FPN)中分辨率金字塔的好处。然而,SETR-MLA的性能略好于SETR-PUP,并大大优于变体SETR-Na avi,该变体在ADE20K val集上对变压器输出特征进行了16倍的单次采样。

(ii)SETR-MLA和SETR-Naive)优于它们的“T-Base”对应的,即SETR-MLA- base和SETR-Naive - base,正如预期的那样。

(iii)虽然SETR-PUP - base(76.71)比Hybrid-Base(76.76)表现差,但当训练次数更多(80k)时,它表现出色(78.02)。结果表明,FCN编码器设计可以替代语义分割,进一步验证了模型的有效性。

(iv)预训练对模型至关重要。随机初始化SETR-PUP在城市景观上只给出42.27%的mIoU。在ImageNet-1K上使用DeiT预训练的模型在cityscape上的性能最好,略好于在ImageNet-21K上使用ViT预训练的对应模型。

(v)为了研究预训练的力量并进一步验证提出的方法的有效性,对预训练策略进行了消融研究。为了与FCN基线进行公平的比较,首先在Imagenet-21k数据集上使用分类任务预训练ResNet-101,然后在ADE20K或cityscape上使用预训练的权值进行扩展FCN训练,用于语义分割任务。与ImageNet-1k预训练的变体相比,使用ImageNet-21k预训练的FCN基线有明显改善。然而,方法在很大程度上优于FCN方法,验证了我们方法的优势主要来自于所提出的序列对序列建模策略,而不是更大的训练前数据。


SETR的Z1、Z9、Z17、Z24层输出特征

1、Rethinking Semantic Segmentation from a Sequence-to-Sequence Perspective with Transformers相关推荐

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

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

  2. 【论文笔记】Rethinking Semantic Segmentation from a Sequence-to-Sequence Perspectivewith Transformers

    声明 不定期更新自己精度论文,通俗易懂,初级小白也可以理解 涉及范围:深度学习方向,包括 CV.NLP.Data Fusion.Digital Twin 论文题目: Rethinking Semant ...

  3. Rethinking Semantic Segmentation from a Sequence-to-Sequence Perspectivewith Transformers

    重新思考语义分割范式--SETR 转载from:https://zhuanlan.zhihu.com/p/348418189   请多支持原创 一.论文信息 标题:<Rethinking Sem ...

  4. 论文阅读笔记--Rethinking Semantic Segmentation from a Sequence-to-Sequence Perspective with Transformers

    最近在阅读一些关于transformer的论文,在此记录是为了看看到底天天学了些什么.目前阅读这些论文感觉还是似懂非懂的阶段,还需要时间细细斟酌,共勉! Rethinking Semantic Seg ...

  5. 【论文翻译】SETR:Rethinking Semantic Segmentation from a Sequence-to-Sequence Perspective with Transformer

    SETR 摘要 介绍 相关工作 语义分割 Transformer 模型设计 FCN-based semantic segmentation Segmentation transformers (SET ...

  6. (SETR翻译)Rethinking Semantic Segmentation from a Sequence-to-Sequence Perspective with Transformers

    作者:Sixiao Zheng et al.(复旦大学 & 牛津大学 & 萨里大学 & 腾讯优图 & 脸书) 论文:https://arxiv.org/abs/2012 ...

  7. 论文阅读 CVPR2022《Rethinking Semantic Segmentation:A Prototype View》

    回顾一下语义分割,其实可以分为两种.一种是参数化的softmax投射,另一种是部分transformer的方法--query based的方法. 再回到论文的题目 关于prototype的类似定义,可 ...

  8. 【Lawin Transformer2022】Lawin Transformer: Improving Semantic Segmentation Transformer with Multi-Sc

    Lawin Transformer: Improving Semantic Segmentation Transformer with Multi-Scale Representations via ...

  9. 【论文笔记】PSEUDOSEG: DESIGNING PSEUDO LABELS FOR SEMANTIC SEGMENTATION

    论文笔记 1.论文题目 2.作者及研究单位 3.摘要 4.简介 (1)这篇论文针对什么问题展开的研究 (2)已有工作是如何解决这些问题的(已有工作存在什么不足) (3)这篇论文是如何做的(如何弥足已有 ...

最新文章

  1. HTML5 localStorage本地儲存
  2. HDOJ 5373 The shortest problem 【数论】
  3. Attention Is All You Need (transformer)
  4. springboot-异常处理使用与原理解析
  5. java多线程实现端口扫描,使用Java开发多线程端口扫描工具
  6. 一篇文章搞懂腾讯云AI平台的人工智能IDE:TI-ONE
  7. 表达式中常用到的运算符
  8. day1作业:登录接口
  9. Visual Studio下的 JS CSS 压缩和编辑插件
  10. java文件字节流和文件字符流的使用
  11. Android UI:使用矢量图,抛弃PNG
  12. Spark源码之存储体系简介及缓存cache源码流程图
  13. mbp网速很慢_macbook上网速度慢(mac网速慢解决方案)
  14. cubemx stm32 afm3000模块 气体流量传感器 驱动代码
  15. uniapp js 金额与星星**符号互转
  16. 地球物理中的有限单元法-第二类边界条件-三角剖分-线性插值 matlab编程实现
  17. Request请求转发与URL编码
  18. 海康威视摄像机的实时读取篇一(OpenCV开发环境配置)
  19. Redis高可用架构
  20. 《Unity5.x从入门到精通》读书笔记(二)

热门文章

  1. kotlin.NotImplementedError: An operation is not implemented: Not yet implemented
  2. 文件上传漏洞、WebShell、防御及绕过利用、Web容器解析漏洞、编辑器上传漏洞
  3. 数据挖掘实战:信用卡违约率分析建模
  4. 摄影:相机的白平衡怎么用?
  5. 怎么恢复内存卡删除的照片数据呢
  6. Aspose.words介绍
  7. fread与read的差别(文件io补充)
  8. 大学生心理健康和二级心理咨询师
  9. DTK进度条控件DWaterProgress
  10. opencv 保存读取16位深度的图像