点云深度学习系列:Sam2Point——基于提示的点云分割

news2024/9/26 7:00:55

文章:SAM2POINT:Segment Any 3D as Videos in Zero-shot and Promptable Manners

代码:https://github.com/ZiyuGuo99/SAM2Point

Demo:https://huggingface.co/spaces/ZiyuG/SAM2Point

1)摘要

文章介绍了SAM2POINT,这是一种初步探索,采用 Segment Anything Model 2 (SAM2) 进行zero-shot和可提示的3D分割。SAM2POINT将任何 3D 数据解释为一系列多向视频,并利用SAM2进行3D空间分割,无需进一步训练或2D-3D投影。文中的框架支持各种提示类型,包括3D点、框和蒙版,并且可以泛化到各种场景,例如3D对象、室内场景、室外场景和原始激光雷达。在多个3D数据集(例如Objaverse、S3DIS、ScanNet、Semantic3D 和 KITTI)上的演示突出了SAM2POINT的强大泛化功能。据作者了解,其展示的SAM 在 3D 中最真实的实现,这可能作为未来快速 3D 分割研究的起点。

2)创新点

现有SAM在3D上的工作存在以下问题:

①低效的2D-3D投影——考虑到 2D 和 3D 之间的域差距,大多数现有工作将 3D 数据表示为其 2D 对应物作为 SAM 的输入,并将分割结果反向投影到 3D 空间,这种模式转换会带来显著的处理复杂性,从而阻碍高效实施;

②3D空间信息退化——对 2D 投影的依赖会导致精细的 3D 几何图形和语义的丢失,因为多视图数据通常无法保持空间关系。此外,2D 图像无法充分捕捉 3D 对象的内部结构,这严重限制了分割精度

③提示词灵活性不足——SAM 的一个引人注目的优势在于它通过各种提示替代方案的交互功能。不幸的是,这些功能在当前方法中大多被忽视,因为用户很难使用 2D 表示指定精确的 3D 位置。因此,SAM 通常用于整个多视图图像的密集分割,从而牺牲了交互性;

④域泛化性能受限——现有的 2D-3D 投影技术通常是针对特定的 3D 场景量身定制的,在很大程度上依赖于域内图形。这使得它们难以应用于新的环境,例如,从对象到场景或从室内到室外环境。另一个研究方向旨在从头开始在3D中训练一个可提示的网络。虽然绕过了对 2D 投影的需求,但它需要大量的训练和数据资源,并且可能仍会受到训练数据分布的限制。

文章创新点:

①将3D点云转换为视频进行分割——为了在分割过程中保留 3D 几何图形,同时确保与 SAM 2 的兼容性,我们采用体素化来模拟视频。体素化 3D 数据的形状为 w × h × l × 3,与 w × h × t × 3 的视频格式非常相似。这种表示允许 SAM 2 进行零样本 3D 分割,同时保留足够的空间信息,而无需额外的训练或 2D-3D 投影;

②支持多种3D提示词——SAM2POINT 基于 SAM 2 构建,支持三种类型的提示:3D 点、边界框和蒙版。从用户提供的 3D 提示开始,例如一个点 (x, y, z),我们将 3D 空间划分为三个正交方向,生成六个相应的视频。然后,将多向分割结果整合在一起,形成 3D 空间中的最终预测,从而允许交互式可提示分割;

③能泛化到各种场景——SAM2POINT 在具有不同点云分布的不同 3D 场景中展示了强大的泛化能力。文中方法可以有效地分割单个物体、室内场景、室外场景和原始 LiDAR,凸显其在不同领域的卓越可传递性。

3)算法结构

A 3D数据转换为视频格式

给定任何对象级或场景级点云,我们用 P ∈ R n×6 表示它,每个点都表示为 p = (x, y, z, r, g, b)。我们的目标是将 P 转换为一种数据格式,一方面,SAM 2 可以直接以零样本方式处理,另一方面,可以很好地保留细粒度的空间几何特性。为此,我们采用了 3D 体素化技术。与 RGB 图像映射、多视图渲染和 NeRF相比,体素化在 3D 空间中高效执行,避免了信息退化和繁琐的后处理。

通过这种方式,我们获得了 3D 输入的体素化表示,用 V ∈ R w×h×l×3 表示,每个体素为 v = (r, g, b)。为简单起见,根据最接近体素中心的点设置 (r, g, b) 值。此格式与形状为 w×h×t×3 的视频非常相似。主要区别在于,视频数据包含跨 t 帧的单向时间依赖性,而 3D 体素在三个空间维度上是各向同性的。考虑到这一点,作者将体素表示转换为一系列多向视频,从而激发 SAM 2 以与视频相同的方式分割 3D点云空间。

B 基于提示进行数据分割

