作者:Yiwen Chen, Zilong Chen 等 来源:ArXiv 2023 论文题目:GaussianEditor: Swift and Controllable 3D Editing with Gaussian Splatting 论文链接:https://arxiv.org/abs/2311.14521 内容整理:王秋文
开发用户友好的 3D 表征和编辑算法是计算机视觉领域的一个关键目标。NeRF等隐式三维表征具有高保真的渲染能力,但其限制了对场景部分的直接修改,使得编辑任务更为复杂,阻碍了实际应用。基于这些挑战,本文额定研究重点是开发一种先进的三维编辑算法,该算法旨在灵活快速地编辑3D场景,集成隐式编辑(如基于文本的编辑)和显式控制(如特定区域修改的边界框使用)。为了实现这些目标,作者选择高斯表征(GS)进行实时渲染和显式点云表示。本文提出的 GaussianEditor 提供快速、可控和通用的 3D 编辑功能。单个编辑会话通常只需要 5-10 分钟,比以往的编辑过程快得多。本文的贡献可以概括为四个方面:
作者对在 GS 上进行三维编辑的任务如下定义;给定一个文本提示
以及一个用 3D GS 表征的场景
,其中
表示第 i 个高斯的参数,目标是得到一个编辑后与文本提示
一致的 3D 高斯
。
3D编辑中的已有工作通常使用静态 2D 或 3D 掩模,并仅在掩模像素内应用损失,从而将编辑过程限制为仅编辑所需区域。但是,这种方法有局限性。随着 3D 场景表征在训练过程中的动态变化,静态分割掩模将变得不准确甚至无效。此外,在NeRF编辑中使用静态掩模来控制梯度有明显的限制,因为它将编辑严格限制在掩模区域内,这一限制防止编辑后的内容自然扩展到掩模之外,从而将内容“锁定”在指定的空间边界内。
即使使用语义 NeRF,梯度控制仍然仅在训练一开始有效,因为对 NeRF 的持续更新会导致语义领域的准确性损失。为了解决上述问题,作者选择 GS 作为本文的 3D 表示,因为它具有明确的性质含义。这使作者能够直接为每个高斯点分配语义标签,从而促进 3D 场景中的语义追踪。具体来说,通过添加一个新的属性
来增强 3D 高斯
,其中
表示第
个高斯点和第
个语义标签的语义高斯掩膜。有了这个属性,就可以通过选择性地只更新目标 3D 高斯来精确控制编辑过程。在致密化过程中,新致密点继承了其父点的语义标签。这确保了在整个训练过程中的每一刻都有一个准确的3D语义掩码。

