0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一种新的通用视觉主干模型Vision Mamba

地平线HorizonRobotics 来源:地平线HorizonRobotics 2025-01-06 09:55 次阅读

Vision Mamba

最具潜力的下一代通用视觉主干网络

CNN和Transformer常作为深度学习模型的首选基础模块,被应用于各种场景,如文本、视觉、语音信号处理及其各种下游应用。然而这两个基础模块都有着其固有而互补的缺陷:CNN具有固定大小窗口的卷积核,使其计算量为线性,但也由此而面临着窗口化局部感受野的缺陷,使其在全局场景感知和场景语义理解上之力;Transformer通过全局的注意力计算,使其具有长上下文的全局感知能力,但其二次方复杂度的计算量使得在算力有限的端侧设备上运行变得很困难。

针对这一问题,我们提出了VisionMamba,来打破线性复杂度与全局感受野不可兼得的困境。基于自然语言处理中的Mamba状态空间模型SSM,我们设计了双向SSM,并引I入了位置编码来专门处理具有二维多向性的视觉信号。在各种分类、检测、分割任务中,Vim相比现有的视觉Transformer在精度上具有显著提升,同时在计算和内存效率上也有显著改进。例如,在进行分辨率为1248x1248的批量推理时,Vim比DeiT快2.8倍,GPU内存节省86.8%

• Vision Mamba 论文链接:

https://arxiv.org/abs/2401.09417

• 项目主页:

https://github.com/hustvl/Vim

简介

本文的工作Vision Mamba[1]发表在ICML 2024。研究的问题是如何设计新型神经网络来实现高效的视觉表示学习。该任务要求神经网络模型能够在处理高分辨率图像时既保持高性能,又具备计算和内存的高效性。先前的方法主要依赖自注意力机制来进行视觉表示学习,但这种方法在处理长序列时速度和内存使用上存在挑战。论文提出了一种新的通用视觉主干模型Vision Mamba,简称Vim1,该模型使用双向状态空间模型(SSM)对图像序列进行位置嵌入,并利用双向SSM压缩视觉表示。在ImageNet[2]分类、COCO[2]目标检测和ADE20k[3]语义分割任务中,Vim相比现有的视觉Transformer[4](如DeiT[5])在性能上有显著提升,同时在计算和内存效率上也有显著改进。例如,在进行分辨率为1248×1248的批量推理时,Vim比DeiT快2.8倍,GPU内存节省86.8%。这些结果表明,Vim能够克服在高分辨率图像理解中执行Transformer样式的计算和内存限制,具有成为下一代视觉基础模型主干的潜力。

c6828338-c9b8-11ef-9310-92fbcf53809c.png

图1 本文所提出的Vision Mamba (Vim)和基于Transformer的DeiT模型进行精度与效率对比:Vim在图像分类、目标检测、语义分割、实例分割任务上获得了更好的精度,且在高清分辨率图像处理上呈现出巨大的优势。

研究背景

图像表示学习是计算机视觉领域的重要研究课题,其目的是通过模型学习从图像中提取有意义的特征,从而应用于各种视觉任务中。目前,视觉Transformer(Vision Transformer, ViT[4])和卷积神经网络(Convolutional Neural Networks, CNNs)是图像表示学习中最常用的方法。然而,这些方法在理论上存在一些局限性。

视觉Transformer利用自注意力机制能够取得全局的感受野,在大规模自监督预训练和下游任务中表现出色,但其自注意力机制在处理长序列依赖和高分辨率图像时,带来了计算和内存的巨大开销。具体而言,自注意力机制的计算复杂度是输入的图像块序列长度的平方,这使得其在处理高分辨率图像时非常耗时且占用大量内存。尽管一些研究提出了改进方法,如窗口注意力机制[6,7],但这些方法虽然降低了复杂度,但导致感受野被局限在局部的窗口内部,失去了原本全局感受野的优势。

