[!abstract]
3D 编辑在游戏和虚拟现实等许多领域中起着至关重要的作用。传统的 3D 编辑方法,依赖于像网格和点云这样的表示方式,往往无法真实地描绘复杂的场景。另一方面,基于隐式 3D 表示的方法,如神经辐射场(NeRF),能够有效地渲染复杂的场景,但处理速度较慢,并且对特定场景区域的控制有限。
针对这些挑战,我们的论文提出了 GaussianEditor,一种基于高斯泼溅(GS)的创新高效的 3D 编辑算法,这是一种新颖的 3D 表示方法。GaussianEditor 通过我们提出的高斯语义追踪(Gaussian semantic tracing)来增强编辑的精度和控制能力,在训练过程中追踪编辑目标。此外,我们提出了分层高斯泼溅(HGS)来在二维扩散模型(2D diffusion models)的随机生成指导下实现稳定和精细的结果。我们还开发了高效的物体移除和整合(removal and integration)的编辑策略,这是现有方法面临的一个具有挑战性的任务。
我们的综合实验证明了 GaussianEditor 在控制能力、效果和快速性方面的优势,标志着 3D 编辑领域的重大进展。

1 介绍

在不断发展的计算机视觉领域中,开发用户友好的 3D 表示和编辑算法是一个关键目标。这些技术在各种应用中至关重要,从数字游戏到不断发展的元宇宙。传统的 3D 表示方法,如网格和点云,由于其交互式编辑能力而备受青睐。然而,这些方法在准确渲染复杂的 3D 场景方面面临挑战。
最近隐式3D 表示的兴起,以神经辐射场(NeRF)[28]为例,代表了3D 场景渲染的范式转变。NeRF 具有高保真度渲染的能力,结合其隐式性质提供的显著扩展性,相比传统方法[2, 55, 32]有了实质性的改进。这种双重优势使得 NeRF 框架在3D 编辑[45, 46, 12, 57, 31]中受到了重点关注,并确立了它作为一个重要方法的基础。然而,NeRF 对于场景数据编码依赖于高维多层感知(MLP)网络,存在一定的限制。它限制了对特定场景部分的直接修改,并且使内部绘制(inpainting) 和场景合成等任务变得复杂。这种复杂性延伸到训练和渲染过程中,阻碍了实际应用。

鉴于这些挑战,我们的研究重点是开发一种先进的 3D 编辑算法。 该算法旨在实现对 3D 场景的灵活和快速编辑,集成了隐式编辑(如基于文本的编辑)和显式控制(例如使用 bounding box 对特定区域进行修改)。为了实现这些目标,我们选择了高斯泼溅(GS)[15],因为它具有实时渲染和显式类点云(point cloud-like) 表示的特点。
然而,编辑高斯泼溅(GS)[15]面临着独特的挑战。一个主要问题是缺乏准确识别目标高斯的有效方法,这对于精确可控的编辑至关重要。此外,已经观察到使用高度随机的生成指导(generative guidance,如分数蒸馏采样[36])优化高斯泼溅(GS)存在重大挑战[7, 44, 52]。一个可能的解释是,与神经网络缓冲的隐式表示不同,GS 直接受到 loss 的随机性的影响。这种直接暴露导致更新不稳定,因为在训练过程中直接改变了高斯的属性。此外,GS 的每个训练步骤可能涉及对大量高斯点的更新。在没有神经网络风格的缓冲机制的调节影响下,这个过程会导致 3D GS 场景过于流动,使其在使用生成指导进行训练时无法收敛到像隐式表示那样精细的结果。


为了应对这些问题,在这项工作中,我们提出了一种新颖、快速、高度可控的高斯泼溅三维编辑算法 GaussianEditor。GaussianEditor 可以在几分钟内满足各种高质量编辑需求。我们方法的一个关键特点是引入了高斯语义追踪(Gaussian semantic tracing),这使得对高斯泼溅(GS)的精确控制成为可能。高斯语义追踪在训练过程中始终准确识别需要编辑的高斯。
这与传统的三维编辑方法形成对比,传统方法通常依赖于静态的二维或三维遮罩(masks)。随着三维模型的几何形状和外观在训练过程中的变化,这些遮罩的效果会逐渐减弱。高斯语义追踪通过将 2D 分割遮罩映射到 3D 高斯并为每个高斯分配一个语义标签(semantic tag)来实现。 随着高斯在训练过程中的演化,这些语义标签使得可以追踪特定的高斯用于编辑。我们的高斯追踪算法确保只有目标区域被修改,实现精确可控的编辑。


