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


文章: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 理解提供了独特的见解。

相关推荐
惯导马工1 天前
【论文导读】ORB-SLAM3:An Accurate Open-Source Library for Visual, Visual-Inertial and
深度学习·算法
xiaohouzi1122332 天前
OpenCV的cv2.VideoCapture如何加GStreamer后端
人工智能·opencv·计算机视觉
小关会打代码2 天前
计算机视觉案例分享之答题卡识别
人工智能·计算机视觉
隐语SecretFlow2 天前
国人自研开源隐私计算框架SecretFlow,深度拆解框架及使用【开发者必看】
深度学习
天天进步20152 天前
用Python打造专业级老照片修复工具:让时光倒流的数字魔法
人工智能·计算机视觉
荼蘼2 天前
答题卡识别改分项目
人工智能·opencv·计算机视觉
Billy_Zuo2 天前
人工智能深度学习——卷积神经网络(CNN)
人工智能·深度学习·cnn
羊羊小栈2 天前
基于「YOLO目标检测 + 多模态AI分析」的遥感影像目标检测分析系统(vue+flask+数据集+模型训练)
人工智能·深度学习·yolo·目标检测·毕业设计·大作业
l12345sy2 天前
Day24_【深度学习—广播机制】
人工智能·pytorch·深度学习·广播机制
IT古董2 天前
【第五章:计算机视觉-项目实战之图像分类实战】1.经典卷积神经网络模型Backbone与图像-(4)经典卷积神经网络ResNet的架构讲解
人工智能·计算机视觉·cnn