另一方面,卷积神经网络在处理图像时,通过使用固定大小的卷积核来提取局部特征。然而,卷积神经网络在捕捉全局上下文信息方面存在局限性,因为卷积核的感受野是有限的,虽然一些研究引入了金字塔结构或大卷积核来增强全局信息提取能力,但这些改进仍然无法完全克服CNN在处理长序列依赖方面的不足。

在自然语言处理领域,Mamba[11]方法的出现给高效率长序列建模带来了很好的发展契机。Mamba是状态空间模型(state space model, SSM)方法的最新演进。Mamba提出了一种输入自适应的状态空间模型,能够更高质量地完成序列建模任务。与此同时,该方法在处理长序列建模问题时有着次二次方的复杂度与更高的处理效率。然而,Mamba方法并不能够直接应用于视觉表征学习,因为Mamba方法是为自然语言领域的因果建模而设计的,它缺少对于二维空间位置的感知能力以及缺少全局的建模能力。

c69ceac0-c9b8-11ef-9310-92fbcf53809c.png

图2 本文所提出的Vim模型的网络构架图。

为了克服上述Transformer和CNN的理论局限性,启发于自然语言处理领域Mamba的成功,本文提出了一种新的通用视觉主干模型——Vision Mamba (Vim)。该模型基于状态空间模型[10](State Space Models, SSMs),利用其在长序列建模中的高效性,提供了一种新的视觉表示学习方法。该模型提出了双向状态空间模型来适配视觉特征的多方向性,并引入位置编码来针对图像单元进行标记。本文提出的Vim模型通过双向SSM对图像序列进行位置嵌入和压缩,不仅在ImageNet分类任务上表现出色,还在COCO目标检测和ADE20k语义分割任务中展示了优异的性能。与现有的视觉Transformer如DeiT相比,Vim在计算和内存效率上有显著提升。

Vision Mamba方法介绍

状态空间模型

状态空间模型,比如结构化状态空间序列模型[10](S4)和Mamba[11]是启发于连续系统,该系统通过隐藏状态c6b43068-c9b8-11ef-9310-92fbcf53809c.png将一维函数或序列c6c9c0b8-c9b8-11ef-9310-92fbcf53809c.png映射到c6decc2e-c9b8-11ef-9310-92fbcf53809c.png。该系统使用c6f1acd6-c9b8-11ef-9310-92fbcf53809c.png作为演化参数,并使用c7001f32-c9b8-11ef-9310-92fbcf53809c.pngc7165158-c9b8-11ef-9310-92fbcf53809c.png作为投影参数。连续系统的工作方式如下:  

c7318b26-c9b8-11ef-9310-92fbcf53809c.png

S4和Mamba是连续系统的离散版本,它们包含一个时间尺度参数c744d6e0-c9b8-11ef-9310-92fbcf53809c.png,用于将连续参数A和B转换为离散参数

c75f97be-c9b8-11ef-9310-92fbcf53809c.png

c75f97be-c9b8-11ef-9310-92fbcf53809c.png

。常用的方式是零阶保持,其定义如下:

c75f97be-c9b8-11ef-9310-92fbcf53809c.png

c75f97be-c9b8-11ef-9310-92fbcf53809c.png

c75f97be-c9b8-11ef-9310-92fbcf53809c.png

离散化后,使用步长c744d6e0-c9b8-11ef-9310-92fbcf53809c.png的离散版本可以重写为:

c7e068e4-c9b8-11ef-9310-92fbcf53809c.png

最后,模型可以使用全局的卷积来并行的计算:

c7f99e9a-c9b8-11ef-9310-92fbcf53809c.png

其中

c8115b16-c9b8-11ef-9310-92fbcf53809c.png

是输入序列

c7f99e9a-c9b8-11ef-9310-92fbcf53809c.png

的长度,c84b1a90-c9b8-11ef-9310-92fbcf53809c.png是结构化的卷积核。  

Vision Mamba结构