此外,为了解决高斯泼溅(GS)在高度随机生成引导下难以适应精细结果(fine results)的重要挑战,我们提出了一种新的 GS 表示方法:分层高斯泼溅(HGS)。 在 HGS 中,高斯根据它们在多次密集化过程中的顺序被组织成不同的世代(generations):

  • 在较早的密集化阶段形成的高斯被视为 older generations,并受到更严格的约束,旨在保持它们的原始状态,从而减少它们的移动性。
  • 相反,在后期形成的高斯被视为 younger generations,并受到较少或没有约束,从而具有更高的适应性。

HGS 的设计通过对 older generations 的限制,同时保留 younger generations 的灵活性,有效地调节了 GS 的流动性。这种方法能够持续优化以获得更好的结果,从而模拟通过神经网络实现的隐式表示中所实现的缓冲功能。我们的实验还表明,HGS 更擅长适应高度随机的生成指导。


最后,我们专门为高斯泼溅(GS)设计了一种 3D 修复算法。如图 1 所示,我们成功地从场景中移除了特定的对象,并将新对象无缝地集成到指定的区域。

  • 对于对象的移除,我们开发了一种专门的局部修复算法,能够高效地消除对象和场景相交处的伪影。
  • 对于添加对象,我们首先要求用户提供一个提示(prompt)和一个针对 GS 特定视角的二维内绘(inpainting)遮罩。随后,我们采用二维内绘方法生成待添加对象的单视角图像。
  • 然后,将该图像使用图像到 3D 转换技术转换为粗糙(coarse) 3D 网格。随后,将 3D 网格转换为 HGS 表示并进行细化(refined)。最后,将这个细化的表示连接到原始的 GS 中。
    上述整个修复过程在 5 分钟内完成。
    Pasted image 20240409095848

    图 1:GaussianEditor 的结果。GaussianEditor 提供快速、可控和多功能的 3D 编辑。单个编辑会话(editing session)只需要 5-10 分钟。请注意我们精确的编辑控制,只修改所需的部分。以图中第一行的“让草着火”为例,场景中的其他对象,如长椅和树木,保持不受影响。

GaussianEditor 提供快速、可控和多功能的 3D 编辑。单个编辑会话(editing session)只需要 5-10 分钟,比以前的编辑过程快得多。我们的贡献可以总结为四个方面:

  1. 我们引入了高斯语义追踪(Gaussian semantic tracing,),实现了更详细和有效的编辑控制。
  2. 我们提出了分层高斯泼溅(HGS),这是一种新颖的 GS 表示,能够在高度随机生成的指导下更稳定地收敛到细化的结果。
  3. 我们专门为高斯泼溅设计了一种 3D 修复算法,可以快速删除和添加对象。
  4. 大量实验证明,我们的方法在效果、速度和可控性方面超过了以前的 3D 编辑方法。

2 相关工作

2.1 3D 表示

各种 3D 表示方法已经被提出来解决不同的 3D 任务。开创性的工作,神经辐射场(NeRF)[28]采用体积渲染,因其仅需 2D 监督即可实现 3D 优化而受到欢迎。然而,尽管在 3D 重建[21, 6, 3, 13]和生成[35, 22]任务中被广泛使用,但优化 NeRF 可能耗时较长。尽管已经努力加速 NeRF 训练[29, 40],但这些方法主要集中在重建设置上,对生成设置的优化较少。常见的空间剪枝技术(spatial pruning)并不能有效加速生成设置。

最近,3D 高斯泼溅[15]已经成为 NeRF 的另一种替代 3D 表示方法,在 3D 和 4D 重建任务[15, 26, 50, 47, 51]中展示出令人印象深刻的质量和速度。它还在生成领域[7, 44, 52]引起了相当大的研究兴趣。其高效的可微分渲染实现和模型设计有助于快速训练,无需进行空间剪枝。

