MViT(ICCV 2021, Meta)论文解读

paper:Multiscale Vision Transformers

official implementation:https://github.com/facebookresearch/SlowFast

背景和出发点

这篇文章提出了多尺度视觉Transformer(Multiscale Vision Transformers, MViT)的概念,用于视频和图像识别。作者从多尺度特征层次结构的核心思想出发,结合Transformer模型,提出了一种新的架构。

解决了什么问题

MViT解决了现有视觉Transformer依赖大量外部预训练数据且计算和参数消耗大的问题。该模型在无需大规模外部预训练数据的情况下,显著提升了视频识别任务的性能。

创新点

  1. 多尺度特征层次结构:MViT通过多个通道-分辨率缩放阶段来实现多尺度特征金字塔。这些阶段从输入分辨率和较小的通道维度开始,逐步扩大通道容量,同时减少空间分辨率,从而创建了一个从高空间分辨率到低空间分辨率的多尺度特征金字塔。
  2. 有效的时空建模:MViT在视频识别任务中表现出色,利用时空信息来提高识别准确性。相比之下,其他视觉Transformer在帧序打乱的视频上表现较差,表明MViT更好地利用了时间信息。
  3. 计算效率高:与当前其他视频变压器模型相比,MViT在计算和参数消耗方面更加高效,能够在相同的准确性下显著减少计算量和参数数量。

方法介绍

这里的逐阶段降低分辨率增大通道数其实就是普通的ConvNets的做法,作者将其引入到Transformer结构中。作者首先提出了Multi Head Pooling Attention(MHPA)如图3所示,通过MHPA可以在Transformer block中实现灵活的分辨率建模,与分辨率和通道数都保持不变的原始的Multi Head Attention不同,MHPA通过池化操作减小 \(Q,K,V\) 的序列长度(即分辨率)实现对原始输入分辨率的降低。

通道数的增加是通过MLP实现的,当从一个stage过渡到下一个stage时,通过增加前一个stage最后一个MLP的输出来扩展通道维度。具体和卷积网络一样,当分辨率降低4倍时,通道数增加2倍。

作者通道MHPA构建了Multiscale Vision Transformer(MViT)如表2所示。

 

在MHPA中,分辨率的降维具体是通过对 \(Q\) 池化实现的,因此我们在每个stage的第一个pooling attention中设置pooling query的步长>1,其它的所有步长都设置=1。

和query pooling不同,改变key、value张量的sequence length不会影响输出的序列长度,即空间分辨率。但它们对池化注意力整体的计算量起着关键作用。因此作者解耦了 \(Q,K,V\) pooling的使用,只在每个stage的第一层使用query pooling,而在所有其它的层中使用key pooling和value pooling。

由于存在skip connection,当分辨率发生变化时,我们对residual path也进行池化来匹配维度的变化,如图3所示。当通道数发生变化时,我们通过一个额外的线性层来对齐通道维度。

实验结果

这篇文章主要是应用于视频分析的,因此除了空间分辨率外还有一个temporal维度,不过我们这里只关注2D图像识别。

在ImageNet上和其它模型的对比如下表所示

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

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

相关文章

全网视频下载之IDM下载安装,软破解

全网视频下载之IDM下载安装,软破解 介绍![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/c94f612f7a8845c8a649f74f6b18fd70.png)下载安装配置浏览器Google浏览器Ddge浏览器 界面如何下载不破解如何重复使用总结 介绍 今天给大家分享一个更加简便的全网视…

小型气象站在现代农业中的应用与前景

随着科技的飞速发展,智慧农业已成为现代农业发展的重要趋势。在这一背景下,小型气象站作为智慧农业的重要组成部分,正逐渐展现出其独特的价值和广阔的应用前景。本文将从小型气象站的定义、功能、应用案例以及未来展望等方面,探讨…

git reset HEAD^1

git reset HEAD^1 是一个 Git 命令,用于将当前分支的 HEAD 指针重置到当前提交的父提交。如果你想撤销最近的一次提交,并将更改放回工作目录,你可以使用这个命令。 这里的 HEAD^1 表示当前分支的父提交,如果你想撤销多个提交&…

VBA 解除工作表密码

工作表加密密码如果忘记可以使用如下方法进行破解 1. 破解工作簿中所有工作表密码 在标准模块中贴入下记代码并执行 Option ExplicitSub WsUnlock()Dim ws As WorksheetFor Each ws In Worksheetsws.Protect AllowFiltering:Truews.UnprotectNextEnd Sub 破解单个工作表密码…

【数据结构/C++】位图

这里写自定义目录标题 哈希思想的应用位图位图概念经典面试题位图所开的空间大小STL库中的 bitset 位图 位图实现大框架位运算符<<左移 和 >>右移 移动的方位set()&#xff1a;把x映射的位标记成1set() 接口实现reset&#xff1a;把x映射的位标记成0reset() 接口te…

四种封装 ThreadPoolExecutor 的线程池的使用以及直接使用 ThreadPoolExecutor ,优缺点分析

池化思想&#xff1a;线程池、字符串常量池、数据库连接池 提高资源的利用率 下面是手动创建线程和执行任务过程&#xff0c;可见挺麻烦的&#xff0c;而且线程利用率不高。 手动创建线程对象执行任务执行完毕&#xff0c;释放线程对象 线程池的优点&#xff1a; 提高线程的…

Static关键字的用法详解

Static关键字的用法详解 1、Static修饰内部类2、Static修饰方法3、Static修饰变量4、Static修饰代码块5、总结 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在Java编程语言中&#xff0c;static是一个关键字&#xff0c;它可以用于多种上…

