【arXiv2025】计算机视觉|即插即用|LBMamba:革新视觉模型效率,性能炸裂

图片
论文地址:https://arxiv.org/pdf/2506.15976
代码地址:https://github.com/CiaoHe/bi-mamba


关注UP CV缝合怪,分享最计算机视觉新即插即用模块,并提供配套的论文资料与代码。
https://space.bilibili.com/473764881
图片

摘要

Mamba 是一种状态空间模型 (SSM),它通过将递归重铸为并行选择性扫描来加速训练,最近已成为一种线性缩放、高效的自注意力替代方案。由于其单向性,Mamba 中的每个状态都只包含其先前状态的信息,而对之后的状态视而不见。当前,基于 Mamba 的计算机视觉方法通常通过在 Mamba 的全局前向扫描基础上增加全局后向扫描来克服这一限制,形成双向扫描以恢复全部感受野。然而,此操作会使计算负荷加倍,从而削弱 Mamba 原本的效率优势。

为了消除这些额外的扫描,本研究引入了局部双向 SSM 模块 LBMamba,该模块在前向选择性扫描内嵌入轻量级局部后向扫描,并在每线程寄存器中完全执行。在本研究在 LBMamba 的基础上提出了可扩展的视觉骨干网络 LBVim,它每两层交替扫描方向,无需额外的后向扫描即可恢复全局感受野。本研究在自然图像和全幻灯片图像 (WSI) 上验证了该方法的多功能性。

结果表明,LBVim 始终提供优越的性能-吞吐量权衡。也就是说,在相同的吞吐量下,LBVim 在 ImageNet-1K 分类数据集上的 top-1 准确率提高了 0.8% 到 1.6%,在 ADE20K 语义分割数据集上的 mIoU 提高了 0.6% 到 2.7%,在 COCO 检测数据集上的 APb 和 APm 分别提高了 0.9% 和 1.1%。本研究还将 LBMamba 集成到最先进的病理学多实例学习 (MIL) 方法 MambaMIL 中,该方法使用单向扫描。在 3 个公开的 WSI 分类数据集上进行的实验表明,本研究的方法实现了高达 3.06% 的 AUC3.39% 的 F11.67% 的准确率的相对改进。
图片

引言

本研究关注基于Mamba的状态空间模型(SSM)在计算机视觉中的应用。SSM因其线性时间和内存复杂度而成为序列建模中自注意力机制的替代方案。然而,传统SSM的训练和推理速度仍然受到限制,因为它们无法充分利用现代GPU的并行性。Mamba通过将状态更新与隐藏到输出的卷积解耦,并将计算重新表述为在现代GPU上高效运行的并行选择性扫描来克服这个问题。因此,Mamba在长距离任务上达到了与Transformer相当的精度,同时展现出更好的分辨率缩放特性,使其成为研究和生产系统的理想选择。它最初是为自然语言处理引入的,后来被应用于计算机视觉。基于Mamba的选择性扫描内核构建的视觉模型可显著提高GPU速度和节省内存,同时始终优于基于Transformer的基线模型

然而,标准的基于Mamba的计算机视觉模型通常需要从不同方向多次扫描图像才能提高性能。这种多次扫描有两个主要原因:第一,Mamba将图像视为扁平化的一维序列,因此单一的从左到右的扫描只能捕获行方向的上下文信息。为了恢复垂直方向的依赖关系,视觉流水线通常会对图像块的列方向进行额外的扫描,从而产生两次正交扫描,共同逼近二维空间关系。尽管一些专门的二维Mamba/SSM方法被提出以更直接地解决这种结构不匹配问题,但多次扫描的需求依然存在。第二个原因是SSM的单向性: 位置t的潜在状态仅以先前位置1到t为条件。因此,模型无法获取位置t之后的信息,这通常会导致视觉任务的性能欠佳。

目前常见的解决方案是添加反向扫描(从右到左或从下到上)以恢复对未来标记的访问,从而产生双向扫描机制。虽然这种策略重建了完整的感受野,但每次额外的扫描都会大致使计算量加倍,从而削弱了Mamba最初提供的效率优势。为了解决全局双向扫描带来的额外计算开销问题,本研究提出了LBMamba,一种局部双向SSM,以及用于视觉任务的LBVim框架。LBMamba在正向选择性扫描内部嵌入了轻量级的局部反向扫描,并在每个线程的寄存器中完全执行,从而无需进行全局反向扫描。基于LBMamba构建的LBVim视觉主干网络每两层交替扫描方向,无需额外的反向扫描即可恢复全局感受野

论文创新点

