在基本概念那一讲,我们说要解决两个疑问,
1.为什么要用神经网络来表示?有什么好处?
2.什么是空间中任意一点沿着视线的颜色和密度,这个和最终重建的图片是什么关系?
前面我们讲了为什么nerf要用神经网络,接下来我们要解释第二个问题。
在讲第二个问题之前,我们先从整体上了解nerf的整个处理过程。
整个nerf的输入是2D图片,和相机的位姿(位置和方向),输出是合成的2D图片。
但是nerf的神经网络的模型的输入是5D向量(粒子的x,y,z,theta,phi),输出是4D向量(粒子的密度和颜色)。
这就说明在模型之前存在前处理的过程,将图片转化为5D向量。在模型之后存在后处理过程将4D向量转化为2D图片。所以nerf的完整过程分为三个步骤。
1、2D图片->前处理->5D向量(粒子的空间位姿)
2、5D向量->神经网络->4D向量(粒子的参数)
3、4D向量->后处理(体渲染)->2D图片
上面用到了粒子这个概念,那么什么是粒子呢?
“粒子”是图形学中的概念,并不是真实存在的物理粒子,而是算法为了模拟光线与物质交互而引入的一个抽象概念。在nerf的框架下,三维空间被看作是由无数微小的体积单元组成,这些微小的体积单元组成,这些微小的体积单元被称为体素。每个体素内都可能包含“粒子”,这些粒子具有颜色和密度属性,描述了体素内物质对光线的吸收、散射和发射等行为。
当我们提及单个粒子的密度时,实际上是指在体素内物质的存在程度或