图1 高斯语义追踪的示意图(Prompt: Turn him into an old lady)
正如图 1 所示,高斯语义追踪能够在训练期间连续追踪每个高斯类别,并根据其演变的属性和数量进行调整。这一特性至关重要,因为它允许选择性应用与特定类别相关的梯度、致密化和修剪高斯。此外,它仅通过渲染目标对象来方便训练,大大加快了复杂场景中的过程。高斯的语义掩码
起到动态分割 3D 掩码的作用,随着训练而变化,允许内容在空间中自由扩展。
高斯溅射逆投影是本文提出的获得语义高斯掩码
的方法。对于一组 3D 高斯
,从多个视点对其进行渲染,以生成一系列渲染
。然后使用 2D 分割技术对这些渲染进行处理,以获得 2D 分割掩码
,每个
表示第
个语义标签。
为了获得每个高斯的语义标签,作者通过逆向渲染将提出的 2D 语义标签重新投影到高斯。具体来说,为每个高斯保持了一个权重和一个计数器。对于语义图中的像素
,作者通过如下公式将语义标签逆投影回去:
其中,
表示第
个高斯对第
语义标签的权重,
表示像素
相对于第
个高斯的不透明度,透射率以及语义标签。在更新了所有的高斯权重以及计数器之后,将根据权重是否超过设定的阈值决定第
个高斯是否属于第
个语义类。
原始 GS 在重建任务中的有效性在于由 SFM 衍生的点云提供的高质量初始化,以及来自 GT 数据集的稳定监督。然而,在生成领域,情况发生了变化。在过去涉及 GS 在文本到3D和图像到3D中的工作中,由于GS 是一种类似点云的表示,因此在面对生成引导的随机性时显示出局限性。这种不稳定性主要是由于它们直接暴露于损失函数的随机性,不像基于神经网络的隐式表示,GS模型在每步训练中需要更新大量高斯点,缺乏神经网络的记忆和调节能力,这将导致不稳定的更新和保存。
为了解决这些问题,作者引入了分层高斯溅射(HGS),这是一种更适合生成和编辑场景的高斯溅射的结构化表示。HGS 基于某个高斯点产生时的具体的致密化代数将 GS 分为不同的世代。初始化时的高斯
被记为 0。在编辑的训练过程中,在第
次致密化时生成的点被记为
。
随后,作者对不同世代的高斯施加不同的约束来控制它们的灵活程度。产生的时间越长,所施加的变化约束就越强。锚定损失被用来加强这些约束。在训练开始时,HGS 记录所有高斯分布的属性作为锚点。接着在每个致密化过程中,这些锚点属性将会被更新以反映高斯函数的当前状态。在训练过程中,利用锚态和当前状态之间的 MSE 损失来确保高斯函数不会偏离各自的锚点太远:
其中,
表示高斯的总数,
表示当前高斯的某个性质,包括
,
指的是在锚定状态下记录的相同性质。
表示应用于第
个高斯的锚定损失的强度,该强度根据其生成而变化。整体训练损失定义为:
HGS的分代设计防止了 GS 在面临随机损失时出现过度灵活性的问题。随着每一次致密化,前面生成的高斯的锚定损失权重都会增加。因此,现有已存在的高斯的流动性逐渐减少,直到几乎固化。这种方法确保了在随机损失下的稳定构造,依靠新致密化中几乎不受约束的高斯来雕刻细节。此外,这种应用锚定损失的方法可以有效地满足各种编辑需求。例如,为了限制原始 GS 的变化,可以增加第 0 代的锚损失权重。类似地,如果在编辑过程中不希望更改颜色或几何体,则可以对这些特定特性应用更强的锚点丢失。此外,为了解决手动确定致密化阈值的挑战,作者基于百分比标准来调节致密化过程。在这种方法中,在每个致密化步骤中,只选择性地致密那些 3D 位置的梯度在前
内的高斯。事实证明,这种策略比在分层高斯飞溅(HGS)框架中直接设置阈值更易于管理和直观。
物体移除
简单地去除由掩模表示的高斯可能导致伪影,特别是在物体与其他高斯函数相交的接口处。为了解决这个问题,作者采用 2D 补全技术来提供填充这些区域的指导。然而,有效的 2D 补全需要精确的掩模来提供更好的指导。为了生成这些掩膜,在删除物体后,使用 KNN 算法来识别最接近被删除的高斯,它们很可能在接口处。然后将这些投影到各种视角上。随后,作者扩大掩模并修复孔洞,以准确地表示接口处,从而为边界区域创建精细的掩模。整个物体移除过程通常只需两分钟。
物体插入
作者将此任务定义如下:在 3D 高斯
内,给定相机姿态
和从该视点进行的相应渲染图像
,用户在
上提供 2D 掩模
,指示他们希望插入的区域。此外,还提供了一个提示
来指定修复的内容。然后作者更新
以满足补全需求。该过程利用 2D 补全扩散模型生成 2D 图像
开始。随后,对创建的
的前景对象进行分割,并将其输入到图像到 3D 的方法中,以生成粗略的 3D 网格。然后将该粗网格转换为 3D 高斯
,并使用 HGS 进行细化。为了将
的坐标系与
对齐,首先使用单目深度估计技术来估计
的深度。然后,使用最小二乘法将该深度与
在相机姿态
处渲染的深度图对齐。通过这种对齐,我们可以准确地确定修复前景对象在
坐标系中的坐标和比例。在将
转换为
的坐标系后,只需将它们连接起来,即可生成最终的三维高斯。需要注意的是,由于本文方法的高效设计,整个对象合并过程可以在大约5分钟内完成。
在本文提出的框架下,使用 instruct-NerfNerf 以及 DDS 提出的两种三维引导生成方式相结合进行实验。将本文所提出的方法与 instruct-NerfNerf 相比较,得到的客观结果与主观比较结果如图 2 和图 3 所示。

图2 本文方法的客观比较结果

图3 本文方法的主观比较结果
可以发现本文所提出的方法可以将编辑更好地控制在一定区域内,而 iN2N 则会更改图像的其他区域。对本文提出的语义追踪进行消融实验,可以发现语义追踪较好地控制了场景的编辑区域,如图 4 所示。

图4 对语义追踪进行消融实验的比较结果
对本文提出的分层高斯进行消融实验,发现 HGS 可以大大提高场景编辑的稳定性,获得质量更高的编辑结果。

图5 对语义追踪进行消融实验的比较结果
最后,对三维补全方法进行了实验,得到的结果如图 6 和图 7 所示,说明了本文方法在物体删除和插入任务时的有效性。

图6 物体删除补全结果

图7 物体插入结果示意图