为了实现灵活的交互性,文中的 SAM2POINT 支持 3D 空间中的三种类型的提示,可以单独使用,也可以联合使用。

①3D点提示——表示为 。我们首先将 视为 3D 空间中的锚点,以定义三个正交的 2D 截面。从这些部分开始,我们将 3D 体素沿六个空间方向分为六个子部分,即前、后、左、右、上和下。然后,我们将它们视为六个不同的视频,其中该部分作为第一帧, 被投影为 2D 点提示。在应用 SAM 2 进行并发分割后,我们将 6 个视频的结果整合为最终的 3D 蒙版预测。

②3D框提示——表示为 ,包括 3D 中心坐标和尺寸。我们采用的几何中心作为锚点,如前所述,用 6 个不同的视频表示 3D 体素。对于某个方向的视频,我们将 投影到相应的 2D 截面中,作为分割的框点。我们还支持具有旋转角度的 3D 框,例如 ,其中投影 的边界矩形被用作 2D 提示。

③3Dmask提示——表示为 Mp ∈ R n×1 ,其中 1 或 0 表示掩码和未掩码区域。我们以蒙版提示的重心作为锚点,同样将 3D 空间划分为 6 个视频。3D 蒙版提示与每个部分之间的交集用作分段的 2D 蒙版提示。这种类型的提示还可以用作后优化步骤,以提高先前预测的 3D 掩码的准确性。

4)实验

(1)3D对象

(2)室内场景

(3)室外场景

(4)原始激光扫描数据

5)结论

在这个项目中,作者提出了 SAM2POINT,它利用 Segment Anything 2 (SAM 2) 到 3D 分割,具有零样本和可提示的框架。通过将 3D 数据表示为多向视频,SAM2POINT 支持各种类型的提示(3D 点、框和掩码),并在各种 3D 场景(3D 对象、室内场景、室外环境和原始稀疏 LiDAR)中表现出强大的泛化能力。作为初步调查,SAM2POINT 为调整 SAM 2 以实现有效和高效的 3D 理解提供了独特的见解。

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

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

相关文章

跟《经济学人》学英文:2024年09月14日这期 People are splurging like never before on their pets

People are splurging like never before on their pets Would you buy your furry companion a cologne? like never before:从未有过;未曾发生过 splurge:挥霍;浪费;破费;大量花费;过度消…

python 读取excel数据存储到mysql

一、安装依赖 pip install mysql-connector-python 二、mysql添加表students CREATE TABLE students (ID int(11) NOT NULL AUTO_INCREMENT,Name varchar(50) DEFAULT NULL,Sex varchar(50) DEFAULT NULL,PRIMARY KEY (ID) ) ENGINEInnoDB AUTO_INCREMENT13 DEFAULT CHARSETu…

S32K3 工具篇5:如何使用lauterbach下载调试elf文件

S32K3 工具篇5:如何使用lauterbach下载调试elf文件 一,利用trace32现有flash脚本烧录elf二,debug 现有elf文件 之前写过如何在S32DS中使用lauterbach下载,但是对于RTD EB MCAL的代码,通常情况下是使用命令的方式去编译…

Spring Boot母婴商城:安全、便捷、高效

2 相关技术 2.1 SSM框架介绍 本课题程序开发使用到的框架技术,英文名称缩写是SSM,在JavaWeb开发中使用的流行框架有SSH、SSM、SpringMVC等,作为一个课题程序采用SSH框架也可以,SSM框架也可以,SpringMVC也可以。SSH框架…

C语言 | Leetcode C语言题解之第399题除法求值