在这项工作中,我们首次将 3DGS 技术应用于 3D 编辑任务,旨在实现快速和可控的 3D 编辑,首次在这个背景下利用了这种表示的优势。

2.2 3D 编辑

由于形状和外观之间错综复杂的相互作用,编辑神经场本质上是具有挑战性的。EditNeRF [24]是该领域的开创性工作,他们通过对潜在代码进行调节来同时编辑神经场的形状和颜色。此外,一些工作[45, 46, 10, 1]利用 CLIP 模型通过文本提示或参考图像来促进编辑。

另一方面的研究关注于预定义的模板模型或骨架 (models or skeletons),以支持特定类别内的重新姿势或重新渲染等操作[33, 30]。基于几何的方法[54, 49, 48, 20]将神经场转化为网格,并将网格变形与隐式场同步。此外,3D 编辑技术涉及将 2D 图像处理(如修复)与神经场训练[23, 19]相结合。

并行工作[31, 57]利用静态的 2D 和 3D 遮罩来限制 NeRF 的编辑区域。然而,这些方法有其局限性,因为 3D 模型的训练是一个动态的过程,静态掩模无法有效地限制它。相比之下,我们的研究采用高斯语义追踪来跟踪整个训练过程中的目标高斯。

3 前期

3.1 3D 高斯泼溅介绍

3.2 基于扩散的编辑指导

Diffusion-based Editing Guidance

最近的进展已经看到许多作品将 2D 扩散过程提升到 3D,并广泛应用于 3D 编辑领域。广义上,这些作品可以分为两类。第一类[36, 31, 57, 42, 27, 8],以 Dreamfusion 的[36]引入的 SDS 损失为例,将当前 3D 模型的噪声渲染以及其他条件输入到 2D 扩散模型[39]中。扩散模型生成的分数然后指导模型更新的方向。第二类[12, 43, 37, 5]侧重于根据给定的多视角渲染的提示进行 2D 编辑。这种方法创建一个多视角 2D 图像数据集,然后将其用作训练目标,为 3D 模型提供指导。

我们的工作集中在利用 GS 的显式表示的优点来增强 3D 编辑。因此,我们不设计特定的编辑指导机制,而是直接使用上述的指导方法。

我们的方法可以应用这两种类型的指导(guidance)。为简单起见,我们将 guidance 普遍表示为 $D$ 。给定 3D 模型的参数 $\Theta$ ,以及渲染的相机姿态 $p$ 和提示(prompt) $e$ ,从 2D 扩散先验的 editing loss 可以表示如下:
$$
\mathcal{L}_{\mathrm{Edit}}=D(\Theta;p,e)\tag{5}
$$

4 方法

我们将基于高斯泼溅(GS)的 3D 编辑任务定义如下:

  • 给定一个提示(prompt) $y$ 和由 3D 高斯表示的 3D 场景,记为 $\Theta$ ,其中每个 $\Theta_i={x_i,s_i,q_i,\alpha_i,c_i}$ 表示第 $i$ 个高斯的参数
  • 目标是实现一个编辑后的 3D 高斯,称为 $\Theta_y$ ,使其符合提示 $y$ 的规格。

然后,我们介绍了在 GS 上执行编辑任务的新框架。

  • 第 4.1 节:介绍了高斯语义追踪
  • 第 4.2 节:介绍一种称为分层高斯泼溅(HGS)的新表示方法。GS 语义追踪能够在 GS 内进行精确的分割和追踪,从而促进可控的编辑操作。相对于标准的 GS,HGS 表示在生成引导的随机性方面表现出更强的鲁棒性,并且更擅长适应各种编辑场景。
  • 第 4.3 节:专门为 GS 设计了 3D 修复,包括物体的移除和添加。

4.1 高斯语义追踪

Gaussian Semantic Tracing

以往的研究[31, 57]在 3D 编辑中通常使用静态的 2D 或 3D 遮罩(mask),仅在遮罩像素内应用 loss ,从而将编辑过程限制在所需区域内。然而,这种方法存在局限性。随着 3D 表示在训练过程中动态变化,静态分割遮罩将变得不准确甚至无效。
此外,在 NeRF 编辑中使用静态遮罩来控制梯度存在显著的限制,因为它严格限制了编辑范围仅在遮罩区域内。此限制防止编辑内容自然地超出遮罩范围,从而将内容“锁定”在指定的空间边界内。
即使实施了语义 NeRF [56],梯度控制仍然只在训练的最开始阶段有效,因为对 NeRF 的持续更新导致语义领域的准确性丧失。

