CrossViT:用于图像分类的交叉注意多尺度Vision Transformer

        提出了一种双支路Transformer来组合不同大小的图像补丁(即变压器中的令牌)以产生更强的图像特征。方法处理具有不同计算复杂度的两个独立分支的小补丁和大补丁令牌,然后这些令牌纯粹通过注意多次融合以相互补充。此外,为了减少计算量,开发了一个简单而有效的基于交叉关注的令牌融合模块,该模块使用每个分支的单个令牌作为查询来与其他分支交换信息。提出的交叉注意只需要计算和记忆复杂度的线性时间,而不是二次时间。大量的实验表明,除了高效的CNN模型外,CrossViT在Vision Transformer上的表现优于或等同于一些并行工作。

1. 引言

        视觉变压器(Vision Transformer, ViT)使用一系列嵌入图像补丁作为标准变压器的输入,是第一种与CNN模型性能相当的无卷积变压器。然而,ViT需要非常大的数据集,如ImageNet21K和JFT300M进行训练。DeiT[35]随后表明,数据增强和模型正则化可以用更少的数据训练高性能的ViT模型。

        研究了如何学习Transformer模型中的多尺度特征表示用于图像识别。多尺度特征表示已被证明对许多视觉任务是有益的。受Big-Little Net[5]和Octave convolutions[6]等多分支CNN架构有效性的启发,提出了一种双分支Transformer,将不同大小的图像patch(即Transformer中的token)组合在一起,产生更强的视觉特征用于图像分类。使用不同计算复杂度的两个独立分支处理大小补丁令牌,并将这些令牌多次融合在一起以相互补充。

        工作的主要重点是开发适合视觉变压器的特征融合方法。通过一个高效的交叉关注模块来实现这一点,其中每个Transformer分支创建一个非补丁令牌作为代理,通过注意力与其他分支交换信息。这允许在融合中线性时间内生成注意力图,而不是二次时间。通过对每个分支的计算负载进行适当的体系结构调整,提出的方法比DeiT[35]的性能高出2%,而FLOPs和模型参数的增加幅度很小(见图)。

1.1 主要工作贡献

        提出了一种新的双分支Vision Transformer来提取多尺度特征表示用于图像分类。此外,开发了一种简单而有效的基于交叉注意的令牌融合方案,该方案在计算和内存上都是线性的,可以将不同尺度的特征组合在一起。 

2. 相关工作

三个主要的研究方向:带注意力的卷积神经网络、Vision Transformer和多尺度CNN。 

2.1 带注意力的卷积神经网络

        注意力以多种不同的形式被广泛用于增强特征表示,例如,SENet[18]使用通道注意,CBAM[41]增加了空间注意,ECANet[37]提出了一种有效的通道注意来进一步改进SENet。将CNN与不同形式的自我关注结合起来[2,32,48,31,3,17,39]。SASA[31]和SAN[48]使用local-attention层代替卷积层。尽管已有的方法取得了良好的结果,但由于其复杂性,将关注范围限制在局部区域。LambdaNetwork[2]引入了一种高效的全局关注模型,用于内容和基于位置的交互,大大提高了图像分类模型的速度-精度权衡。BoTNet[32]在ResNet的最后三个瓶颈块中用全局自关注取代了空间卷积,从而使模型在ImageNet基准上实现了较强的图像分类性能。

2.2 Vision Transformer

        许多Vision Transformer的变体,使用蒸馏进行Vision Transformer的数据高效训练[35],金字塔结构(如CNN[38])或自注意,通过学习抽象表示来提高效率,而不是执行所有到所有的自注意[42]。Perceiver[19]利用不对称注意机制迭代地将输入提炼成一个紧密的潜在瓶颈,使其能够扩展到处理非常大的输入。T2T-ViT[45]引入了分层token -to - token (T2T)转换,为每个token编码重要的局部结构,而不是ViT[11]中使用的幼稚的token化。与这些方法不同,本文提出了一种双路径架构来提取多尺度特征,以便使用Vision Transformer更好地进行视觉表示。

