3D 编辑在游戏和虚拟现实等领域中发挥着至关重要的作用,然而之前的 3D 编辑苦于耗时间长以及可控性差等问题,很难应用到实际场景。近日,南洋理工大学联合清华和商汤提出了一种全新的 3D 编辑算法 GaussianEditor,首次实现了在 2-7 分钟完成对 3D 场景可控的多样化的编辑,全面超越了之前的 3D 编辑工作。
近三年来,3D 编辑领域的工作普遍聚焦于 NeRF(神经辐射场),这是因为 NeRF 不仅能高保真地完成 3D 场景建模,而且其隐式特性极大地提高了可扩展性,相较点云、网格等传统方法有着显著的优势。然而 NeRF 依赖高维多层感知网络(MLP)对场景数据进行编码,这也带来了一定限制。它难以直接修改场景的特定部分,同时在图像修复和场景组合等任务上增加了复杂性。这种复杂性不仅影响了训练过程,也制约了其在实际应用中的应用。
GaussianEditor 为了解决上述问题,另辟蹊径,选择了高斯溅射(Gaussian Splatting)作为其 3D 表示。Gaussian Splatting 是半年前提出的一种新型 3D 表示,该表示已经在 3D,4D 重建等多项 3D 任务上超越了 NeRF,刚面世就引发了 3D 领域广泛的关注,是今年 3D 领域最大的突破之一。Gaussian Splatting 表示具有极好的前景和潜力, GaussianEditor 更是首个实现了对这种 3D 表示完成编辑的工作。该项目已开源,并提供了 WebUI 界面,便于学习和使用。
Gaussian Splatting 虽然有着高效的渲染算法,但其作为显示表示,对其的编辑存在着不小的挑战。一个主要问题是缺乏有效的方法准确识别编辑目标,这对于精确可控的编辑至关重要。此外,已有研究表明,使用高度随机的生成指导(如 Stable Diffusion 等生成扩散模型)优化 Gaussian Splatting(GS)会遇到重大挑战。这可能是因为 GS 直接受到损失中随机性的影响,与神经网络缓冲的隐式表示不同。这种直接暴露导致更新不稳定,训练过程中高斯点的属性直接改变。此外,GS 的每个训练步骤可能涉及大量高斯点的更新,而这一过程没有神经网络风格的缓冲机制。这些问题会导致 GS 的过度流动性阻碍了其在训练中向隐式表示那样的精细结果收敛。
为了解决上述问题,团队首先引入了高斯语义追踪来完成对 Gaussian Splatting(GS)的精确控制。高斯语义追踪在训练过程中始终能够识别出需要编辑的高斯点。这与传统的 3D 编辑方法不同,后者通常依赖于静态的 2D 或 3D 掩码。随着 3D 模型的几何形状和外观在训练中的变化,这些掩码的会逐渐失效。高斯语义追踪则是通过将 2D 分割掩码投影到 3D 高斯点上并为每个高斯点分配语义标签来实现训练全程的追踪。随着训练过程中高斯点的变化,这些语义标签使得能够追踪到特定的目标高斯点。高斯语义追踪算法能确保只有目标区域被修改,从而实现精确和可控的编辑。
下图中红色区域为被追踪的目标区域,语义追踪的区域会随着训练过程动态更新来确保其有效性。
此外,为了应对 Gaussian Splatting(GS)在高度随机的生成指导下难以实现精细结果的重大挑战,GaussinEditor 采用一种新的 GS 表示方式:层次化高斯溅射(Hierarchical Gaussian Splatting,HGS)。在 HGS 中,高斯点根据它们在训练过程中的稠密化的顺序被组织成不同的世代。在较早的稠密化过程中形成的高斯点被视为较老的世代,它们受到更严格的约束,目的是保持它们的原始状态,从而减少它们的流动性。相反,后期阶段形成的高斯点被视为较年轻的世代,受到较少或没有约束,以提高其适应性。HGS 的设计有效地调节了 GS 的流动性,通过对较老的世代施加限制的同时保持了较新世代的灵活性。这种方法使得持续优化朝向更好的结果成为可能,从而模拟了隐式表示中通过神经网络实现的缓冲功能。
GaussianEditor 在此基础上提出了高斯溅射表示的增、删算法。在删除目标方面,该团队开发了一种专门的局部修复算法,能有效地消除了对象与场景交界处的伪影。在添加目标方面,GaussianEditor 能根据用户提供一个的文本提示和 2D 掩码来为指定区域添加指定目标。GaussianEditor 先借助 2D 图像 InpAInting 算法生成要添加的对象的单视图图像。然后,通过 Image to 3D 的算法将该图像转换成一个 3D GS。最后将该目标并入到高斯场景中。
在对比实验上,GaussianEditor 在视觉质量,量化指标,可控性,生成速度上都大幅度超过了之前的工作。
该团队还通过消融实验验证了其提出的高斯语义追踪和层次化高斯表示的有效性。
GaussianEditor 作为一种先进的 3D 编辑算法,重点在于灵活和快速地编辑 3D 场景,并首次实现了对高斯溅射的编辑。
该算法的关键特点包括:
Gaussian 语义追踪:它能在训练过程中持续识别需要编辑的高斯点,确保只有目标区域被编辑。 层次化 Gaussian Splatting(HGS):这是一种新的 GS 表示方式,通过在不同训练阶段形成的高斯点之间建立层次结构,以有效管理 GS 场景的流动性,并模拟隐式表示中神经网络的缓冲功能。 3D 场景的增加和删除算法:GaussianEditor 专为 GS 开发设计了 3D 场景的增删算法,能够高效地从场景中移除或添加特定对象。