为解决上述问题,我们选择了高斯泼溅(GS)作为我们的 3D 表示,因为它具有显式特性。这使得我们能够直接为每个高斯点分配语义标签(semantic labels),从而便于在 3D 场景中进行语义追踪。
具体来说,我们通过添加一个新属性 $m$ 来增强 3D 高斯 $\Theta$ ,其中 $m_{ij}$ 表示第 $i$ 个高斯点和第 $j$ 个语义标签的高斯语义遮罩。有了这个属性,我们可以通过选择性地仅更新目标 3D 高斯来精确控制编辑过程。在密集化过程中,密集化产生的新点继承其父点的语义标签。这确保了在训练过程中的每一时刻都有准确的 3D 语义遮罩。

Pasted image 20240409110507

图 2:高斯语义追踪的示意图。提示:把他变成一个老太太。图像中的红色遮罩表示将要更新和密集化的高斯投影。通过高斯的更新驱动,遮罩区域在训练过程中动态变化,确保在整个训练过程中保持一致的有效性。尽管由于 2D 分割错误而导致的潜在不准确的分割遮罩,高斯语义追踪仍然保证了高质量的编辑结果。

如图 2 所示,高斯语义跟踪能够在训练过程中持续追踪每个高斯的类别,根据其不断变化的属性和数量进行调整。
这个功能非常重要,因为它允许选择性地应用梯度,对与指定类别相关的高斯进行密集化和剪枝。此外,它通过仅渲染目标对象来加速复杂场景中的训练过程。

高斯语义遮罩 $m$ 作为一个动态的 3D 分割遮罩,随着训练的进行而演化,允许内容在空间中自由扩展。而 NeRF 中的内容被限制在一个固定的空间区域内。

高斯泼溅反投影

接下来,我们讨论高斯泼溅反投影(GS unprojection),这是我们提出的一种获取高斯语义遮罩 $m$ 的方法

对于一组 3D 高斯 $\Theta$,我们从多个视点渲染它们,生成一系列渲染图像 $\mathcal{I}$。然后,使用 2D 分割技术[18]处理这些渲染图像,得到 2D 分割遮罩 $\mathcal{M}$,其中每个遮罩 $\mathcal{M}_j$ 表示第 $j$ 个语义标签。

为了获取每个高斯的语义标签,我们使用逆渲染将 2D 语义标签反投影回高斯。具体来说,我们为每个高斯维护一个权重和一个计数器。对于语义映射(semantic maps)上的像素 $\mathcal{p}$ ,我们通过下面的公式将语义标签反投影回影响它的高斯中:
$$
w_i^j=\sum o_i(\boldsymbol{p})*T_i^j(\boldsymbol{p})*\mathcal M^j(\boldsymbol{p})\tag{6}
$$
其中,

  • $w_i^j$ :第 $i$ 个高斯对第 $j$ 个语义标签的权重
  • $o_i(\boldsymbol{p})$:第 $i$ 个高斯的不透明度
  • $T_i^j(\boldsymbol{p})$:像素 $p$ 的透射率(对应第 $i$ 个高斯)
  • $M^j(\boldsymbol{p})$:像素 $p$ 的语义遮罩(对应第 $i$ 个高斯)

在更新所有高斯函数的权重和计数器后,我们根据其平均权重是否超过手动设置的阈值来确定一个高斯函数是否属于第 $j$ 个语义类别。

整个标注过程非常快速,通常不到一秒钟。一旦完成了这种语义标签分配,我们就可以对整个高斯场景进行解析,从而实现各种操作。这些操作包括手动更改颜色,移动特定类别的属性以及删除特定类别。值得注意的是,在复杂场景中,2D 扩散引导通常难以有效地编辑小物体。由于高斯语义跟踪的帮助,我们现在可以独立地渲染这些小物体并将它们输入到 2D 扩散模型中,从而实现更精确的监督。

4.2 层次高斯泼溅

Hierarchical Gaussian Splatting (HGS)

