Swin Transformer阅读笔记

news2024/11/29 2:41:28

Swin Transformer

使用了移动窗口的层级式的Vit(Hierarchical Vision Transformer using Shifted Windows)

总体来说:Swin Transformer想让Transformer像卷积神经网络一样,可以分为多个block,可以做层级式特征提取,从而提取得到的特征具有多尺度的概念。

1、Abstract

  • 难点:

1、尺度问题,eg:一张街景图片,有很多的车和行人,但是对于同一语义的行人、车,具有不同的尺度,这与NLP不同。

2、分辨率太大,不可能以像素点输入,要么使用特征图,要么使用Patch。

  • 解决:

使用Shifted windows。将自注意力计算限制到一个windows内,导致序列长度的大幅降低,其次通过移动操作,使得相邻窗口可以交互,所以上下文之间就有cross-window connection。达到了层级式建模能力。

  • 层级式结构的好处:

灵活,可以提供各个尺度的信息。而且由于使用了windows,所以计算量是随着image size线性增长,而非平方式增长。

2、Introduction

目的:想将Transformer变成一个通用的骨干网络框架

常用的检测、分割当中,有多尺寸的特征是至关重要的。但在Vit中,都是单一尺寸,16倍的下采样率,而且处理的图片也都是低分辨率的,对于目标密集的检测、分割任务可能不太适合。由于Vit的自注意力都是寻找每个patch和整幅图像的关系,所以其计算复杂度是随着图像尺寸平方倍的增长的。所以提出了Swin Transformer。

Swin Transformer是通过windows,计算windows之内的自注意力,只要窗口大小固定,其计算复杂度就是固定的,与图片大小呈线性关系。这也是用到了卷积神经网络的局部性的先验知识。

  • 如何生成多尺度特征?

卷积中是因为有池化操作。增大感受野。Swin Transformer也提出类似操作,使用了Patch merging。将很多小Patch合并为一个大Patch。

具有层次性

image-20230110102104780

  • Shift windows

image-20230110103404554

3、Conclusion

Swin Transformer,一个层级式的Transformer,计算复杂度与输入大小呈线性关系。

image-20230110103820747

4、Method

4.1 Overall Architecture

image-20230110105757897

  • Patch Partition/Linear Embedding(可以采用卷积操作实现)

image-20230110161301094

  • Patch Merging

image-20230110161719442

  • W-MSA

image-20230110162041385

计算量差异

image-20230110162130536

4.2 Shifted Window based Self-Attention

全局自注意力机制太贵了,所以使用了窗口自注意力

image-20230110163105548

image-20230110163235076

相对位置偏置

image-20230110164312525

image-20230110165045128

image-20230110165328213

image-20230110165640985

研究动机:想要一个层级式的Transformer,所以提出了Patch Merging结构,为了减少计算复杂度,争取做视觉里的密集预测任务,所以提出了窗口自注意力和移动窗口自注意力。

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

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

相关文章

Flowable工作流——基础篇

1. 介绍 Flowable是BPMN的一个基于Java的软件实现,但是不仅仅限于BPMN,还有DMN决策表和CMMN Case管理引擎,并且有自己的用户管理,微服务API的功能,是一个服务平台。 是由开发了Acitivity6的开发人员,再次升…

nacos的使用

此篇博客是对nacos安装运行进行简单的介绍,后续博客会介绍下nacos的简单使用。nacos的安装安装可以去github上进行下载,下载地址(不建议下载最新版本,可以找比较稳定的版本)可以点解Tags查看所有历史版本我下载的是2.2…

基于 js 制作一个贪吃蛇小游戏

目录前言:项目效果展示:代码实现思路:使用方法:实现代码:总结:前言: 在工作学习之余玩一会游戏既能带来快乐,还能缓解生活压力,跟随此文一起制作一个小游戏吧。 描述&…

ESXI8.0一键安装黑群晖DSM7

🎈 作者:互联网-小啊宇 🎈 简介: CSDN 运维领域创作者、阿里云专家博主。目前从事 Kubernetes运维相关工作,擅长Linux系统运维、开源监控软件维护、Kubernetes容器技术、CI/CD持续集成、自动化运维、开源软件部署维护…

如何做好项目管理

项目管理概述 什么是项目 项目 是为创造独特的产品、服务或者成果而进行的临时性工作 项目三要素:临时性、独特性、渐进明确性 什么是项目管理 项目管理通过合理运营和整合项目相关活动,以满足项目目标达成的过程 项目与日常工作的区别 项目&…

设计测试用例

⭐️前言⭐️ 这篇文章主要介绍测试用例相关的知识,一个优秀的测试人员,需要具备设计优秀测试用例的能力。 🍉欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁 🍉博主将持续更新学习记录收获&…

