Vision Mamba:将Mamba应用于计算机视觉任务的新模型

Mamba是LLM的一种新架构,与Transformers等传统模型相比,它能够更有效地处理长序列。就像VIT一样现在已经有人将他应用到了计算机视觉领域,让我们来看看最近的这篇论文“Vision Mamba: Efficient Visual Representation Learning with Bidirectional State Space Models,”

对于VIT来说,Transformers虽然功能强大,但通常需要大量的计算资源,特别是对于高分辨率图像。Vision Mamba旨在通过提供更有效的替代方案来解决这个问题。

Vision Mamba vs Transformers

这篇论文主要由华中科技大学、地平线机器人、北京人工智能研究院的研究人员贡献,深入研究了Mamba 是如何处理视觉任务的。Mamba的效率来自于它的双向状态空间模型,与传统的Transformer模型相比,理论上可以更快地处理图像数据。

处理图像本质上比处理文本要复杂得多。因为图像不仅仅是像素的序列;它们还包含复杂的模式,变化的空间关系,以及理解整体环境的需要。这种复杂性使得视觉数据的有效处理成为一项具有挑战性的任务,特别是在规模和高分辨率下。

Vision Mamba (Vim)

Mamba块是Vim的一个关键特性,通过使用位置嵌入标记图像序列,并使用双向状态空间模型压缩视觉表示,Vision Mamba可以有效地捕获图像的全局上下文。这种方法解决了可视数据固有的位置敏感性,这是传统Transformer模型经常遇到的一个关键问题,特别是在更高分辨率下。

Vision Mamba Encoder

Vim模型首先将输入图像划分为小块,然后将小块投影到令牌中。这些令牌随后被输入到Vim编码器中。对于像ImageNet分类这样的任务,在令牌标记序列中添加了一个额外的可学习分类标记(这个标记是重BERT开始一致这样使用的)。与用于文本序列建模的Mamba模型不同,Vim编码器在正向和反向两个方向上处理标记序列。

还记得双向LSTM么,Vim的一个突出特点是它的双向处理能力。与许多以单向方式处理数据的模型不同,Vim的编码器以向前和向后的方向处理标记。双向模型允许对图像上下文进行更丰富的理解,这是准确图像分类和分割的关键因素。

基准测试结果及表现

在ImageNet分类、COCO对象检测和ADE20K语义分割方面,Vim不仅表现出更高的性能,而且还表现出更高的效率。例如,在处理高分辨率图像(1248 × 1248)时,Vim比DEIT快2.8倍,同时节省了86%的GPU内存。考虑到在高分辨率图像处理中经常遇到的内存限制,这是一个非常大的进步。

与VIT的比较分析

这篇论文并没有仅仅停留在比较VIM和DEIT。它还包括与VIT的比较。虽然VIT确实是一个强大的模型,但VIM在效率和性能上仍然超过它,特别是随着分辨率的增加。这种比较为评估VIM的能力提供了更广泛的背景。

高分辨率图像处理

论文还强调了高分辨率图像处理在各个领域的重要性。例如在卫星图像中,高分辨率对于详细分析和准确结论至关重要。同样在PCB制造等工业环境中,在高分辨率图像中检测微小故障的能力对于质量控制至关重要。VIM在处理此类任务方面的也非常有可比性。

总结

论文介绍了一种将Mamba用于视觉任务的方法,该方法利用双向状态空间模型(ssm)进行全局视觉上下文建模和位置嵌入。这种方法标志着传统的注意力机制可能会退出历史的舞台,因为VIM展示了一种有效的方法来掌握视觉数据的位置上下文,而不需要基于transformer的注意机制。

VIM以其次二次的时间计算和线性内存复杂性与Transformer模型中典型的二次增长形成鲜明对比。这一点使得VIM特别适合处理高分辨率图像。

通过对ImageNet分类等基准的全面测试,验证了VIM的性能和效率,证明可以将其应用在计算机视觉领域强大模型的地位。

论文地址:

https://avoid.overfit.cn/post/7171ae82866d4b07853266073485e8cb

作者:azhar

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

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

相关文章

Kubernetes operator(一)client-go篇【更新中】

云原生学习路线导航页(持续更新中) 本文是 Kubernetes operator学习 系列第一篇,主要对client-go进行学习,从源码阅读角度,学习client-go各个组件的实现原理、如何协同工作等参考视频:Bilibili 2022年最新k…

pod的亲和性和反亲和性

pod的亲和性和反亲和性 调度策略: 匹配标签 操作符 拓扑域 调度目标 node的亲和性 主机标签 In Notin exists doesexists Gt Lt 不支持 指定主机 pod的亲和性 pod的标签 In Notin exists doesexists 支持 pod和指…

什么是 Web3.0

什么是Web3.0 对于 Web3.0 的解释网上有很多,目前来说 Web3.0 是一个趋势,尚未有明确的定义。我们今天讨论下几个核心的点,就能很好的理解 Web3.0 要解决哪些问题 谁创造数据,这里的数据可以是一篇博客,一段视频&…

Oracle Linux 8.9 安装图解

风险告知 本人及本篇博文不为任何人及任何行为的任何风险承担责任,图解仅供参考,请悉知!本次安装图解是在一个全新的演示环境下进行的,演示环境中没有任何有价值的数据,但这并不代表摆在你面前的环境也是如此。生产环境…

在Vue.js中,什么是mixins?它们的作用是什么?

