视图合成是一种计算机视觉技术,它利用观察到的图像来恢复 3D 场景表示,并能在新的、未观察到的视点上渲染场景。近年来,神经体积表示技术的应用取得了显著进展。
神经辐射场(Neural Radiance Fields,NeRF)可以使用精细的几何细节和真实感视图相关的外观渲染出逼真新颖的视图。它将场景表示为由多层感知器(MLP)参数化的连续体积函数,从一个稳定的 3D 位置映射到该位置的体积密度和视图相关的发射辐射。
但由于渲染 NeRF 速度慢、计算量大,使其无法用于交互式视图合成。这也使恢复的 3D 模型不能在标准 Web 浏览器中显示。
谷歌的研究人员解决了这一问题,即实时渲染一个经过训练的 NeRF,同时还能显示微小的几何细节和令人信服的视图相关效果。
他们的方法是将 NeRF 渲染过程加速三个数量级,从而使单 GPU 上每帧的渲染时间达到 12 毫秒。他们预先计算训练过的 NeRF,并将其存储到一个稀疏的 3D 体素网格数据结构中,称为稀疏神经辐射网格(SNeRG)。在 SNeRG 中,每个活动体素都包含不透明度、漫反射颜色,以及一个学习到的特征向量,该特征向量可以编码视图相关的效果。
为了渲染这种表示,他们沿着每条光线累加漫反射颜色和特征向量。随后通过轻量级 MLP 将这些累加的特征向量生成与视图相关的残差,并添加到收集的漫反射颜色中。
对 NeRF 的主要修改
最近的研究建议,离散化的体积表示是提高 NeRF 效率最有效的方法之一。研究人员扩展了这一方法,采用延迟神经渲染技术对视图依赖性效果进行建模,从而使训练好的 NeRF 模型在实时商品硬件中可视化,并且质量下降最小。
该团队对 NeRF 进行了两个必要的修改,使它能够有效地转化这种稀疏体素表示:
1.他们设计了一个“延迟”的 NeRF 架构。原始的 NeRF 架构通过每个 3D 样本运行一次的 MLP 来表示视图相关效果。但是,改进后的架构在 MLP 中表示,每个像素只运行一次。
2.为了提高稀疏性,他们在训练过程中规范了 NeRF 的预测不透明度场。体积表示所需的渲染时间和存储量,在很大程度上取决于所提供场景中不透明度的稀疏性。因此,正则化器对预测的密度进行惩罚,使得 NeRF 的不透明度场变得更加稀疏,从而提高了生成的 SNeRG 的存储成本和渲染时间。
该团队证明,他们所提出的方法能有效地提高 NeRF 的渲染速度,在保持 NeRF 表现精细几何细节和令人信服的视图相关效果的同时,实现实时渲染帧。另外,这种表示方法结构紧凑,平均表示一个场景所需的存储空间不到 90MB。
图 1:NeRF 和 SNeRG 射线行进法的比较。来源
根据渲染时间性能、存储成本和渲染质量这三个标准,研究人员将这些方法与当前用于加速 NeRF 的技术相比较。通过评估,他们发现:
- MLP 在消除视图相关方面对运行时性能几乎没有影响。
- 获取稀疏性损失导致内存使用量增加。
- 将建议的“延迟”渲染更改为 NeRF,但渲染时间会非常长。
该团队注意到,经过微调,他们所提出的 SNeRG 模型的渲染质量与神经模型相比更有竞争力。存储消融研究证实,压缩后的 SNeRG 表示足够小,能快速载入网页,或者在笔记本 GPU 上以超过 30 帧 / 秒的速度显示。
图 2:稀疏性损失和可见性剔除的可视化。来源
该团队希望,他们的方法能够在各种视觉和图形应用中帮助采用这种神经场景表示方法。
作者介绍:
Tanushree Shenwai,MarktechPost 的咨询实习生。她目前正在印度理工学院(IIT)布巴内斯瓦尔校区攻读技术学士学位。她是一名数据科学爱好者,对人工智能在各个领域的应用范围有着浓厚的兴趣。她热衷于探索技术的新进展及其在现实生活中的应用。
本文转自 公众号:AI前线 ,作者Tanushree Shenwai,点击阅读原文