IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【深度学习】论文阅读:(ICCV-2021))Segmenter:Transformer for Semantic Segmentation -> 正文阅读

[人工智能]【深度学习】论文阅读:(ICCV-2021))Segmenter:Transformer for Semantic Segmentation

0.详情

名称:Segmenter:Transformer for Semantic Segmentation
时间:[Submitted on 12 May 2021 (v1), last revised 2 Sep 2021 (this version, v3)]
单位:Robin A. M. Strudel
论文:论文
代码:paperwithcode的代码
笔记参考:

  1. 详细版
  2. 简洁版

1.创新点

1)提出了一种基于 Vision Transformer 的语义分割的新颖方法,该方法不使用卷积,通过设计捕获上下文信息并优于基于 FCN 的方法;

2)提出了一系列具有不同分辨率级别的模型,允许在精度和运行时间之间进行权衡,从最先进的性能到模型具有快速推理和良好性能的模型;

3)提出了一种基于 Transformer 的解码器生成类掩码,其性能优于我们的线性结构,并且可以扩展以执行更一般的图像分割任务;

4)证明了此方法在 ADE20K 和 Pascal Context 数据集上产生了最先进的结果,并且在Cityscapes 上具有竞争力。

2.Abstract

在进行图像语义分割时,图像被编码成一系列补丁后往往很模糊,需要借助上下文信息才能被正确分割。
因此上下文建模对图像语义分割的性能至关重要!
本文提出了一种只使用Transformer的语义分割方法,可以很好地捕捉图像全局上下文信息!
与基于卷积的方法相比,我们的方法允许在第一层和整个网络中对全局上下文进行建模。我们以最近的视觉转换器(ViT)为基础,将其扩展到语义分割。为此,我们依赖于与图像块对应的输出嵌入,并使用逐点线性解码器或掩码 Transformer 解码器从这些嵌入中获取类标签。

我们利用预先训练的图像分类模型,并表明我们可以在中等大小的数据集上对其进行微调,以进行语义分割。线性解码器已经可以获得很好的结果,但是通过生成类掩码的掩码转换器可以进一步提高性能。我们进行了广泛的消融研究,以显示不同参数的影响,尤其是对于大型模型和小面积贴片,性能更好。Segmenter在语义分割方面取得了很好的效果。它在 Ade20K 和 Pascal 上下文数据集上都优于最先进的技术,在城市景观数据集上具有竞争力。

3.Mothod

Segmenter完全基于transformer的编解码器体系结构,利用了模型每一层的全局图像上下文。

  1. 基于ViT,将图像分割成块(patches),并将它们映射为一个线性嵌入序列
  2. 编码器进行编码
  3. 再由Mask Transformer将编码器和类嵌入的输出进行解码,上采样后应用Argmax给每个像素一一分好类,输出最终的像素分割图。

在这里插入图片描述
使用纯transformer体系结构并利用patch级别的embedding,提出了一种在decoder阶段联合处理patch和class embedding的简单方法。

指先添加patch embedding 跑一次transformer,再添加class embedding 跑一次transformer;
从后面的实验中看到,作者还实验了ViT或DeiT作为backbone时的性能表现,发现 class embedding的方式是有增益的。

3.1 Encoder

一幅图像 x ∈ R(H×W×C)被分割成一系列补丁 x = [x1, …, xN] ∈ R(N×P2×C),其中 (P, P) 是补丁大小,N 是补丁的数量,C 是通道的数量

每一块补丁扁平化成一维向量,然后线性投影到补丁嵌入以产生补丁嵌入序列 x0 = [Ex1, …, ExN] ∈ R(N×D),
为了捕获位置信息,将可学习的位置嵌入 pos = [pos1, …, posN] ∈ R(N×D)添加到补丁序列中,以获得令牌的结果输入序列 z0 = x0 + pos

由 L 层组成的 Transformer 编码器将具有位置编码的嵌入式补丁的输入序列 z0 = [z0,1, …, z0,N] 映射到 zL = [zL,1, …, zL,N],这是一个上下文化编码序列,包含解码器使用的丰富语义信息

3.2 Decoder

将补丁编码序列 zL 解码为分割图 s ∈ R(h × w × k),其中 k 是类的数量。
解码器学习将来自编码器的补丁级编码映射到补丁级类分数,然后通过双线性插值将这些patch级的类分数上采样到像素级的分数。
我们在下面描述一个线性解码器,它作为一个基线,我们的方法,一个掩码转换器,

Linear
将逐点线性层应用于补丁编码 zL,以产生补丁级类标记 Z-lin ∈ R(n × k)。然后将序列重塑为 2D 特征图 S-lin ∈ R(H/p × w/p × k),并对其进行双上采样,以达到原始图像大小 s。然后在维度上应用 softmax 以获得最终的分割图

Mask Transformer
对于基于 Transformer 的解码器,我们引入了一组 K 个可学习的类嵌入cls = [cls1,…,clsK] ∈ R(k × d),其中 K 是类的数量。每个类嵌入都是随机初始化的,并分配给单个语义类。它将用于生成类掩码。类嵌入 cls 由解码器与补丁编码 zL 联合处理。
解码器是由M层组成的变压器编码器。mask transformer 通过计算解码器输出的l2归一化的patch embedding z0M∈RN×D和class embedding c∈RK×D的标量积来生成K个掩码。

然后将每个掩码序列重构为2D掩码,形成smask∈RH/P ×W/P ×K,并对其进行双线性上采样到原始图像大小,得到特征图s∈RH×W ×K。然后将softmax应用于类维,然后是层范数,以获得像素级类分数,形成最终的分割图。

4.Conclusion

本文介绍了一种纯transformer的语义分割方法。
编码部分基于Vision Transformer(ViT)建立,但是不同之处在于我们是依赖于所有图像块的编码。
观察到transformer很好地捕捉到了全局上下文。将一种简单的逐点线性decoder应用于patch embedding,已经取得了很好的效果。
使用mask transformer进行解码则更进一步提高了性能。端到端编解码器是迈向统一的语义分割、实例分割和全景分割的第一步。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-05-01 15:44:16  更:2022-05-01 15:46:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 8:31:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码