VMamba: Visual State Space Model 论文总结

news2024/11/15 19:49:25

题目:VMamba: Visual State Space Model(视觉状态空间模型)

论文:[2401.10166] VMamba: Visual State Space Model (arxiv.org)

源码:https://arxiv.org/pdf/2401.10166 (github.com)

目录

一、摘要

二、引言

三、方法

3.1. Network Architecture

3.2. 2D-Selective-Scan for Vision Data (SS2D,2D 选择扫描)

3.3. Accelerating VMamba(加速 VMamba)

四、实验


一、摘要

研究背景:在计算机视觉领域,设计计算效率高的网络架构一直是一种需要。

主要工作:本文将状态空间语言模型 Mamba 移植到 VMamba 中,VMamba 是一种线性时间复杂度的视觉骨干。

  • VMamba 的核心是 视觉状态空间(VSS)模块 的堆叠 和 2D选择性扫描 (SS2D) 模块
  • 通过沿4条扫描路线遍历,SS2D 有助于弥合 1D 选择性扫描的有序性质与 2D 视觉数据的非顺序结构之间的差距,有利于从不同来源和角度收集上下文信息。
  • 基于VSS模块,开发了一系列VMamba架构,并通过一系列架构和实现的增强来加速它们。

实验效果:广泛的实验展示了VMamba在各种视觉感知任务中的良好性能,突出了其与现有基准模型相比在输入缩放效率方面的优势。 

  

二、引言

ViT概述(优缺点): ViT通常在大规模数据上表现出上级的学习能力。然而,自注意的二次复杂性导致受限。在涉及大空间分辨率的下游任务中会引入了相当大的计算开销。

研究现状:为了应对这一挑战,许多方法已经做出了相当大的努力来提高注意力计算的效率。然而,现有的方法要么对有效感受野的大小施加限制,要么在不同的任务中经历明显的性能下降。

Mamba概述:最近,在自然语言处理(NLP)领域,Mamba 是一种新的状态空间模型(SSM),已经成为具有线性复杂度的长序列建模的一种非常有前途的方法。

研究问题:然而,Mamba的核心算法 —— 并行化选择扫描操作本质上是为处理一维序列数据而设计的。当试图将其用于处理视觉数据时,这提出了一个挑战,因为视觉数据天生缺乏视觉组件的顺序排列。

主要工作:为了解决这个问题,本文提出了一种 面向空间域遍历的四路扫描机制 SS2D (2D Selective Scan) 。与自注意力机制相比,SS2D 确保每个图像 patch 通过沿着相应的扫描路径计算的压缩隐藏状态独占地获得上下文知识,从而将计算复杂度从二次降低到线性。

实验效果:具体而言,在 ImageNet-1K 上,VMamba-Base 的准确率达到了83.9%,排在第一位,超过 Swin +0.4%,吞吐量大大超过 Swin 40%(646对458)。Vmamba 的优越性扩展到各种下游任务,其中 Vmamba-Tiny/Small/Base 在 COCO 上的目标检测中实现了 47.3%/48.7%/49.2% 的 mAP(1×训练计划)。这分别超过 Swin 4.6%/3.9%/2.3% 和 ConvNeXt 3.1%/3.3%/2.2% 的表现。对于 ADE20K 上的单尺度语义分割,VMamba-Tiny/Small/Base 实现了 47.9%/50.6%/51.0% mIoU,分别超过 Swin 3.4%/3.0%/2.9% 和 ConvNeXt 1.9%/1.9%/1.9% 。此外,基于 ViT 的模型的计算复杂性会随着输入 token 的数量呈二次增长,而与此不同,VMamba 在保持相当性能的同时,FLOP 呈线性增长。