本研究提出了一个名为LBMamba的局部双向SSM模块,旨在提高Mamba模型在计算机视觉任务中的效率和性能。其创新点如下:

  1. 引入了局部反向扫描机制:

    • 不同于传统的全局双向扫描,LBMamba在Mamba的前向选择性扫描过程中嵌入了轻量级的局部反向扫描。
    • 这种局部反向扫描在子序列内进行,无需进行全局反向扫描,从而显著提高了计算效率。
  2. ⚡️ 基于硬件感知的线程级双向扫描算子: ⚡️

    • 本研究设计了一个快速的、硬件感知的线程级双向扫描算子。
    • 该算子完全在线程私有寄存器中执行局部反向扫描,避免了额外的内存读取和线程间通信,最大限度地减少了计算开销。
  3. 🚀 消除了全局反向扫描的额外开销: 🚀

    • 通过将局部反向扫描整合到前向扫描过程中,LBMamba消除了全局反向扫描带来的额外计算负担和内存访问,从而显著提高了模型的吞吐量。
    • 实验结果表明,LBMamba的运行时间仅增加了2%,却避免了全局反向扫描带来的运行时间翻倍。
  4. 🔄 基于序列反转操作恢复全局感受野: 🔄

    • 为了弥补局部反向扫描在全局感受野方面的不足,本研究提出在每个编码器层后反转特征序列。
    • 这种交替的扫描方向策略,使得每个token在每两个编码器层后都能获得全局感受野,从而增强了模型对长距离上下文信息的建模能力。
  5. 在不同视觉任务和数据集上的有效性验证:

    • 本研究在自然图像和病理图像等不同类型的图像数据上进行了广泛的实验,涵盖了图像分类、语义分割、目标检测和多实例学习等多种计算机视觉任务。
    • 实验结果表明,LBMamba在多种任务和数据集上均取得了显著的性能提升,证明了其有效性和泛化能力。
    • 例如,在ImageNet-1K分类数据集上,相同吞吐量下,LBVim的top-1准确率比基线模型提高了0.8%到1.6%。在ADE20K语义分割数据集上,mIoU提高了0.6%到2.7%。

论文实验

图片
图片
图片

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

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

相关文章

【狂飙AGI】第7课:AGI-行业大模型(系列1)

