场景文本检测识别学习 day09(Swin Transformer论文精读)

news2024/12/23 18:00:29

Patch & Window

在这里插入图片描述

  • 在Swin Transformer中,不同层级的窗口内部的补丁数量是固定的,补丁内部的像素数量也是固定的,如上图的红色框就是不同的窗口(Window),窗口内部的灰色框就是补丁(Patch)
  • 如果输入图像的宽W、高H,增加到原来的两倍,那么输入图像的总面积(总像素数量)就增加到原来的四倍(2H * 2W = 4HW)
  • 在ViT中,由于窗口是固定的,且就是整个输入图片,所以当我们将输入图片分割成很多个尺寸为16 * 16 的patch时,如果输入图像的总面积增加到原来的四倍,那么patch的数量也会变成原来的四倍,那么计算复杂度 O ( N 2 ⋅ d ) O( N^2 · d) O(N2d),就变成了 O ( ( 4 N ) 2 ⋅ d ) = O ( 16 N 2 ⋅ d ) O( (4N)^2 · d) = O( 16N^2 · d) O((4N)2d)=O(16N2d),其中d是每个patch的维度,N是patch的数量。因此,对于ViT来说,计算复杂度是跟图像增加的大小成平方关系
  • 在Swin Transformer中,由于窗口不是固定的,但是窗口内部的补丁数量是固定的,补丁的尺寸也是固定的,所以当我们将输入图片的总面积增加到原来的四倍,那么只有窗口的数量增加到原来的四倍,那么计算复杂度 O ( M 2 ⋅ N ⋅ d ) O( M^2 · N · d) O(M2Nd),就变成了 O ( M 2 ⋅ 4 N ⋅ d ) O( M^2 · 4N · d) O(M24Nd),其中M是每个窗口内补丁的数量,N是窗口的数量,d是每个补丁patch的维度。(虽然每个patch的维度都不一样,这里先不管了)

Swin Transformer

Swin Transformer 提出ViT具有两个缺点:
1. 没有多尺度特征 ,不能像FPN那样,对于不同大小的物体都能进行良好感知
2. 全局计算自注意力浪费资源,并且计算复杂度跟图像增加的大小成平方关系

  • 不同于ViT在整张输入图片上进行自注意力计算,Swin Transformer是在窗口内进行自注意力计算的,同时这个窗口又是包含固定数量的patch,每个patch的尺寸也是固定的。由于在图像领域中,同一个物体的不同部位、或语义相似的不同物体大概率会出现在相邻的地方,所以没必要像ViT那样–对整张图进行自注意力操作,其实可以借鉴CNN卷积的局部性的归纳偏置,在一个小的局部窗口内进行自注意力计算,也是差不多够用的
  • 不同于ViT在每个Transformer Encoder Block上都是做相同尺寸的自注意力操作,得到的也是相同尺寸的特征,

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

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

相关文章

【Linux网络编程】自定义协议+HTTP协议

【Linux网络编程】自定义协议HTTP协议 目录 【Linux网络编程】自定义协议HTTP协议协议定制,序列化和反序列化应用层中的HTTP认识URL(网址)urlencode和urldecodeHTTP协议格式使用telnet获取百度的根目录资源HTTP的方法表单 HTTP的状态码HTTP常…

一般实现分布式锁都有哪些方式?使用 Redis 如何设计分布式锁?使用 zk 来设计分布式锁可以吗?这两种分布式锁的实现方式哪种效率比较高?

目录 1.Redis 分布式锁 (1)Redis 最普通的分布式锁 (2)RedLock 算法 2.zk 分布式锁 3.redis 分布式锁和zk分布式锁的对比 1.Redis 分布式锁 官方叫做 RedLock 算法,是 Redis 官方支持的分布式锁算法。 这个分布式…

[qnx] 通过zcu104 SD卡更新qnx镜像的步骤