React+TS前台项目实战(二十三)-- 基于属性自定义数值显示组件Decimal封装

文章目录 前言Decimal组件1. 功能分析2. 代码详细注释3. 使用方式4. 效果展示 总结 前言 今天要封装的Decimal 组件&#xff0c;是通过传入的属性进行定制化显示数值&#xff0c;在渲染时&#xff0c;会根据不同的情况显示整数部分、小数部分和单位&#xff0c;支持自定义样式…

shell脚本awk中使用for循环

今天想使用shell脚本处理一ini文件下的ip地址&#xff0c;也就是INTRANET&#xff0c;前面的ip地址&#xff0c;折腾挺久。文件格式如下&#xff1a; 正确代码&#xff1a; grep -E INTRANET /home/aaaa/bbbb/hostinfo.ini | awk -F , {for(i1; i<NF; i) if($i~"INT…

全国现状建筑数据,选中范围即可查询下载,富含建筑物位置、层数、建筑物功能、名称地址等信息!

今天分享的是一个绘制范围即可下载范围内的建筑数据下载工具&#xff0c;内含高质量建筑数据数据源&#xff0c;助力场地建设规模一目了然。 数据可视化&#xff1a; 建筑物位置、层数、建筑轮廓地图可见&#xff0c;辅助分析。 数据字段&#xff1a; 建筑高度、层数、基地面…

2024年度最佳大型语言模型(LLMs)汇总大全

大型语言模型(LLMs)是人工智能文本处理的主要类型&#xff0c;也现在最流行的人工智能应用形态。ChatGPT是迄今为止最著名的使用LLM的工具&#xff0c;它由OpenAI的GPT模型的特别调整版本提供动力。但还有许多其他聊天机器人和文本生成器&#xff0c;包括从Google Bard和Anthro…

【常用知识点-Java】启动新进程

Author&#xff1a;赵志乾 Date&#xff1a;2024-07-05 Declaration&#xff1a;All Right Reserved&#xff01;&#xff01;&#xff01; 1. 简介 Java内启动一个外部进程&#xff08;操作系统级别的进程&#xff09;&#xff0c;通常使用ProcessBuilder类。其可以方便、灵活…

每天一个数据分析题(四百十一)- 主成分

在实际应用中&#xff0c;若研究单个指标的方差对结果的影响&#xff0c;在做主成分析的时候应该选择使用&#xff08; &#xff09; A. 协方差矩阵 B. 原始变量构成的矩阵 C. 关联矩阵 D. 其余三者皆可 数据分析认证考试介绍&#xff1a;点击进入 题目来源于CDA模拟题库…

加速度传感器信号处理注意事项

1 传感器分类 对于压电式压力传感器而言&#xff0c;输出信号是最重要的选择标准之一。压电式压力传感器与电子电路相连&#xff0c;电子电路将传感器产生的电荷成比例转换为电压。 如果选用外部设备&#xff08;电荷放大器&#xff09;充当电子元件&#xff0c;则称其为电…

Mojolicious配置全解:深入探索Web应用的设置秘诀

Mojolicious配置全解&#xff1a;深入探索Web应用的设置秘诀 Mojolicious是一个功能丰富的Perl Web开发框架&#xff0c;它提供了一种简单而强大的方法来构建和配置Web应用。Mojolicious的配置文件是应用配置的核心&#xff0c;包含了应用的行为和运行时设置。本文将详细解释M…

Spark SQL----内置函数String Functions

Spark SQL----内置函数String Functions String Functions 例子&#xff1a; -- ascii SELECT ascii(222); ---------- |ascii(222)| ---------- | 50| ----------SELECT ascii(2); -------- |ascii(2)| -------- | 50| ---------- base64 SELECT base64(Spark SQ…

JavaScript 正则表达式:标准的KAFKA GROUP_ID 和 TOPIC 的格式限制

KAFKA TOPIC格式&#xff0c;只允许使用字母、数字、英文句点.、下划线_、中划线-、分号;、冒号: 注意&#xff1a;** -前面要加\转义** /^[a-zA-Z0-9_.\-;:]$/KAFKA GROUP_ID格式限制为3-128个字符&#xff0c;只能包含数字、字母、下划线、中划线和点&#xff0c;且至少包含…

【毛发教程】使用 Maya、XGen 和虚幻引擎创建马尾辫发型

Malte Resenberger-Loosmann是国外一名首席艺术家&#xff0c;他负责指导整个艺术部门来制作独立游戏项目中的3D建模。在本文中&#xff0c;Loosmann展示了马尾辫发型背后的工作流程&#xff0c;分享了 Maya 和虚幻引擎中的场景设置&#xff0c;并解释了 GS CurveTools 如何帮助…

SQLSERVER 有哪些关键字不能作为字段需要注意的

今天遇到一个错误&#xff1a; 2024-07-05 08:42:33.150 ERROR 8220 --- [io-17001-exec-1] c.alibaba.druid.filter.stat.StatFilter : merge sql error, dbType sqlserver, druid-1.1.21, sql : SELECT dydm,dymc,byzd1,byzd3,byzd4,in_date,out,out_date FROM dianyuan WHE…

Linux 查看修改系统时间| date -s

Linux 查看修改系统时间 date 命令的介绍date基本语法date命令使用示例显示指定条件的时间设置指定条件的时间时间加减操作显示文件最后修改时间显示 UTC 时间 备注 date 命令的介绍 date 命令在 Linux/Unix 系统上的使用。 date 命令可以用于查看和设置系统时间。 date基本语…