当前位置: 首页 > article >正文

【Gaussian Grouping: Segment and Edit Anything in 3D Scenes】阅读笔记

1. 个人理解

和Gaussianformer都是ECCV的文章,都提出了给每一个gaussian加入一个元素来表明这个高斯属于某个类被,或者某个实体,也是本文的核心贡献。
本文可实现删除,换位置,修复等多个任务。

2. 论文原文

Abstract.

最近的 Gaussian Splatting 实现了 3D 场景的高质量和实时新颖视图合成。然而,它仅仅集中于外观和几何建模,而缺乏细粒度的对象级场景理解。为了解决这个问题,我们提出了高斯分组,它扩展了高斯分布以联合重建和分割开放世界 3D 场景中的任何内容。我们用紧凑的身份编码增强每个高斯,允许高斯根据其对象实例或 3D 场景中的东西成员身份进行分组。我们没有采用昂贵的 3D 标签,而是利用分段任意模型 (SAM) 的 2D 掩模预测以及引入的 3D 空间一致性正则化来监督可微渲染期间的身份编码。与隐式 NeRF 表示相比,我们表明离散和分组 3D 高斯可以以高视觉质量、精细粒度和效率重建、分割和编辑 3D 中的任何内容。基于高斯分组,我们进一步提出了局部高斯编辑方案,它表明在多功能场景编辑应用程序中的功效,包括 3D 对象移除、修复、着色、风格转换和场景重组。

1 Introduction

开放世界 3D 场景理解是一项重要挑战,对机器人、AR/VR 和自动驾驶具有深远影响。给定一组摆好姿势的 RGB 图像,我们的目标是学习有效的 3D 表示,联合重建和分割 3D 场景中的任何内容。该表示应轻松支持各种下游场景编辑应用程序。例如,在图 1 中,可以轻松删除或修复场景的 3D 对象,并且可以通过交换对象位置来重新组合场景。

虽然 SAM 及其变体 [14,17,64] 在 2D 场景理解方面取得了显着进展,但它们向 3D 的扩展受到了限制。这主要是由于创建 3D 场景数据集的可用性和劳动密集型过程。现有方法 [8, 42] 依赖于手动标记的数据集,这些数据集成本高昂且范围有限,或者需要精确扫描的点云 [37, 47] 作为输入。这阻碍了能够快速泛化各种现实世界场景的 3D 场景理解方法的发展。

通过多视图捕获,现有的基于 NeRF 的方法 [16,19,28,44] 提升 2D 掩模或通过神经场渲染提取 CLIP [39] / DINO [3] 特征。然而,由于 NeRF 的隐式和连续表示,这些方法需要昂贵的随机采样,并且优化计算量大。此外,很难直接调整基于 NeRF 的方法来进行下游本地编辑任务 [19],因为学习的神经网络(例如 MLP)无法轻松分解 3D 场景中的每个部分或模块。几种方法 [4, 43] 将 NeRF 或稳定扩散 [41] 与 SAM 掩模结合起来,但它们只关注单个对象。

作为 NeRF 的替代方案,最近出现的 3D Gaussian Splatting [15] 显示了令人印象深刻的重建质量以及高训练和渲染效率。它用一系列彩色和明确的 3D 高斯曲线表示 3D 场景,这些高斯曲线被渲染到相机视图中以进行新颖的视图合成。然而,高斯分布并不对对象实例或语义理解进行建模。为了实现细粒度的场景理解,我们将这种方法扩展到不仅仅捕获场景的外观和几何形状,还包括构成 3D 环境的各个对象和元素。

我们提出高斯分组,它用一组分组的 3D 高斯表示整个 3D 场景。通过输入多视图捕获和 SAM 自动生成的相应掩模,我们的方法学习离散和分组的 3D 表示,用于重建和分割 3D 场景中的任何内容。高斯分组继承了 SAM 强大的零样本 2D 场景理解能力,并通过产生一致的新颖视图合成和分割将其扩展到 3D 空间。
为此,我们的方法不是仅仅对场景外观和几何进行建模,而是通过分组来捕获 3D 场景的每个高斯的身份。每个高斯都增强了一个新属性,即我们的身份编码。身份编码是一种紧凑的低维可学习嵌入。为了利用 2D 中的分割监督,身份编码通过可微分高斯渲染进行训练,其中各种高斯的编码向量被投射到 2D 渲染视图上。然后,我们采用 2D 渲染的身份特征,并采用额外的线性层对每个 2D 位置上的这些分散嵌入进行分类,以进行身份​​分类。