目录 一、Vue.js介绍 二、什么是mixins 三、mixins的应用场景 四、mixins的优势和作用 一、Vue.js介绍 Vue.js是一种流行的JavaScript前端框架,用于构建交互式的Web界面。它被设计为易于理解和集成的框架,使开发者能够快速构建可复用的组件化应用程序。Vue.js采用了MVVM&a…

如何测试python 版本与 torch 、 torchvision 版本是否对应?

python 版本与 torch 、 torchvision 版本的对应关系如下图所示: 打开 anaconda powershell prompt,输入如下命令: >python>>>import torch>>>c torch.ones((3,1)) //创建矩阵>>>c c.cuda(0) …

Keepalived + Nginx双主架构

Keepalived Nginx双主架构 环境准备: keepalived_master1服务器nginx:172.20.26.167 keepalived_master2服务器nginx:172.20.26.198 各服务器关闭selinux、防火墙等服务。 开机安装部署nginx 在172.20.26.167服务器上 yum install ngi…

分布式深度学习中的数据并行和模型并行

🎀个人主页: https://zhangxiaoshu.blog.csdn.net 📢欢迎大家:关注🔍点赞👍评论📝收藏⭐️,如有错误敬请指正! 💕未来很长,值得我们全力奔赴更美好的生活&…

LLMs之Vanna:Vanna(利用自然语言查询数据库的SQL工具+底层基于RAG)的简介、安装、使用方法之详细攻略

LLMs之Vanna:Vanna(利用自然语言查询数据库的SQL工具底层基于RAG)的简介、安装、使用方法之详细攻略 目录 Vanna的简介 1、用户界面 2、RAG vs. Fine-Tuning 3、为什么选择Vanna? 4、扩展Vanna Vanna的安装和使用方法 1、安装 2、训练 (1)、使用…

c#中使用UTF-8编码处理多语言文本的有效策略

使用UTF-8编码处理多语言文本的有效策略 在当今的全球化时代,软件开发者常常需要处理包含多种语言的文本。这不仅涉及英文和其他西方语言,还包括中文、日文、韩文等多字节字符系统。在这篇博客中,我将探讨如何有效地使用UTF-8编码来处理混合语…

项目管理认证 | 什么是PMP项目管理?PMP证书有什么用?

01 什么是项目管理? 项目管理?听起来似乎离我们很遥远。其实不然, 学习了项目管理知识后,你会发现,“一切都是项目,一切也将成为项目”。 你可以把港珠澳大桥的建设、开发一款新型手机、开发一个好用的C…

HarmonyOS 发送http网络请求

好 本文 我们来说 http请求 首先 我们要操作网络内容 需要申请权限 项目中找到 main目录下的module.json5 最下面加上 "requestPermissions": [{"name": "ohos.permission.INTERNET"} ]这里 我在本地写了一个get接口 大家可以想办法 弄一个后…

RabbitMQ交换机

目录 交换机类型 直连交换机:Direct exchange 主题交换机:Topic exchange 扇形交换机:Fanout exchange 首部交换机:Headers exchange 死信交换机:Dead Letter Exchange 交换机的属性 代码实战 直连&#…

x-cmd pkg | frp - 内网穿透工具

简介 frp(Fast Reverse Proxy)是一个专注于内网穿透的高性能反向代理应用,可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。 它采用 C/S 模式,将服务端部署在具有公网 IP 的机器上,客户端部…

使用torch实现RNN

在实验室的项目遇到了困难,弄不明白LSTM的原理。到网上搜索,发现LSTM是RNN的变种,那就从RNN开始学吧。 带隐藏状态的RNN可以用下面两个公式来表示: 可以看出,一个RNN的参数有W_xh,W_hh,b_h&am…

[AutoSar]BSW_OS 06 Autosar OS_Alarms

一、 目录 一、关键词平台说明一、Timer1.1 配置1.2Periodical Interrupt Timer (PIT)和High Resolution Timer (HRT) 二、Alarm 工作机制三、Code3.1创建一个15ms的runnable3.2mapping到basic task3.3生成代码 关键词 嵌入式、C语言、autosar、OS、BSW 平台说明 项目ValueO…

k8s的helm

1、在没有helm之前,部署deployment、service、ingress等等 2、helm的作用:通过打包的方式,deployment、service、ingress这些打包在一块,一键部署服务、类似于yum功能 3、helm:官方提供的一种类似于仓库的功能&#…

时间轮设计

目录 基本概念 函数定义 函数实现与测试 测试1结果如下 测试2结果如下 基本概念 时间轮 是一种 实现延迟功能(定时器) 的 巧妙算法。如果一个系统存在大量的任务调度,时间轮可以高效的利用线程资源来进行批量化调度。把大批量的调度任务…

React16源码: React中的resetChildExpirationTime的源码实现

resetChildExpirationTime 1 )概述 在 completeUnitOfWork 当中,有一步比较重要的一个操作,就是重置 childExpirationTimechildExpirationTime 是非常重要的一个时间节点,它用来记录某一个节点的子树当中,目前优先级最…

C++提高编程——STL:string容器、vector容器

本专栏记录C学习过程包括C基础以及数据结构和算法,其中第一部分计划时间一个月,主要跟着黑马视频教程,学习路线如下,不定时更新,欢迎关注。 当前章节处于: ---------第1阶段-C基础入门 ---------第2阶段实战…