17、论文阅读:VMamba:视觉状态空间模型
前言
设计计算效率高的网络架构在计算机视觉领域仍然是一个持续的需求。在本文中,我们将一种状态空间语言模型 Mamba 移植到 VMamba 中,构建出一个具有线性时间复杂度的视觉主干网络。VMamba 的核心是一组视觉状态空间 (VSS) 块,搭配 2D 选择性扫描 (SS2D) 模块。通过沿四条扫描路径遍历,SS2D 帮助弥合一维选择性扫描的有序特性与二维视觉数据的非顺序结构之间的差距,从而便于从不同来源和视角收集上下文信息。基于 VSS 块,我们开发了一系列 VMamba 架构,并通过一系列架构和实现上的优化来加速其运算。大量实验证明了 VMamba 在各种视觉感知任务中的优异表现,尤其在输入规模的效率方面,相较于现有的基准模型显示出显著优势。代码链接
介绍
视觉表示学习是计算机视觉中的一个基础研究领域,随着深度学习的兴起,该领域取得了显著进展。为了表示视觉数据中的复杂模式,提出了两类主要的主干网络,即卷积神经网络 (CNN) 和视觉 Transformer (ViTs),并在多种视觉任务中得到了广泛应用。相比于 CNN,ViTs 由于融合了自注意力机制,通常在大规模数据上的学习能力更强。然而,自注意力机制对于标记数的二次复杂度在处理具有大空间分辨率的下游任务时带来了巨大的计算开销。
为应对这一挑战,已有大量研究致力于提升注意力计算的效率。然而,现有方法要么限制了有效感受野的大小,要么在多任务中表现出明显的性能下降。这促使我们开发一种新的视觉数据架构,保留原始自注意力机制的固有优势,即全局感受野和动态权重参数。
最近,在自然语言处理 (NLP) 领域中,Mamba 作为一种新颖的状态空间模型 (SSM) 出现,为长序列建模提供了一种具有线性复杂度的高效方法。受此进展的启发,我们提出了 VMamba,一种集成基于 SSM 模块的视觉主干网络,用于高效的视觉表示学习。然而,Mamba 的核心算法,即并行化的选择性扫描操作,主要用于处理一维序列数据。当将其应用于视觉数据时遇到挑战,因为视觉数据本质上缺乏顺序排列的组件结构。为了解决这一问题,我们提出了二维选择性扫描 (SS2D) 模块,一种为空间域遍历而设计的四向扫描机制。与自注意力机制相比,SS2D 确保每个图像块仅通过沿相应扫描路径计算的压缩隐藏状态获得上下文信息,从而将计算复杂度从二次降低为线性。
基于 VSS 块,我们开发了一系列 VMamba 架构(即 VMamba-Tiny/Small/Base),并通过一系列架构优化和实现上的改进来加速其运行。与基于 CNN(ConvNeXt)、ViT(Swin 和 HiViT)和 SSM(S4ND 和 Vim)构建的基准视觉模型相比,VMamba 在 ImageNet-1K 上各个模型规模的图像分类准确率均优于基准模型。具体而言,VMamba-Base 达到了 83.9% 的 top-1 准确率,比 Swin 提高了 0.4%,吞吐量也大幅领先 Swin 超过 40%(646 vs. 458)。VMamba 在多种下游任务中表现优越,其中 VMamba-Tiny/Small/Base 在 COCO 上的目标检测(1× 训练)中达到了 47.3%/48.7%/49.2% 的 mAP,分别超越 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 模型在输入标记数增加时复杂度呈二次增长不同,VMamba 在保持类似性能的同时实现了 FLOPs 的线性增长,展现了其在输入规模扩展方面的先进性。
本研究的贡献总结如下:
- 我们提出了 VMamba,这是一种基于 SSM 的视觉主干网络,用于视觉表示学习,并具有线性时间复杂度。通过一系列架构设计和实现细节上的改进,提高了 VMamba 的推理速度。
- 我们引入了二维选择性扫描 (SS2D) 模块,以弥合一维数组扫描与二维平面遍历之间的差距,使得选择性 SSM 能够扩展到视觉数据处理。
- 在没有额外技巧的情况下,VMamba 在图像分类、目标检测和语义分割等多种视觉任务中表现出色。同时,它在输入序列长度方面展示了显著的适应性,实现了计算复杂度的线性增长。
相关工作
卷积神经网络 (CNNs)。自 AlexNet 起,大量研究致力于提升 CNN 模型在多种视觉任务中的建模能力和计算效率。提出了更复杂的算子,例如深度卷积和可变形卷积,以增强 CNN 的灵活性和效果。近期,受 Transformer 成功的启发,现代 CNN 通过引入长距离依赖关系和动态权重,在架构设计中表现出色。
视觉 Transformer (ViTs)。作为代表性开创性工作,ViT 探讨了基于原始 Transformer 架构的视觉模型的有效性,揭示了大规模预训练对图像分类性能提升的重要性。为减少 ViT 对超大数据集的依赖,DeiT 引入了教师-学生蒸馏策略,将 CNN 模型中的知识迁移至 ViTs,强调了感知中的归纳偏置的重要性。沿此思路,后续研究提出了层次化 ViTs。
另一研究方向专注于提升自注意力机制的计算效率,这是 ViTs 的核心。通过将自注意力表示为核特征映射的线性点积,线性注意力利用矩阵乘法的结合性来将计算复杂度从二次降为线性。GLA 进一步提出了硬件高效的线性注意力变体,平衡了内存移动与并行化的关系。RWKV 也利用线性注意力机制结合了 Transformer 的可并行训练与 RNN 的高效推理。RetNet 通过添加门控机制提供了并行化计算路径,而 RMT 则将时间衰减机制引入空间域以增强视觉表示学习。
状态空间模型 (SSMs)。尽管 ViT 架构在视觉任务中得到了广泛应用,自注意力的二次复杂度在处理长输入序列(如高分辨率图像)时带来了挑战。为提升扩展效率,SSMs 作为 Transformer 的替代方案引起了研究界的关注。Gu 等人展示了基于 SSM 的模型在长程依赖处理方面的潜力,通过 HiPPO 初始化实现了这一点。为了提高实际可行性,S4 提出了将参数矩阵规范化为对角结构。随后,出现了各种结构化 SSM 模型,分别引入了不同的架构改进,包括复对角结构、多输入多输出支持、对角加低秩操作的分解以及选择机制。这些进展也被集成到更大的表示模型中,进一步展示了结构化状态空间模型在各种应用中的多样性和可扩展性。尽管这些模型主要集中在将 SSM 应用于文本和语音等长序列数据,但关于将 SSM 应用于具有二维结构的视觉数据的探索仍然有限。
准备工作



