vision mamba

Mamba 成功的关键在于采用了 Selective Scan Space State Sequential Model(S6 模型)。是用于解决自然语言处理(NLP)任务。与 transformer中注意力机制不同,Mamba的S6 将 1D 向量中的每个元素(例如文本序列)与在此之前扫描过的信息进行交互,从而有效地将二次复杂度降低到线性。

然而,由于视觉信号(如图像)不像文本序列那样具有天然的有序性,因此无法在视觉信号上简单地对 S6 中的数据扫描方法进行直接应用。为此研究者设计了 Cross-Scan 扫描机制。Cross-Scan 模块(CSM)采用四向扫描策略,即从特征图的四个角同时扫描(见上图)。该策略确保特征中的每个元素都以不同方向从所有其他位置整合信息,从而形成全局感受野,又不增加线性计算复杂度。

图片

在 CSM 的基础上,作者设计了 2D-selective-scan(SS2D)模块。如上图所示,SS2D 包含了三个步骤:

  • scan expand 将一个 2D 特征沿 4 个不同方向(左上、右下、左下、右上)展平为 1D 向量。

  • S6 block 独立地将上步得到的 4 个 1D 向量送入 S6 操作。

  • scan merge 将得到的 4 个 1D 向量融合为一个 2D 特征输出。

图片

上图为本文提出的 VMamba 结构图。VMamba 的整体框架与主流的视觉模型类似,如上图 (b)所示。经过Layer Normalization后,输入被分成两个分支。在第一个分支中,输入经过一个线性层,然后是一个激活函数。在第二个分支中,输入通过线性层、深度可分离卷积和激活函数进行处理,然后输入到2D选择性扫描(SS2D)模块中进行进一步的特征提取。随后,使用Layer Normalization对特征进行归一化,然后使用第一个分支的输出执行逐元素的生成,以合并两条路径。最后,使用线性层混合特征,并将此结果与残差连接相结合,形成VSS块的输出。本文默认采用SiLU作为激活函数。

        其主要区别在于基本模块(VSS block)中采用的算子不同。VSS block 采用了上述介绍的 2D-selective-scan 操作,即 SS2D。SS2D 保证了 VMamba 在线性复杂度的代价下实现全局感受野。

SS2D由三个部分组成:扫描expanding操作、S6块操作和扫描merging操作。如图2(a)所示,扫描expanding操作沿着四个不同的方向(左上到右下、左下到右上、右下到左上、右上到左下)将输入图像展开成序列。然后通过S6块对这些序列进行特征提取,确保各个方向的信息被彻底扫描,从而捕获不同的特征。随后,如图2(b)所示,扫描merging操作将来自四个方向的序列相加并合并,将输出图像恢复为与输入相同的大小。源自Mamba[16]的S6块在S4[17]之上引入了一种选择机制,通过根据输入调整SSM的参数。这使模型能够区分并保留相关信息,同时过滤掉不相关的信息。

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

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

相关文章

现代信息检索笔记(二)——布尔检索

目录 信息检索概述 IR vs数据库: 结构化vs 非结构化数据 结构化数据 非结构化数据 半结构化数据 传统信息检索VS现代信息检索 布尔检索 倒排索引 一个例子 建立词项(可以是字、词、短语、一句话)-文档的关联矩阵。 关联向量 检索效果的评价 …

如何在Sklearn Pipeline中运行CatBoost

介绍 CatBoost的一大特点是可以很好的处理类别特征(Categorical Features)。当我们将其结合到Sklearn的Pipeline中时,会发生如下报错: _catboost.CatBoostError: data is numpy array of floating point numerical type, it mea…

python-期末代码复习

import numpy as np import pandas as pd import matplotlib.pyplot as plt import warningswarnings.filterwarnings(actionignore) plt.rcParams[font.sans-serif][SimHei] plt.rcParams[axes.unicode_minus] False你提供的这两行代码是Python编程语言中用于设置matplotlib库…

大淘客api实现多多进宝的商品查询PHP版

大家好,我是网创有方,今天教大家如何使用大淘客的api实现拼多多商品详情信息查询。这里用到的多多进宝,如果没有多多进宝的,先去多多进宝注册个账号吧! 第一步:进入大淘客官方创建应用,并且下载…

【PyQt5】一文向您详细介绍 QLineEdit() 的作用

【PyQt5】一文向您详细介绍 QLineEdit() 的作用 下滑即可查看博客内容 🌈 欢迎莅临我的个人主页 👈这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地!🎇 🎓 博主简介:985高校的普通本硕&…

2239. 找到最接近 0 的数字

给你一个长度为 n 的整数数组 nums ,请你返回 nums 中最 接近 0 的数字。如果有多个答案,请你返回它们中的 最大值 。 示例 1: 输入:nums [-4,-2,1,4,8] 输出:1 解释: -4 到 0 的距离为 |-4| 4 。 -2 到…

开发一个微信小程序需要用到哪些技术?