基于启发式蝙蝠算法、粒子群算法、花轮询算法和布谷鸟搜索算法的换热器PI控制器优化(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 本文采用蝙蝠算法、粒子群优化、花轮询算法和布谷鸟搜索算法,对管壳式换热器的控制系统进行了建模和计算机仿真。为…

trie树入门

trie树分为普通的trie树和01trie树两者可以实现成树,很大一部分原因是:只有26个字母和01两种状态,一个结点度数不会太大,而且字符串长度和位数不会很大,更容易存储普通trie树维护了一堆字符串集合的前缀,in…

Elastic-Job分布式任务调度(4):Elastic-Job高级

1 事件追踪 Elastic-Job-Lite在配置中提供了JobEventConfiguration,支持数据库方式配置,会在数据库中自动创建JOB_EXECUTION_LOG和JOB_STATUS_TRACE_LOG两张表以及若干索引,来记录作业的相关信息。 1.1 修改Elastic-Job配置类 在ElasticJo…

电商人必读:2022中国电商市场发展洞察报告(人群、品类、品牌、玩法).pdf(附下载链接)...

省时查报告-专业、及时、全面的行研报告库省时查方案-专业、及时、全面的营销策划方案库【免费下载】2022年12月份热门报告盘点罗振宇2023年跨年演讲PPT原稿吴晓波2022年年终秀演讲PPT原稿《底层逻辑》高清配图华为2021数字化转型:从战略到执行.pdf华为项目管理金种…

如何理解操作系统

路灯很多,希望你找到自己的月亮。 作者:阿润菜菜 目录 操作系统是什么 为什么设计操作系统 理解操作系统的作用 如何理解操作系统对软硬件管理? 操作系统为什么要对软硬件资源进行管理呢? 什么是系统调用和库函数 总结 操…

【docker13】Redis面试题

面试题 问题: 1~2亿条数据需要缓存,请问如何设计这个存储案例? 回答: 单机单台不可能的,肯定是分布式存储(那如何用redis实现呢?) 解决1: 哈希取余分区 优点: 简单粗暴…

项目管理系统的类型

“系统”一词有两个不同的定义:一、定义某事如何完成的原则和程序,二、复杂整体的部分。因此,根据所使用的定义,项目管理系统也可以有两种不同的含义。 第一个是指定义如何执行项目的完整过程和原则系统。此定义包括所有项目管理以…

windows10上安装Python3.11.1

1)下载Python3.11.1 Python官网下载地址:https://www.python.org/ package意思是下载压缩安装包,installer是.exe的安装程序。 根据自己电脑需求选择,这里我选择的是64位 2)安装 双击安装包,进行安装。…

VScode编译调试C++环境

首先去官网下载vscodehttps://code.visualstudio.com/ 为了编译C/C,要使用gcc,Windows本身不支持gcc,所以有了MinGW,我用的是dev带的MinGW,也可以自己安装MinGW,或者用VS的编译器(MinGW gcc下载…

喜报!COSCon'22中国开源年会获评 2022 中国最受开发者欢迎的技术活动

2023 年 1 月 5 日,中国技术先锋年度评选2022 中国最受开发者欢迎的技术活动榜单正式发布。作为中国领先的新一代开发者社区,SegmentFault 思否依托社区活动板块(https://segmentfault.com/events)及全站数百万开发者用户行为数据…

浏览器怎么录制网页视频?3种网页视频录制方法

我们每天都会在浏览器上观看大量的视频,尤其是在爱奇艺、腾讯、哔哩哔哩等网页上。有时候就会观看到一些精彩的视频画面,就想要将这些画面给下载。那怎么把网页视频录制下来?今天本文就给大家分享3种有效的网页视频录制方法,有需要…

Linux 环境使用定时任务执行shell脚本

前言:Linux添加定时任务需要依赖crond服务,如果没有该服务,需要先安装:yum -y install crontabs 1、crond服务相关命令介绍 启动crond服务:service crond start 停止crond服务:service crond stop 重启cro…

【NI Multisim 14.0原理图设计基础——放置元器件】

目录 序言 🍉 一、放置元器件 序言 NI Multisim最突出的特点之一就是用户界面友好。它可以使电路设计者方便、快捷地使用虚拟元器件和仪器、仪表进行电路设计和仿真。 首先启动NI Multisim 14.0,打开如图所示的启动界面,完成初始化后&…

第一行代码Androiod第三版 笔记 第九章丰富你的程序,运用手机多媒体

文章目录前言一、通知渠道是什么?二、快速入门1. 书写通知2.通知有了 ,点击也没动静啊- PendingIntent3 点击完之后,通知不消失怎么办4 通过setStyle() 来是实现长文字通知5 还想放张图6 不同通知之间也有等级差异三、 使用相机7 调用相机8 从…