论文Review 3DGS SuGaR | CVPR 2024 | 3DGS 转 Mesh 开源方案!!
基本信息
题目:SuGaR: Surface-Aligned Gaussian Splatting for Efficient 3D Mesh Reconstruction and High-Quality Mesh Rendering
来源:CVPR 2024
学校:Univ Gustave Eiffel, CNRS, France
是否开源:https://github.com/Anttwo/SuGaR
摘要:3DGS转Mesh
我们提出了一种方法,可以从3DGS中精确和极快地提取Mesh。3DGS最近变得非常流行,因为它可以产生逼真的渲染,同时训练速度明显快于 NeRF。然而,从数百万个微小的 3D 高斯中提取网格具有挑战性,因为这些高斯在优化后往往是无组织的,并且迄今为止尚未提出任何方法。我们的第一个关键贡献是一个 regularization term,它鼓励高斯与场景表面很好地对齐。然后,我们介绍了一种方法,该方法利用这种对齐,使用泊松重建从高斯网格中提取网格,该方法快速、可扩展并保留细节,这与通常用于从神经 SDF 中提取网格的行进立方体算法形成鲜明对比。最后,我们引入了一种可选的细化策略,将高斯绑定到网格表面,并通过高斯喷射渲染共同优化这些高斯和网格。这样,通过纵网格体而不是高斯本身,可以轻松编辑、雕刻、动画和重新照明高斯。使用我们的方法在几分钟内即可检索这种可编辑网格以进行逼真的渲染,而使用SDF上最先进的方法需要数小时,同时提供更好的渲染质量。
Introduction
1.背景与问题陈述
- 3D Gaussian Splatting的兴起:
- 3D Gaussian Splatting是继NeRF(Neural Radiance Fields)之后的一种新兴技术,用于捕获3D场景并从新视角进行渲染。相比NeRF,3D Gaussian Splatting通过优化大量微小3D高斯函数(包括位置、方向、外观和透明度)来表示场景,渲染速度更快(几分钟内完成场景捕获),适合实时应用。
- 高斯函数的渲染速度远超NeRF的神经场渲染,因为它避免了复杂的体视渲染(volumetric rendering)过程。
- 核心挑战:
- 尽管3D Gaussian Splatting在渲染质量上表现优异,但从优化后的高斯函数中提取场景的表面几何(surface geometry)仍然具有挑战性。优化后的高斯函数通常呈现无序结构,且与实际场景表面不完全对应(见论文中的图3)。
- 在许多计算机图形学工作流中,三角网格是首选的场景表示形式,因为它支持编辑、雕刻、动画和重新光照等操作。然而,从无序的高斯函数中提取高质量的三角网格非常困难,这一问题在NeRF中也存在,但原因不同。
- 尽管3D Gaussian Splatting在渲染质量上表现优异,但从优化后的高斯函数中提取场景的表面几何(surface geometry)仍然具有挑战性。优化后的高斯函数通常呈现无序结构,且与实际场景表面不完全对应(见论文中的图3)。
2. 提出的解决方案(SuGaR)
- 正则化项:
- 作者提出了一种正则化项,鼓励高斯函数在场景表面上均匀分布,从而更好地捕捉场景几何。这种正则化基于假设高斯函数是“平坦的”并均匀分布在表面上,通过最小化计算密度与实际密度的差异来优化高斯函数的分布。
- 这一正则化使得从高斯函数中提取表面几何变得更可行。
- 高效网格提取:
- 传统的Marching Cubes算法在处理高斯 splatting 的密度函数时效果不佳,因为高斯函数数量庞大(百万级),且大多数高斯函数非常小(用于捕捉纹理和细节),导致密度函数几乎处处接近零,难以提取有效的水平集(level set)。
- 作者提出了一种高效的方法,通过从训练视角的高斯深度图(depth maps)采样水平集上的点,结合Poisson重建算法(Poisson Reconstruction)生成三角网格。这种方法具有可扩展性,在单块GPU上只需几分钟即可完成,与依赖神经SDF(Signed Distance Function)的方法(需要24小时或多GPU加速)相比,效率显著提高。
- 网格与高斯的联合优化:
- 在提取网格后,作者提出了一种可选的精炼策略,通过仅使用高斯 splatting 渲染来联合优化网格和一组高斯函数。这种优化使网格不仅适合传统网格编辑工具,还能通过高斯 splatting 渲染实现高质量的视图合成,优于其他基于网格的辐射场模型。
- 在提取网格后,作者提出了一种可选的精炼策略,通过仅使用高斯 splatting 渲染来联合优化网格和一组高斯函数。这种优化使网格不仅适合传统网格编辑工具,还能通过高斯 splatting 渲染实现高质量的视图合成,优于其他基于网格的辐射场模型。
3. 主要贡献
- 正则化项:使高斯函数更准确地表示场景几何。
- 高效网格提取算法:在几分钟内从高斯函数中提取高质量三角网格。
- 高斯与网格的绑定:通过联合优化实现更高质量的渲染,并支持场景编辑,扩展了3D Gaussian Splatting在计算机图形学中的应用。
Related Works
图像基渲染(Image-Based Rendering, IBR)
- 背景:
- IBR方法利用二维图像生成场景表示并渲染新视图。最早的IBR方法基于光场(light fields),强调体视渲染(volume rendering)在生成真实感图像中的重要性。
- 场景表示形式包括三角网格、点云、体视网格、多平面图像(MPI)和神经隐式函数等。
- 传统基于网格的IBR方法:
- 基于结构从运动(Structure-from-Motion, SfM)和多视图立体(Multi-View Stereo, MVS)技术,可以重建场景的3D表面,生成三角网格表示。
- 这些方法通过纹理三角形或图像的变形与混合来生成新视图,结合传统图形硬件和软件实现高效渲染。然而,在复杂区域(如薄结构或高光区域),这些方法难以准确捕捉几何和外观。
- 近期研究引入深度学习优化网格表示,弥合了传统图形学与机器学习的差距。
- 体视IBR方法:
- 体视方法使用体视网格、多平面图像或神经网络表示场景为连续的体视密度和颜色函数。NeRF通过多层感知机(MLP)参数化连续体视函数,实现了具有细致细节和视角依赖效果的真实感渲染。
- NeRF的缺点是计算复杂且内存需求高。后续改进通过体视网格、哈希表、分层采样或低秩近似优化了性能,但仍依赖体视光线追踪(ray marching),与传统图形硬件不兼容。
- 一些研究改进了NeRF的几何和辐射表示,支持高光材质或场景重新光照。
- 混合IBR方法:
- 混合方法结合体视和表面表示,通过可微渲染优化神经SDF,生成适合下游图形应用的网格。这些方法通常通过Marching Cubes从SDF中提取网格,但实时渲染能力有限。
- BakedSDF 通过优化神经SDF并将其“烘焙”到高分辨率三角网格上,结合网格渲染和深度学习实现实时渲染,但训练需要48小时。NeRFMeshing 也通过“烘焙”NeRF生成网格,但渲染质量较低(PSNR较低),且需要多GPU支持和较长的训练时间。
- 相比之下,SuGaR方法在提取网格和渲染质量上更高效,且训练时间短。
- 基于点的IBR方法:
- 基于点的表示(如3D Gaussian Splatting)擅长捕捉薄几何,利用快速点光栅化(point rasterization)和α混合渲染图像,避免了光线追踪的计算开销。
- 3D Gaussian Splatting 以其优异的优化和渲染速度成为点基方法的代表,SuGaR在此基础上进一步解决了网格提取的难题。
3. 3D Gaussian Splatting
该方法使用大量3D高斯函数来表示场景,这些高斯函数可以快速渲染新型视图,远优于NeRF(Neural Radiance Fields)在速度上。
关键组件和原理
- 场景表示:
- 场景被表示为一个(通常很大的)高斯函数集合。每个高斯函数 g g g 由以下参数定义:
- 均值
:高斯函数的中心位置。
- 协方差矩阵
:通过缩放向量
(表示三个轴的缩放)和四元数
(编码旋转)参数化。协方差矩阵描述高斯函数的形状和方向。
- 不透明度
:用于α混合(alpha blending),控制高斯函数的透明度。
- 球谐函数(Spherical Harmonics, SH)系数:描述从不同方向发出的颜色,支持视角依赖效果。
- 均值
- 这些参数允许高斯函数捕捉场景的几何和外观。
- 场景被表示为一个(通常很大的)高斯函数集合。每个高斯函数 g g g 由以下参数定义:
- 渲染过程:
- 从给定视角渲染图像时,使用光栅化器(rasterizer)将3D高斯函数投影到2D图像平面,形成2D高斯函数,然后进行渲染。
- 渲染速度极快,因为它避免了NeRF所需的体视光线追踪(ray-marching compositing),而是使用splatting(溅射)技术直接在图像平面上混合高斯函数。
- 优化过程:
- 输入:一组场景图像。
- 初始化:从SfM(Structure-from-Motion,参考[32])生成的点云初始化高斯函数集合。
- 优化参数:均值 (
、四元数、四元数 、四元数
、缩放向量、缩放向量 、缩放向量
、不透明度、不透明度 、不透明度
和SH系数。通过梯度下降等方法,使渲染图像匹配输入图像。
- 致密化(Densification):优化过程中添加更多高斯函数,以更好地拟合场景几何,导致最终场景通常包含数百万个高斯函数,其中许多非常小(用于捕捉细节)。
优势与局限
- 优势:渲染速度远超NeRF(几分钟内优化完成),适合实时应用。
- 局限:优化后的高斯函数无序且不紧密贴合表面,导致难以提取网格(如引言所述)。
4. Method
SuGaR方法分为三个部分:(1)正则化项,使高斯函数与表面对齐;(2)高效网格提取;(3)可选的精炼策略,将新高斯函数绑定到网格并联合优化。整个方法在单GPU上高效运行(几分钟内提取网格),并支持网格编辑。
4.1. Aligning the Gaussians with the Surface
动机:原始高斯函数无序且重叠(见图3),不利于网格提取。作者引入正则化项,鼓励高斯函数均匀分布在表面上,并“扁平化”(即贴合表面)。
4.2. Efficient Mesh Extraction
4.3. Binding New 3D Gaussians to the Mesh
动机:初始网格可进一步精炼,支持编辑(如图1、7)。
- 过程:
- 在初始网格上实例化新高斯:每个三角形关联 n n n 个薄高斯,采样在三角表面。
- 修改参数化:高斯均值从网格顶点和预定义重心坐标计算;缩放因子减为2个,旋转用复数编码(保持扁平、对齐三角)。
- 优化:联合优化网格顶点、高斯参数(不透明度、SH系数),使用Gaussian Splatting渲染匹配输入图像。
- 结果:网格可编辑,高斯提供高质量渲染(优于其他方法)。
- 细节:见补充材料。精炼前后对比见图7,支持动画、重新光照等。
实验
系统评估了SuGaR方法的性能,包括实现细节、实时渲染质量、网格提取效果以及渲染消融实验。实验设计严谨,采用标准数据集和指标(如PSNR、SSIM、LPIPS),并与基线方法(如3D Gaussian Splatting、I-NGP、Plenoxels、BakedSDF、NeRFMeshing等)进行比较。强调SuGaR在速度(几分钟内提取网格)和质量上的优势。
硬件平台
所有实验在单块NVIDIA Tesla V100 SXM2 32GB GPU
数据集
- Mip-NeRF360 :7个场景(因许可问题,排除Flowers和Treehill,原9个)。
- Tanks&Temples :2个场景(Truck、Train)。
- DeepBlending :2个场景(Playroom、Dr. Johnson)。
- 总计11个场景,覆盖复杂几何和外观。
Benchmark
- 纯渲染方法:Instant-NGP (I-NGP) [23]、Plenoxels [41]、3D Gaussian Splatting (GS) [15]、Zip-NeRF [2](聚焦NVS,无网格)。
- 基于网格方法:BakedSDF [39]、NeRFMeshing [26]、Neuralangelo [6](使用重建网格,但非纯纹理渲染)。
- SuGaR变体:R-SuGaR-2K、R-SuGaR-7K、R-SuGaR-15K。
5.3. Mesh Extraction
- Marching Cubes :细网格(very fine voxel grid)。
- Poisson :使用高斯中心作为点云。
- SuGaR方法:不同水平集 λ \lambda λ(0.1、0.3、0.5)。
见图3
5.4. Mesh Rendering Ablation
初体验
TODO