VMamba:视觉状态空间模型
网络架构


视觉数据的 2D 选择性扫描 (SS2D)
尽管 S6 中扫描操作的顺序性非常适合处理涉及时间数据的 NLP 任务,但在应用于视觉数据时却带来了很大挑战,因为视觉数据本质上是非顺序的,并包含空间信息(例如局部纹理和全局结构)。为了解决此问题,S4ND [45] 通过卷积操作重新定义了 SSM,将核从 1D 直接扩展到 2D,通过外积实现。然而,这种修改导致权重不再与输入无关,从而限制了对上下文信息的捕捉能力。因此,我们仍采用选择性扫描方法 [17] 来处理输入,并提出二维选择性扫描 (SS2D) 模块,以适应视觉数据的 S6,同时保持其优势。
如图 2 所示,SS2D 的数据传递包括三个步骤:交叉扫描、使用 S6 块的选择性扫描和交叉合并。对于给定的输入数据,SS2D 首先沿四条不同的遍历路径展开输入块序列(即交叉扫描),然后并行地使用单独的 S6 块处理每个块序列,最后将结果序列重新整形并合并形成输出图(即交叉合并)。通过采用互补的一维遍历路径,SS2D 使图像中的每个像素能够有效地从不同方向整合所有其他像素的信息,从而在二维空间中建立全局感受野。
加速 VMamba