所提出的Vision Mamba如图1所示。标准的Mamba模块是为一维的文本序列所设计的。为了适配视觉信号,我们首先将二维图像c866341a-c9b8-11ef-9310-92fbcf53809c.png转换为展平的二维图像块序列c87efeaa-c9b8-11ef-9310-92fbcf53809c.png,其中c89aad1c-c9b8-11ef-9310-92fbcf53809c.png是输入图像的尺寸,C是通道数,P是图像块的尺寸。接下来,我们将c8b6904a-c9b8-11ef-9310-92fbcf53809c.png线性投影到大小为D的向量,并添加位置编码

c8db09d4-c9b8-11ef-9310-92fbcf53809c.png

,如下所示:

c8f5c8d2-c9b8-11ef-9310-92fbcf53809c.png

其中

c9108ee2-c9b8-11ef-9310-92fbcf53809c.png

c9108ee2-c9b8-11ef-9310-92fbcf53809c.png

中的第

c9108ee2-c9b8-11ef-9310-92fbcf53809c.png

个图像块,

c9108ee2-c9b8-11ef-9310-92fbcf53809c.png

是可学习的投影变换矩阵。受ViT[4]的启发,我们也使用类别标记c97cbe8c-c9b8-11ef-9310-92fbcf53809c.png来表示整个图像块序列。然后,我们将标记序列c98f1dfc-c9b8-11ef-9310-92fbcf53809c.png输入到Vim编码器的第c9a33832-c9b8-11ef-9310-92fbcf53809c.png层,并得到输出c9a33832-c9b8-11ef-9310-92fbcf53809c.png。最后我们对输出类别标记c9da86c0-c9b8-11ef-9310-92fbcf53809c.png进行归一化,并将其送入多层感知机(MLP)分类头以获得最终类别预测c9f0b2ec-c9b8-11ef-9310-92fbcf53809c.png

ca048a56-c9b8-11ef-9310-92fbcf53809c.png

其中Vim是提出的视觉Mamba模块,

ca23e658-c9b8-11ef-9310-92fbcf53809c.png

是层数,

ca23e658-c9b8-11ef-9310-92fbcf53809c.png

是归一化层。

算法1:Vim模块流程

输入:图像块序列ca54f338-c9b8-11ef-9310-92fbcf53809c.png

输出:图像块序列c9a33832-c9b8-11ef-9310-92fbcf53809c.png

ca7f746e-c9b8-11ef-9310-92fbcf53809c.png

Vim模块

原始的Mamba模块是为一维序列设计的,不适用于需要空间感知理解的视觉任务。我们创新性提出Vision Mamba编码的基本构建模块Vim模块,如图2右侧所示。具体来说,像我们在算法1中所展示的操作。输入的标记序列caa58578-c9b8-11ef-9310-92fbcf53809c.png首先通过归一化层进行归一化。接下来,我们将归一化后的序列线性投影到维度大小为cabbbf46-c9b8-11ef-9310-92fbcf53809c.pngcad42ab8-c9b8-11ef-9310-92fbcf53809c.pngcaf2c194-c9b8-11ef-9310-92fbcf53809c.png。然后,我们从前向和后向两个方向处理cb0a325c-c9b8-11ef-9310-92fbcf53809c.png。对于每个方向,我们首先对cad42ab8-c9b8-11ef-9310-92fbcf53809c.png进行一维卷积,得到cb37179a-c9b8-11ef-9310-92fbcf53809c.png。然后,我们将cb37179a-c9b8-11ef-9310-92fbcf53809c.png线性投影到cb7229de-c9b8-11ef-9310-92fbcf53809c.pngc744d6e0-c9b8-11ef-9310-92fbcf53809c.png然后用于分别离散化得到cba520be-c9b8-11ef-9310-92fbcf53809c.pngcbbf6dc0-c9b8-11ef-9310-92fbcf53809c.png。最后我们通过SSM计算前向输出cbdb4194-c9b8-11ef-9310-92fbcf53809c.png和反向输出cbf8d5a6-c9b8-11ef-9310-92fbcf53809c.png,并通过caf2c194-c9b8-11ef-9310-92fbcf53809c.png进行门控,并加在一起得到输出标记序列c9a33832-c9b8-11ef-9310-92fbcf53809c.png。  

效率优化