为了进一步提高分组准确性,除了用于身份分类的标准交叉熵损失之外,我们还通过利用 3D 空间一致性引入无监督 3D 正则化损失。该损失强制顶部 K 最近的 3D 高斯的身份编码在其特征距离上接近。我们发现它有助于 3D 对象内部或严重遮挡的高斯在训练期间得到更充分的监督。

我们不仅通过提供高视觉质量和快速训练来突出高斯分组的优势,还通过我们的密集 3D 分割带来的下游场景编辑应用程序来突出高斯分组的优势。由于我们的模型将 3D 场景捕获为组合结构,因此每组 3D 高斯函数独立运行,从而允许部件完全解耦或分离。在需要识别、操作或替换单个组件而不破坏整个场景结构的场景中,这种分解至关重要。

我们的贡献可以概括如下:
1.我们引入了高斯分组,这是第一个基于 3D 高斯分布的分割框架,它将 SAM 知识提升到 3D 场景任何零样本分割,而不需要 3D 掩模标签。
2. 高斯分组通过我们提出的局部高斯编辑方案支持各种下游任务。单个组件的识别、操作或替换不会破坏整个场景结构。通过分组的 3D 高斯,我们展示了广泛的 3D 场景编辑案例,例如 3D 场景重新合成、对象修复、对象删除和对象风格转换,具有令人印象深刻的视觉效果和精细的粒度。
3.我们的训练和渲染过程很快,确保符合实时操作要求。

3 Method

我们的工作旨在构建富有表现力的 3D 场景表示,它不仅可以对外观和几何形状进行建模,还可以捕获场景的每个实例和物体身份。我们基于最近的 3D Gaussian Splatting [15] 设计我们的方法,并将其从纯 3D 重建扩展到细粒度的场景理解。我们的方法称为高斯分组,能够:1)使用外观、几何形状及其掩模标识对场景的每个 3D 部分进行建模; 2) 将 3D 场景完全分解为离散的组,例如代表不同的对象实例以进行编辑; 3)允许快速训练和渲染,同时不削弱原始3D重建质量。

高斯分组有效地利用了 SAM 的密集 2D 掩模建议,并提升它们通过辐射场渲染来分割 3D 场景中的任何内容。在第 3.1 节中,我们首先简要回顾一下辐射场渲染的 3D 高斯喷射方法。然后,我们详细介绍了输入数据预处理步骤,并在 3.2 节中进一步描述了所提出的高斯分组。最后,通过构建的 3D 表示,我们通过 3.3 节中的高效局部高斯编辑展示了其在下游场景编辑任务中的优势。
在这里插入图片描述

3.1 Preliminaries: 3D Gaussian Splatting

正如[15]所介绍的,高斯泼溅使用一组 3D 彩色高斯函数封装 3D 场景信息。该技术已在重建任务中发挥了有效性,在与 NeRF 相当的时间范围内表现出高推理速度和卓越的重建质量。然而,它在场景理解方面的潜力尚未得到彻底研究。我们的研究表明,3D 高斯对于开放世界和复杂的 3D 场景理解具有很大的前景。

为了表示场景,每个高斯属性的特征是质心 p = {x, y, z} ∈ R3、标准差中的 3D 大小 s ∈ R3 以及旋转四元数 q ∈ R4。为了允许快速 α 混合渲染,不透明度值 α ∈ R 和颜色矢量 c 以三个球谐函数 (SH) 系数表示。这些可调参数共同用 Sθi 表示,其中 Sθi = {pi, si, qi, αi, ci} 表示第 i 个高斯的参数集。 Gaussian Splatting 将这些 3D 高斯投影到 2D 图像平面上,并对每个像素实现可微渲染。

3.2 3D Gaussian Grouping

在本节中,我们将描述高斯分组的设计。为了使 3D 高斯能够进行细粒度的场景理解,我们的关键见解是我们在原始设置中保留高斯的所有属性(例如它们的位置、颜色、不透明度和大小),但添加新的身份编码参数(类似于颜色建模的格式)。这允许将每个高斯分配给 3D 场景中其表示的实例或内容。

