神经辐射场 NeRF 是什么?从几张照片重建出能任意视角观看的三维场景
神经辐射场(Neural Radiance Field,NeRF)是一种用神经网络从一组二维照片中重建复杂三维场景的技术。它由加州大学伯克利分校、谷歌研究院和加州大学圣迭戈分校的研究者在 2020 年提出,论文《NeRF:将场景表示为神经辐射场用于视图合成》获得了 ECCV 2020 的最佳论文提名,引起了计算机视觉和图形学领域的广泛关注。
它能做什么
给定从不同角度拍摄的同一个场景或物体的几十张照片,以及每张照片拍摄时相机的位置和朝向,NeRF 能学习出这个场景的三维表示,然后从任何一个新的、从未拍摄过的角度,渲染出逼真的图像。这叫新视角合成。它能还原出非常精细的细节,以及反光、透明等复杂的光照效果,生成的效果远超当时的其他方法。
核心思想
传统的三维重建通常会生成显式的三维模型,比如点云或由三角形组成的网格。NeRF 采用了一种完全不同的方式:用一个神经网络来“隐式地”表示整个场景。这个网络是一个函数:输入空间中某一点的三维坐标,以及观察它的方向,输出这一点的颜色和密度。密度表示这一点是否被物体占据、有多“实”,颜色会随观察方向变化,从而可以表现出反光等效果。
要生成一张图片,就从相机的位置向画面中的每个像素发射一条光线,沿着光线采样许多个点,用神经网络查询每个点的颜色和密度,再按照体渲染的方法把它们累积起来,得到这个像素的颜色。训练时,把渲染出的图像和真实拍摄的照片进行比较,不断调整网络的参数,让渲染结果越来越接近真实的照片。由于整个渲染过程是可微分的,可以直接用梯度下降来训练。
局限和后续发展
原始的 NeRF 有一些明显的缺点:训练很慢,一个场景往往需要训练一两天;渲染也很慢,难以实时显示;每个场景都需要单独训练;对动态场景的支持有限。此后出现了大量的改进工作:英伟达在 2022 年提出的 Instant-NGP 用多分辨率哈希编码,把训练时间缩短到几秒到几分钟;还有处理大规模城市场景、动态场景、少量照片输入的各种变体。2023 年提出的三维高斯泼溅(3D Gaussian Splatting)用大量可学习的三维高斯椭球来显式地表示场景,在保持高画质的同时实现了实时渲染,在很多应用中成为了 NeRF 的有力替代。
应用
神经辐射场及相关技术被用于虚拟现实和增强现实中的场景重建、电商中商品的三维展示、文物和建筑的数字化保存、地图和街景的沉浸式浏览、电影和游戏的特效制作,以及为自动驾驶和机器人生成仿真环境。