开发一个微信小程序需要用到以下几种技术: 1. 基础技术 HTML: 用于定义小程序的页面结构。CSS: 用于页面的样式设计。JavaScript: 用于实现页面的交互功能。 2. 微信小程序专用技术 WXML(WeiXin Markup Language): 类似于HTML&#xff0c…

计量校准温度仪表的常见分类有哪些?

温度仪表在计量校准中,可以说是比较常见的仪器,而温度仪器因为用于校准的场景很多,应用的场合不同,也是有着很多不同的分类,今天就简单为大家介绍一些温度仪表的细分分类。 温度仪表根据测温的方式不同,可以…

2024华为OD机试真题- 电脑病毒感染-(C++/Python)-C卷D卷-200分

2024华为OD机试题库-(C卷+D卷)-(JAVA、Python、C++) 题目描述 一个局域网内有很多台电脑,分别标注为 0 ~ N-1 的数字。相连接的电脑距离不一样,所以感染时间不一样,感染时间用 t 表示。 其中网络内一台电脑被病毒感染,求其感染网络内所有的电脑最少需要多长时间。如果…

Laravel Activity Log操作日志扩展包

Laravel Activity Log操作日志扩展包 简介 Laravel Action Logs操作日志记录Laravel Activity Log 很多数据管理员都想记录他们用户的所有活跃记录。这个包可以很方便的记录你的用户何时何地的创建、更新实体的记录。外加,现在这个包还可以记录多个版本的实体间数…

【基础篇】第3章 索引与文档操作

在Elasticsearch的世界里,索引是存储数据的地方,文档则是索引中的基本单位,包含具体的数据信息。本章将深入探讨索引和文档操作的基础,从创建到管理,为高效数据处理奠定基础。 3.1 索引概念与创建 3.1.1 索引、类型与…

PyTorch之nn.Module与nn.functional用法区别

文章目录 1. nn.Module2. nn.functional2.1 基本用法2.2 常用函数 3. nn.Module 与 nn.functional3.1 主要区别3.2 具体样例:nn.ReLU() 与 F.relu() 参考资料 1. nn.Module 在PyTorch中,nn.Module 类扮演着核心角色,它是构建任何自定义神经网…

【Spring Boot 源码学习】初识 ConfigurableEnvironment

《Spring Boot 源码学习系列》 初识 ConfigurableEnvironment 一、引言二、主要内容2.1 Environment2.1.1 配置文件(profiles)2.1.2 属性(properties) 2.2 ConfigurablePropertyResolver2.2.1 属性类型转换配置2.2.2 占位符配置2.…

wxss和css有什么区别?

WXSS(WeiXin Style Sheets)和CSS(Cascading Style Sheets)在功能和应用上有很多相似之处,但针对微信小程序的特殊需求,WXSS对CSS进行了一些扩展和修改。以下是WXSS和CSS之间的主要区别: 尺寸单…

Mybatis实现流程

一&#xff0c;UserDAO 接口定义 首先&#xff0c;定义 UserDAO接口&#xff0c;包含 getList()方法,定义类型为List<User>&#xff1a; package dao;import model.User; import java.util.List;public interface UserDAO {List<User> getList(); }二&#xff0c…

Python--进程基础

创建进程 os.fork() 该方法只能在linux和mac os中使用&#xff0c;因为其主要基于系统的fork来实现。window中没有这个方法。 通过os.fork()方法会创建一个子进程&#xff0c;子进程的程序集为该语句下方的所有语句。 import os​​print("主进程的PID为:" , os.g…

Python pdfkit wkhtmltopdf html转换pdf 黑体字体乱码

wkhtmltopdf 黑体在html转换pdf时&#xff0c;黑体乱码&#xff0c;分析可能wkhtmltopdf对黑体字体不太兼容&#xff1b; 1.html内容如下 <html> <head> <meta http-equiv"content-type" content"text/html;charsetutf-8"> </head&…

DreamView数据流

DreamView数据流 查看DV中界面启动dag&#xff0c;/apollo/modules/dreamview_plus/conf/hmi_modes/pnc.pb.txt可以看到点击界面的planning按钮&#xff0c;后台其实启动的是/apollo/modules/planning/planning_component/dag/planning.dag和/apollo/modules/external_command…

语音识别应用Python示例

语音识别是将语音信号转换为文本的技术&#xff0c;是人工智能领域的重要研究方向之一。下面是一个基于Python的简单语音识别应用的代码示例。 首先&#xff0c;需要安装Python的语音识别库SpeechRecognition。可以使用以下命令进行安装&#xff1a; pip install SpeechRecog…

版本号比较

版本号比较&#xff1a; 注意&#xff1a; 不可以直接使用字符串比较的方法进行版本号比较。例如 2.29.1 > 2.3.0 是 false 的 版本号比较可以参考以下代码&#xff1a; function compareVersion(v1, v2) {v1 v1.split(.)v2 v2.split(.)const len Math.max(v1.length, …