12/31

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 摘要
  • Abstract
  • 文献阅读:用于密集预测的多路径视觉Transformer
    • 1、研究背景
    • 2、方法提出
    • 3、相关方法
      • 3.1、Vision Transformers for dense predictions
      • 3.2、Comparison to Concurrent work
    • 4、Multi-Path Vision Transformer 结构实现
      • 4.1、Multi-Scale Patch Embedding
      • 4.2、Multi-path Transformer
    • 5、实验测试
    • 6、文章贡献
  • Transformer 复习
    • 1、什么是Transformer
    • 2、Transformer模型的框架
    • 3、Encoder
      • 3.1、Encoder的作用
      • 3.2、Encoder中Block的详细实现
    • 4、Decoder
      • 4.1、Decoder的作用
      • 4.2、可能性序列的产生过程
    • 5、Encoder和Decoder之间的连接
    • Encoder和Decoder之间的连接主要集中在Cross attention当中,其主要两个输入由Encoder输入,另外一个由Decoder输入,这些输入都是通过各自的Self-attention(Mask)处理后输入到Cross attention进行下一步处理,这样便完成了两个结构之间的连接。 ![请添加图片描述](https://img-blog.csdnimg.cn/a41d7caad0fb4c48b6bdedfdb0a9578f.png)


摘要

本周主要阅读了2022CVPR的文章,用于密集预测的多路径视觉Transformer,在文章中讲解了当前Transformer对于多尺度的密集预测的困难之处,并提出了一种方法多路径视觉Transformer方法来解决,其主要思路就是通过嵌入CNN对多路径的物体进行特征提取,最后将特征重新聚合得到一种多路径的视觉密集预测的方法。在最终测试下,都取得比较好的成绩。另外我还对Transformer的相关知识进行了复习。

Abstract

This week I mainly read articles from CVPR 2022, focusing on the multi-path visual Transformer for dense prediction. In the article, the difficulties of current Transformer for dense prediction at multiple scales are explained, and a method, the multi-path visual Transformer method, is proposed to solve them. The main idea is to extract features from multiple paths of objects through embedding CNN, and finally re-aggregate the features to obtain a method for dense prediction of multiple paths of vision. In the final test, good results were achieved. In addition, I also reviewed the related knowledge of Transformer.


文献阅读:用于密集预测的多路径视觉Transformer

Title: MPViT: Multi-Path Vision Transformer for Dense Prediction
Author:Youngwan Lee, Jonghee Kim, Jeff Willette, Sung Ju Hwang
From:2022 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)

1、研究背景

⾃推出以来,Transformer 对⾃然语⾔处理(NLP)产⽣了巨⼤影响。同样Vision Transformer (ViT) 的出现推动了计算机视觉社区的发展。因此,最近基于 Transformer 的视觉⼯作出现了爆炸式增⻓,涵盖静态图像分类等任务,物体检测和语义分割到视频分类等时间任务和对象跟踪 。对于诸如对象检测和分割之类的密集预测任务来说,表示关重要多尺度特征⽤于区分不同⼤⼩的物体或区域。现代 CNN 主⼲在密集预测⽅⾯表现出更好的性能,在卷积核级别利⽤多个尺度,或特征级别。初始⽹络 或 VoVNet 在同⼀特征级别利⽤多粒度卷积核,产⽣不同的感受野,进⽽提⾼检测性能。⼈⼒资源⽹通过同时聚合整个卷积层的精细和粗略特征来表⽰多尺度特征。尽管 CNN 模型被⼴泛⽤作密集预测的特征提取器,CNN的性能已经被ViT超越。ViT 变体重点关注如何解决应⽤于⾼分辨率密集预测时⾃注意⼒的⼆次复杂度,他们较少关注构建有效的多尺度表⽰。

2、方法提出

作者以不同于现有Transformer的视角,探索多尺度path embedding与multi-path结构,提出了Multi-path Vision Transformer(MPViT)。通过使用 overlapping convolutional patch embedding,MPViT同时嵌入相同大小的patch特征。然后,将不同尺度的Token通过多条路径独立地输入Transformer encoders,并对生成的特征进行聚合,从而在同一特征级别上实现精细和粗糙的特征表示。在特征聚合步骤中,引入了一个global-to-local feature interaction(GLI)过程,该过程将卷积局部特征与Transformer的全局特征连接起来,同时利用了卷积的局部连通性和Transformer的全局上下文。

