Swin-Transformer论文阅读

news2024/10/1 9:40:59

在此前,transformer已经通过ViT等作品展现出了它在cv领域的无限可能性,但是,vit主要针对的是图像分类问题的讨论,而分类只是cv众多问题中最基础的问题之一。那么,怎么用transformer进行物体检测,语义分割这些需要更复杂网络结构的任务呢?

介绍

在CNN对于图像分类,目标检测等问题的探索中,大家已经发现,检测,语义分割这类任务,相比于图像分类对于网络backbone有着不一样的需求。

而基于vit对于图像分类问题的探索,接下来,大家可以依葫芦画瓢,尝试解决更有挑战的问题了。

关于目标检测,语义分割这类任务,通常需要网络具有分层提取不同颗粒度的特征,并且,网络的是输入可能是更高分辨率的图像,输出也是更精细的特征,比如语义分割的mask。所以,基于transformer执行复杂cv任务的挑战在于1. 解决特征的尺度问题 2. 高效的处理大尺度的输入和输出。

4e3ef98f77104f47a381ad75871bd646.png

这张图体现了vit和swin的区别,在vit中,每个block处理的都是相同大小的patch(16 x 16)

 

 

为了解决这些问题,swin transformer提出了shifted window的概念,去建立网络各层窗口的联系,此外,通过对于key的共享,我们可以实现显存更高效的使用。

参考李沐讲论文,在CNN中,我们可以知道,针对目标检测任务,我们通常使用FPN,而针对语义分割任务,我们通常使用UNet来解决问题,以及空洞卷积,PSP,ASPP。

 

方法论

Patch Merging-解决感受野的缩放问题

随着图像尺寸增加,计算量会面临O2级别的复杂度增加: 参考下面的图片,图像处理中,我们的输入通常是512*512以上的大小,再加上O2的复杂度,计算量飙升。在卷积网络中,通常会使用max pooling来实现感受野的缩放,而在swin transformer中,类似的需求是通过patch merging这个方法来满足,

a2bb4a3ac6da476891c2a8973a9a88f6.png

其思路是,以4个元素为patch,分为4层,再通过线性层转换为2层,这样就实现了感受野长宽缩小一倍,通道数增加一倍。

The first patch merging layer concatenates the features of each group of 2 × 2 neighboring patches, and applies a linear layer on the 4C-dimensional concatenated features. This reduces the number of tokens by a multiple of 2×2 = 4 (2× downsampling of resolution), and the output dimension is set to 2C.

 

Shifted Window based Self-Attention 

这里有三个词,shifted,window,self-attention,这三个词很值得推敲,因为它们是三个东西。因果关系是,因为self-attention的引入,我们需要考虑计算量,通过对于特定大小的patch计算注意力,我们保证了计算量没有随着图像尺度增加倍数增加。但是,单个窗口需要与相邻窗口建立联系,所以又提出了shift window的概念。

pixel --> patch --> window

patch是Vit就有的一个概念,意味着以多少个像素为集合进行attention的操作。window是swin提出的“新概念”,为了保证复杂度的限制,我们只在window中进行各个patch彼此间的注意力计算。

shift window

我们通过窗口的偏移,来实现与邻近window的交互,但是,在窗口偏移后,怎么处理edge上的元素呢?这里要考虑2个点,首先不希望增加计算量,其次,不希望像素位置不相邻的元素建立联系,比如左上方和右下方。所以,这里提出了cyclic shift, masked MSA两个概念。

2edc208ccd304799b0ed1befc1972855.png

 

 

 

Pixel shuffling

 

f524a8f193594523b0a80ed0154d580e.png

 

 

 

 

93fea10e213843568973b90eb7d60754.png

 

 

参考资料:

Swin Transformer论文精读【论文精读】_哔哩哔哩_bilibili

 

 

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

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

相关文章

vscode中使用官方推荐的编程字体Cascadia Code字体