主要贡献:

  • 提出了 VMamba,一个基于SSM的视觉骨干网络,用于具有 线性时间复杂度 的视觉表示学习。为了提高VMamba的推理速度,在体系结构设计和实现细节上进行了一系列改进。
  • 引入了 二维选择性扫描(SS2D)来弥补一维阵列扫描和二维平面遍历之间的差距,便于将选择性扫描扩展到处理视觉数据。
  • VMamba 在一系列视觉任务中表现出了良好的性能,包括图像分类、对象检测和语义分割。它还表现出对输入序列长度的显著适应性,显示出计算复杂度的线性增长。

   

三、方法

    

3.1. Network Architecture

流程输入图像 \mathrm{I \in R^{H \times W \times 3}} 首先被 stem模块分割成 patch,形成空间维度为 H/4 × W/4 的 2D 特征图。随后,采用多个网络阶段来创建 H/8 × W/8、H/16 × W/16 和 H/32 × W/32 分辨率的分层表示。每个阶段包括一个下采样层 (除了第一阶段),然后是 视觉状态空间(VSS)模块 的堆叠。(Stem模块 + 下采样层 + VSS模块)

VSS模块为了进一步提高计算效率,消除了整个乘法分支 (图中红色框),因为门控机制的效果是通过SS2D的选择性实现的。因此,得到的 VSS 模块 (如图(d)所示) 由带有两个残差模块的单个网络分支组成,模仿了普通Transformer模块的体系结构

    

3.2. 2D-Selective-Scan for Vision Data (SS2D,2D 选择扫描)

问题:虽然 S6 中的扫描操作的顺序性质与涉及时间数据的 NLP 任务很好地一致,但当应用于视觉数据时,其提出了显著的挑战,视觉数据本质上是非顺序的并且包含空间信息(例如,局部纹理和全局结构)。

解决方法:坚持选择性扫描方法进行输入处理,并提出了 2D 选择性扫描(SS2D)模块,以使 S6 适应视觉数据,而不损害其优势。

过程:给定输入数据,SS2D 首先 沿着四个不同的遍历路径 将输入 patch 展开为序列(即,交叉扫描),使用单独的S6模块并行地处理每个 patch 序列,并随后对所得到的序列进行整形和合并以形成输出图(即,交叉合并)。通过采用互补的1D遍历路径,SS2D 使得图像中的每个像素能够有效地整合来自不同方向上的所有其他像素的信息,从而有助于在2D空间中建立全局感受野

如下图所示,SS2D 中的 data forwarding (前向)包括三个步骤:cross-scan(交叉扫描)、selective scanning(基于S6模块的选择性扫描) 和 cross-merge(交叉合并)

   

3.3. Accelerating VMamba(加速 VMamba)

 通过ImageNet-1 K上的图像分类来评估模型。每个渐进式改进的影响总结如下,其中(%,img/s)分别表示ImageNet-1 K上的 top-1准确度推理吞吐量 的增益。如下所示:

  • 步骤(a) (+0.0%,+41 img/s) 通过在 Triton 中重新实现 交叉扫描和交叉合并 
  • 步骤(b) (+0.0%,−3 img/s) 通过 调整 CUDA 实现的选择性扫描 ,以适应 float16 输入和 float32 输出。这显著提高了训练效率 (吞吐量从165到184),尽管在测试时速度略有波动。
  • 步骤(c) (+0.0%,+174 img/s) 将选择性扫描中相对缓慢的 einsum 替换为线性变换 (即torch.nn.function.linear)。采用 (B, C, H, W) 张量布局来消除不必要的数据排列。
  • 步骤(d) (−0.6%,+175 img/s) 由于其计算效率,将 MLP 引入 VMamba丢弃了DWConv层,并将层配置从 [2,2,9,2] 更改为 [2,2,2,2],以降低FLOPs。
  • 步骤(e) (+0.6%, +366 img/s) 丢弃整个乘法支路,并将参数 ssm-ratio(特征扩展因子) 从2.0降低到1.0。这允许层数提高到 [2,2,5,2],同时减少FLOPs。(证明所提出的VMamba的体系架构的有效性)
  • 步骤(f) (+0.3%, +161 img/s) 通过将 参数 d_state (SSM状态维度) 从16.0减少到1.0。这允许ssm-ratio提高到2.0,并引入DWConv层,而不会增加FLOPs。
  • 步骤(g) (+0.1%, +346 img/s) 将ssm-ratio降低到1.0,同时将层配置从[2,2,5,2]更改为[2,2,8,2]

     

