GaussianPro:具有渐进传播的 3D Gaussian Splatting

24年2月来自中科大、香港大学、南京大学、澳大利亚 Adelaide 大学、上海科技大学和德州农机大学的论文“GaussianPro: 3D Gaussian Splatting with Progressive Propagation”。

3D Gaussian Splatting (3DGS) 的出现最近带来了神经渲染领域的一场革命,有助于实时实现高质量的渲染。然而,3DGS 严重依赖于由运动结构 (SfM) 技术生成的初始化点云。在处理不可避免地包含无纹理表面的大规模场景时,SfM 技术总是无法在这些表面中产生足够的点,并且无法为 3DGS 提供良好的初始化。因此,3DGS 存在优化困难和渲染质量低下的困扰。本文受经典多视角立体视觉 (MVS) 技术的启发,提出 GaussianPro,这是一种应用渐进传播策略来指导 3D 高斯密集化的新方法。与 3DGS 中使用的简单分割和克隆策略相比,该方法利用场景现有重建几何的先验和块匹配技术来生成具有精确位置和方向的新高斯。在大规模和小规模场景上的实验验证该方法的有效性,其在 Waymo 数据集上明显优于 3DGS,在 PSNR 方面表现出 1.15dB 的改进。

多视角立体视觉 (MVS) 旨在从一组确定姿势的图像中重建 3D 模型,然后将其与传统渲染算法进一步结合以生成新视图。传统方法 (Campbell et al., 2008; Furukawa & Ponce, 2009; Bleyer et al., 2011; Furukawa et al., 2015; Schonberger et al., 2016; Xu & Tao, 2019) 根据手工制作的图像特征明确建立图像之间的像素对应关系,然后优化 3D 结构以实现图像间最佳像素对应关系。基于学习的 MVS 方法(Yao,2018;Vakalopoulou,2018;Long,2020;Chen,2019;Long,2021;Ma,2022;Long,2022;Feng,2023)隐式地构建具有可学习特征的多视图对应关系,并在端到端框架中基于特征回归深度或 3D 体。

NeRF将深度学习技术与3D体表示相结合,将3D场景转换为可学习的连续密度场。利用体渲染中的射线行进(ray marching),NeRF能够实现高质量的新视图合成,而无需对3D场景和照明进行显式建模。为了进一步提高渲染质量,一些方法(Barron,2021;Xu,2022;Barron,2023)直接改进了射线行进中的点采样策略,更准确地建模体渲染过程。其他方法(Barron,2022;Wang,2023)通过重新参数化场景来生成更紧凑的场景表示和更容易的学习过程,从而改进渲染。此外,可以引入正则化项(Deng,2022a;Yu,2022)来约束场景表示以更接近真实几何的近似值。尽管取得了这些进步,NeRF 在渲染过程中仍然会产生很高的计算成本。由于 NeRF 使用 MLP 来表示场景,因此场景中任何点的计算和优化都依赖于整个 MLP。许多工作提出了新场景表示来加速渲染。它们用稀疏体素(Liu,2020;Fridovich-Keil,2022)、哈希表(Mu ̈ller,2022)或三平面(Chen,2022)取代 MLP,从而允许将每个点的计算和优化定位到场景的相应局部区域。虽然这些方法显着提高了渲染速度,但由于体渲染中固有的光线行进策略,实时渲染仍然具有挑战性。

3DGS 采用基于splatting的光栅化 (Zwicker,2002) 方法将各向异性的 3D 高斯投影到 2D 屏幕上。它通过对投影的 2D 高斯执行深度排序和 α 混合来计算像素的颜色,从而避免了光线行进的复杂采样策略并实现了实时渲染。一些工作对 3DGS 进行了改进。首先,3DGS 对采样频率很敏感,即改变相机的焦距或相机距离可能会导致渲染伪影。这些伪影通过引入低通滤波 (Yu,2023) 或多尺度高斯表示 (Yan,2023) 来解决。此外,3DGS 过度增大了高斯函数,而没有明确约束场景的真实几何结构,导致大量冗余高斯函数和大量内存消耗。一些方法通过高斯函数的尺度 (Lee et al., 2023) 或计算其在视图中的可见性 (Fan et al., 2023) 来评估其对渲染的贡献,从而强制删除贡献较小的高斯函数。其他方法通过量化技术 (Navaneet et al., 2023) 来压缩高斯属性的存储,或从结构化网格特征中插入高斯属性 (Morgenstern et al., 2023; Lu et al., 2023)。