原版 GS [17] 在重建任务中的有效性在于由 SFM [41]导出的点云提供的高质量初始化,以及来自 GT 数据集的稳定监督。然而,在生成领域中情况发生了变化。在先前的文本到 3D 和图像到 3D 的工作中 [44, 7, 52],GS 在面对生成引导的随机性时显示出限制,这是由于其作为 point cloud-like 表示的本质所致。
GS 的不稳定性主要是由于它们直接暴露于损失函数的随机性,而不像基于神经网络的隐式表示。GS 模型在每个训练步骤中更新大量的高斯点,缺乏神经网络的记忆和调节能力。这导致不稳定的更新,并阻止 GS 实现神经网络基于隐式表示所见的详细结果,因为 GS 过于流动性阻碍了其在生成训练中的收敛。
为了解决这些挑战,我们引入了分层高斯泼溅(HGS),这是一种更适合生成和编辑场景的结构化表示。

HGS 根据产生特定高斯点的密度化轮次将 GS 分类为不同的世代(generations)。初始高斯 $\Theta$ 都被分配为 0 世代。在编辑的训练过程中,第 $k$ 轮密集化生成的点被标记为 $k$ 世代。随后,我们对不同世代的高斯分布施加不同的约束,以控制它们的灵活性程度。世代越老,施加的约束越强。我们使用锚点损失(Anchor loss)来强制执行这些约束。
在训练开始时,HGS 将所有高斯分布的属性记录为锚点。然后,在每个密集化过程中,这些锚点会被更新以反映高斯分布的当前状态。在训练过程中,使用锚定状态(anchor state)和当前状态之间的均方误差损失(MSE loss)作为锚定损失(anchor loss),来确保高斯不会偏离其相应的锚定状态:
$$
\mathcal{L}{anchor}^P=\sum{i=0}^n\lambda_i(P_i-\hat{P}_i)^2\tag{7}
$$
其中

  • $n$ 表示高斯分布的总数
  • $P$ 表示当前高斯的某个属性,包括来自集合 $x,s,q,\alpha,c$ 的元素。
  • $\hat{P}$ 表示在锚定状态中记录的相同属性。
  • $\lambda_i$ 表示应用于第 $i$ 个高斯的锚定损失的强度,其根据其生成方式而变化。

总体训练损失(training loss)定义如下:
$$
\mathcal{L}=\mathcal{L}{Edit}+\sum{P\in{x,s,q,\alpha,c}}\lambda_P\mathcal{L}_{anchor}^P\tag{8}
$$
其中

  • $\lambda_p$ 表示应用于属性 $p$ 的锚定损失的强度
  • $\mathcal{L}_{Edit}$ 是在第 3.2 节中定义的编辑损失 (editing loss)

优势:

  • HGS 中的这种世代设计可以避免 GS 在面对随机损失时过度灵活的问题。随着每次密度增加,所有先前的高斯的锚损失权重 $\lambda_i$ 都会增加。因此,现有世代的流动性逐渐减少,直到几乎凝固。
  • 这种方法确保在随机损失下稳定的几何形成,依靠新的密度增加中几乎无约束的高斯来雕刻细节。
  • 这种应用锚损失的方法可以有效满足各种编辑需求。 例如,为了限制对原始 GS 的更改,可以增加 0 世代的锚定损失权重。同样,如果在编辑过程中没有改变颜色或几何形状的需求,可以对这些特定属性应用更强的锚定损失。

对原版 GS 手动确定密集化阈值的改进:
为了解决手动确定密集化阈值的挑战,我们根据百分比准则调节密度化过程。在这种方法中,在每个密集化步骤中,我们只有在其 3D 位置梯度在前 $k%$ 的高斯函数中选择性地密集化。这种策略比直接在分层高斯泼溅(HGS)框架中设置阈值更易于管理和直观。

4.3 3D 内部绘制(Inpainting)

物体去除(Object Removal):仅仅通过去除由遮罩标识的高斯可能会导致伪影,特别是在物体与其他高斯相交的界面处。为了解决这个问题,我们采用 2D inpainting 技术来提供填充这些区域的指导(guidance)。