Vim通过借助于Mamba的硬件友好的实现方式确保运行的效率。优化的关键思想是避免GPU的I/O瓶颈和内存瓶颈。

IO高效性。高带宽存储器(HBM)和SRAM是GPU的两个重要组成部分。其中,SRAM具有更大的带宽,而HBM具有更大的存储容量。标准的Vim的SSM操作在HBM上需要的I/O数量是O(BMEN),其中B为批量大小,M为图像块序列长度,E 表示扩展状态维度,N 表示 SSM 维度。受到Mamba的启发,Vim首先将O(BME+EN)字节的内存从较慢的HBM读取到较快的SRAM中。然后Vim在SRAM中获取对应的参数,并执行SSM操作,最终将输出结果写回HBM。此方法可以讲I/O数量从O(BMEN)降低到O(BME+EN)从而大幅度提升效率。

内存高效性。为了避免内存不足问题并在处理长序列时降低内存使用,Vim选择了与 Mamba 相同的重计算方法。对于尺寸为 (B.M,E,N)的中间状态来计算梯度,Vim在网络的反向传递中重新计算它们。对于激活函数和卷积的中间激活值,Vim 也重新计算它们,以优化 GPU 的内存需求,因为激活值占用了大量内存,但重新计算速度很快。

计算高效性。Vim模块中的SSM算法和Transformer中的自注意力机制都在自适应地提供全局上下文方面起到了关键作用。给定一个视觉序列cc3b6998-c9b8-11ef-9310-92fbcf53809c.png和默认的设置cc575ee6-c9b8-11ef-9310-92fbcf53809c.png。全局注意力机制和SSM的计算复杂度分别为:

cc72cb18-c9b8-11ef-9310-92fbcf53809c.png

其中,自注意力机制的计算复杂度和序列长度cc942d08-c9b8-11ef-9310-92fbcf53809c.png成平方关系,而SSM的计算复杂度和序列长度cc942d08-c9b8-11ef-9310-92fbcf53809c.png呈线性关系。这种计算效率使得Vim在处理具有长序列长度的千兆像素级别应用时具有良好的扩展性。

实验结果

该方法在标准的大型图片分类数据集ImageNet-1K上进行验证。并将分类训练好的模型作为预加载权重用于下游图片密集型预测任务中去,如COCO数据集上的目标检测和实力分割任务, ADE20K上的像素级别的语义分割任务。

分类对比

如表1与当前主流的分类模型对比Vim显示出了相当的精度,将Vim和基于CNN、Transformer和SSM的主干网络进行比较,Vim显示了相当甚至更优的性能。例如,在参数量相同的情况下Vim-Small的准确率80.3%,比ResNet50[12]高出了4.1个百分点。与传统的基于自注意力机制的ViT[4]相比,Vim在参数数量和准确率上均有显著提升。与视觉Transformer ViT高度优化的变种DeiT相比,Vim在不同模型尺度上均以相似的参数数量取得了更好的精度。

如图1所示,Vim的优越的效率足以支持更细粒度的微调,在通过细粒度微调后,与基于SSM的S4ND-ViT-B[13]相比,Vim在参数数量减小3倍的情况下达到了相似的精度,Vim-Ti+,Vim-S+和Vim-B+的结果均有所提高。其中,Vim-S+甚至达到了与DeiT-B相似的效果。

cccb5008-c9b8-11ef-9310-92fbcf53809c.png

表1ImageNet-1K分类骨干网络对比

语义分割对比

在ADE20K语义分割数据集上,我们将ImageNet-1K上训练好的权重加载到UperNet[14]分割器中,使用Vim作为骨干网络进行特征提取,如表3所示,Vim取得了相比于CNN网络ResNet更少的参数量以及更高的精度,去Transformer模型DeiT相比,Vim取得了更优的精度。

ccde6616-c9b8-11ef-9310-92fbcf53809c.png

表2ADE20k语义分割对比

ccf715d0-c9b8-11ef-9310-92fbcf53809c.png

表3 COCO目标检测和实例分割对比

目标检测与实例分割对比