题目: 题解: /*** Note: The returned array must be malloced, assume caller calls free().*/typedef struct hash_node_t {char *key;double val;int distinguish_flag; // 用于区分不同的关系struct hash_node_t *p_next; }HASH_NODE_T;typedef str…

clip论文阅读(Learning Transferable Visual Models From Natural Language Supervision)

目录 摘要训练pre-train model的过程将pre-train model应用于下游任务应用(待更新) 论文/项目地址:https://github.com/OpenAI/CLIP 提供了clip的pre-trained model的权重,也可安装使用pre-trained model 摘要 使用标签标注的图…

【IEEEACM Fellow、CCF组委】第三届人工智能与智能信息处理国际学术会议(AIIIP 2024)

第三届人工智能与智能信息处理国际学术会议(AIIIP 2024) 2024 3rd International Conference on Artificial Intelligence and Intelligent Information Processing 中国-天津 | 2024年10月25-27日 | 会议官网:www.aiiip.net 会…

【CTF MISC】XCTF GFSJ1086 [简单] 简单的base编码 Writeup(Base64编码+循环解码+Base92编码)

[简单] 简单的base编码 你懂base编码吗? 工具 在线BASE92编码解码:https://ctf.bugku.com/tool/base92 解法 Vm0wd2QyUXlVWGxWV0d4V1YwZDRWMVl3WkRSV01WbDNXa1JTVjAxV2JETlhhMUpUVmpBeFYySkVUbGhoTVVwVVZtcEJlRll5U2tWVWJHaG9UVlZ3VlZadGNFSmxSbGw1V…

数据集 wider person 户外密集行人检测 >> DataBall

数据集 wider person 用于野外密集行人检测的多样化数据集 行人检测 目标检测 户外密集行人检测的多样化数据集 WiderPerson: A Diverse Dataset for Dense Pedestrian Detection in the Wild article{zhang2019widerperson, Author {Zhang, Shifeng and Xie, Yiliang and Wa…

蛋白质结构变换中的四元数和旋转矩阵介绍

在蛋白质结构变换中,四元数和旋转矩阵都是用来描述旋转的重要工具。 一、旋转矩阵 定义与形式: 旋转矩阵是一个 33 的矩阵,用于将一个向量在三维空间中进行旋转操作。它可以表示为:其中,每个元素都是实数,且满足一定的正交性条件,即旋转矩阵的逆等于它的转置。作用原理…

Stanley算法原理

Stanley Controller与Pure Pursuit算法类似,其同样是基于几何追踪的轨迹跟踪控制器,但是与Pure Pursuit不同的是,Stanley Controller算法基于前轮中心点为参考点进行控制,没有预瞄距离,以前轮中心点与最近参考轨迹点进…

『功能项目』切换职业面板【48】

我们打开上一篇47技能冷却蒙版的项目, 本章要做的事情是切换职业UI面板的功能 首先双击打开Canvas预制体在左上主角面板信息中新建一个button按钮 重命名(父物体是按钮Button,子物体Image即可) 创建一个Image 设计一下布局 复制三…

每日学习一个数据结构-B+树

文章目录 什么是B树示意图B树的基本特点B树的优点B树的应用场 B树分裂和合并的机制节点分裂节点合并注意事项 什么是B树 B树是一种自平衡的树数据结构,广泛应用于数据库和操作系统的索引结构中,特别是在MySQL的InnoDB存储引擎中。它通过保持数据排序&am…

Linux基础-Makefile的编写、以及编写第一个Linux程序:进度条(模拟在 方便下载的同时,更新图形化界面)

目录 一、Linux项目自动化构建工具-make/Makefile ​编辑 背景: makefile小技巧: 二、Linux第一个小程序-进度条 先导: 1.如何利用/r,fflush(stdout)来实现我们想要的效果; 2.写一个倒计时: 进度条…

[数据集][目标检测]智慧交通铁路人员危险行为躺站坐检测数据集VOC+YOLO格式3766张4类别

图片数量(jpg文件个数):3766 标注数量(xml文件个数):3766 标注数量(txt文件个数):3766 标注类别数:4 标注类别名称:["sitting","sleeping","standing","track"] 每个类别标注的框数&…

可解释性机器学习中的局部解释

可解释性机器学习可以被分成两大类,第一大类叫做局部的解释,第二大类叫做全局的 解释,如图 1 所示。局部的解释是,比如有一个图像分类器,输入一张图片,它会判断出 是一只猫,机器要回答问题是为什…

微分方程人口模型以及Matlab代码实现

马尔萨斯模型 模型假设 1.设x(t)表示t时刻的人口数,且x(t)连续可微。 2.人口的增长率r是常数(增长率出生率-死亡率)。 3.人口数量的变化是封闭的,即没有人口迁移,且人口数量的增加与减少只取决于人口中个体的生育和死亡,且每一个体都具有同样的生育能力与死亡率。…

Parallels Desktop 20 for Mac中文版发布了?会哪些新功能

Parallels Desktop 20 for Mac 正式发布,完全支持 macOS Sequoia 和 Windows 11 24H2,并且在企业版中引入了全新的管理门户。 据介绍,新版本针对 Windows、macOS 和 Linux 虚拟机进行了大量更新,最大的亮点是全新推出的 Parallels…

项目升级必备!TS装饰器:简化代码、增加功能的利器 | TypeScript入门指南07

嘿,朋友!听说过TS里的装饰器没?就像给代码加了个‘魔法贴’,轻轻一点,功能升级,结构清晰。这篇文章,咱们聊聊这背后的魔法是怎么一回事! ts 入门指南系列 Ts vs Js 谁适合前端开发&a…

【笔记】位运算

文章目录 位运算简介与运算&或运算|异或运算^证明 取反~左移<<右移>> 位运算技巧判断奇偶性求出x二进制的第i位将二进制的第i位设置成1将二进制的第i位设置成0判断是否为2的若干次方获取x的最低位的1用lowbit运算统计1的个数例题 位运算简介 位运算&#xff1…