字体样式 > 和 有特殊效果 很多字体都支持使用连字,Cascadia Code 、Jetbrains Mono 、Fira Code 等 安装Cascadia Code 下载完成后解压安装 选中右键安装,static文件里也一样安装 VS Code 中配置设置字体和连字设置 Cascadia Code, Consolas, Couri…

基于协同过滤算法的私人诊所管理系统_6t4o8

TOC springboot571基于协同过滤算法的私人诊所管理系统_6t4o8--论文 绪 论 1.1研究背景 自改革开放以来,国内的基础网络设施的不断进步和终端电子设备的高度普及,互联网用户规模越来越大[1]。现在人们越来越离不开计算机网络、互联网所带来的好处了&…

Windows—TCP编程

服务端骨架&#xff1a; #include <iostream> #include <WinSock2.h> #pragma comment(lib,"ws2_32.lib") #include <windows.h>int main() {WORD wVersionRequested MAKEWORD(2, 2);WSADATA WSAData;WSAStartup(wVersionRequested, &WSADat…

调用第三方API,可能会遇到的问题?

在实际工作中&#xff0c;我们经常需要在项目中调用第三方API接口&#xff0c;获取数据&#xff0c;或者上报数据&#xff0c;进行数据交换和通信。 那么&#xff0c;调用第三方API接口会遇到哪些问题&#xff1f;如何解决这些问题呢&#xff1f; 这篇文章就跟大家一起聊聊第…

浅谈国产大模型的过去、现在以及未来

随着时间推移&#xff0c;AI与大模型正在肉眼可见的降温。 怎样去衡量一款AI产品是否成功&#xff1f; 这个问题如果放在两年前&#xff0c;很多人给出的答案会集中在AI的狭义领域&#xff0c;AlphaGo、Siri、Google Assistant&#xff0c;或是用于解锁手机的图像识别技术&am…

根据json字符串 自动生成 实体类 Model Entity .NET

①访问json2csharp的在线工具&#xff1a;http://json2csharp.com/ ②复制json字符串&#xff0c;粘贴到左边&#xff0c;按下面Convert按钮 ③右边就是 生成的 实体类 &#xff0c;直接复制到 .cs文件内就能使用 ④或者点击 Zip As File 按钮&#xff0c;直接生成 N个.cs文…

编写 prometheus exporter监控 mysql group replication

用 prometheus 监控 mysql&#xff0c;之前用 mysqld_exporter 收集mysql 的监控指标&#xff0c;发现并没有 mysql 组复制状态的指标。只能自己收集了&#xff0c;编写脚本收集指标推送到 pushgateway&#xff0c;这个办法更简单但是扩缩容不是很方便。下面用 python 编写的一…

C++类模板初阶

目录 1. 泛型编程 概念&#xff1a; 2.函数模板 2.1函数摸版概念&#xff1a; 2.2函数模板格式 2.3函数模板的原理 2.4 函数模板的实例化 2.5 模板参数的匹配原则 3.类模板 3.1 类模板的定义格式 3.2类模板实现示例 3.3类模板的实例化 1. 泛型编程 概念&#xff1…

Baumer工业相机堡盟工业相机如何通过BGAPI SDK设置相机本身的数据保存(CustomData)功能(Python)

Baumer工业相机堡盟工业相机如何通过BGAPI SDK设置相机本身的数据保存&#xff08;CustomData&#xff09;功能&#xff08;Python&#xff09; Baumer工业相机Baumer工业相机的数据保存&#xff08;CustomData&#xff09;功能的技术背景CameraExplorer如何使用数据保存&#…

医院用过期药要赔偿多少?

法律规定&#xff0c;经营者提供商品或者服务有欺诈行为的&#xff0c;需要加倍赔偿&#xff0c;赔偿为消费者所购买商品的价款或者接受服务的费用的三倍。&#xff08;金额不足五百元的&#xff0c;为五百元。但是如果商家明知道是过期的&#xff0c;还是要卖&#xff0c;是可…

中秋节超市生鲜最全陈列指南