然而,有效的 2D inpainting 需要精确的遮罩来提供更好的指导。为了生成这些遮罩,在删除某位置后,我们使用 KNN 算法来识别最接近被删除位置的高斯,这些高斯函数很可能在 interface (怎么理解?) 上。然后将它们投影到各个视图上。随后,我们扩张遮罩并修复任何空洞,以准确表示 interface 区域,从而为边界区域创建一个细化的遮罩。整个对象移除过程通常只需要两分钟。

对象合并(Incorporation):我们将此任务定义如下:在 3D 高斯 $\theta$ 内,给给定一个摄像机姿态 $p$ 和从该视点出发的相应渲染 $I$,用户在 $I$ 上提供一个二维遮罩 $M$,指明他们希望 inpainting 的区域。此外,我们还会提供一个提示 $y$ 来指定 inpainting 的内容。然后,我们更新 $\theta$ 以满足 inpainting 请求。

给定 $I$ , $M$ 和 $y$ ,该过程从生成一个 2D Inpainting 图像 $I^My$ 开始,利用 2D Inpainting 扩散模型,如[34]所述。随后,从[34]创建的 $I^My$ 中分割出前景对象,并将其输入到[25]中引用的 image-to-3D 方法中,以生成 coarse 3D Mesh。然后,将这个粗糙的网格转换为 3D 高斯 $\theta_y$ ,并使用第 4.2 节中详细介绍的 HGS 进行细化。

为了将 $\theta_y$ 的坐标系与 $\theta$ 对齐,首先使用 [38] 中的技术估算 $I^My$ 的深度。然后使用最小二乘法将深度与 $\theta$ 在摄像机位姿 $p$ 下渲染的深度图对齐。有了这种对齐方式,我们就可以在 $\theta$ 的坐标系中准确地确定前景物体的坐标和比例。将 $\theta_y$ 转换到 $\theta$ 的坐标系后,我们只需将它们连接(concatenate) 起来,就能得到最终的内部绘制 3D 高斯。

请注意,由于我们高效的设计,整个对象合并过程可以在大约5分钟内完成。

5 实验

5.1 实验细节

我们利用原版 3DGS 中高度优化的渲染器实现进行高斯渲染,并基于 Threestudio [11]进行实现。本工作中使用的所有原始 3D 高斯模型均使用原版 3DGS中描述的方法进行训练。我们的实验在一块 RTX A6000 GPU 上进行。如第 4.1 节所述,一旦我们从[18]中概述的 2D 分割方法中获得分割遮罩,对 3D 高斯模型进行分割仅需约 1 秒钟。

对于编辑大场景,编辑过程中使用的相机位姿是从最初用于重建的多视图图像数据集的子集中选择的。在编辑目标对象的情况下,通过第 4.1 节中详细介绍的 GS 分割,我们生成一组紧密环绕分割对象的相机位姿。采用这种方法可以增加渲染中对象的分辨率,从而提高编辑过程的效果。此外,当目标对象与场景的关联度较低时,我们选择仅渲染目标对象以减少计算负载。

根据场景的复杂程度,我们在实验中使用的相机位姿数量从 24 到 96 不等。编辑过程受指定提示和场景复杂性的影响,通常需要优化 500-1000 步,总共约需要 5-10 分钟。关于用于对象合并的 3D 修复,如第 4.3 节所述,使用[25]中的方法生成 3D 网格大约需要 3 分钟,并额外花费 2 分钟将该网格转换为 3D 高斯并进行细化,而两个高斯的组合过程少于 1 秒。

5.2 定性比较

Qualitative comparisons

Pasted image 20240409154332

图 5. 定性比较。值得注意的是,我们对编辑区域(人的整个身体)的控制程度很高。背景和其他非目标区域基本上不受影响,而 Instruct-Nerf2Nerf [12] 则不同,整个场景都会发生变化。GaussianEditor-DDS 和 GaussianEditor-iN2N 分别表示我们利用 delta 去噪分数 [14] 和 Instruct-Nerf2Nerf [12] 作为编辑的指导。

