《论文阅读07》Segment Anything in 3D with NeRFs

SA3D是一种将2D的SegmentAnythingModel(SAM)扩展到3D的方法,通过结合神经辐射场(NeRF)技术。给定NeRF和少量手动提示,SA3D能进行3D对象分割,通过迭代的掩模逆渲染和跨视图自提示过程完成。这种方法在多种场景和任务中表现有效,提供了一种资源高效的方式将2D视觉模型转换为3D应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、论文

  • 研究领域:图像分割(3D)
  • 论文:Segment Anything in 3D with NeRFs
  • Submitted on 24 Apr 2023 (v1), last revised 1 Jun 2023 (this version, v3)
  • Computer Vision and Pattern Recognition (cs.CV)
  • nvos数据集
  • 论文链接

二、论文概要

三、全文翻译

使用NeRFs在3D中分割任何内容

  • 摘要

最近,Segment Anything Model(SAM)作为一种强大的视觉基础模型出现,它能够分割2D图像中的任何东西。本文的目的是推广SAM分割三维物体。我们设计了一种高效的解决方案,而不是复制3D中昂贵的数据采集和注释过程,利用神经辐射场(NeRF)作为将多视图2D图像连接到3D空间的廉价和现成的先验。我们将所提出的解决方案称为SA3D,即Segment Anything in 3D。只需要提供手动分割提示(例如,粗糙点),其用于在具有SAM的该视图中生成其2D掩模。接下来,SA3D交替地执行掩模逆绘制和跨视图自提示,以迭代地完成用体素网格构造的目标对象的3D掩模。前者在NeRF学习的密度分布的指导下,将SAM在当前视图中获得的2D掩模投影到3D掩模上;后者提取可靠的提示自动作为SAM的输入从NeRF渲染的2D掩模在另一个视图。我们在实验中表明,SA3D适应各种场景,并在几分钟内实现3D分割。我们的研究提供了一个通用的和有效的方法,以解除2D视觉基础模型到3D,只要2D模型可以稳定地解决提示分割跨多个视图。项目页面位于www.example.com。https://jumpat.github.io/SA3D/.

  • 介绍

计算机视觉社区一直在追求可以执行基本任务(例如,在任何场景中并且对于2D或3D图像数据,可以使用图像分割(例如,图像分割)。最近,Segment Anything Model(SAM)[22]出现并吸引了很多关注,因为它能够分割2D图像中的任何东西,但将SAM的能力推广到3D场景仍然大多数未被发现。人们可以选择复制SAM的流水线来收集和半自动注释一大组3D场景,但昂贵的负担似乎是大多数研究小组负担不起的。

选择复制SAM的流水线来收集和半自动注释一大组3D场景,但昂贵的负担似乎是大多数研究小组负担不起的

我们认识到

### Segment Anything Model在3D应用场景中的扩展 Segment Anything Model (SAM) 主要专注于二维图像的分割任务,其核心优势在于能够高效地对任意对象进行分割[^1]。然而,随着技术的发展,三维(3D)场景下的物体识别与分割需求日益增长。为了满足这一需求,研究者们正在探索将SAM应用于3D环境的方法。 #### 方法一:基于多视角融合的技术路径 一种可能的方式是从不同角度拍摄同一物体或场景的照片,并利用这些视图来构建3D模型。这种方法依赖于高质量的2D到3D转换算法,可以先使用SAM对每张图片执行精确的对象分割操作,之后再通过专门设计的空间映射函数把这些平面区域投影至立体空间内形成完整的表面表示。此过程涉及到复杂的几何变换计算: ```python import numpy as np from scipy.spatial.transform import Rotation as R def project_2d_to_3d(points, rotation_matrix=R.from_euler('xyz', [0, 0, 0]), translation_vector=np.array([0, 0, 0])): """ 将2D坐标系下的一组点集投射回原始3D世界坐标系中 参数: points (numpy.ndarray): 形状为(N, 2) 的数组,代表N个像素位置(x,y). rotation_matrix (scipy.spatial.transform.Rotation): 描述相机姿态旋转的角度. translation_vector (numpy.ndarray): 表示摄像机相对于世界的平移向量. 返回值: projected_points (numpy.ndarray): 转换后的形状为(N, 3)的世界坐标系下的点云数据. """ # 假设已知内部参数矩阵K和深度z=1的情况下简单反解P=[X,Y,Z]^T K_inv = np.linalg.inv(np.eye(3)) # 这里简化处理,默认单位阵作为内参逆矩阵 homogeneous_coords = np.hstack((points, np.ones((len(points), 1)))) unprojected_homogeneous = K_inv @ homogeneous_coords.T * 1.0 rotated_translated = ((rotation_matrix.as_matrix() @ unprojected_homogeneous).T + translation_vector) return rotated_translated[:, :3] ``` #### 方法二:直接针对LiDAR点云或其他形式的3D传感器输入优化 另一种更直接的办法是修改现有的SAM架构使其可以直接接受来自激光雷达(LiDAR)或者其他类型的3D扫描设备所获取的数据流作为输入源。这通常意味着需要重新定义特征提取层以适应新的维度特性,并调整损失函数以便更好地指导网络学习如何区分不同的物质属性比如反射率等物理性质差异显著的目标类别。对于这类应用来说,保持原有的交互式提示机制同样重要,因为用户可能会希望指定某些特定的兴趣区或者提供额外的信息帮助提高最终结果的质量。 尽管上述两种方案都展示了潜在的研究方向,但在实际部署之前还需要克服许多技术和工程上的难题。例如,确保足够的精度、速度以及鲁棒性;解决由于遮挡造成的不完全观测问题;还有就是成本效益方面的考量等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值