3、相关方法

3.1、Vision Transformers for dense predictions

密集的计算机视觉任务,如目标检测和分割,需要有效的多尺度特征表示,以检测或分类不同大小的物体或区域。Vision Transformer(ViT)构建了一个简单的多阶段结构(即精细到粗糙),用于使用单尺度patch的多尺度表示。然而ViT的变体专注于降低自注意的二次复杂度,较少关注构建有效的多尺度表示。CoaT通过使用一种co-scale机制,同时表示精细和粗糙的特征,允许并行地跨层注意,从而提高了检测性能。然而,co-scale机制需要大量的计算和内存开销,因为它为基础模型增加了额外的跨层关注(例如,CoaT-Lite)。因此,对于ViT体系结构的多尺度特征表示仍有改进的空间。

3.2、Comparison to Concurrent work

CrossViT利用了不同的patch大小和单级结构中的双路径,如ViT和XCiT。然而,CrossViT的分支之间的相互作用只通过[CLS]token发生,而MPViT允许所有不同规模的patch相互作用。此外,与CrossViT(仅限分类)不同的是,MPViT更普遍地探索更大的路径维度(例如,超过两个维度),并采用多阶段结构进行密集预测。

4、Multi-Path Vision Transformer 结构实现

在这里插入图片描述

4.1、Multi-Scale Patch Embedding

请添加图片描述
通过改变stride和padding来调整token的序列长度。也就是说,可以输出具有不同patch大小的相同大小(即分辨率)的特征。因此,这样就能并行地形成了几个具有不同卷积核大小的卷积patch embedding层。例如,如上图的Multi-Scale Patch Embedding 结构种,可以生成相同序列长度的不同大小的vision token,patch大小分别为3×3,5×5,7×7。
由于具有相同通道和滤波器大小的连续卷积操作扩大了接受域,并且需要更少的参数,在实践中选择了连续的3×3卷积层。为了减少参数量,在实践中选择了两个连续的3×3卷积层代替5×5卷积。对于triple-path结构,使用三个连续的3×3卷积,通道大小为C’,padding为1,步幅为s,其中s在降低空间分辨率时为2,否则为1。因此通过该层可以得到相同大小的特征F3x3(Xi)、F5x5(Xi)、F7x7(Xi)

  • 注意:为了减少模型参数和计算开销,采用3×3深度可分离卷积,包括3×3深度卷积和1×1点卷积。每个卷积之后都是Batch Normalization 和一个Hardswish激活函数。接着,不同大小的token embedding features 分别输入到Multi-path transformer Block 中的 encoder 中。

4.2、Multi-path Transformer

  • Convolutional Local Feature 和 Transformer Encoder
    Transformer中的self-attention可以捕获长期依赖关系(即全局上下文),但它很可能会忽略每个patch中的结构性信息和局部关系。相反,cnn可以利用平移不变性中的局部连通性,使得CNN在对视觉对象进行分类时,对纹理有更强的依赖性,而不是形状。因此,MPViT以一种互补的方式将CNN与Transformer结合起来。其中为了表示局部特征,其采用了一个 depthwise residual bottleneck block,包括1×1卷积、3×3深度卷积和1×1卷积和残差连接。
  • Global-to-Local Feature Interaction
    请添加图片描述

5、实验测试

使用upernet作为分割方法,并将ImageNet-1k预训练的MPViTs集成到supernet中。接下来,为了公平比较,训练模型160k次迭代,批大小为16,使用AdamW[38]优化器,学习率为6e-5,权重衰减为0.01。使用标准的单尺度协议报告性能。使用mmseg[11]库实现mpvit。与其他Swin-T、Focal-T和XCiT-S12/16相比,mpvits的性能(48.3%)更高,分别为+3.8%、+2.5%和+2.4%。有趣的是,mpvit也超过了更大的型号,如Swin-S/B, XCiT-S24/16, -M24/16, -S24/8和Focal-S。此外,mpvitb性能优于最近(和更大的)SOTA变压器Focal-B[67]。这些结果表明,MPViT的多尺度嵌入和多路径结构使其具有多样化的特征表示能力。
在这里插入图片描述

