点云深度学习系列: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 理解提供了独特的见解。

相关推荐
ybdesire15 分钟前
nanoGPT用红楼梦数据从头训练babyGPT-12.32M实现任意问答
人工智能·深度学习·语言模型
shiming88791 小时前
MATLAB图像处理
图像处理·计算机视觉·matlab
geekrabbit2 小时前
机器学习和深度学习的区别
运维·人工智能·深度学习·机器学习·浪浪云
点PY3 小时前
基于Sparse Optical Flow 的Homography estimation
人工智能·opencv·计算机视觉
独木三绝4 小时前
OpenCV第八章——腐蚀与膨胀
人工智能·opencv·计算机视觉
柠檬少少开发5 小时前
图像拼接算法及实现(一)
人工智能·算法·计算机视觉
Python极客之家5 小时前
基于深度学习的眼部疾病检测识别系统
人工智能·python·深度学习·毕业设计·卷积神经网络
红米煮粥5 小时前
OpenCV-直方图
人工智能·opencv·计算机视觉
隔窗听雨眠6 小时前
计算机视觉学习路线
计算机视觉