【论文阅读】VMamba: Visual State Space Model

news2024/11/15 10:29:01

VMamba:视觉状态空间模型

image-20240215233716395

code:https://github.com/MzeroMiko/VMamba

Background

​ CNN拥有线性复杂度因而可以处理高分辨率的图像,而ViT在拟合能力方面超过了CNN,但ViT是二次复杂度,在处理高分辨率图像时计算开销较大。ViT通过整合全局感受野和动态权重实现了卓越的视觉建模性能,使用状态空间模型可以在继承这些组件的同时提高计算效率。

Novelty

​ 选择性扫描状态空间模型(S6)可以将二次复杂度降低为线性,但由于视觉数据的非因果性,直接将这种策略应用于图像会因为无法估计当前patch与未扫描patch之间的关系。于是引入的交叉扫描模块(CSM),CSM 不是以单向模式(列向或行向)遍历图像特征图的空间域,而是采用四向扫描策略,即从整个特征图的四个角落扫描到相反的位置。这种策略可确保特征图中的每个元素都能整合来自不同方向上所有其他位置的信息,从而在不增加线性计算复杂度的情况下形成全局感受野。

在这里插入图片描述

Contribution

  1. 提出了具有全局感受野和动态权值的视觉状态空间模型VMamba,用于视觉表示学习。VMamba为视觉基础模型提供了一种新的选择,超越了现有的CNN和ViT选择。
  2. 引入了交叉扫描模块(CSM),弥补了一维阵列扫描和二维平面遍历之间的差距,在不影响感受野的情况下,促进了S6向视觉数据的扩展。
  3. VMamba在各种视觉任务中,包括图像分类、对象检测和语义分割,都能取得很好的结果,表现了VMamba的潜力。

Method

二维选择性扫描

​ S6在处理输入数据时采用因果关系方式,只能捕捉到它扫描过的数据部分的信息。在自然语言处理等涉及时间数据的任务中,这种特性是合适的,因为信息通常按时间顺序排列,每个数据点(如文本中的词或句子)都有其在序列中的固定位置。

​ 但当S6用于处理非因果性数据,如图像、图表或集合时,就会遇到挑战。因为这些类型的数据包含的信息不仅仅是一维的,而是具有更复杂的结构,比如图像包含的是二维的空间信息。因此,仅仅沿着一个方向扫描数据将无法捕捉到所有相关信息。

​ 为了解决这个问题,文章提出了一种解决方案:通过沿着两个不同的方向(即前向和后向)扫描数据,这样可以互相补偿感受野,而不增加计算复杂度。但直接将S6的处理机制从一维扩展到二维,会导致权重变得静态(即与输入数据无关),从而失去基于上下文的数据建模能力。

​ 为保留动态权重的特性,文章选择坚持使用选择性扫描方法,但这限制了将卷积操作整合进来。作为一种补充方案,文章提出了交叉扫描模块(CSM),该模块通过沿四个不同的方向扩展图像块(从左上到右下,从右下到左上,等等),使得任何一个像素点(如中心像素)能够整合来自不同方向的其他所有像素的信息。这种方法能够使S6在保持线性复杂度的同时,扩大其感受野,使其更适用于视觉模型构建。