虽然这些方法显著降低高斯函数的存储开销,但它们并没有明确约束高斯函数的几何形状。 3DGS 可能会在远离真实表面的位置增长以适应不同的训练视图,从而导致冗余并降低新视点的渲染质量。

如图所示:3DGS 的稀疏 SfM 点和约束较少的致密化策略对优化 3D 高斯提出了挑战,尤其是对于无纹理区域。3DGS 生成不正确的高斯(蓝色圆圈)过拟合训练图像,导致具有错误几何形状的新视图渲染性能明显下降。

请添加图片描述

3DGS (Kerbl,2023) 将 3D 场景建模为一组各向异性的 3D 高斯函数,然后使用基于 splatting 的光栅化技术 (Zwicker ,2002) 进一步将其渲染为图像。

为了从给定的视点渲染图像,每个像素 p 的颜色通过混合 N 个有序高斯分布 {Gi | i = 1,··· ,N} 重叠 p 来计算,如下所示:

请添加图片描述

其中 αi 是通过评估 Gi 在 p 中的投影二维高斯 (Zwicker et al., 2002) 乘以 Gi 的一个学习不透明度所获得,而 ci 是 Gi 的可学习颜色。覆盖 p 的高斯,按其在当前视点下的深度升序排列。通过可微分渲染技术,可以训练视图重建端到端优化高斯分布的所有属性。

由于三维高斯函数的离散和不规则拓扑结构,不便感知几何图形的连通性,例如在局部曲面上搜索相邻的高斯函数。因此,很难感知现有的几何图形来指导高斯致密化。受到经典 MVS 方法的启发,本文将三维高斯函数映射到结构化的二维图像空间,以应对这一挑战。这种映射能够有效地确定高斯函数的邻居并在它们之间传播几何信息。具体而言,当高斯函数位于三维空间中同一局部平面上时,它们的二维投影也应位于相邻区域并表现出相似的几何属性,即深度和法线。

根据 GaussianShader(Jiang,2023)方法,高斯球在优化过程中逐渐变扁,趋近于一个平面,因此其最短轴的方向可以近似为高斯球的法线方向 ni。

最后,基于α-混合,渲染当前视点下的二维深度和法线图,其中属性颜色 ci 被高斯深度 zi 和法线 ni 取代。

如图所示高斯的渐进传播概述。首先,从 3D 高斯中渲染深度和法线图。然后,迭代地对渲染的深度和法线执行传播操作,通过 patch 匹配技术生成新的深度和法线值(表示为传播深度和传播法线)。用几何一致性过滤掉不可靠的传播深度和法线,得到过滤的深度和法线。最后,确定渲染深度和法线与过滤的深度和法线明显偏离的区域,这表明现有高斯可能无法准确捕捉几何形状,因此需要更多高斯。这些区域中的像素被投影到 3D 空间中,用过滤的深度和法线初始化新的高斯。

请添加图片描述

patch 匹配技术如图所示:为了在传播过程中为像素 p 选择最佳平面候选,在 p 和每个平面候选之间执行单应性变换(homography transformation),从而产生相邻视图的可能对应像素。选择 p 与其可能配对像素之间颜色一致性最高的平面候选作为解决方案。所选平面候选用于更新像素 p 的深度和法线。

请添加图片描述
在原始 3DGS 中,优化仅依赖于图像重建损失,而不纳入任何几何约束。因此,优化后的高斯形状可能与实际表面几何形状存在很大偏差。这种偏差会导致从新视点观看时的渲染质量下降,特别是对于视野有限的大规模场景。如图所示,3DGS 中高斯的形状与道路的几何形状有很大不同,导致从新视点观看时出现严重的渲染伪影。本文提出一个平面约束,使高斯的形状与真实表面非常相似。
请添加图片描述
归纳一下,本文将渐进式高斯传播策略融入 3DGS,在优化中每 m 次迭代激活一次,其中设置 m = 50。保存传播的法线图以计算平面约束损失。最终训练损失 L 由图像重建损失 L1 和 3DGS 中的 LD-SSIM 以及所提出的平面约束损失组成。

猜你喜欢

转载自blog.csdn.net/yorkhunter/article/details/143377078