四、实验

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

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

相关文章

URP 线性空间 ui资源制作规范

前言: 关于颜色空间的介绍,可参阅 unity 文档 Color space URP实现了基于物理的渲染,为了保证光照计算的准确,需要使用线性空间; 使用线性空间会带来一个问题,ui资源在unity中进行透明度混合时&#xff…

嵌入式常用轻量级校验算法

在嵌入式中涉及通信基本都需要用到校验算法,如:UART常用的奇偶校验、CAN通信常用的CRC校验等等。下面我们将介绍几种常用的校验算法: 一、校验和 校验和是最基本,也是嵌入式软件工程师最常用的一种校验算法,其实现方法…

jdk知识

jdk,jre,jvm jdk>jre>jvm jdk的bin目录下有编译工具,平时写完java文件用jdk编译; jre的lib文件夹里面是java的jar包(.class文件),用来给jvm运行编译后的.class文件。 jvm:运行.class文件,.class文件读入到虚拟机…

JVM 垃圾回收机制和GC案例分析

1. 引言 Java 虚拟机(JVM)的垃圾回收(Garbage Collection, GC)机制,是自动内存管理的重要组成部分。它通过回收不再使用的对象,避免手动释放内存的麻烦。然而,随着系统复杂性的增加&#xff0c…

C/C++——野指针处理

在C++中,“野指针”(dangling pointer)指的是指向已释放或无效内存的指针。使用野指针可能导致程序崩溃或产生未定义行为。避免野指针的关键在于确保指针始终指向有效内存。下面是一些避免野指针的方法和最佳实践: 1、释放内存后置空指针 当释放掉分配的动态内存后,将指…

文本到3D生成

文本到3D生成是一种通过文本描述直接创建三维数字模型的技术。这种技术能够将语言描述转换成可视化的三维模型,使得内容创作者和设计师可以直接从概念阶段跳转到三维可视化,大大加快创作流程并提供更直观的设计和修改过程。 该技术的核心应用之一是基于…

【乐吾乐大屏可视化组态编辑器】使用手册

1 总览 开始设计:大屏可视化设计器 - 乐吾乐Le5le 1.1 画布 画布即绘画区域,将图形拖拽到画布进行编辑,绘制大屏。 1.2 菜单栏 顶部菜单导航,一级菜单可设置Logo、公司名称、文件编辑、常用编辑、查看、帮助,设置大…

MySQL篇(SQL - 分类)(持续更新迭代)

目录 简介 一、DDL 1. 简介 2. 数据库操作 2.1. 查库 查询所有数据库 查询当前数据库 2.2. 创库 2.3. 删库 2.4. 切库 3. 表操作 3.1. 查询 查询当前数据库所有表 查看指定表结构 查询指定表的建表语句 3.2. 创表 3.3. 改表 添加字段 修改数据类型 修改字段…

unity3d入门教程六

unity3d入门教程六 15.1预制体15.2编辑预制体15.3在场景中编辑15.4动态创建实例15.5实例的销毁16.1(练习)子弹发射16.2定时器16.3键盘事件 15.1预制体 火神山10天建成,使用了预制体技术 一个个小房间都是事先建造好的,最后吊车装…

Acrobat 2022 安装

软件介绍 Adobe Acrobat 是由Adobe公司开发的一款PDF(Portable Document Format,便携式文档格式)编辑软件。借助它,可以以PDF格式制作和保存文档,以便于浏览和打印,同时还可以使用一些高级工具来创建、编辑…

