互联网技术 / 互联网资讯 · 2023年12月23日 0

基于PlenOctrees的NeRF实时高保真渲染速度提升3000倍

基于PlenOctrees的NeRF实时高保真渲染速度提升3000倍

从稀疏的静态图像合成任意 3D 视角物体和场景新视图是很多 VR 和 AR 应用的基础。近年来神经辐射场(NeuRal Radiance Fields, NeRF)的神经网络渲染研究通过神经网络编码实现了真实的 3D 视角场景渲染。但是 NeRF 需要极端的采样要求和大量的神经网络运算,导致其渲染速度十分缓慢,严重制约了其在实际场景,尤其是实时交互场景中的应用。近日,来自 UC 伯克利等机构的研究者使用一种名为 PlEnoctRees 的数据结构为 NeRF 引入了一种新的数据表示,实现了实时的 NeRF 渲染。其渲染速度比原始的 NeRF 提高了 3000 多倍,并且图像质量可以与 NeRF 媲美。此外,采用 PlEnoctRees 结构还能有效减少 NeRF 的训练时间。

基于PlenOctrees的NeRF实时高保真渲染速度提升3000倍

方法

在 NeRF 方法中,摄像机光线从特定角度穿过场景,生成一组采样的三维点,通过神经网络把这些点的空间位置和视角映射成对应的密度和颜色。然后使用经典的体绘制技术将这些颜色和密度累积到二维图像中。这要求沿射线方向的每个样本都需输入神经网络来获取密度和颜色。这种方式是很低效的,因为大部分样本都是在自由空间中采样的,对整体的颜色并没有贡献。因此本篇论文提出使用稀疏的八叉树(OctRee)结构来避免过度采样。另外该方法还预计算了每个体素的值,避免重复输入网络。

基于PlenOctrees的NeRF实时高保真渲染速度提升3000倍

图 1 算法框架图

NeRF-SH 模型

NeRF-SH 模型如图 1(a)所示,其基本的优化过程和渲染过程与 NeRF 相同,但 NeRF-SH 模型不直接输出 RGB 颜色,而是输出球谐函数 k。颜色 c 由在相应的射线方向 (θ, &pHi;) 上的球谐函数 k 基上加权求和计算得出。转换公式如下:

基于PlenOctrees的NeRF实时高保真渲染速度提升3000倍

PlEnoctRee 结构

PlEnoctRee 结构如图 1(b)所示,在 NeRF-SH 模型训练完成后,将其转换成稀疏的 OctRee 结构以实现实时渲染。转换的过程分为以下三个步骤:1)在较高的层次上,在网格上评估网络,只保留密度值,2)通过阈值过滤体素。3)对每个剩余体素内的随机点进行采样,并对它们进行平均,以获得 SH 函数,并存储在 OctRee 叶子中。在渲染的过程中树的值是完全可微的,直接在原始训练图像上微调就可以进一步提升图像质量。PlEnoctRee 结构的优化速度约为每秒 300 万射线,相比之下,NeRF 优化速度约为每秒 9000 射线。该方法的优化速度相比 NeRF 具有明显的提升,因此可以提前结束 NeRF-SH 的训练来构建 PlEnoctRee 结构,而几乎不会降低模型性能。

实验结果

渲染效果如图 2 所示,相比于 NeRF,该方法渲染的图像在细节上更优,更接近于真实图像,并且渲染速度快了 3000 多倍。

基于PlenOctrees的NeRF实时高保真渲染速度提升3000倍

图 3 是几种方法训练时间的对比结果,可以看出 NeRF 模型和 NeRF-SH 模型所需的训练时间接近。而 PlEnoctRee 结构转换和微调需要大约 1 小时的训练时间。但是将 NeRF-SH 和 PlEnoctRee 结合可以让模型只需 4.5 小时,就能达到 NeRF 大约 16 小时的训练质量。

基于PlenOctrees的NeRF实时高保真渲染速度提升3000倍

虽然渲染速度和性能都有所提升,但使用 OctRee 结构也会占用更多内存资源。