目录
(一)前言
作为今年计算机视觉领域最火的AI技术,NeRF可谓是应用广泛,前景一片大好。
自2020年在计算机视觉领域,神经辐射场(Neural Radiance Field, NeRF)作为一种具有隐式场景表示的新型视场合成技术一经被提出便引起了广泛的关注。一石激起千层浪,在此之后的两三年的各大顶会上相关文章层出不穷。作为一种新颖的视图合成和三维重建方法,NeRF模型在机器人、城市地图、自主导航、虚拟现实/增强现实等领域都有广泛的应用。
NeRF通过隐式表达的方式将新视角合成任务推向了一个新的高度。那么,什么是“新视角合成方法”呢?什么又是“隐式表达”呢?
接下来让我们一起了解一下NeRF吧~
NeRF——其核心点在于非显式地将一个复杂的静态场景用一个神经网络来建模。在网络训练完成后,可以从任意角度渲染出清晰的场景图片。为了训练网络,针对一个静态场景,需要提供大量相机参数已知的图片。基于这些图片训练好的神经网络,即可以从任意角度渲染出图片结果了。理解NeRF主要是需要理解三个方面:
- 如何用NeRF来表示3D场景?
- 如何基于NeRF渲染出2D图像?
- 如何训练NeRF?
接下来就从这三个方面来了解NeRF是如何工作的。
(二)NeRF工作的Pipeline
简单的来说,NeRF工作的过程可以分成三部分:三维重建、渲染和训练。
1、Neural Radiance Field Scene Representation
三维重建部分本质上是一个2D到3D的建模过程,利用三维位置(x,y,z)和二维方位视角(θ,φ) 作为输入,输出是颜色c=(r,g,b)和体素密度(σ),主要是通过利用多层感知机(MLP)网络建模来近似地表示输入与输出的映射关系,形成了3D场景的“隐式表示”。
2、Volume Rendering with Radiance Fields
渲染部分本质上是一个3D到2D的建模过程,渲染部分利用重建部分得到的3D点的颜色及体素密度沿着光线进行整合得到最终的2D图像像素值。该部分使用经典体渲染(Volume Rendering) 的原理渲染通过场景的任何光线的颜色,即下面这条式子:
C ( r ) = ∫ t n t f [ T ( t ) σ ( r ( t ) ) c ( r ( t ) , d ) d t ] ,其中 T ( t ) = ∫ t n t [ σ ( r ( s ) ) d s ] C(r)=∫_ {t_n}^{t_f}[T(t)σ(r(t))c(r(t),d)dt],其中 T(t)=∫_{t_n}^t [σ(r(s))ds] C(r)=∫tntf[T(t)σ(r(t))c(r(t),d)dt],其中T(t)=∫t