6、文章贡献

  • 通过多路径并行设计实现了对多尺度信息的利用
  • 通过深度卷积操作实现了全局上下文的利用(Mask2Former也有一摸一样的结构)
  • 通过对照试验探究了多尺度多路径模型在不同尺度及路径数量下的效果

Transformer 复习

1、什么是Transformer

Transformer其实是一个sequence-to-sequence的模型,而Seq2seq模型是一个输入是sequence以及输出也是一个sequence的模型,其中需要注意的是输出有几种可能,和输入一样长、更短以及更长,当然还有让机器自己决定输出多长的情况。

2、Transformer模型的框架

Transformer模型,即Sequence-to-sequence模型,主要分为两个部分Encoder以及Decoder。输入的sequence经过Encoder进行编码处理,输出处理好的数据向量,之后将该数据向量输入到Decoder进行解码处理,这样最后就能得到想要的最后的输出Sequence结果。

3、Encoder

3.1、Encoder的作用

Sequence-to-sequence模型的Encoder主要作用就是处理一个向量,输出另外一个向量。当然其他模型也能够完成同样的任务,就比如RNN和CNN等模型。然后Encoder处理单元里面,包含了多重的Block,每一层的Block中会经过Self-attention处理。然后再通过Fully Connection进行连接,给下一层的block输出向量。

3.2、Encoder中Block的详细实现

Encoder的每一个Block输出都要经过如下图的步骤,首先原向量要经过self-attention处理得到一个预处理向量,预处理向量再与原向量进行Residual处理,紧接着是进行norm处理,norm处理是为了防止向量值出现过大的偏差,实现方式就是原向量与mean标准值的差,再除以偏离值。norm处理后的向量,会进行fully connection处理,得到新的fc处理向量,与原向量进行residual处理,最后再经过norm处理得到最后的结果。
请添加图片描述

4、Decoder

4.1、Decoder的作用

Sequence-to-sequence模型的Decoder主要作用就是把Encoder输出的向量。经过一系列的处理,最后输出一个可能性序列。如下图所示,将Encoder的输出向量,经过处理,输出成“机器学习”这样的一个序列,就好像机器识别到“机”这个字以后会判断出下一个字是“器”,整个序列是一个可能性序列,是经过softmax处理得到的。
请添加图片描述

4.2、可能性序列的产生过程

由上面的学习可以知道,Decoder会输出一个可能性序列,这个可能性序列实现的方式主要是根据前面的字符影响后面输出的字符,不断重复的影响及输出,就能够输出这样的可能性序列。这样的重复影响就能够联想到self-attention,但是self-attention是所有输出都彼此影响,是无法实现我们所说的可能性序列。因为只需要前者对后者的影响,而不需要后者对前者的影响。所以需要对self attention进行改进,变成masked self attention。如下图所示,它只会让前者影响后者,而不会导致后者影响前者的情况。向量内容的输入顺序是逐个输入,而不是同时输入,这是一个比较大的区别。
请添加图片描述

5、Encoder和Decoder之间的连接

Encoder和Decoder之间的连接主要集中在Cross attention当中,其主要两个输入由Encoder输入,另外一个由Decoder输入,这些输入都是通过各自的Self-attention(Mask)处理后输入到Cross attention进行下一步处理,这样便完成了两个结构之间的连接。
请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/313857.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构期末复习(fengkao课堂)

学习数据结构时,以下建议可能对您有所帮助: 理解基本概念:首先,确保您理解数据结构的基本概念,例如数组、链表、栈、队列、树、图等。了解它们的定义、特点和基本操作。 学习时间复杂度和空间复杂度:了解如…

【Linux】理解文件系统

需要云服务器等云产品来学习Linux的同学可以移步/–>腾讯云<–/官网&#xff0c;轻量型云服务器低至112元/年&#xff0c;优惠多多。&#xff08;联系我有折扣哦&#xff09; 文章目录 1. 了解磁盘1.1 磁盘的物理结构1.2 磁盘的逻辑结构1.3 磁盘的存储结构 2. 文件系统2.…

