计算机视觉

神经辐射场(neural radiance field, NeRF)

/ NUR-ul RAY-dee-uns feeld (nurf) /

神经辐射场,即NeRF,能从一组在不同角度拍下的普通照片中,构建出一个场景的三维模型——然后让你把一台虚拟相机飞到任何一个你其实从未拍过的新视角。从二十个位置给一座雕像拍照,NeRF就能渲染出从其中任意两个位置「之间」看过去会是什么样,连透视、光照、甚至反光都正确无误。它是一种把真实的地方或物体,捕捉成「你可以在三维里重访之物」的方法。

它巧妙的转折,在于它存的是什么。NeRF存的不是传统的、由三角形拼成的三维网格,而是一个小小的神经网络,它把整个场景记成了一个连续的函数:你问它「在这个三维点上、从这个方向看过去,那里是什么颜色、有多实在?」,它就回答。要生成一张图像,计算机会向每个像素射出想象的光线,沿每条光线向网络询问许多个点,再把颜色累加起来——这个过程叫体渲染。把网络训练到它渲染出的视角与你的真实照片相符,它便隐式地学会了场景的几何。

这是个惊艳的成果,但要把局限说清楚。最初的NeRF训练慢、渲染也慢,它捕捉的是某一个特定场景(并非通用的世界模型),还假设场景静止不动——移动的人或车会让它犯糊涂。它在你的照片之间能漂亮地插值,却无法真实地凭空造出某个你从未展示给它看的物体的背面。这个领域发展极快:更快的变体,以及一种叫高斯泼溅(Gaussian splatting)的相关技术,如今已能实时渲染。但说到底,NeRF重建的是一种「你可以重新观看的外观」;它不是测量级的三维扫描,那些没被看见的部分,都是猜测。

你绕着一座喷泉走,拍了40张照片。一个NeRF在这些照片上训练,然后让你把相机滑到一个你从未站过的低角度——水流、飞溅的反光、以及深度,看起来都对。但若把虚拟相机对准喷泉那一侧——你的照片从未拍到过的地方——结果就糊成了含混的瞎猜。

在你拍过的照片之间可以自由移动——但你从未展示过的部分,仍然是一场猜测。

NeRF重建的是某一个特定、且大体静止的场景,作为一种「可重新观看的外观」——它既不是通用的三维世界模型,也不是测量级的扫描。它在你的照片之间插值,却无法真实地补全它从未见过的表面。最初的版本很慢;较新的方法(以及高斯泼溅)渲染要快得多。

又称
NeRF神经辐射场神經輻射場novel view synthesis