Swin Transformer: Hierarchical Vision Transformer using Shifted Windows

Swin Transformer: Hierarchical Vision Transformer using Shifted Windows

  • 摘要
  • 当前的检测sota模型
  • 网络架构
    • swin Transformer和Vision Transformer的不同之处
    • 整体架构
      • Patch Partition结构
      • Linear Embedding结构
      • Swin Transformer Block结构
  • Patch Merging
  • W-MSA
    • MSA模块计算量
    • W-MSA模块计算量
  • SW-MSA
    • SW-MSA如何滑动窗口
    • SW-MSA如何高效批量计算
  • Relative Position Bias
    • 实验效果展示
    • Relative Position Bias的实现
  • 参数配置

在这里插入图片描述

论文地址:https://arxiv.org/abs/2103.14030
源码地址:https://github.com/microsoft/Swin-Transformer

摘要

在这里插入图片描述

本文介绍了一种名为 Swin Transformer 的新型视觉Transformer,它可以作为计算机视觉的通用骨干。将 Transformer 从语言应用到视觉领域所面临的挑战来自这两个领域的差异,例如视觉实体的尺度变化很大,以及与文本中的文字相比,图像中像素的分辨率较高。为了解决这些差异,我们提出了一种分层Transformer,其表示是通过移位窗口计算的。移位窗口方案将自我关注计算限制在非重叠的局部窗口,同时允许跨窗口连接,从而提高了效率。这种分层结构可以灵活地进行各种规模的建模,其计算复杂度与图像大小成线性关系。Swin Transformer 的这些特质使其能够兼容广泛的视觉任务,包括图像分类(ImageNet-1K 上的 Top-1 准确率为 87.3)和密集预测任务,如物体检测(COCO testdev 上的 58.7 box AP 和 51.1 mask AP)和语义分割(ADE20K val 上的 53.5 mIoU)。在 COCO 上,它的性能大大超过了之前的技术水平,达到了 +2.7 box AP 和 +2.6 mask AP,在 ADE20K 上达到了 +3.2 mIoU,这证明了基于 Transformer 的模型作为视觉骨干的潜力。分层设计和移动窗口方法也证明有利于全 MLP 架构。代码和模型可在以下网址公开获取。

当前的检测sota模型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

网络架构

swin Transformer和Vision Transformer的不同之处

在这里插入图片描述

  1. swin Transformer构建具体层次性的特征图
  2. swin Transformer使用窗口将特征图分割开

swin Transformer在窗口内执行Multi Head self attention的计算,窗口和窗口之间不进行信息的传递

Vision Transformer

整体架构

在这里插入图片描述

Patch Partition结构

在这里插入图片描述
使用4x4大小的窗口对图像分割,并展平。
在这里插入图片描述在这里插入图片描述

Linear Embedding结构

调整图像channel,从48到c

在代码中,使用卷积层实现的

Swin Transformer Block结构

在这里插入图片描述
的组成为:

在这里插入图片描述
关于MSA:MSA

关于W-MSA和SW-MSA,后面详细论述

Patch Merging

在这里插入图片描述

特征图高和宽减少一半,特征图channel翻倍

W-MSA

在这里插入图片描述

在多头注意力的基础上引入窗口的概念

目的:减少计算量
缺陷:窗口之间无法进行信息交互

MSA:对每一个像素求q,k,v,然后将每一个像素求得的q和其他所有像素求的的k进行计算。

可以理解为在MSA中,每个像素都和所有的像素存在信息的沟通

W-MSA:在每个窗口内部进行MAS操作,但是不同窗口之间是没有通讯的

MSA模块计算量

在这里插入图片描述
在这里插入图片描述

W-MSA模块计算量

在这里插入图片描述
在这里插入图片描述

SW-MSA

SW-MSA如何滑动窗口

全称:shifted window -MSA

目的:实现不同窗口之间的信息交互

在这里插入图片描述
在拟议的 Swin Transformer 架构中计算自我注意力的移动窗口方法示意图。在第 l 层(左),采用常规窗口划分方案,并在每个窗口内计算自注意力。在下一个第 l + 1 层(右图)中,窗口划分会发生变化,从而产生新的窗口。新窗口中的自我注意力计算跨越了第 l 层中前一个窗口的边界,提供了它们之间的联系。

就是说:第 l 层采用W-MSA机制,第 l+1 层采用SW-MSA机制

在这里插入图片描述
移动窗口后:
在这里插入图片描述

l+1层通过滑动窗口融合了l层相邻窗口之间的信息,达到了相邻窗口之间融合的目的