Nginx服务器中设置禁止访问文件或目录的方法

autoindex off; 规则描述&#xff1a; 如果访问NGINX下的一个web应用&#xff0c;如果输入是一个目录名&#xff0c;而且该目录下没有一个默认访问文件&#xff0c;那么Nginx会将该目录下的所有文件列出来&#xff0c;这种敏感信息泄露是 严格禁止的。Nginx默认的是关闭目录列…

HarmonyOS应用开发-搭建开发环境

本文介绍如何搭建 HarmonyOS 应用的开发环境&#xff0c;介绍下载安装 DevEco Studio 开发工具和 SDK 的详细流程。华为鸿蒙 DevEco Studio 是面向全场景的一站式集成开发环境&#xff0c;面向全场景多设备&#xff0c;提供一站式的分布式应用开发平台&#xff0c;支持分布式多…

【SpringCloud Alibaba笔记】(2)Nacos服务注册与配置中心

Nacos Nacos简介与下载 是什么&#xff1f; 一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 Nacos&#xff08;Dynamic Naming and Configuration Service&#xff09;就是注册中心&#xff0b;配置中心的组合 Nacos Eureka Config Bus 替代Eureka…

金蝶云星空反写规则表结构同步另一个数据库

文章目录 金蝶云星空反写规则表结构同步另一个数据库在BOS找到《反写规则》的表反写规则相关表创建反写规则&#xff0c;或者已经创建好的反写规则定位反写规则数据导出表数据执行脚本BOS导入数据库直接执行 金蝶云星空反写规则表结构同步另一个数据库 在BOS找到《反写规则》的…

未来的智能:人机环境系统智能

2023年即将过去&#xff0c;2024年即将到来&#xff0c;未来会是怎样的呢&#xff1f;未来的智能又会是怎样的呢&#xff1f;针对这个问题我们不妨展开想象的翅膀憧憬一下&#xff0c;或许可以在不经意中碰上不远后的脚步&#xff01; 随着科技的发展和人工智能的不断进步&…

大数据规模存储的几个核心问题

文章目录 三个关键问题RAID&#xff08;独立磁盘冗余阵列&#xff09;RAID是如何解决关于存储的三个关键问题&#xff1f;水平伸缩 大规模数据存储都需要解决几个核心问题&#xff0c;这些问题都是什么呢&#xff1f; 三个关键问题 1.数据存储容量的问题 既然大数据要解决的…

es简单入门

星光下的赶路人star的个人主页 努力努力再努力 文章目录 1、简介2、使用场景3、基本知识4、中文文档和官网链接5、增删改查&#xff08;php代码&#xff09;6、基本查询7、HTTP操作7.1 索引操作7.1.1 创建索引 7.2 文档操作7.2.1 创建文档7.2.2 查看文档7.2.3 修改文档7.2.4 修…

计算机操作系统(OS)——P5设备管理

1、I/O设备的概念和分类 什么是I/O设备 I/O就是输入/输出&#xff08;Input/Output&#xff09;。 I/O设备就是可以将数据输入到计算机&#xff0c;或者可以接收计算机输出数据的外部设备&#xff0c;属于计算机中的硬件部件。 UNIX系统将外部设备抽象为一种特殊的文件&#x…

数据结构--队列【详解】~(˶‾᷄ꈊ‾᷅˵)~

目录 队列定义&#xff1a; 队列的声明与头文件的包含&#xff1a; 队列的声明&#xff1a; 头文件的包含&#xff1a; 队列的基本操作: 初始化队列 : 摧毁队列&#xff1a; 入队列&#xff1a; 出队列&#xff1a; 返回队头数据&#xff1a; 返回队尾数据&#xff1…

区分LR(0),SLR(1),LR(1)和LALR(1)

目录 对于LR(0)文法&#xff1a; 对于SLR(1)文法&#xff1a; 对于LR(0)和SLR(1)文法&#xff1a; 对于LR(1)和SLR(1)文法&#xff1a; 对于LALR(1)文法&#xff1a; 例题1&#xff1a; 例题2&#xff1a; 例题3&#xff1a; 例题4&#xff1a; 这几个文法大致的步骤都…