PointMamba: A Simple State Space Model for Point Cloud Analysis——点云论文阅读(10)

news2024/11/24 11:07:41

此内容是论文总结,重点看思路!!

文章概述

这篇文章提出了PointMamba,一种基于状态空间模型(SSM)的点云分析方法,通过引入线性复杂度算法来实现高效的全局建模。与传统基于Transformer的点云方法不同,PointMamba显著减少了计算资源需求,使用空间填充曲线进行点云序列化,简化了模型架构,并在多个数据集上展示了优越的性能,为3D视觉任务提供了一个简单且有效的解决方案。

GitHub - LMD0311/PointMamba: [NeurIPS 2024] PointMamba: A Simple State Space Model for Point Cloud Analysis

PointMamba在性能、推理速度、GPU内存使用和计算开销方面相比Transformer模型的优势。PointMamba的线性复杂度使其在处理长序列时显得更加高效,适合在点云分析中替代传统的Transformer模型。

主要方法

1. 状态空间模型(State Space Model,SSM)

状态空间模型是用于序列数据建模的一种方法。传统的Transformer架构在处理点云数据时有一定的性能瓶颈,尤其是因为其注意力机制的二次复杂度会导致高计算成本。SSM提供了一种线性复杂度的替代方案,可以在不使用注意力机制的情况下实现有效的全局建模。

选择性SSM(Selective SSM)

在PointMamba中,选择性SSM(Selective SSM)是关键模块,它通过调整状态参数的选择来实现对输入数据的建模。Selective SSM使用一种特定的方式来选择性地利用前一时刻的状态信息进行建模,从而有效地降低了计算复杂度。这个模块允许模型在处理长序列时仍然保持较低的计算开销和较高的性能表现。

2. 空间填充曲线(Space-Filling Curves)

为了将三维点云数据转换为适合序列处理的格式,PointMamba引入了空间填充曲线的概念。空间填充曲线是一种将高维空间中的点序列化的方法,常用的曲线包括Hilbert曲线和Z-order曲线。在PointMamba中,作者使用了Hilbert曲线及其变体Trans-Hilbert曲线来将点云数据转换为一维序列,保持了相邻点在序列中的邻近关系。

具体步骤:

  • Hilbert曲线和Trans-Hilbert曲线:这两种空间填充曲线用于从不同的方向扫描点云,以生成两种不同的序列化点集。Hilbert曲线是一种有良好局部性的空间填充曲线,使得在一维序列中保留了点云数据的局部邻域信息。而Trans-Hilbert曲线是对Hilbert曲线的一种变体,它从另一种方向扫描数据,从而补充了Hilbert曲线的局部信息。

  • 保持局部邻域信息:通过空间填充曲线序列化点云数据,PointMamba可以在一维序列中保留点云的空间邻域结构,使得后续的特征提取更加准确。

3. 远点采样(Farthest Point Sampling,FPS)和K近邻(K-Nearest Neighbors,KNN)

  • Farthest Point Sampling (FPS):首先使用FPS算法对点云数据进行采样,以选择一组代表性的关键点。FPS的作用是确保采样点分布均匀,以捕获点云的整体结构特征。

  • K-Nearest Neighbors (KNN):对每个关键点使用KNN方法选择其K个邻居点,形成一个局部点集。这些局部点集将被转换为点云标记(tokens),用于后续的特征提取。

4. 序列指示器(Order Indicator)

序列指示器的作用是帮助模型区分由不同空间填充曲线生成的序列。由于Hilbert和Trans-Hilbert曲线产生的序列具有不同的空间扫描顺序,因此需要使用序列指示器来区分这两类序列。

  • 缩放(Scale)和偏移(Shift):在序列指示器中,模型通过缩放和偏移操作为每个序列应用特定的线性变换,从而区分不同扫描策略生成的序列。这一简单操作可以让模型更好地保持空间信息的一致性,并提高模型的表现力。

5. Mamba块(Mamba Block)

