SuGaR: 从3DGS提取网格
我们引入了一种方法,可以在几分钟内在单个 GPU 上从 3D 高斯分布表示中提取准确且可编辑的网格。网格可以通过非常逼真的高斯泼溅渲染进行编辑、动画、合成等,为计算机图形学提供了新的可能性。
请注意,例如,我们在左下角的捕获场景和右侧的合成场景之间更改了机器人的姿势,所有这些都使用高斯泼溅光栅器进行渲染。
0、概述
我们提出了一种方法,可以从 3D 高斯分布中精确且极其快速地提取网格(SIGGRAPH 2023)。
Gaussian Splatting 最近变得非常流行,因为它可以产生逼真的渲染,同时训练速度比 NeRF 快得多。然而,从数百万个微小的 3D 高斯模型中提取网格是一项挑战,因为这些高斯模型在优化后往往是无组织的,而且迄今为止还没有提出任何方法。
我们的第一个关键贡献是正则化项,它鼓励 3D 高斯与场景表面良好对齐。
然后,我们介绍一种方法,利用这种对齐方式对场景真实表面上的样本点进行对齐,并使用泊松重建从高斯分布中提取网格,与通常应用于从神经 SDF 中提取网格。
最后,我们引入了一种可选的细化策略,将高斯函数绑定到网格表面,并通过高斯泼溅渲染联合优化这些高斯函数和网格。这样可以使用传统软件(Blender、Unity、虚幻引擎等)通过操纵网格而不是高斯本身来轻松编辑、雕刻、装配、动画或重新照亮高斯。
使用我们的方法检索这样一个可编辑网格以进行真实渲染只需几分钟,而使用神经 SDF 上最先进的方法则需要数小时,同时在 PSNR、SSIM 和 LPIPS 方面提供更好的渲染质量。
1、将3D高斯与表面对齐
为了促进高斯网格的创建,我们首先提出一个正则化项,它鼓励高斯分布在场景表面上,以便它们更好地捕获场景几何形状。
我们的方法是在假设高斯分布平坦且均匀分布在场景表面上的情况下,从高斯分布中推导出体积密度。通过在优化过程中最小化该密度与高斯计算的实际密度之间的差异,我们鼓励 3D 高斯很好地表示表面几何形状。
2、高效网格提取
真实场景的高斯泼溅表示通常最终会产生一个或数百万个具有不同尺度和旋转的 3D 高斯,其中大多数都非常小,以便再现场景中的纹理和细节。这导致密度函数几乎在任何地方都接近于零,并且即使使用精细的体素网格,行进立方体算法也无法提取这种稀疏密度函数的适当水平集。
相反,我们引入了一种非常有效地对密度函数水平集的可见部分上的点进行采样的方法,使我们能够在这些点上运行泊松重建算法以获得三角形网格。与 Marching Cubes 算法相比,这种方法是可扩展的,与其他依赖神经 SDF 从辐射场提取网格的最先进方法相比,它可以在单个 GPU 上在几分钟内重建高度详细的表面网格。
3、将新的 3D 高斯绑定到网格
提取该网格后,我们提出了一种可选的细化策略:将新的高斯函数绑定到网格三角形,并使用高斯泼溅光栅器联合优化高斯函数和网格。
这种优化可以使用高斯喷射渲染而不是传统的纹理网格渲染来实现高质量的网格渲染。我们在下面提供了几个例子。
与推理时依赖底层网格的其他辐射场模型相比,这在渲染质量方面具有更高的性能。
这种绑定策略还使得使用传统的网格编辑工具来编辑场景的高斯泼溅表示成为可能,为计算机图形学提供了无限的可能性。
4、场景组装示例
在下面的视频中,我们展示了如何使用 SuGaR 提取的网格在 Blender 中组合场景。正如我们在视频末尾所示,可以使用高斯泼溅光栅器和绑定到网格表面的3D高斯来渲染该合成。
5、场景编辑和角色动画示例
在下面的视频中,我们展示了如何使用 SuGaR 提取的网格在 Blender 中为角色制作动画。正如我们在视频末尾所示,可以使用高斯泼溅光栅器和绑定到网格表面的高斯来渲染该动画。
在下面的视频中,我们展示了如何使用 SuGaR 提取的网格来分割和绑定角色:
BimAnt翻译整理,转载请标明出处