实验
相关文章:
17、论文阅读:VMamba:视觉状态空间模型
前言 设计计算效率高的网络架构在计算机视觉领域仍然是一个持续的需求。在本文中,我们将一种状态空间语言模型 Mamba 移植到 VMamba 中,构建出一个具有线性时间复杂度的视觉主干网络。VMamba 的核心是一组视觉状态空间 (VSS) 块,搭配 2D 选择…...
GPT-5 一年后发布?对此你有何期待?
GPT-5 一年后发布?对此你有何期待? 在最新技术的洪流中,GPT-5即将登场。你是否在思考,它将为我们的生活和工作带来哪些变革?接下来的探索,或许可以启发你对未来的想象。让我们一起深入这场关于未来AI语言模…...
2024中国国际数字经济博览会:图为科技携明星产品引领数智化潮流
10月24日,全球数智化领域的目光齐聚于中国石家庄正定,一场关于数字经济未来的盛会—2024中国国际数字经济博览会在此拉开帷幕。 云边端算力底座的领航者,图为科技携其明星产品惊艳亮相,期待与您共赴一场数智化的非凡之旅ÿ…...
大模型面试题:常见的微调方法有哪些说下原理并对比
更多实时面试题总结请关注我的公众号"算法狗" 或移步至 https://pica.zhimg.com/80/v2-7fd6e77f69aa02c34ca8c334870b3bcd_720w.webp?sourced16d100b 这里说的微调主要是指参数微调,参数微调的方法主要有以下几种: Adapter 在预训练模型每一层…...
CentOS 9 Stream 上安装 PostgreSQL 16
CentOS 9 Stream 上安装 PostgreSQL 16 CentOS 9 Stream 上安装 PostgreSQL 16设置密码并且远程连接 CentOS 9 Stream 上安装 PostgreSQL 16 在 CentOS 9 Stream 上安装 PostgreSQL 16 可以通过以下步骤完成: 添加 PostgreSQL 官方仓库: PostgreSQL 提…...
【数据分享】1901-2023年我国省市县镇四级的逐年最高气温数据(免费获取/Shp/Excel格式)
之前我们分享过1901-2023年1km分辨率逐月最高气温栅格数据和Excel和Shp格式的省市县镇四级逐月最高气温数据,原始的逐月最高气温栅格数据来源于彭守璋学者在国家青藏高原科学数据中心平台上分享的数据!基于逐月数据我们采用求年平均值的方法得到逐年最高…...
使用C++和QT开发应用程序入门以及开发实例分享
目录 1、搭建开发环境(VS2010和QT4.8.2) 2、创建一个QT窗口 3、在QT窗口中添加子窗口 4、QT界面布局 5、QT信号(SIGNAL)和槽(SLOT) 6、最后 C软件异常排查从入门到精通系列教程(专栏文章列…...
Openlayers高级交互(20/20):超级数据聚合,页面不再混乱
本示例在vue+openlayers中使用cluster生成聚合数据的效果。在OpenLayers中实现点聚合(clustering)是一个常见的需求,特别是在处理大量地理数据点时。聚合可以提高地图的性能并减少视觉上的混乱。 一、示例效果图 专栏名称内容介绍Openlayers基础实战 (72篇)专栏提供73篇文…...
qt QStandardItemModel详解
1、概述 QStandardItemModel是Qt框架中提供的一个基于项的模型类,用于存储和管理数据,这些数据可以以表格的形式展示在视图控件(如QTableView、QTreeView等)中。QStandardItemModel支持丰富的数据操作,包括添加、删除…...
光伏设计软件如何快速上手?
光伏设计软件是现代光伏系统设计不可或缺的工具,它们大大简化了设计流程,提高了设计效率。对于新手来说,快速上手一款光伏设计软件可能会显得有些困难,但只要掌握了一些基础操作,就能迅速提升设计技能。 1、导入CAD图片…...
Mac下安装Apache JMeter并启动
一、下载JMeter https://jmeter.apache.org/download_jmeter.cgi 下载好对应的压缩包,解压后即可,并将解压后的文件夹放至自己想要存放的位置。 二、启动JMeter 进入解压后的文件夹下的bin目录cd /usr/local/apache-jmeter-5.6.3/bin配置语言vim jmet…...
L6.【LeetCode笔记】合并两个有序链表
1.题目 https://leetcode.cn/problems/merge-two-sorted-lists/ 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 [1,2,4], l2 [1,3,4] 输出:[1,1,2,3,4,4]示例 2&…...
讲解Golang选择语句
Golang选择语句 1. if 语句1.1 基本语法1.2 if-else 语句1.3 if-else if-else 语句1.4 简短声明和初始化1.5 多个条件的逻辑运算 2. switch 语句2.1 基本语法2.2 示例2.3 switch 语句与 if 的对比2.4 不指定表达式2.5 fallthrough 语句2.6 case 支持多个值 3. 总结 Go语言中的选…...
练习LabVIEW第四十一题
学习目标: 编写一个程序测试自己在程序前面板上输入一段文字“CSDN是一个优秀的网站”所用的时间。 开始编写: 前面板放置一个数值显示控件,程序框图添加顺序结构共三帧,第一帧放一个获取日期/时间(秒)函…...
应对AI与机器学习的安全与授权管理新挑战,CodeMeter不断创新引领保护方案
人工智能(AI)和机器学习(ML)技术正在快速发展,逐渐应用到全球各类主流系统、设备及关键应用场景中,尤其是在政府、商业和工业组织不断加深互联的情况下,AI和ML技术的影响日益广泛。虽然AI技术的…...
【2024最新版Kotlin教程】Kotlin第一行代码系列第五课-类继承,抽象类,接口
【2024最新版Kotlin教程】Kotlin第一行代码系列第五课-类继承,抽象类,接口 为什么要有继承呢,现实中也是有继承的,对吧,你继承你爸的遗产,比如你爸建好了一个房子,儿子继承爸,就得了…...
虚拟现实和增强现实技术,如何打造沉浸式体验?
内容概要 在这个科技飞速发展的时代,虚拟现实(VR)与增强现实(AR)技术的结合就像调皮的小精灵,一下子把我们的生活变得神奇又有趣。想象一下,你正在游戏中与精灵搏斗,突然间身边的客…...
ChatGPT任务设计和微调策略的优化
目录 ChatGPT任务设计和微调策略的优化 一、GPT-3的基础 二、任务设计和微调策略的优化 三、基于人类反馈的强化学习(RLHF) 举例 完全注意力机制的自回归解码器网络 一、定义与原理 二、举例说明 ChatGPT任务设计和微调策略的优化 ChatGPT确实是从GPT-3开始,通过任…...
通过 SSH 连接远程 Ubuntu 服务器
目录 安装 SSH 服务器允许 SSH 通过防火墙远程 SSH 连接(选)重启向日葵 安装 SSH 服务器 更新软件包列表 sudo apt update安装 OpenSSH 服务器 sudo apt install openssh-server检查 SSH 服务器状态 sudo systemctl status ssh如果 SSH 服务器正在运…...
Perl 环境安装
Perl 环境安装 Perl 是一种广泛使用的高级、通用、解释型、动态编程语言。它最初由 Larry Wall 在 1987 年设计,现在由 Perl 5 和 Perl 6 两个主要版本组成。Perl 适合于多种编程任务,包括系统管理、Web 开发、网络编程、游戏开发等。在开始使用 Perl 进行编程之前,您需要在…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...
Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...
以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...
算法:模拟
1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) 遍历字符串:通过外层循环逐一检查每个字符。遇到 ? 时处理: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: 与…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...
搭建DNS域名解析服务器(正向解析资源文件)
正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...
Redis:现代应用开发的高效内存数据存储利器
一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发,其初衷是为了满足他自己的一个项目需求,即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源,Redis凭借其简单易用、…...
STM32---外部32.768K晶振(LSE)无法起振问题
晶振是否起振主要就检查两个1、晶振与MCU是否兼容;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容(CL)与匹配电容(CL1、CL2)的关系 2. 如何选择 CL1 和 CL…...