在COCO目标检测与实例分割数据集上,我们将ImageNet-1K上训练好的权重加载到Cascade-RCNN框架中,使用Vim作为骨干网络进行特征提取,如表3所示,Vim取得相对于Transformer的DeiT更好的检测框精度和实例分割精度。值得注意的是,在高清图像输入的目标检测任务上,图像输入分辨率为1024×1024,由于Transformer的平方复杂度,需要将自注意力机制限制在固定大小的窗口内, 而Vim得意于其线性复杂度,无需窗口化,可以进行全局的视觉特征感知,从而取得了相对于表3中窗口化DeiT更好的精度。

消融实验

双向SSM。如表4所示,双向SSM相较于原本的单向SSM取得了更高的分类精度, 且在下游的密集型预测任务上取得更为显著的优势。这一结果显示了本文提出的双向设计对于视觉特征学习的必要性与重要性。

cd0edd46-c9b8-11ef-9310-92fbcf53809c.png

表4 双向SSM建模消融实验

分类策略。在表5中,我们探索了以下几种分类策略:

cd2f1868-c9b8-11ef-9310-92fbcf53809c.png

表5 分类策略消融实验

·Mean pool,将最后Vision Mamba编码器输出的特征进行平均池化。

·Max pool,将最后Vision Mamba编码器输出的特征进行最大化池化。

·Head class token,将类别标记词元置于图像块序列头部。

·Double class token,将类别标记词元置于图像块序列两端。

·Middle class token,将类别标记词元置于图像块序列中间。

如表5所示,实验结果表明,中间类别标记策略能够充分利用SSM的循环特性和ImageNet中的中心对象先验,展示了最佳的top-1准确率76.1。

总结

该论文提出了Vision Mamba (Vim),以探索最新的高效状态空间模型Mamba作为通用视觉主干网络。与以往用于视觉任务的状态空间模型采用混合架构或等效的全局二维卷积核不同,Vim以序列建模的方式学习视觉表示,并未引入图像特定的归纳偏置。得益于所提出的双向状态空间建模,Vim实现了数据依赖的全局视觉上下文,并具备与Transformer相同的建模能力,同时计算复杂度更低。受益于Mamba的硬件感知设计,Vim在处理高分辨率图像时的推理速度和内存使用显著优于ViTs。在标准计算机视觉基准上的实验结果验证了Vim的建模能力和高效性,表明Vim具有成为下一代视觉主干网络的巨大潜力。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 网络
    +关注

    关注

    14

    文章

    7578

    浏览量

    88926
  • 模型
    +关注

    关注

    1

    文章

    3255

    浏览量

    48907
  • 自然语言处理

    关注

    1

    文章

    619

    浏览量

    13579
  • 地平线
    +关注

    关注

    0

    文章

    345

    浏览量

    14968

原文标题:地平线Vision Mamba:超越ViT,最具潜力的下一代通用视觉主干网络