Mamba块是PointMamba模型的核心模块之一,它负责对点云序列数据进行特征提取。每个Mamba块包含多个基本操作层:

  • 线性变换(Linear):对输入特征进行线性变换,增强特征表达能力。

  • 选择性SSM:在Mamba块中嵌入选择性SSM,以捕获全局序列信息。选择性SSM允许模型对序列中每个点的状态信息进行动态选择和聚合,从而实现全局建模。

  • 深度卷积(Depth-Wise Convolution, DWConv):对序列数据的特征通道进行卷积操作,以增强模型的空间特征提取能力。

  • 层归一化(Layer Normalization, LN):用于稳定训练过程,提高模型的训练效率。

Mamba块的设计保持简单,不包含复杂的层次结构,通过多个Mamba块的堆叠,模型可以对序列化后的点云数据进行逐层特征提取。

6. 自监督预训练与掩码建模(Mask Modeling)

PointMamba在预训练阶段采用了一种基于掩码建模的自监督学习方法。具体步骤如下:

  • 掩码序列化点标记:对序列化的点标记进行部分掩码处理,以模拟丢失的信息。这种方法可以帮助模型在训练过程中学习到更具鲁棒性的特征。

  • 解码器与重构:掩码数据通过解码器重建,最终利用Chamfer距离作为损失函数来优化模型。通过这种方式,模型在自监督学习中学到了全局信息,提高了后续的特征提取能力。

PointMamba模型的主要工作流程

1.远点采样(Farthest Point Sampling, FPS)

  • 首先,PointMamba通过远点采样方法在输入的点云数据中选取关键点。这些关键点代表了点云的主要空间分布特征。

2.空间填充曲线(Space-Filling Curves)

  • 选取关键点后,使用两种空间填充曲线(Hilbert和Trans-Hilbert)对点云进行序列化。通过这些曲线,模型可以将点云数据转换为具有空间邻域特性的序列表示,使得序列中的点保留了三维空间中的局部性。

3.K近邻(K-Nearest Neighbors, KNN)

  • 利用KNN算法为每个关键点找到其邻域内的其他点,形成局部点集。这样每个关键点都与其邻域信息相结合,构成一个完整的点集表示。

4.Token嵌入层(Token Embedding Layer)

  • 局部点集传递给Token嵌入层,通过嵌入操作生成序列化的点云标记(tokens)。这些标记包含了每个关键点及其邻域的空间信息,作为序列化后的特征输入。

5.序列指示器(Order Indicator)

  • 为了区分由不同空间填充曲线生成的序列,PointMamba引入了“序列指示器”,通过缩放和偏移操作(Scale和Shift)标识Hilbert或Trans-Hilbert序列,确保模型能有效区分不同扫描方式生成的标记。

6.Vanilla Mamba Block

  • 序列化的点云标记接下来传入多个简单的、非层级结构的Mamba块(Vanilla Mamba Block)。每个Mamba块中包括层归一化、选择性SSM、深度卷积和线性变换等模块,帮助模型逐层提取点云的特征。

7.任务头(Task Head)

  • 最后,经过多个Mamba块提取的全局特征被送入任务头(Task Head),用于执行最终的任务输出(例如分类、分割等)。

PointMamba模型在预训练阶段使用的基于序列化的掩码建模(mask modeling)方法

1.点云数据处理

  • 输入的点云数据首先通过Farthest Point Sampling (FPS)进行采样,以选择关键点,这些关键点代表了点云的主要空间结构。

  • 采样后的关键点中心位置被标记为“Point center”。

2.空间填充曲线的选择

  • 预训练过程中,模型会随机选择一种空间填充曲线(Hilbert或Trans-Hilbert)来对关键点进行序列化。这种序列化将三维点云数据转换为一维序列,保持空间邻域关系,便于后续的特征提取。

3.Token嵌入层(Token Embedding Layer)

  • 序列化的关键点传递给Token嵌入层,将每个关键点转换为特征表示(tokens),形成序列化的点云标记。