如图 5 所示,GaussianEditor-iN2N 在编辑质量和可控性方面超过其他方法。Instruct-Nerf2Nerf 虽然能够生成缺乏细节的编辑,但无法控制编辑区域。由于与 Instruct-pix2pix [4] 相比,GaussianEditor-DDS 在对 DDS 损失 [14] 提供的引导控制更具挑战性,往往会导致过饱和的颜色和不太精确的编辑结果。
此外,我们的方法在编辑区域上展现出了卓越的控制能力。这是通过高斯语义追踪实现的,该方法在每个训练步骤中识别需要编辑的高斯分布,例如图 5 中的整个人体。值得注意的是,在 InstructNerf2Nerf [12] 中,使用静态的 2D 或 3D 遮罩限制了编辑的空间自由度,因为这些遮罩限制了编辑对象的可允许区域。此外,静态遮罩的有效性会随着 3D 模型的几何形状和外观在训练过程中的演变而减弱。

Pasted image 20240409154611

图 6. GaussianEditor 的大量结果。我们的方法能够胜任各种编辑任务,包括人脸和场景编辑。在人脸和熊的编辑中,我们使用高斯语义跟踪将编辑区域限制在人脸上,确保不需要的区域保持不变。最左边一列展示的是原始视图,右边三列展示的是编辑后的图像。

在图 6 中,我们展示了 GaussianEditor 可以适应各种场景,比如在大规模场景和面部交换中进行编辑。在大场景的情况下,我们没有应用高斯语义追踪。然而,对于面部交换,我们追踪了与面部区域相对应的高斯函数,实现了可控和逼真的编辑。我们将在补充材料中包含额外的定性结果,以展示我们方法的优势。

5.3 定量比较

Quantitative Comparisons

Pasted image 20240409154754

表 1:定量比较。GaussianEditor-iN2N 在用户研究评估和 CLIP 方向相似性[9]指标上表现优于其他方法。

如表 1 所示,我们在用户研究和 CLIP 方向相似性(如 InstructPix2Pix [4] 和 StyleGAN-Nada [9] 中所示)上进行了定量比较。GaussianEditor-iN2N 不仅在用户研究中展现出卓越的结果,而且在 CLIP 方向相似性方面也表现出色。此外,Instruct-Nerf2Nerf [12] 通常需要超过 30 分钟才能完成场景的编辑,而我们的方法只需要 5 到 10 分钟。

5.4 消融实验

Pasted image 20240409154840

图 7. 分层高斯喷溅(HGS)消融研究。提示:让草着火。即使用提示指定了编辑区域,像 InstructPix2Pix [4] 这样的生成方法也倾向于编辑整个 2D 图像。在没有 HGS 的情况下,高斯倾向于通过在整个场景中扩散和致密化来适应这种全图像编辑,从而导致图像不可控制的致密化和模糊。然而,有了 HGS,这种扩散就会得到有效抑制。

Pasted image 20240409154908

图 8. 语义跟踪消融研究。追踪提示:人如图 7 所示,生成式引导技术(如 Instruct-Pix2Pix[4])倾向于修改整个二维图像。在语义追踪技术的帮助下,我们可以将编辑区域限制在所需区域内。

如图 7 和图 8 所示,我们对分层高斯泼溅(HGS)和语义追踪进行了消融实验。
没有 HGS,高斯函数会在场景中扩散和密集化,导致无法控制的密集化和图像模糊。这通常是由于像 Instruct-Pix2Pix 这样的方法在使用提示来定义编辑区域时,会编辑整个 2D 图像的倾向所致。
然而,HGS 通过限制旧一代高斯函数的移动性,有效地解决了这个问题,确保整体场景不会出现过度的移动性。另一方面,语义追踪帮助 GaussianEditor 将编辑限制在指定区域,而不限制编辑区域的扩展性。

6 结论

在我们的研究中,我们介绍了 GaussianEditor,这是一种基于高斯泼溅的创新的三维编辑算法,旨在提高控制和效率。我们的方法采用高斯语义追踪来精确识别和定位编辑区域,然后使用分层高斯泼溅(HGS)在随机引导下平衡流动性和稳定性,以实现详细结果。
此外,我们为高斯泼溅开发了一种专门的 3D 修复算法,简化了物体的移除和整合,并大大减少了编辑时间。

限制:与基于二维扩散模型的先前三维编辑工作类似,GaussianEditor 依赖于这些模型提供有效的监督。然而,当前的二维扩散模型在某些复杂提示的有效指导方面存在困难,从而限制了三维编辑的能力。

附录

更多定性结果