SW-MSA如何高效批量计算

在这里插入图片描述

移位窗口中自我关注的高效批量计算方法说明

  1. 第一步
    在这里插入图片描述
    在这里插入图片描述

  2. 第二步
    在这里插入图片描述
    在这里插入图片描述

  3. 第三步

在这里插入图片描述
在这里插入图片描述

然后将步骤三得到的图像按照4x4的窗口划分区域:

在这里插入图片描述

对于4区域,已经完成了融合 l 层中不同窗口的目的
因此对于4,之间进行MSA的计算

但对于右上角的区域,由5和3组成,需要分隔开进行MSA的计算

论文中使用的方式是:mask

在这里插入图片描述

具体的实现为:
在这里插入图片描述

这样就在一个窗口的MSA计算中,将区域5和区域3分隔开了

全部计算完成后,在将数据挪回原来的位置

Relative Position Bias

在这里插入图片描述
这里的Relative Position Bias就是公式中的 B
在这里插入图片描述

实验效果展示

在这里插入图片描述

可以看到使用绝对位置偏置的效果并不好
使用相对位置偏置达到最好的效果

Relative Position Bias的实现

  1. 第一步

在这里插入图片描述

将其展平,组成最终

  1. 第二步
    偏移从0开始,行列标加M-1

这里M=2.所以M-1=1

在这里插入图片描述

  1. 第三步

行标乘 2M-1

在这里插入图片描述

  1. 第四步

行标列标相加
在这里插入图片描述

将二元坐标转换为一元坐标

  1. 对应相对位置偏置表

在这里插入图片描述

网络中训练的是 relative position bias table中的值。

参数配置

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

Genoss GPT简介:使用 Genoss 模型网关实现多个LLM模型的快速切换与集成

一、前言 生成式人工智能领域的发展继续加速,大型语言模型 (LLM) 的用途范围不断扩大。这些用途跨越不同的领域,包括个人助理、文档检索以及图像和文本生成。ChatGPT 等突破性应用程序为公司进入该领域并开始使用这项技术进行构建铺平了道路。 大公司正…

如何发布自己的小程序

小程序的基础内容组件 text&#xff1a; 文本支持长按选中的效果 <text selectable>151535313511</text> rich-text: 把HTML字符串渲染为对应的UI <rich-text nodes"<h1 stylecolor:red;>123</h1>"></rich-text> 小程序的…

MySql过滤重复数据

假设模型表是: 1. 根据单字段过滤: SELECT user_name, COUNT(*) as count FROM sys_user GROUP BY user_name HAVING count > 1;结果: 2. 根据多个字段查询重复数据 SELECT user_name, email, COUNT(*) as count FROM sys_user GROUP BY user_name, email HAVING count…

[centos]设置主机名

1、设置 hostnamectl set-hostname 名字 2、查看是否生效 hostnamectl status 3、打开一个新链接就可以了

[python] 使用Jieba工具中文分词及文本聚类概念

前面讲述了很多关于Python爬取本体Ontology、消息盒InfoBox、虎扑图片等例子&#xff0c;同时讲述了VSM向量空间模型的应用。但是由于InfoBox没有前后文和语义概念&#xff0c;所以效果不是很好&#xff0c;这篇文章主要是爬取百度5A景区摘要信息&#xff0c;再利用Jieba分词工…

hive--给表名和字段加注释

1.建表添加注释 CREATE EXTERNAL TABLE test(loc_province string comment 省份,loc_city string comment 城市,loc_district string comment 区,loc_street string comment 街道,)COMMENT 每日数据处理后的表 PARTITIONED BY (par_dt string) ROW FORMAT SERDEorg.apache.had…

71 # 协商缓存的配置:通过内容

对比&#xff08;协商&#xff09;缓存 比较一下再去决定是用缓存还是重新获取数据&#xff0c;这样会减少网络请求&#xff0c;提高性能。 对比缓存的工作原理 客户端第一次请求服务器的时候&#xff0c;服务器会把数据进行缓存&#xff0c;同时会生成一个缓存标识符&#…

Transformer是什么,Transformer应用

目录 Transformer应用 Transformer是什么 Transformer应用:循环神经网络 语言翻译:注重语句前后顺序 RNN看中单个特征; CNN:看中特征之间时序性 模型关注不同位置的能力 Transformer是什么 Transformer是一个利用注意力机制来提高模型训练速度的模型。关于注意力机…

whisper语音识别部署及WER评价