2.3  多尺度CNNs

        多尺度特征表示在计算机视觉中有着悠久的历史(例如,图像金字塔[1],尺度空间表示[29]和粗到精方法[28])。在CNN的背景下,多尺度特征表示已被用于多尺度物体的检测和识别[4,22,44,26],并用于加速Big-Little Net[5]和OctNet[6]中的神经网络。bLVNet-TAM[12]使用两分支多分辨率架构,同时学习跨帧的时间依赖性。慢速网络[13]依赖于类似的两分支模型,但每个分支编码不同的帧速率,而不是具有不同空间分辨率的帧。

3. 方法

交叉注意(crosssvit)学习多尺度特征的Transformer架构

        架构由K个多尺度Transformer Encoder组成。每个多尺度Transformer Encoder使用两个不同的分支来处理不同大小的图像令牌(

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

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

相关文章

C++基础编程100题-020 OpenJudge-1.3-20 计算2的幂

更多资源请关注纽扣编程微信公众号 http://noi.openjudge.cn/ch0103/20/ 描述 给定非负整数n&#xff0c;求2n。 输入 一个整数n。0 < n < 31。 输出 一个整数&#xff0c;即2的n次方。 样例输入 3样例输出 8参考程序-1 #include<bits/stdc.h> using nam…

JavaScript高级程序设计(第四版)--学习记录之对象、类和面向对象编程(中)

创建对象方式 工厂模式&#xff1a;用于抽象创建特定对象的过程。可以解决创建多个类似对象的问题&#xff0c;但没有解决对象标识问题。&#xff08;即新创建的对象是什么类型&#xff09; function createPerson(name, age, job) { let o new Object(); o.name name; o.age…

Android:移动垃圾软件

讲解政策相关,最近升级AI扫荡系统和证书防高风险,回复按留言时间来排,请耐心等待 移动垃圾软件 官方政策公告行为透明、信息披露清晰保护用户数据不要损害移动体验软件准则反垃圾软件政策Google API 服务用户数据政策官方政策公告 ​ 在 Google,我们相信,如果我们关注用户…

Retrofit源码阅读

动态代理在 Android 中的应用&#xff1a;Retrofit 源码解析 在之前的文章 《Andriod 网络框架 OkHttp 源码解析》 中我们分析了 OkHttp 的源代码。现在我们就来分析一下 OkHttp 的兄弟框架 Retrofit。关于 Retrofit 的注解的使用&#xff0c;可以参考其官方文档&#xff1a;h…

控制台厂商配额查询

概述 厂商推送限制 每个厂商通道都有对应的厂商配额和 QPS 限制&#xff0c;当请求超过限制且已配置厂商回执时&#xff0c;MobPush会采取以下措施&#xff1a; 当开发者推送请求超过厂商配额时&#xff0c;MobPush将通过自有通道进行消息下发。当开发者推送请求超过厂商 QPS…

Spark on k8s 源码解析执行流程

Spark on k8s 源码解析执行流程 1.通过spark-submit脚本提交spark程序 在spark-submit脚本里面执行了SparkSubmit类的main方法 2.运行SparkSubmit类的main方法&#xff0c;解析spark参数&#xff0c;调用submit方法 3.在submit方法里调用doRunMain方法&#xff0c;最终调用r…

算法-位图与底层运算逻辑

文章目录 1. 位图的理论基础2. 完整版位图实现3. 底层的运算逻辑-位运算 1. 位图的理论基础 首先我们要理解什么是位图, 位图的一些作用是什么 位图法就是bitmap的缩写。所谓bitmap&#xff0c;就是用每一位来存放某种状态&#xff0c;适用于大规模数据&#xff0c;但数据状态又…

Python+Pytest+Allure+Yaml+Pymysql+Jenkins+GitLab接口自动化测试框架详解

PythonPytestAllureYaml接口自动化测试框架详解 编撰人&#xff1a;CesareCheung 更新时间&#xff1a;2024.06.20 一、技术栈 PythonPytestAllureYamlJenkinsGitLab 版本要求&#xff1a;Python3.7.0,Pytest7.4.4,Allure2.18.1,PyYaml6.0 二、环境配置 安装python3.7&…

ROS2 RQT

1. RQT是什么 RQT是一个GUI框架&#xff0c;通过插件的方式实现了各种各样的界面工具。 强行解读下&#xff1a;RQT就像插座&#xff0c;任何电器只要符合插座的型号就可以插上去工作。 2.选择插件 这里我们可以选择现有的几个RQT插件来试一试&#xff0c;可以看到和话题、参…

金蝶云星空字段之间连续触发值更新

文章目录 金蝶云星空字段之间连续触发值更新场景说明具体需求&#xff1a;解决方案 金蝶云星空字段之间连续触发值更新 场景说明 字段A配置了字段B的计算公式&#xff0c;字段B配置了自动C的计算公式&#xff0c;修改A的时候&#xff0c;触发了B的重算&#xff0c;但是C触发不…

XMind2TestCase:高效测试用例设计工具

XMind2TestCase&#xff1a;高效测试用例设计工具 引言传统测试用例设计的问题1. Excel表格的局限性2. 传统测试管理工具的不足3. 自研测试管理工具的挑战 思维导图在测试用例设计中的应用思维导图的优势思维导图的挑战 简介安装使用方式命令行调用使用Web界面 使用示例XMind文…

广州自闭症机构哪家好

在广州&#xff0c;众多的自闭症康复机构中&#xff0c;星贝育园自闭症儿童康复学校以其独特的优势脱颖而出。 一、专业的师资团队 我们拥有一支经验丰富、专业素养极高的师资队伍。每位老师都经过严格的专业培训&#xff0c;深入了解自闭症儿童的特点和需求。他们不仅…

苍穹外卖项目 常用注解 + 动态sql

常用注解 常见的注解解析方法有两种&#xff1a; 编译期直接扫描&#xff1a;编译器在编译 Java 代码的时候扫描对应的注解并处理&#xff0c;比如某个方法使用Override 注解&#xff0c;编译器在编译的时候就会检测当前的方法是否重写了父类对应的方法。运行期通过反射处理&…

【基于R语言群体遗传学】-3-计算等位基因频率

书接上文&#xff0c;我们讲完了哈代温伯格基因型频率&#xff0c;也使用数据进行了拟合&#xff0c;那么接下来就是考虑一些计算的问题&#xff1a; 【基于R语言群体遗传学】-1-哈代温伯格基因型比例-CSDN博客 【基于R语言群体遗传学】-2-模拟基因型&#xff08;simulating …

WebKey备受瞩目的Web3.0新叙事,硬件与加密生态完美融合特性成为数字世界的新入口

在当今迅速发展的科技领域&#xff0c;Web3.0正在引领一场颠覆性的变革。而作为这一变革的先锋&#xff0c;WebKey无疑是备受瞩目的创新项目。它不仅代表了一种全新的技术趋势&#xff0c;更是数字世界中硬件与加密生态完美融合的典范。 硬件与加密生态的完美融合 WebKey的核心…

【QT】输入类控件

目录 Line Edit 核心属性 核心信号 正则表达式 示例&#xff1a;使用正则表达式验证输入框内容 示例&#xff1a;切换输入框密码模式下的显示状态 Text Edit 核心属性 核心信号 示例&#xff1a;获取多行输入框的内容同步显示到label 示例&#xff1a;获取文本的选…

一文讲懂npm link

前言 在本地开发npm模块的时候&#xff0c;我们可以使用npm link命令&#xff0c;将npm 模块链接到对应的运行项目中去&#xff0c;方便地对模块进行调试和测试 用法 包链接是一个两步过程&#xff1a; 1.为依赖项创建全局软链npm link。一个符号链接&#xff0c;简称软链&a…

二刷力扣——DP算法(子序列问题)

300. 最长递增子序列 定义是以本元素结尾&#xff0c;所以公式初始化都好弄。但是太慢 class Solution {public int lengthOfLIS(int[] nums) {int nnums.length;int[] dp new int[n];//以自己结尾的最长递增子序列dp[0]1;int maxzi1;for(int i1;i<n;i){dp[i]1;for(int j…

QT中QDomDocument读写XML文件

一、XML文件 <?xml version"1.0" encoding"UTF-8"?> <Begin><Type name"zhangsan"><sex>boy</sex><school>Chengdu</school><age>18</age><special>handsome</special>&l…

【YOLOv5进阶】——引入注意力机制-以SE为例

声明&#xff1a;笔记是做项目时根据B站博主视频学习时自己编写&#xff0c;请勿随意转载&#xff01; 一、站在巨人的肩膀上 SE模块即Squeeze-and-Excitation 模块&#xff0c;这是一种常用于卷积神经网络中的注意力机制&#xff01;&#xff01; 借鉴代码的代码链接如下&a…