中秋节将至&#xff0c;超市提前布局中秋陈列&#xff0c;打好秋季营销第一战&#xff0c;中秋节期间&#xff0c;从小分类上说&#xff1a;结球类、调味类、豆类、精品蔬菜、茄果类的蔬菜销售需求比较旺盛的。 从蔬菜的单品上来数据分析得出结果是如下单品在节日期间销售上排…

使用docker-compose 搭建es集群

首先需要安装docker&#xff0c;这里就略过了 在第一台机器上创建 docker-compose.yml 文件内容如下&#xff1a; services:es:image: docker.elastic.co/elasticsearch/elasticsearch:7.16.2container_name: esenvironment:- bootstrap.memory_locktrue- xpack.security.ena…

精准定位:数字化营销的策略基石

在当今数字化时代&#xff0c;营销环境发生了巨大变化。精准定位已成为数字化营销的关键策略基石&#xff0c;对于企业实现高效营销、提升市场竞争力至关重要。 一、精准定位的重要性 1. 提高营销效率&#xff1a;通过精准定位目标客户群体&#xff0c;企业能够将有限的营销资…

【数据集】部分SAR舰船数据集,用于目标检测

SAR舰船目标检测数据集 1、SSDD 原文&#xff1a;https://sci-hub.se/10.1109/BIGSARDATA.2017.8124934 下载连接&#xff1a;https://github.com/TianwenZhang0825/Official-SSDD/blob/main/README.md 数据介绍&#xff1a; 数量&#xff1a;1160 来源&#xff1a;RadarSat-…

Golang | Leetcode Golang题解之第357题统计各位数字都不同的数字个数

题目&#xff1a; 题解&#xff1a; func countNumbersWithUniqueDigits(n int) int {if n 0 {return 1}if n 1 {return 10}ans, cur : 10, 9for i : 0; i < n-1; i {cur * 9 - ians cur}return ans }

大小端字节序存储介绍

我们知道整形在内存中的存储方式了&#xff0c;但是在VS编译器里发现好像顺序不一样&#xff0c;类如&#xff1a; 这里就涉及到大小端字节序存储了。 什么是大端小端 大端存储模式&#xff1a;是指数据的低位保存在内存的高地址中&#xff0c;数据的高位&#xff0c;保存在内…

《黑神话:悟空》的AI技术解析:游戏智能的新境界

2024 年 8 月的第三周&#xff0c;哪哪都是悟空的声音&#xff0c;让我一度想起当年国足打进世界杯&#xff0c;学校不上课组织看球的场景。 从我个人情感而言&#xff0c;《黑神话&#xff1a;悟空》带来的震撼&#xff0c;惊喜和冲击不亚于当年国足在世界杯赛场上跟巴西踢球。…

海康VisionMaster使用学习笔记16-使用通信切换方案

使用通信切换方案 在VisionMaster中&#xff0c;用户可以使用通信功能来进行方案的切换&#xff0c;该使用方式能提升生产现场的自动化程度&#xff0c;便于VisionMaster与其他设备进行协同操作。 本文介绍VisionMaster中使用通信切换方案的基本操作步骤。以VisionMaster 4.2…

一家餐饮店的流量之路:以“铁哥饭店”为例,探索私域流量增长的深度策略

摘要&#xff1a;本文深入剖析了位于五线城市的小型餐厅“铁哥饭店”在面临流量增长困境时的具体挑战&#xff0c;并通过详细分析其原因&#xff0c;结合当前互联网营销的最新趋势与工具&#xff0c;如“21链动模式”、“AI智能名片”及“S2B2C商城小程序”&#xff0c;提出了一…

收银系统源码-【满额立减】功能介绍

连锁店收银系统源码—多商户平台入驻商城已上线-CSDN博客文章浏览阅读1k次。零售行业连锁店收银管理系统多商户入驻本地生活即时零售平台商城https://blog.csdn.net/V15850290240/article/details/141310629 详细介绍请查看上方文章↑↑↑ 详细介绍请查看上方文章↑↑↑ 详细…