4.序列指示器(Order Indicator)

  • 使用序列指示器来标识不同的空间填充曲线,确保模型能够区分Hilbert和Trans-Hilbert生成的序列。

5.自编码器预训练(Autoencoder Pre-training)

  • 预训练阶段,模型采用自编码器架构,其中Vanilla Mamba Encoder对序列化的标记进行编码,生成全局特征。

  • 随后,Vanilla Mamba Decoder对特征进行解码,以重建原始的点云数据。

  • 部分点云标记会被掩码,模型通过重构被掩码部分来学习点云的全局和局部特征。

6.损失计算

  • 重构结果与真实点云数据(GT)计算损失(例如Chamfer距离),用以优化模型,使其在预训练中学习到更鲁棒的特征。

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

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

相关文章

【LLM】【LLaMA-Factory】:Qwen2.5-Coder-7B能力测评

1 前期准备工作 1.1 环境概述 大模型框架:LLaMA-Factory CG客户端镜像:hiyouga/LLaMA-Factory/LLaMA-Factory / v4 cpu 架构 核心数 线程数 频率 内存使用情况 操作系统 GPU:四张4090显卡 CUDA python 以及相关依赖包 pytorch 1.2 数据准…

OpenAI CEO阿尔特曼预测AGI可能在五年内出现 对社会的影响远小于预期

OpenAI 不断探索人工智能及其所蕴含的技术可能性的工作已经引起了相当大的反响,用户和科技界都对其新发布的模型及其所蕴含的先进性着迷。 在公司大力发展 AGI(人工通用智能)的同时,许多知名公司的关键员工也加入了 OpenAI&#x…

AI周报(11.3-11.9)

AI应用--商务会议旅游必备 AI同传翻译耳机 作为一个经常出差和旅游的人,我深知语言不通带来的困扰。每次在国外旅行,面对不同语言的环境,总是让人头疼不已。幸好,现在有了AI同传翻译耳机,出门在外也能轻松交流。 时空…

qt QCompleter详解

1、概述 QCompleter是Qt框架中的一个类,用于为文本输入提供自动完成功能。它可以与Qt的输入控件(如QLineEdit、QTextEdit等)结合使用,根据用户的输入实时过滤数据源,并在输入控件下方或内部显示补全建议列表。用户可以…

为什么分布式光伏规模是6MW为界点

安科瑞 华楠 近日,能源局发布定义分布式光伏6MW及以上的光伏电站必须自发自用,自行消纳。多省能源局规定大于6MW的电站必须按集中式管理,另外大于6MW(包含)要省级审批,小于则由市级审批,10kV线…

【青牛科技】GC8549替代LV8549/ONSEMI在摇头机、舞台灯、打印机和白色家电等产品上的应用分析

引言 在现代电子产品中,控制芯片的性能直接影响到设备的功能和用户体验。摇头机、舞台灯、打印机和白色家电等领域对控制精度、功耗和成本等方面的要求日益提高。LV8549/ONSEMI等国际品牌的芯片曾是这些产品的主要选择,但随着国内半导体技术的进步&…

分析报告、调研报告、工作方案等的提示词

什么是提示词? 提示词的英文是Prompt,是你与人工智能(AI)进行交流的方式。简单来说,提示词就是你给AI的一段文字或问题,AI根据这段文字或问题来生成回应或完成任务。 举个例子:假设你在使用一…

Embedding 技术在推荐系统中的应用

参考自《深度学习推荐系统》——王喆,用于学习和记录。 介绍 Embedding,中文直译为“嵌入”,常被翻译为“向量化”或者“向量映射”。它的主要作用是将稀疏向量转换成稠密向量,便于上层深度神经网络处理。事实上,Emb…

解决Postman一直在转圈加载无法打开问题的方法

