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

news/2024/10/21 23:03:07/

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.ppmy.cn/news/1455079.html

相关文章

怎么把静图变成gif?推荐一招在线制作

想要实现图片转换gif动图的操作使用什么工具能实现呢?在这个高速发展的时代经常需要在网络中分享、保存各种各样的gif动图。当我们想要将一些静态图片变成有趣的gif图片时,就可以使用gif在线制作(https://www.gif.cn/)工具&#x…

未来科技的前沿:深入探讨人工智能的进展、机器学习技术和未来趋势

文章目录 一、人工智能的定义和概述1. 人工智能的基本概念2. 人工智能的发展历史 二、技术深入:机器学习、深度学习和神经网络1. 机器学习2. 深度学习3. 神经网络 三、人工智能的主要目标和功能1. 自动化和效率提升2. 决策支持和风险管理3. 个性化服务和预测未来 本…

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

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

【一刷《剑指Offer》】面试题 14:调整数组顺序使奇数位于偶数前面

力扣对应题目链接:LCR 139. 训练计划 I - 力扣(LeetCode) 牛客对应题目链接:调整数组顺序使奇数位于偶数前面(二)_牛客题霸_牛客网 (nowcoder.com) 核心考点:数组操作,排序思想的扩展使用。 一、《剑指Off…

SolidUtil : Modify功能记录

API功能大纲: namespace Bentley.DgnPlatformNET {public class Modify : SolidUtil{public Modify();public static BentleyStatus BlendEdges(ref SolidKernelEntity target, SubEntity[] edgesIn, double[] radiiIn, int nEdgesIn, bool propagateSmoothIn);pub…

InfiniGate自研网关实现三

9.网关注册中心服务初始创建 整理整个网关调用链路流程,梳理核心服务。并完成网关中心简单DDD模型结构工程的搭建,与库表连通可以查询接口映射数据。 在前面我已经开发出了一个初具模型的核心通信组件,那么我该如何使用这个组件呢&#xff…

一、写给Android开发者之harmony入门

一、创建新项目 对比 android-studio:ability类似安卓activity ability分为两种类型(Stage模型) UIAbility和Extensionability(提供系统服务和后台任务) 启动模式 1、 singleton启动模式:单例 2、 multiton启动模式&#xff1…

字母异位词分组(Lc49)——计数

给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs ["eat", "tea", "tan", "ate", "nat", …