在开始今天的介绍前,先一起来看看下面的几个场景。
请注意,上述动图完全是由多张照片渲染出来的 3D 场景。人类很难发现它们的破绽。
那让我们一起看看,这种场景是怎样实现的。
网格和点是最常见的三维场景表示法,因为它们是显式的,非常适合基于 GPU/CUDA 的快速光栅化。相比之下,最新的神经辐射场(NeRF)方法建立在连续场景表征的基础上,通常使用体积光线渲染优化多层感知器(MLP),对捕捉到的场景进行新视角合成。虽然这些方法的连续性有助于优化,但渲染所需的随机取样成本很高,而且会产生噪声。
来自法国蔚蓝海岸大学的研究者引入了一种新方法,能够结合这两种方法的优点:3D 高斯表征有着 SOAT 视觉质量,并且在训练时间上也进行了优化,而基于 tile 的抛雪球算法(tile-based splatting)在几个数据集上以 1080p 分辨率实现 SOTA 实时渲染。
研究团队立下目标:对多张照片拍摄的场景进行实时渲染,并在典型真实场景中实现时间最优化。此前,Fridovich-Kei 等人提出的方法虽然实现了快速训练,但难以达到当前 SOTA NeRF 方法所获得的视觉质量,而后者需要长达 48 小时的训练时间。还有研究提出快速但质量较低的辐射场方法,可以根据场景实现交互式渲染(每秒 10-15 帧),但这种方法无法实现高分辨率下的实时渲染。
接下来,我们来看本文是如何实现的。
方法
研究团队的解决方案主要由三个部分组成。
第一,引入 3D 高斯作为一种灵活而富有表现力的场景表征。输入与 NeRF 方法类似,即使用结构 - 运动(SfM)校准像机,并且使用稀疏点云初始化 3D 高斯集合,点云来自 SfM 过程。此外,该研究只用 SfM 点作为输入就能获得高质量的结果。需要注意的是,对于 NeRF 合成数据集,即使采用随机初始化,本文方法也能获得高质量的结果。研究表明,3D 高斯是一个很好的选择。
第二,优化 3D 高斯属性,即 3D 位置、不透明度𝛼、各向异性协方差和球谐波(SH)系数。优化过程产生了一个相当紧凑、非结构化和精确的场景表征。
第三,实时渲染解决方案,该研究使用快速 GPU 排序算法。不过,由于采用了 3D 高斯表征,可以在遵循可见度排序的情况下进行各向异性拼接,这要归功于排序和𝛼- blending— 并通过跟踪所需的尽可能多排序拼接的遍历,实现快速准确的向后传递。
综上,本文做出了以下贡献:
- 引入各向异性 3D 高斯作为辐射场的高质量、非结构化表征;
- 3D 高斯属性的优化方法,与自适应密度控制交织在一起,为捕捉到的场景创建高质量的表征;
- 针对 GPU 的快速可微分渲染方法,该方法具有可视性感知功能,允许各向异性拼接和快速反向传播,以实现高质量的新视图合成。
实验
下图显示了本文的方法与以往方法效果的比较。
场景自上而下依次为来自 Mip-NeRF360 数据集的自行车、花园、柜台和房间;来自深度混合数据集的游戏室(更多对比请阅读原文)。图中把不同方法产生的显著差异已经标出,如自行车的辐条、花园远处的房屋玻璃、铁篮子的杆子以及玩具小熊。
可以观察出,本文的方法相比以往的方法在细节上更具有优势。
除此之外,在图 6 中我们可以看到,即使迭代 7K 次(∼ 5 分钟),本文方法也能很好地捕捉列车的细节。在迭代 30K 次(∼35 分钟)时,背景伪影明显减少。对于花园场景,差异几乎不明显,7K 次迭代(∼8 分钟)已经是非常高的质量了。
研究团队采用 Mip-NeRF360 建议的方法,将数据集分为训练 / 测试两部分,每隔 8 张照片进行测试,以便进行一致且有意义的比较,从而生成误差指标,并使用文献中最常用的标准 PSNR、L-PIPS 和 SSIM 指标,详细数据见表 1。
表 1 展现了通过三个数据集计算得出的新方法与之前的工作相比的定量评估。标有「†」的结果直接采用了原论文,其他结果均为该实验团队的实验结果。
消融实验
研究团队将所做的不同贡献和算法选择分离出来,并构建了一组实验来衡量它们的效果。对算法的以下几个方面进行了测试:从 SfM 初始化、致密化策略、各向异性协方差、允许无限数量的斑块具有梯度以及球谐波的使用。下表总结了每种选择的定量效果。
我们来看看更直观的效果。
想要了解更多详细内容,请阅读原文。