高斯分组的过程如图 2 所示。我们概述了算法 1 中高斯分组的伪代码,其中我们用红色和粗体文本突出显示了引入的核心组件。
(a) 2D 图像和掩模输入 为了准备高斯分组的输入,在图 2(a) 中,我们首先部署 SAM 来自动为多视图集合的每个图像生成掩模。 2D 掩模是根据每个图像单独生成的。然后,为了在 3D 场景中为每个 2D mask 分配一个唯一的 ID,我们需要将不同视图中具有相同身份的 mask 关联起来,并获得 3D 场景中实例/东西的总数 K。
(b) 跨视图的身份一致性我们在训练期间没有采用基于成本的线性分配[44],而是将 3D 场景的多视图图像视为具有逐渐变化的视图的视频序列。为了实现跨视图的 2D 掩模一致性,我们采用训练有素的零样本跟踪器 [7] 来传播和关联掩模。这还提供了 3D 场景中掩模标识的总数。我们在图 2(b) 中可视化相关的 2D 掩模标签。与[44]中提出的基于成本的线性分配相比,我们发现它简化了训练难度,同时避免了在每次渲染迭代中重复计算匹配关系,从而导致超过 60 倍的加速。它还实现了比基于成本的线性分配更好的性能,特别是在 SAM 的密集和重叠掩模下。此外,我们在图 5 中展示了 3D 掩模关联的鲁棒性,其中视频中的 2D 关联掩模 [7] 包含明显的错误。
© 3D 高斯渲染和分组为了跨场景视图生成 3D 一致的掩模标识,我们建议对属于相同实例/内容的 3D 高斯进行分组。除了现有的高斯属性之外,我们还为每个高斯引入了一个新参数,即身份编码。身份编码是一个长度为 16 的可学习且紧凑的向量,我们发现它足以以计算效率区分场景中的不同对象/部分。在训练过程中,类似于表示每个高斯颜色的球谐函数(SH)系数,我们优化引入的身份编码向量来表示其场景的实例ID。请注意,与场景的视图相关外观建模不同,实例 ID 在各种渲染视图中是一致的。因此,我们将 Identity Encoding 的 SH 度设置为 0,以仅对其直流分量进行建模。与设计额外语义 MLP 层的基于 NeRF 的方法 [16,19,44] 不同,身份编码充当每个高斯的可学习属性来对 3D 场景进行分组。

为了优化引入的每个高斯的恒等编码,在图 2© 中,我们以可微分的方式将这些编码的恒等向量渲染成 2D 图像。我们采用[15]中的可微分3D高斯渲染器,并将渲染过程与[15]中的颜色(SH系数)优化类似。

3D高斯分布采用基于神经点的α′渲染[20,21],其中每个高斯的影响权重α′可以在2D中针对每个像素进行评估。按照[15],通过按深度顺序对高斯进行排序并混合与像素重叠的 N 个有序点来计算所有高斯对单个像素位置的影响[3​​0, 33]:
在这里插入图片描述

其中每个像素的最终渲染的 2D 掩码身份特征 Eid 是每个高斯长度为 16 的身份编码 ei 的加权和,由高斯对该像素的影响因子 α′ i 进行加权。参考[61],我们通过测量协方差 Σ2D 乘以学习的每点不透明度 αi 测量 2D 高斯来计算 α′ i,并且
在这里插入图片描述

其中 Σ3D 是 3D 协方差矩阵,Σ2D 是 splatted 2D 版本 [68]。 J 是 3D-2D 投影的仿射近似的雅可比矩阵,W 是世界到相机的变换矩阵。
(d) 分组损失在跨每个训练视图关联 2D 实例标签后,假设 3D 场景中总共有 K 个掩模。为了通过实例/东西掩码身份对每个 3D 高斯进行分组,我们设计了分组损失 Lid,用于更新具有两个组件的高斯的身份编码:

  1. 2D Identity Loss:由于掩模身份标签是2D的,而不是直接监督3D高斯的Identity Encoding ei。给定方程式中渲染的 2D 特征 Eid。以 1 作为输入,我们首先添加一个线性层 f 将其特征维度恢复回 K,然后采用 softmax (f (Eid)) 进行身份分类,其中 K 是 3D 场景中掩模的总数。我们采用标准交叉熵损失 L2d 进行 K 类别分类。
  2. 3D正则化损失:为了进一步提高高斯的分组精度,除了用于间接2D监督的标准交叉熵损失外,我们还引入了无监督的3D正则化损失来直接正则化Identity Encoding ei的学习。 3D 正则化损失利用 3D 空间一致性,强制前 k 个最近的 3D 高斯的身份编码在其特征距离上接近。这使得 3D 对象内部的 3D 高斯,或者在基于点的渲染(等式 1)期间被严重遮挡(在几乎所有训练视图中不可见)的 3D 高斯能够得到更充分的监督。在等式中。在图3中,我们将F表示为线性层f之后组合的softmax操作(在计算2D身份损失时共享)。我们将 m 个采样点的 KL 散度损失形式化为:
    在这里插入图片描述
    其中 P 包含 3D 高斯的采样身份编码 e,而集合 Q = {e′1, e′2, …, e′ k} 由 3D 欧几里得空间中的 k 个最近邻组成。为了简单起见,我们省略了线性层 f 之后组合的 softmax 操作。