1.whisper部署 详细过程可以参照&#xff1a;&#x1f3e0; 创建项目文件夹 mkdir whisper cd whisper conda创建虚拟环境 conda create -n py310 python3.10 -c conda-forge -y 安装pytorch pip install --pre torch torchvision torchaudio --extra-index-url 下载whisper p…

智慧工地云平台源码——塔机监控系统

智慧工地概念 智慧工地是一种崭新的工程全生命周期管理理念&#xff0c;是指运用信息化手段&#xff0c;通过对工程项目进行精确设计和施工模拟&#xff0c;围绕施工过程管理&#xff0c;建立互联协同、智能生产、科学管理的施工项目信息化生态圈&#xff0c;并将此数据在虚拟…

鸽王-稚晖君,“远征”A1启程

看到这篇文章的人&#xff0c;想必对野生钢铁侠-稚晖君&#xff0c;都有所了解。作为华为的天才少年&#xff0c;获得了很多的荣誉&#xff0c;作为B站有名的鸽王&#xff0c;在沉浮一段时间后终于要带着新的东西和大家见面了。动态-哔哩哔哩https://b23.tv/Jv7tIjg 众所周知&a…

网络通信原理TCP字段解析(第四十七课)

字段含义Source Port(源端口号)源端口,标识哪

vueuse常用方法

useDateFormat 时间格式化 <script setup lang"ts">import { useNow, useDateFormat } from vueuse/coreconst formatted useDateFormat(useNow(), YYYY-MM-DD HH:mm:ss)</script><template><div>{{ formatted }}</div> </templa…

大模型技术实践(一)|ChatGLM2-6B基于UCloud UK8S的创新应用

近半年来&#xff0c;通过对多款主流大语言模型进行了调研&#xff0c;我们针对其训练方法和模型特点进行逐一分析&#xff0c;方便大家更加深入了解和使用大模型。本文将重点分享ChatGLM2-6B基于UCloud云平台的UK8S实践应用。 01各模型结构及特点 自从2017年6月谷歌推出Transf…

FlexTools plugin and 3dWindow plugin for SketchUp Crack

FlexTools v2.3.6 plugin for SketchUp 3dWindow v.4.5 plugin for SketchUp 建筑师和3D艺术家使用FlexTools创建SketchUp门、窗、楼梯和其他建筑元素&#xff0c;具有卓越的速度和控制水平。 SketchUp功能强大但易于使用的扩展。对于在施工图或建筑图中使用SketchUp的每个人…

034_小驰私房菜_[问题复盘] Qcom平台,某些三方相机拍照旋转90度

全网最具价值的Android Camera开发学习系列资料~ 作者:8年Android Camera开发,从Camera app一直做到Hal和驱动~ 欢迎订阅,相信能扩展你的知识面,提升个人能力~ 【一、问题】 某些三方相机,预览正常,拍照旋转90度 【二、问题排查】 1 ) HAL这边Jpeg编码数据在哪个地方…

C# 随机法求解线性规划问题 蒙特卡洛

线性规划问题: max3x12x2 x12x2<5 2x1x2<4 4x13x2<9 x1>0 x2>0 正确的结果:x11.5; x21, max z6.5 Random random1 new Random(DateTime.Now.Millisecond);Random random2 new Random(DateTime.Now.Millisecond*DateTime.Now.Millisecond);double max-9999,x1…

Pycharm与Anaconda Python的开发环境搭建

目录 一&#xff1a;下载 二&#xff1a;安装python 三&#xff1a;设置Pycharm 一&#xff1a;下载 下载Anaconda&#xff1a; Anaconda | The World’s Most Popular Data Science Platform 安装好以后&#xff0c;设置一下环境变量&#xff1a; 打开命令行&#xff0c…

UI界面设置

文章目录 1. 修改 share.html 内容如下&#xff1a;2. 修改 html 文件格式为 utf-83.保存&#xff0c;运行程序4. 访问页面 1. 修改 share.html 内容如下&#xff1a; <!DOCTYPE html><html> <head><meta charset"utf-8"><title>1v1屏…

uniapp 官方扩展组件 uni-combox 实现:只能选择不能手写(输入中支持过滤显示下拉列表)

uniapp 官方扩展组件 uni-combox 实现&#xff1a;只能选择不能手写&#xff08;输入中支持过滤显示下拉列表&#xff09; uni-comboxuni-combox 原本支持&#xff1a;问题&#xff1a; 改造源码参考资料 uni-combox uni-combox 原本支持&#xff1a; 下拉选择。输入关键字&am…