0. 概述 本文演示如果给Xlinx zcu104开发板刷入自定义的qnx镜像 1.将拨码开关设置为SD卡启动 如下图所示,将1拨到On,2,3,4拨到Off,即为通过SD启动。 2.准备SD卡中的内容 首先需要将SD格式化为FAT32的(如果已经是FAT32格式,则…

力扣每日一题114:二叉树展开为链表

题目 中等 提示 给你二叉树的根结点 root ,请你将它展开为一个单链表: 展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同…

sass-loader和node-sass与node版本的依赖问题

sass-loader和node-sass与node版本的依赖问题 没有人会陪你走到最后,碰到了便是有缘,即使到了要下车的时候,也要心存感激地告别,在心里留下空白的一隅之地,多年后想起时依然心存甘味。——林清玄 报错截图 报错信息 np…

linux/windows安装Tomcat

安装tomcat 注意版本一致问题 Tomcat 10.1.0-M15(alpha)Tomcat 10.0.x-10.0.21Tomcat 9.0.x-9.0.63Tomcat 8.5.x-8.0.53规范版本 Servlet 6.0,JSP 3.1, EL 5.0 WebSocket 2.1,JASPIC 3.0 Servlet 5.0,JSP 3.0, EL 4.0 WebSocket 2.0,JASPIC 2.0 Serv…

20240507最新 ubuntu20.04安装ros noetic

ubuntu20.04安装ros 主要参考博客 【ROS】在 Ubuntu 20.04 安装 ROS 的详细教程_ubuntu20.04安装ros-CSDN博客 出现问题 1.ubuntu20.04 更换清华源报错 ubuntu20.04 更换清华源报错_gvfs metadata is not supported. fallback to teplme-CSDN博客 ?&#xff1f…

CNN-BiLSTM-Attention(12种算法优化CNN-BiLSTM-Attention多输入单输出)

12种算法优化CNN-BiLSTM-Attention模型预测的代码。其中Attention模型可以改为单头或者多头,在代码中就是改个数字而已。代码注释已写好如何更改。 12种算法优化CNN-BiLSTM-Attention多特征输入单步预测代码获取戳此处代码获取戳此处代码获取戳此处 主要功能为:采用…

数据库SQL语言实战(七)

前言 这次的有一点点难~~~~~我也写了好久 练习题 题目一 在学生表pub.student中统计名字(姓名的第一位是姓氏,其余为名字,不考虑复姓)的使用的频率,将统计结果放入表test5_01中 create table test5_01(First_name…

【一步一步了解Java系列】:探索Java基本类型转换的秘密

看到这句话的时候证明:此刻你我都在努力~ 加油陌生人~ 个人主页: Gu Gu Study ​​ 专栏:一步一步了解Java 喜欢的一句话: 常常会回顾努力的自己,所以要为自己的努力留下足迹。 如果喜欢能否点个赞支持一下&#…

ComfyUI 基础教程(十四):ComfyUI中4种实现局部重绘方法

在ComfyUI中有多种方式可以实现局部重绘,简单的方式是使用VAE内补编码器进行局部重绘,也可以用Fooocus inpaint进行局部重绘,还可以用controlNet的inpaint模型进行局部重绘,以及使用Clip seg蒙版插件! 本篇介绍使用VAE內补编码器进行局部重绘的方法。 1、VAE内补编码器 局…

【docker】docker compose 搭建私服

安装 Docker Registry 创建目录 mkdir -pv /usr/local/docker/registrymkdir -pv /usr/local/docker/data 创建 docker-compose.yml文件 进入目录创建docker-compose.yml cd /usr/local/docker/registrytouch docker-compose.yml 编辑docker-compose.yml vim docker-compo…

ASRPRO

https://gitee.com/gitee-128/ASR-PRO-U8G2/tree/main 不下载模型 语音就是天问51唤醒我 u8g2的移植过程 第一步 下载u8g2的源代码 第二步 修改 delay and 函数 第三步 添加头文件 显示 显示 动画 SPI I2C(SOFT SPI ;SOFT I2C U8G2 移植过程(移植过程参考…

JUC基础概念

文章目录 JUC的基础概念什么是JUC进程与线程并行与并发线程的五种状态JUC的架构 JUC的基础概念 什么是JUC JUC 是 Java.utils.concurrent 包内的类,是为了开发者可以在多线程的情况下减少竞争条件和防止死锁而出现的。 进程与线程 进程:一个进程包含…

【LeetCode算法】389. 找不同

提示:此文章仅作为本人记录日常学习使用,若有存在错误或者不严谨得地方欢迎指正。 文章目录 一、题目二、思路三、解决方案 一、题目 给定两个字符串 s 和 t ,它们只包含小写字母。字符串 t 由字符串 s 随机重排,然后在随机位置添…

大模型_基于医疗领域用lora微调ChatDoctor模型

文章目录 ChatDoctor目标方法结果结论收集和准备医患对话数据集创建外部知识数据库具有知识大脑的自主聊天医生的开发模型培训结果数据和模型: 微调推理 ChatDoctor 目标 这项研究的主要目的是通过创建一个在医学建议中具有更高准确性的专业语言模型,来…

[Flutter]创建一个私有包并使用

在Flutter中创建一个自己的私有组件(通常称为包或库),并通过Dart的包管理工具pub进行使用。 一、创建一个新的Flutter包 1.使用命令行创建 使用Flutter命令行工具来创建一个新的包: $ flutter create --templatepackage my_pri…

ECS弹性云服务器居然这么好用。

引言 在过去的十年里,云计算从一个前沿概念发展为企业和开发者的必备工具。传统的计算模型通常局限于单一的、物理的位置和有限的资源,而云计算则通过分布式的资源和服务,为计算能力带来了前所未有的"弹性"。 云弹性服务器——为什…

N9048B PXE EMI 测试接收机,1 Hz 至 44 GHz

​ _EMI_ N9048B EMI 测试接收机 1 Hz 至 44 GHz Keysight N9048B PXE 是一款符合标准的 EMI 测试接收机,配有射频预选器和 LNA 设计。其实时扫描(RTS)功能有助于您缩短总体测试时间,轻松执行无间隙的信号捕获和分析。 特点 …

【人工智能基础】GAN与WGAN实验

一、GAN网络概述 GAN:生成对抗网络。GAN网络中存在两个网络:G(Generator,生成网络)和D(Discriminator,判别网络)。 Generator接收一个随机的噪声z,通过这个噪声生成图片…