结合图像渲染上的传统3D高斯重建损失Lrec[15],完全端到端训练的总损失Lrender为
在这里插入图片描述

3.3 Gaussian Grouping for Scene Editing

在 3D 高斯场训练和分组(第 3.2 节)之后,如图 3 所示,我们用一组分组的 3D 高斯表示整个 3D 场景。为了执行各种下游局部场景编辑任务,我们提出了高效的局部高斯编辑。由于解耦的场景表示,我们没有对所有 3D 高斯进行微调,而是冻结了大多数训练有素的高斯的属性,仅调整与编辑目标相关的现有或新添加的 3D 高斯的一小部分。对于 3D 对象移除,我们只需删除编辑目标的 3D 高斯。对于 3D 场景重新合成,我们交换两个高斯组之间的 3D 位置。这两个编辑应用程序是直接的,无需参数调整。对于 3D 对象修复,我们首先删除相关的 3D 高斯,然后添加少量新的高斯,以在渲染过程中由 LaMa [46] 的 2D 修复结果进行监督。对于 3D 对象着色,我们仅调整相应高斯组的颜色 (SH) 参数以保留学习的 3D 场景几何形状。对于 3D 对象样式迁移,我们进一步解冻 3D 位置和大小以获得更真实的结果。

正如我们的实验所示,我们的本地高斯编辑方案非常省时。由于我们的细粒度蒙版建模,它还支持多个并发本地编辑,而不会相互干扰或使用新的编辑操作重新训练整个全局 3D 场景表示。与基于 NeRF 的方法[12,19,34]相比,我们还为场景编辑案例提供了广泛的视觉比较,并在 Supp 中对掩模粒度进行了讨论。文件。

4 Experiments

在A6000上完成


http://www.kler.cn/a/369904.html

相关文章:

  • 【论文投稿】Python 网络爬虫:探秘网页数据抓取的奇妙世界
  • vue3组件传值具体使用
  • SQL UNION 和 UNION ALL 区别
  • vue3+uniapp开发鸿蒙初体验
  • 【机器学习案列】探索各因素对睡眠时间影响的回归分析
  • 嵌入式知识点总结 操作系统 专题提升(一)-进程和线程
  • Java最全面试题->数据库/中间件->KafKa面试题
  • matlab实现了基于移动可变形组件(Moving Morphable Components,MMC)的拓扑优化算法
  • svg 初识+了解 + 应用 + 动画
  • Java识别图片或扫描PDF中的文字
  • [NewStar 2024] week4
  • 微机原理与接口技术—— 总线形成(2)
  • Flutter升级与降级
  • 华为云企业门户EWP SSL证书安装指南
  • Vue.js 快速实战入门
  • VictoriaMetrics 中文教程(10)集群版介绍
  • 3.常见的线性规划应用实例
  • 【C语言】C语言入门--函数
  • 在Ubuntu上配置python环境
  • 0.96寸oled模块,多级菜单教程,用最简单的方式写出多级菜单,教程详解!!!让嵌入式小白变高手系列教程 一
  • 人工智能技术的未来应用前景:改变生活与工作的深远影响
  • Spring AI : Java写人工智能(LLM)的应用框架
  • python常见内置函数
  • 微信小程序学习实录11:精通表单数据绑定,构建高效用户界面
  • Ubuntu使用Tesla P4配置Anaconda+CUDA+PyTorch
  • 【系统设计】API版本控制的重要性及三种方法:Spring Boot示例