文章出处:【微信号:horizonrobotics,微信公众号:地平线HorizonRobotics】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    LabVIEW Vision Assistant的图像处理,NI视觉助手教程免费阅读

    点击学习>>《龙哥手把手教你学LabVIEW视觉设计》视频教程LabVIEW Vision Assistant的图像处理,NI视觉助手教程免费阅读 非常好的份教程,特别的详细,比英文
    发表于 09-17 16:34

    视频教程-创建labveiw视觉通用平台()采集摄像头图像Uni-vision@qq.com

    ://www.chuanke.com/course/_labview_____.html论坛中创建labveiw视觉通用平台()采集摄像头图像https://bbs.elecfans.com/forum.ph
    发表于 04-05 18:16

    用 NI Vision Development Module(VDM)视觉开发模块 还是用 NI Vision Assistant视觉助手?

    用labview开发机器视觉程序时,用 NI Vision Development Module(VDM)视觉开发模块 还是用NI Vision Assistant
    发表于 07-22 16:09

    还在为非标项目单独开发视觉软件?你out了!labview通用视觉框架,真香!

    labview视觉非标软件开发直以来面临的问题是:算法复用性差,界面臃肿,软件开发周期长。针对这个问题,构思了一种极简易的通用视觉框架,课
    发表于 07-25 23:55

    分享一种不错的Xilinx Smarter Vision解决方案

    分享一种不错的Xilinx Smarter Vision解决方案
    发表于 06-03 06:22

    一种基于检索频度的网格资源描述模型

    网格发展的目的是资源共享,而资源描述是网格应用的关键。本文给出一种根据资源检索频度划分的通用资源描述模型及其工程实现,经实验分析,该模型优于完全描述
    发表于 09-03 17:34 6次下载

    一种改进的视觉词袋方法

    视觉词袋模型广泛地应用于图像分类与图像检索等领域.在传统词袋模型中,视觉单词统计方法忽略了视觉词之间的空间信息以及分类对象形状信息。导致图像
    发表于 12-28 17:36 3次下载

    一种融合视觉词汇空间信息的主题模型

    针对主题模型中词汇独立性和主题独立性假设忽略了视觉词汇间空间关系的问题,提出了一种融合了视觉词汇空间信息的主题模型,称为马尔可夫主题随机场(
    发表于 12-30 13:44 0次下载
    <b class='flag-5'>一种</b>融合<b class='flag-5'>视觉</b>词汇空间信息的主题<b class='flag-5'>模型</b>

    微软视觉语言模型有显著超越人类的表现

    最近开发了一种新的图像编码对象属性检测模型,称为VinVL(Visual features in Vision-Language),有着显著超越人类的表现。
    的头像 发表于 01-19 14:32 1677次阅读

    通用视觉GPT时刻来临?智源推出通用分割模型SegGPT

    无论是 “触即通” 还是 “通百通”,都意味着视觉模型已经 “理解” 了图像结构。SAM 精细标注能力与 SegGPT 的通用分割标注能
    的头像 发表于 04-09 09:40 1447次阅读

    Transformer迎来强劲竞争者 新架构Mamba引爆AI圈!

    作为通用序列模型的骨干,Mamba 在语言、音频和基因组学等多种模态中都达到了 SOTA 性能。在语言建模方面,无论是预训练还是下游评估,他们的 Mamba-3B
    发表于 12-07 14:14 504次阅读
    Transformer迎来强劲竞争者 新架构<b class='flag-5'>Mamba</b>引爆AI圈!

    微软发布PhI-3-Vision模型,提升视觉AI效率

    Phi-3-vision一种小型多模式语言模型(SLM),主要适用于本地人工智能场景。其模型参数高达 42 亿,上下文序列包含 128k 个符号,可满足各种
    的头像 发表于 05-28 11:35 506次阅读

    用Ollama轻松搞定Llama 3.2 Vision模型本地部署

    Ollama的安装。 ,Llama3.2 Vision简介 Llama 3.2 Vision个多模态大型语言模型(LLMs)的集合,它
    的头像 发表于 11-23 17:22 1205次阅读
    用Ollama轻松搞定Llama 3.2 <b class='flag-5'>Vision</b><b class='flag-5'>模型</b>本地部署

    Mamba入局图像复原,达成新SOTA

    图像复原又来新突破了!还记得性能超越SwinIR(基于Transformer)的MambaIR吗?一种基于Mamba的图像复原基准模型,登上ECCV 2024。最近原作者又开发了新版本
    的头像 发表于 12-30 18:09 134次阅读
    <b class='flag-5'>Mamba</b>入局图像复原,达成新SOTA

    港大提出SparX:强化Vision Mamba和Transformer的稀疏跳跃连接机制

    本文分享香港大学计算和数据科学学院俞益洲教授及其研究团队发表于 AAAI 2025 的论文——SparX,一种强化 Vision Mamba 和 Transformer 的稀疏跳跃连接机制,性能强大
    的头像 发表于 01-03 09:28 79次阅读
    港大提出SparX:强化<b class='flag-5'>Vision</b> <b class='flag-5'>Mamba</b>和Transformer的稀疏跳跃连接机制