目录 (一)服装史的GPT时刻(二)AI多学科诊疗系统(三)医疗大模型(四)生物医药大模型(五)教育大模型(六)心理大模型(七&#…

(LeetCode 每日一题) 3307. 找出第 K 个字符 II (位运算、数学)

题目&#xff1a;3307. 找出第 K 个字符 II 思路&#xff1a;位运算&#xff0c;时间复杂度0(logk)。 当2^(i-1) <k 且 2^i>k &#xff0c;说明k在K2^i的右半段 &#xff0c;k和其前半段的某个字符有关系 即当k>K时&#xff0c;k是由k-K位置上的字符变化而来&#xf…

国产MCU学习Day4——CW32F030C8T6:独立看门狗功能全解析

CW32F030C8T6 看门狗功能概述 CW32F030C8T6 是芯源半导体&#xff08;WCH&#xff09;推出的 Cortex-M0 内核微控制器&#xff0c;内置独立看门狗&#xff08;IWDG&#xff09;和窗口看门狗&#xff08;WWDG&#xff09;&#xff0c;用于检测和恢复系统异常状态。 一.独立看门…

SAP升级过程中如何确保数据安全?

目录 升级过程中可能遇到的数据风险 升级前的准备工作 升级过程中的保护措施 升级后的验证工作 在数字化转型浪潮中&#xff0c;SAP系统作为企业核心业务运营的系统&#xff0c;其升级过程不仅关乎技术架构的革新&#xff0c;更直接关系到企业最宝贵的资产——数据安全。一…

Vue 3 + Element Plus 常见开发问题与解决方案手册

&#x1f31f;Vue 3 Element Plus 常见开发问题与解决方案手册 &#x1f9e0; 本文整理了常见但容易混淆的几个 Vue 3 前端开发问题&#xff0c;包括插槽、原型链、响应式数据处理、v-model 报错、样式阴影控制等&#xff0c;建议收藏学习&#xff01; &#x1f4cc;一、动态插…

Spring Boot + 本地部署大模型实现:安全性与可靠性保障

在将大语言模型集成到 Spring Boot 应用中时&#xff0c;安全性和可靠性是两个关键因素。本地部署的大模型虽然提供了强大的功能&#xff0c;但也可能带来一些安全风险&#xff0c;如数据泄露、模型被恶意利用等。本文将介绍如何在 Spring Boot 应用中保障本地部署大模型的安全…

Zookeeper 客户端 .net访问框架 ZookeeperNetEx项目开发编译

一、项目简介 ZooKeeperNetEx 项目是一个针对.NET开发的异步客户端库&#xff0c;旨在为开发者提供高效且可靠的分布式协调服务。‌ 该项目完全基于任务异步编程&#xff0c;兼容.NET 4.61及以上版本&#xff0c;包括.NET Core。ZooKeeperNetEx严格遵循官方Java客户端的逻辑&am…

【学习笔记】因果推理导论第2课

因果推理导论第2课 因果推断假设 前言一、假设1、 Ignorability / Exchangeability2、条件可交换 二、估计 前言 第一节课通过一些例子说明了为什么要做因果推断,以及通过控制混杂因素计算因果效应;这一节课将围绕为何控制混杂因素计算因果效应这一方法成立,讲述其涉及到的一些…

VASP 教程:VASP 机器学习力场微调

机器学习力场&#xff08;Machine-Learned Force Fields, MLFFs&#xff09;作为一种新兴的计算方法&#xff0c;已在第一性原理分子动力学&#xff08;Ab Initio Molecular Dynamics, AIMD&#xff09;模拟中展现出独特优势&#xff08;参见 VASP Wiki&#xff1a;Category:Ma…

Java+Vue开发的仓库管理系统,实时监控库存,精准统筹货物出入与调配

前言&#xff1a; 在当今竞争激烈的商业环境中&#xff0c;高效的仓库管理对于企业的运营和成本控制至关重要。一个完善的仓库管理系统能够帮助企业实现货物的精准存储、快速出入库、实时库存监控以及全面的数据分析&#xff0c;从而提升整体运营效率、降低库存成本、增强客户…

【王阳明代数】热门问答,什么是张量?

【王阳明代数】热门问答&#xff0c;什么是张量&#xff1f; 流形学习基础概念前情提要&#xff0c;张量概念的提出&#xff0c;王船山流形与信息容量的概念回答&#xff1a;什么是张量前&#xff0c;对王船山流形&#xff0c;意气实体的定义再表述&#xff1b;王船山流形分析1…

差分压缩算法(增量更新)

差分压缩算法是一种数据压缩技术&#xff0c;它的核心思想是通过找出数据之间的差异来减少需要存储或传输的数据量。下面从基本原理、常见应用场景、算法示例等方面详细介绍差分压缩算法。 基本原理 差分压缩算法的基本原理是比较相邻数据元素之间的差异&#xff0c;并只记录…

Html5支持的视频文件格式和音频文件格式有哪些?

视频文件格式 MP4&#xff1a;MPEG-4 Part 14&#xff0c;支持H.264编码。几乎所有的浏览器都支持该格式。 WebM&#xff1a;谷歌开发的格式&#xff0c;使用VP8或VP9编码&#xff0c;可以在大多数现代浏览器中播放 Ogg&#xff1a;开放媒体格式&#xff0c;使用Vorbis编码&…

J20250704 算法题5道

题目一览&#xff1a; 606. 根据二叉树创建字符串 - 力扣&#xff08;LeetCode&#xff09; 506. 相对名次 - 力扣&#xff08;LeetCode&#xff09; 1. 两数之和 - 力扣&#xff08;LeetCode&#xff09; 100. 相同的树 - 力扣&#xff08;LeetCode&#xff09; 101. 对称…

UNet改进(15):分组注意力机制在UNet中的应用探索

引言 注意力机制已成为现代深度学习架构中不可或缺的组成部分,特别是在计算机视觉领域。近年来,各种注意力机制的变体被提出,以解决不同场景下的特定问题。本文将深入探讨一种称为分组注意力(Grouped Attention)的机制,以及它如何被集成到经典的UNet架构中,从而提升模型在…

C++之路:类基础、构造析构、拷贝构造函数

目录 前言从结构体到类类的声明与使用基础声明继承声明数据与函数声明与调用声明调用 类的访问修饰符类对象的内存分布类内数据相关静态变量非静态变量 类成员函数相关普通成员函数友元函数构造与析构函数构造函数析构函数 拷贝构造函数总结 前言 面向对象编程有三大特性&#…

黑神话悟空游戏舆情分析

完整项目包点击文末名片 黑神话悟空上线初期舆情分析 背景 《黑神话&#xff1a;悟空》在上线首日便创下了全球游戏行业的多项新纪录&#xff0c;包括Steam同时在线人数超过222万&#xff0c;全渠道总销量超过450万份&#xff0c;总销售额超过15亿元。本项目旨在对 3A 游戏《黑…

python的or-tools算法踩坑

debug模式代码好的,然后正常运行不行(用的PyCharm) 不知道为什么debug模式这个可以的,但是正常模式不行 用or-tools算路径的时候 因为要多次到达同一个点,但是or-tools不支持,所以弄了虚拟点和真实点的距离是0,但是实际上如果虚拟点到真实点为0的话or-tools结果秒出,但是实…

docker-compose一键部署全栈项目。springboot后端,react前端

部署总览前端打包: 我们将配置 package.json&#xff0c;使用 npm run build (内部调用 vite build) 来打包。这个过程将完全在 Docker 构建镜像的过程中自动完成&#xff0c;你的主机上甚至不需要安装 Node.js。后端打包: 我们将配置 pom.xml&#xff0c;使用 mvn clean packa…