在使用Postman这款强大的API测试工具时,有时可能会遇到程序长时间加载而无法正常使用的情况。面对这样的问题,可以尝试以下几种解决办法: 方法一:直接运行Postman可执行文件 定位到Postman的安装目录 如果您不确定Postman的具体安…

机器学习—训练细节

首先回忆如何训练一个逻辑回归模型,建立一个Logistic回归模型是:你将指定如何计算输出给定输入特征x和参数w和b,在逻辑回归函数预测f(x)g,它是应用于w*xb的Z状结肠函数,所以如果znp.dot(w,x)b,f_x1/(1np.ex…

bert-base-uncased处理文档

1.安装必要的库 确保安装 transformers 和 torch 库: pip install transformers torch 2.加载本地 BERT 模型和分词器 由于已将模型和分词器下载到本地,可以指定文件路径加载。确保路径与本地文件结构一致。 from transformers import BertTokenizer…

Python http打印(http打印body)flask demo(http调试demo、http demo、http printer)

文章目录 代码解释 代码 # flask_http_printer.pyfrom flask import Flask, request, jsonify import jsonapp Flask(__name__)app.route(/printinfo, methods[POST]) def print_info():# 分隔符separator "-" * 60# 获取请求头headers request.headers# 获取 JS…

HTB:Perfection[WriteUP]

目录 连接至HTB服务器并启动靶机 1.What version of OpenSSH is running? 使用nmap对靶机TCP端口进行开放扫描 2.What programming language is the web application written in? 使用浏览器访问靶机80端口页面,并通过Wappalyzer查看页面脚本语言 3.Which e…

cursor+QT5.12.12

一、QT相关 1、环境设置相关 2、安装插件: 在CURSOR中安装以下插件: C/C插件:这是必需的,用于支持C/C语言开发。 Qt Configure:用于配置Qt环境。 Qt Tools:提供Qt相关的工具支持。 CMake:如果…

【Python】pandas 和numpy版本不兼容怎么办?遇到numpy.dtype size change的解决方法(解决方法篇)

前情简要: 之前我在写程序的时候,因为运行了别人写的程序文件,不知道为啥,直接报出了这个问题: ValueError: numpy.dtype size changed, may indicate binary incompatibility. Expected 96 from C header, got 88 f…

HTB:Devel[WriteUP]

目录 连接至HTB服务器并启动靶机 1.What is the name of the service is running on TCP port 21 on the target machine? 使用nmap对靶机TCP端口进行开放扫描 2.Which basic FTP command can be used to upload a single file onto the server? 尝试匿名连接至靶机FTP服…

【大数据学习 | kafka高级部分】kafka的kraft集群

首先我们分析一下zookeeper在kafka中的作用 zookeeper可以实现controller的选举,并且记录topic和partition的元数据信息,帮助多个broker同步数据信息。 在新版本中的kraft模式中可以这个管理和选举可以用kafka自己完成,而不再依赖zookeeper。…

漫谈MCU优化:从硬件设计优化到可靠性挑战

1.关于MCU 微控制器(Microcontroller Unit, MCU),是以微处理器为基础,加上存储器以及计数器、I2C、UART等外设模块与接口电路整合的单芯片微型计算机。 ▲MCU实物图 MCU拥有性能好、可编程、灵活度高、功耗低等优点,…

Notepad++ 更改字体大小和颜色

前言 在长时间编程或文本编辑过程中,合适的字体大小和颜色可以显著提高工作效率和减少眼睛疲劳。Notepad 提供了丰富的自定义选项,让你可以根据个人喜好调整编辑器的外观。 步骤详解 1. 更改字体大小 打开 Notepad 启动 Notepad 编辑器。 进入设置菜…

用友U8接口-isHasCounterSignPiid错误

错误消息 调用U813的审批流方法报错,找不到方法:“Boolean UFIDA.U8.Audit.BusinessService.ManualAudit.isHasCounterSignPiid System.Web.Services.Protocols.SoapException:服务器无法处理请求。 ---> System.MissingMethodException: 找不到方法:“Boolean…