在图 11 中,我们展示了 GaussianEditor 的更多结果。我们的方法提供了可控的、多样化的、高分辨率的 3D 编辑,只需要 2-7 分钟。
Pasted image 20240409155128

图 11. GaussianEditor 的更多结果。GaussianEditor 可以实现快速、多功能、高分辨率的 3D 编辑,在单个 A6000 GPU 上仅需 2-7 分钟和 10-20GB 的 GPU 内存。请注意,人脸编辑场景的背景保持不变。

WebUI

尽管神经辐射场(NeRF)[28]领域的作品也包含 WebUI,但 NeRF 的渲染速度较慢,这意味着用户在使用 WebUI 时只能使用低分辨率和非常低的帧率,导致用户体验不佳。幸运的是,由于我们在 GaussianEditor 中采用了高斯泼溅[15]这种具有快速渲染能力的方法,我们的 WebUI 可以轻松支持 2K 分辨率和 60fps 的使用。
此外,我们利用 WebUI 的互动性来增强语义追踪和对象合并应用程序,这将在接下来的两个小节中讨论。

基于点的提示的语义追踪

Semantic Tracing with Point-base Prompts

具有用户界面的交互式 WebUI 应用程序非常重要。在实际场景中,用户通常只想编辑完整场景中的特定区域,这是仅通过文本提示来指定的任务可能具有挑战性。例如,在场景中存在多个相同类型的对象时,通过文本很难确定用户想要编辑的是哪个对象,而用户只希望更改其中一个。
为了解决这个问题,我们提出了基于点的语义追踪。基于点的语义追踪要求用户在屏幕上点击,从特定视图添加 2D 点。
具体来说,当用户在屏幕上点击一个点时,我们根据当前视点相机的内、外参将该点反投影为一个空间点(即屏幕空间->世界空间):
$$
[x,y,z]^T=[\mathbf{R}|\mathbf{t}]z(p)\mathbf{K}^{-1}[p_x,p_y,1]^T \tag{9}
$$
其中 $[𝐑|𝐭]$ 和 $𝐊$ 表示当前相机的外参和内参, $𝒑$ , $z⁢(𝒑)$ 和 $[x,y,z]^T$ 分别指用户点击的像素、其对应的深度和空间点。

随后,在其他视图中,我们将这些空间点重新投影到相机的成像平面上,识别与这些 3D 点对应的像素。我们使用参考视图中这些 3D 点的投影点作为使用 SAM [18]进行语义分割的点提示。然后,我们将这些语义分割图像反投影回高斯图像,如主文中所示。
如图9所示,仅通过用户指示的大约五个点,基于点的语义追踪可以更精细地控制要追踪的区域。
Pasted image 20240409155513

图9:基于点提示的语义追踪。在(a)中,用户通过鼠标点击屏幕来提供视图上的关键点。在(b)中,我们根据这些点对目标对象进行分割。在去除分割对象后,(c)和(d)展示了结果。从上面可以看出,我们的基于点的跟踪方法具有高精度和交互性。

使用 WebUI 进行对象合并

如论文中所详述的,我们提出的带有对象合并的 3D 修复方法允许在指定区域中添加由文本指定的对象。WebUI 使用户能够轻松绘制 2D 遮罩来定义这些区域。此外,在这种用于对象合并的 3D 修复方法中,深度信息对于将新对象无缝集成到原始高斯场景中至关重要。
然而,目前的单目深度估计方法并不能始终提供完全准确的深度图,导致对齐不精确。因此,如图 10 所示,我们利用 WebUI 来修改估计深度的比例,使用户能够实现更准确的物体对齐。
更具体地说,用户通过滑动滑块来控制高斯尺度。在获得新的深度尺度后,我们根据新的深度尺度更新添加对象的位置和大小。由于整个过程只涉及对少数高斯参数的位置和尺度进行微调,因此可以实现实时缩放。

Pasted image 20240409155537

图 10:通过 WebUI 进行对象合并。通过我们的交互式 WebUI,深度尺度解决了单目深度估计的局限性,无法保证精确的深度图预测。如(a)所示,不准确的结果可能导致在高斯场景中对齐生成的对象时出现失败。我们利用我们的 WebUI 的交互性质,实时动态调整估计的深度,从而解决了这个问题,在其他图像中得到了证明。