论文题目
GaussianEditor: Swift and Controllable 3D Editing with Gaussian Splatting
1、简介
3D编辑在游戏和虚拟现实等许多领域发挥着至关重要的作用。传统的3D编辑方法依赖于网格和点云等表示,往往无法真实地描绘复杂的场景。另一方面,基于隐式3D表示的方法,如神经辐射场(NeRF),可以有效地渲染复杂的场景,但处理速度慢,对特定场景区域的控制有限。为了应对这些挑战,论文提出了GaussianEditor,这是第一个基于高斯飞溅(GS)的3D编辑算法,一种新颖的3D表示。GaussianEditor通过提出的高斯语义跟踪提高了编辑的精度和控制,在整个训练过程中跟踪编辑目标。此外,提出了分层高斯溅射(HGS),以在二维扩散模型的随机生成指导下获得稳定而精细的结果。还开发了有效的对象删除和集成的编辑策略,这是现有方法的一项具有挑战性的任务。综合实验证明了GaussianEditor的卓越控制,有效和高效的性能,标志着3D编辑的重大进步。
贡献可以概括为四个方面:
1.引入了高斯语义跟踪,实现了更详细和有效的编辑控制。
2. 提出了分层高斯溅射(HGS),这是一种新的高斯表示,能够在高度随机生成引导下更稳定地收敛到精炼结果。
3. 专门为高斯飞溅设计了一种3D图像绘制算法,它允许快速移除和添加对象。
4. 大量的实验表明,方法在有效性,速度和可控性方面超越了以前的3D编辑方法。
2、背景
1)3D表示,为了解决不同的3D任务,已经提出了各种3D表示。开创性的工作神经辐射场(Neural Radiance Fields, NeRF)采用了体绘制,并因仅在2D监督下实现3D优化而广受欢迎。然而,尽管NeRF在3D重建和生成任务中广泛使用,但优化NeRF可能很耗时。最近,3D高斯飞溅已经成为NeRF的另一种3D表示,在3D和4D重建任务中展示了令人印象深刻的质量和速度。其高效的可微渲染实现和模型设计使得快速训练无需空间修剪。
在这项工作中,率先将3D高斯溅射适应于3D编辑任务,旨在实现快速和可控的3D编辑,在这种情况下首次利用这种表示的优势。
2)3D编辑,EditNeRF是该领域的开创性工作,通过对潜在代码进行调节来编辑神经场的形状和颜色。此外,一些作品利用CLIP模型通过使用文本提示或参考图像来方便编辑。另一项研究侧重于预定义的模板模型或骨架,以支持在特定类别中重新放置或重新渲染等操作。基于几何的方法将神经场转换为网格,并将网格变形与隐式场同步。此外,3D编辑技术涉及将2D图像处理(如inpainting)与神经场训练相结合。然而,这些方法都有其局限性,因为3D模型的训练是一个动态的过程,静态蒙版不能有效地约束它。
相比之下,本文研究采用高斯语义跟踪在整个训练过程中跟踪目标高斯。
3、方法
1)本文定义高斯溅射(GS)上的3D编辑任务如下:给定一个提示y和一个由三维高斯函数表示的3D场景,表示为Θ,其中每个Θi = {xi, si, qi, αi, ci}表示第i个高斯函数的参数,目标是实现一个编辑过的3D高斯函数,称为Θy,它与提示y的规范一致。
2)GS上执行编辑任务的新框架包括高斯语义跟踪和分层高斯飞溅(HGS)两部分。GS语义跟踪实现了GS内的精确分割和跟踪,便于可控的编辑操作。与标准GS相比,分层高斯飞溅HGS表示在生成引导中对随机性表现出更强的鲁棒性,并且更善于适应各种编辑场景。
3)高斯语义跟踪,以往的3D编辑通常使用静态的2D或3D蒙版,仅在被蒙版像素内施加损失,从而将编辑过程限制在仅编辑所需区域。然而,这种方法有局限性。由于3D表示在训练过程中会发生动态变化,静态分割掩码会变得不准确甚至无效。为了解决上述问题,本文选择高斯喷溅(GS)作为3D表示,因为它的明确性质。这允许直接为每个高斯点分配语义标签,从而促进3D场景中的语义跟踪。
a、通过添加一个新属性m来增强3D高斯函数Θ,其中mij表示第i个高斯点和第j个语义标签的语义高斯掩码。有了这个属性,可以通过有选择地只更新目标三维高斯函数来精确地控制编辑过程。在致密化过程中,新致密化的点继承了其父点的语义标签。这确保了在整个训练过程中的每一刻都有一个准确的3D语义掩码。
b、高斯语义跟踪可以在训练期间连续跟踪每个高斯类别,并根据其不断变化的属性和数量进行调整。这个特征是至关重要的,因为它允许选择性地应用梯度,致密化和修剪与指定类别相关的高斯。此外,它只通过渲染目标物体来促进训练,大大加快了复杂场景中的过程。语义高斯掩码m作为一个动态的三维分割掩码,随着训练不断演化,允许内容在空间上自由扩展。
c、高斯飞溅反投影,获得语义高斯掩码m,对于一组三维高斯图像Θ,从多个视点对其进行渲染,生成一系列效果图i。然后使用2D分割技术对这些效果图进行处理,得到2D分割掩码M,每个Mj代表第j个语义标签。为了获得每个高斯的语义标签,使用反向渲染将所提出的二维语义标签反投影回高斯。具体地说,为每个高斯函数维护一个权重和一个计数器。对于语义图上的像素p,将语义标签解投影回影响它的高斯函数
其中wj表示第j个语义标签的第i个高斯的权值,oi(p)、Ti (p)和Mj(p)分别表示第i个高斯的不透明度、对像素p的透射率和像素p的语义掩码。在更新了所有高斯权重和计数器之后,根据高斯的平均权重是否超过手动设置的阈值来确定高斯是否属于第j个语义类。
d、整个贴标签过程非常快,通常不到一秒钟。一旦这个语义标签分配完成,就可以解析整个高斯场景,使各种操作成为可能。由于高斯语义跟踪,现在可以独立渲染这些小物体,并将它们输入到二维扩散模型中,从而实现更精确的监督。
4)分层高斯飞溅(HGS),vanilla GS在重建任务中的有效性在于由SFM衍生的点云提供的高质量初始化,以及来自真值数据集的稳定监督,由于GS是一种类似点云的表示,因此在面对生成引导的随机性时显示出局限性。GS模型在每步训练中需要更新大量高斯点,缺乏神经网络的记忆和调节能力。导致不稳定的更新,并阻止GS获得详细的结果,因为GS的过度流动性阻碍了它在生成训练中的收敛。为了解决这些挑战,本文引入了分层高斯溅射(HGS),这是一种更适合生成和编辑场景的高斯溅射的结构化表示。
a、HGS根据产生特定高斯点的密度轮将GS分类为不同的轮次。初始的高斯函数Θ,都被赋值为0。在编辑训练过程中,第k次致密化轮生成的点被标记为第k代,对不同轮次的高斯函数施加不同的约束来控制它们的灵活性。轮次越老,所受的约束就越强。锚损失被用来加强这些约束。在训练开始时,HGS记录所有高斯分布的属性作为锚点。然后更新这些锚点以反映每个致密化过程中高斯函数的当前状态。在训练过程中,利用锚点状态和当前状态之间的MSE损失来保证高斯函数不会偏离各自的锚点太远:
式中,n表示高斯分布的总数,P表示当前高斯分布的某一属性,包括集合x, s, q, α, c中的元素。其中,P表示锚态中记录的相同属性。λi项表示应用于第i次高斯的锚固损失强度,该强度根据其生成而变化。总的训练损失定义为:
式中,λP表示作用于属性P的锚损强度,LEdit为第3.2节定义的编辑损失。这种分轮次设计在HGS中防止了在面对随机损失时过度灵活的问题。
b、随着每一次致密化,前几轮次高斯模型的锚失重λi增加,现轮次的流动性逐渐减少,直到几乎凝固。这种方法确保了随机损失下稳定的几何形状,依靠来自新密度的几乎不受约束的高斯来雕刻细节,这种应用锚损的方法可以有效地满足各种编辑需求。例如,为了限制原始GS的变化,可以增加第0轮次的锚损失权重。类似地,如果在编辑期间不希望改变颜色或几何形状,则可以将更强的锚丢失应用于这些特定属性。
4、实验
1)3D对象移除和合并
2)和其他方法的可视化比较
3)更多结果的可视化
4)分层高斯溅射(HGS)消融实验