![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=https%3A%2F%2Fraw.githubusercontent.com%2Forzorz1%2FTyporaImg%2Fmaster%2Fimg%2Fimage-20240217023044109.png&pos_id=img-i7FdmbK6-202402180019349](https://img-blog.csdnimg.cn/img_convert/251c5f4aebefb3a1c63a4d6cd76de81bfd.png4

​ 然后将所有序列重新合并为单个图像。

image-20240217023026821

VMamba

整体架构

​ 首先使用stem模块将输入图像分割成若干patch,但没有像ViT一样进一步将patch扁平化为一维序列,从而保留了图像的二维结构。接着堆叠VSS块和下采样。

image-20240217032623209

​ 提出了类似这样结构的三种不同规模的VMamba模型即 VMamba-Tiny、VMamba-Small 和 VMambaBase:

image-20240217034405201
VSS模块

​ 与ViT不同,由于位置嵌入的因果性质,在 VMamba 中没有使用位置嵌入。

​ VSS 模块比 ViT 模块更浅,这样就可以在总模型深度预算相近的情况下堆叠更多的VSS模块。

Experiment

图像分类

​ 使用ImageNet-1K数据集。

在这里插入图片描述

目标检测

​ 使用MSCOCO 2017 数据集。训练框架建立在 mmdetection 库之上,并采用了 Swin中的超参数和 Mask-RCNN 检测器。

在这里插入图片描述

​ 使用ADE20K数据集,按照 Swin 的方法,在预训练模型的基础上构建了一个 UperHead进行分割。

在这里插入图片描述

分析实验

有效感受野

image-20240218011105578

​ 只有 DeiT (ViT) 和 VMamba 表现出全局有效感受野,但DeiT (ViT) 模型的复杂度是二次的。

​ 与DeiT(ViT)的均匀激活不同,VMamba通过其交叉扫描模块的扫描机制,不仅激活所有像素,而且特别强调交叉形状的激活。这表明VMamba模型在处理每个像素时,更倾向于考虑长期依赖的上下文信息,而不仅仅是局部信息。

​ VMamba在训练前只展示了局部的有效感受野。但在训练后,其有效感受野变为全局性的,这表明VMamba经历了一种适应性过程,使得模型的全局处理能力得到了显著提升。这与DeiT的表现形成对比,后者在训练前后保持了几乎相同的有效感受野。

输入缩放

​ 进行输入缩放实验,评估了流行模型(使用 224×224 输入尺寸训练)在不同图像分辨率下的推理性能。VMamba 在不同输入图像尺寸下的性能最为稳定。当输入图像尺寸从 224 × 224 增大到 384 × 384 时,只有 VMamba 的性能呈上升趋势,这凸显了它对输入图像尺寸变化的鲁棒性。

​ 使用不同的图像分辨率(也从 64 × 64 到 1024 × 1024)对 FLOP 进行了评估。VMamba 系列的复杂度呈线性增长,与 CNN 模型一致。VMamba 的复杂度与 Swin 等精心设计的视觉ViT一致。但只有 VMamba 实现了全局有效感受野(ERF)。同样具有全局有效感受野的 DeiT 的复杂度则呈二次方增长。

在这里插入图片描述

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

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

相关文章

深度盘点解析一家公司的PMO的定位与发展规划

对于一家公司的PMO(项目管理办公室)的定位与发展规划,今天从以下几个方面进行深度盘点和解析,具体如下: 一、PMO的定位 1. 战略与推手:PMO是持续提升组织项目管理水平,实现组织所有项目成功的重要推手。它站在公司战略的高度,从全局视角出发,对公司内部的项目进行统一…

MyBatis-Plus简介

一、简介 官网:https://baomidou.com/ MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 二、特性 无侵入:只做增强不做改变,引…

Blender雕刻建模_笔画,镜像,动态拓扑

笔画 笔画选项,一般是对刷子(自由线)工具设置 描边方法如下:标红的为常用 -间隔:按一定间隔应用笔画的结果 例如:笔刷半径50,笔画间隔100%(笔刷直径的百分比)&#x…

聊聊数据库索引

一、索引类型介绍 索引是对数据库表中一列或多列的值进行排序的一种结构。 一个非常恰当的比喻就是书的目录页与书的正文内容之间的关系,为了方便查找书中的内容,通过对内容建立索引是对数据库表中一列或多列的值进行排序的一种结构。 索引形成目录。索…

南网上行通信规约报文解析软件

本文分享一个南网上行通信规约20140617 报文解析软件 下载链接: https://pan.baidu.com/s/1ngbBG-yL8ucRWLDflqzEnQ 提取码: y1de 主界面如下图所示: 本软件同时支持南网上行通信规约20140617-Fn查询功能 软件同时支持多种规约类型,如:国网…

DRF 跨域问题

【一】说明 CORS(跨来源资源共享,Cross-Origin Resource Sharing)是一种浏览器技术的规范,旨在解决浏览器同源策略(Same-Origin Policy)的限制,使得Web服务可以从不同的网域(源&…

社媒市场规模增长80%,户外运动热潮来袭,品牌如何挖掘蓝海机会?

近年来,越来越多的人开始远离城市喧嚣,走到户外拥抱大自然。Citywalk、露营、登山、徒步、钓鱼、冲浪、骑行、攀岩……户外的边界不断拓宽,可以爬山涉水,也可以只是在公园胡同里遛弯。 户外运动逐渐趋向大众化和日常化。据相关部门…

Java中的数组、Set、List、Map类型的互相转换总结

序言 数组、Set、List、Map是Java语言非常常用的几种数据类型,他们之间存在着千丝万缕的联系。关于底层的数据结构我这里就不再多说啦,直接从应用出发,总结他们之间的转换方法,并给出推荐方法。 大家可以点赞收藏等到需要的时候…

(保姆级教程傻瓜式操作)树莓派--基于opencv实现人脸识别

前言 因为当时没有边实验边记录,所以这篇文章可能存在疏漏。不过很多地方我推荐了我参考过的博客或者视频,希望尽可能地解答您的疑惑,如果您仍有不懂的地方,欢迎评论,如果我知道答案,我会很乐意为您解答。 …

电脑缺失api-ms-win-crt-runtime-l1-1-0.dll文件的几种修复方法

当您在使用电脑过程中遇到程序启动失败,提示缺少“api-ms-win-crt-runtime-l1-1-0.dll”文件时,不必过于焦虑,此问题通常与Windows系统的Visual C Redistributable组件未正确安装或损坏有关。小编将介绍5种修复电脑缺失api-ms-win-crt-runtim…

jiebaNET中文分词器

最近我接手了一个有趣的需求,需要对用户评价进行分词,进行词频统计和情绪分析,并且根据词频权重制成词云图以供后台数据统计,于是我便引入了jieba分词器,但是我发现网上关于jiebaNET相关文档实在太少了,甚至连配置文件…

Maven依赖管理项目构建

Maven依赖管理项目构建工具 目录 文章目录 Maven依赖管理项目构建工具目录一、Maven简介1、为什么学习Maven1.1、Maven是一个依赖管理工具1.2、Maven是一个构建工具1.3、结论 2. Maven介绍3. Maven软件工作原理模型图(了解) 二、Maven安装和配置1. Mave…

链接表存储图(C++注释详解): 构建表 深度优先遍历 (DFS)

链接表的结构体单元: #define size 100 typedef struct node {int idx;//下一个节点的索引int wt;//权重, 也可根据实际情景存储边的信息struct node* next; }Node; Node* hd[size]; // 存储图的邻接表 链接表的的构建: int main() {int n, m;cin >> n >> m; //…

Win11把应用程序添加到开机自启动中

通过WinR命令打开“运行”,输入shell:startup 进入到如图目录: 将想要自动启动的应用的快捷方式都拷贝进来。 之后在任务管理器中就能发现它了。

ipa 功能包调试,分区算法,覆盖算法测试

参考 wiki 流网络 flow network 解释 相关文章 ipa 分区算法 ipa 分区算法总结,部分算法图解 环境 ubuntu20,ros 版本 noetic 运行测试 按照 readme 提示进行测试,跳过第一个步骤,并不需要 turtlebot3。 执行第三个 launch 报…

Go微服务开源框架kratos的依赖注入关系总结

该文章为学习开源微服务框架kratos的学习笔记!官方文档见:简介 | Kratos Kratos 一套轻量级 Go 微服务框架,包含大量微服务相关框架及工具。 一、Kratos 项目结构简介 通过 Kratos 工具生成的 Go工程化项目模板如下: applicati…

界面组件DevExpress Reporting v24.1预览版 - 拥有原生Angular报表查看器

DevExpress Reporting是.NET Framework下功能完善的报表平台,它附带了易于使用的Visual Studio报表设计器和丰富的报表控件集,包括数据透视表、图表,因此您可以构建无与伦比、信息清晰的报表。 下一个主要更新(v24.1)将于6月初发布&#xff…

基于java的超级玛丽游戏的设计与实现(论文 + 源码)

Java的超级玛丽游戏.zip资源-CSDN文库https://download.csdn.net/download/JW_559/89313347 基于java的超级玛丽游戏的设计与实现 摘要 近年来,Java作为一种新的编程语言,以其简单性、可移植性和平台无关性等优点,得到了广泛地应用。J2SE称…

基于网络爬虫技术的网络新闻分析(二)

目录 2 系统需求分析 2.1 系统需求概述 2.2 系统需求分析 2.2.1 系统功能要求 2.2.2 系统IPO图 2.2 系统非功能性需求分析 3 系统概要设计 3.1 设计约束 3.1.1 需求约束 3.1.2 设计策略 3.1.3 技术实现 3.3 模块结构 3.3.1 模块结构图 3.3.2 系统层次图 3.3.3…

strcpy函数详解

strcpy函数详解 1.函数简介2.strcpy函数的使用2.1使用方法一2.1使用方法二 3.strcpy在使用过程中的注意事项3.1被复制字符必须以\0结尾3.2目标空间必须能够大于源字符串长度3.3目标空间必须可变 1.函数简介 strcpy函数包含在<string.h>库函数中&#xff0c;是将一个字符…