黑马十天精通MySQL知识点

一. MySQL概述 安装使用 MySQL安装完成之后,在系统启动时,会自动启动MySQL服务,无需手动启动。 也可以手动的通过指令启动停止,以管理员身份运行cmd,进入命令行执行如下指令: 1 、 net start mysql80…

Autosar E2E通信保护简介

文章目录 前言一、E2E基本概念二、为什么要做E2E?三、E2E保护的三种不同实现方式E2E TransformerE2E Protection Wrapper(E2EPW)COM E2E Callout四、E2E ProfileE2E Profile 01 机制E2E Profile 02 机制E2E Profile 04 机制E2E Profile 05 机制E2E Profile 06 机制E2E Profi…

828华为云征文|部署在线文件管理器 Spacedrive

828华为云征文|部署在线文件管理器 Spacedrive 一、Flexus云服务器X实例介绍1.1 云服务器介绍1.2 产品优势1.3 计费模式 二、Flexus云服务器X实例配置2.1 重置密码2.2 服务器连接2.3 安全组配置 三、部署 Spacedrive3.1 Spacedrive 介绍3.2 Docker 环境搭建3.3 Spac…

38900 机动车安全检测

参考文章:https://www.zhihu.com/question/458001000 机动车检查 《道路交通安全法实施条例》有关规定第十六条:机动车应当从注册登记之日起,按照下列期限进行安全技术检验: (一)营运载客汽车5年以内每年…

CSS 圆角渐变边框

<div class"contact-box"><div class"contact-item">联系我们</div> </div>.contact-item{width: 194px;height: 48px;border-radius: 20px 20px 20px 20px;background-color: #000000;color: #BDBDBD;font-weight: 500;font-size…

828华为云征文 | 华为云X实例服务器上部署知识图谱项目的详细指南

前言 知识图谱作为数据整合、语义分析和人工智能的重要基础&#xff0c;逐渐被广泛应用于各类领域。其通过结构化数据和关系映射&#xff0c;帮助用户更好地理解数据背后的意义。要成功构建和部署知识图谱项目&#xff0c;强大的计算资源和高效的存储查询能力至关重要。华为云X…

网易codeWave——新手如何使用多表头Excel导入数据

需求是需要将下面&#xff08;示例&#xff09;的多表头Excel表格&#xff0c;上传到服务器&#xff0c;展示在codeWave的表格组件内&#xff1a; 第一步下载官方插件&#xff1a; 可以先行查看文档再来 第二步&#xff1a; 选择一个上传组件 第三步&#xff0c;编写上传…

(1)LT9211学习笔记

文章目录 前言一、MIPI接口是什么&#xff1f;二、LT9211框图及应用1&#xff0c;作为MIPI发射机&#xff1a;2&#xff0c;作为双端口Lvds发射机3&#xff0c;作为TTL输出4&#xff0c;作为MIPI接收机&#xff1a;5&#xff0c;作为双端口Lvds接收机6&#xff0c;作为TTL输入 …

STM32(十三):通信协议——USART串口协议

通信接口 通信的目的&#xff1a;将一个设备的数据传送到另一个设备&#xff0c;扩展硬件系统。 通信协议&#xff1a;制定通信的规则&#xff0c;通信双方按照协议规则进行数据收发。 TX &#xff08;Transmit exchange&#xff09; 数据发送角 RX &#xff08;Receive ex…

GIS在线监测SF6密度微水传感器免焊接格兰头航插插头

概述 GIS&#xff08;气体绝缘金属封闭开关设备&#xff09;中的SF6&#xff08;六氟化硫&#xff09;气体密度微水传感器航插技术是指在GIS设备中安装SF6气体密度和微水传感器&#xff0c;以实现对SF6气体状态的在线监测。这些传感器能够实时监测SF6气体的密度、微水含量以及其…