NeRF神经辐射场论文记录(一) author:张一极
date:20231215 20:17
论文地址: https://arxiv.org/pdf/2003.08934.pdf
论文使用了一个简单的MLP网络结构,实现了输入是简单的多视角视图的视觉重建,通过稀疏的输入视角,去连续的拟合出了在特定光线条件下的图像变化。
概述: 模型的输入是5D的坐标 ( x , y , z , θ , ϕ ) ,分别代表了相机沿着某一条射线的坐标值 ( x , y , z ) ,以及相机姿态观望角参数( θ , ϕ ),通过图a和图b之间的 F (多层MLP),输出某个坐标点和相机参数下的 ( R G B σ ) ,其中RGB是这个点的颜色, σ 是对应点的透光率,有了这个数据,可以通过连续输出当前视角所有点的颜色和透光率信息,渲染出二维新视角的图像,由于渲染过程可微分,且有groundtruth可以进行差异衡量,所以可以进行训练优化。
细节: 采用8个全连接层去处理相机坐标 [ x , y , z ] ,输出的是透光率 σ ,以及一个256维的向量A,把A作为输入,拼接上相机视角参数 [ θ , ϕ ] ,送到新的一个全联接层输出这个视角下的预计颜色。
神经辐射场将场景表示为,空间中任意一点的体积密度(透光率),以及对应的光线发射角度。 体积密度:光线到达某一点处,碰撞到其他粒子的概率,如果概率为0则透光率为100%,概率为1则透光率为0。
颜色的推导 假设具有远近边界的一个有限集合内,存在边界 t n , t f ,o为原点,t为距离,d为光线射出视角,则我们可以用 r t = o + t ⋅ d ,来表达任意一点的光线,我们用 C r 来表达这一点的颜色,则 C r 推导如下:
C ( r ) = ∫ t n t f T ( t ) σ ( r ( t ) ) c ( r ( t ) , d ) d t , w h e r e T ( t ) = exp ( − ∫ t n t σ ( r ( s ) ) d s ) 积分内部的影响因子,分别是:
T ( t ) :代表的是从tn到t位置对透光率进行概率累积,加负号的原因是理论上而言,距离越长,光传播过程中没有被其他粒子击中的概率就越低,整体趋势成指数型衰减。
σ(x):The volume density σ(x) can be interpreted as the differential probability of a ray terminating at an infinitesimal particle at location x.即透光率(体积密度)。
C ( r ( t ) , d ) 代表的是t位置的颜色
view1转动到view2的视角下,两个像素点的颜色变化情况就是图c的两个点(绿色点对应绿色点,红色点对应红色点),通过采样第一张图的红色点和第二张图的红色点,用模型拟合出两个视角红色点中间未采样部分的颜色变化,用来生成中间视角的颜色。
为了求出颜色具体数值,我们需要对积分进行数值估计,论文中采用分层均匀抽样,抽取的样本为ti,其中 t i ∼ U [ t n + i − 1 N ( t f − t n ) , t n + i N ( t f − t n ) ] 。
为了进一步简化计算,通过求积规则进行积分期望的计算,
C ^ ( r ) = ∑ i = 1 N T i ( 1 − exp ( − σ i δ i ) ) c i , w h e r e … T i = exp ( − ∑ j = 1 i − 1 σ j δ j ) 这样的转变中影响因子其实没变,依旧是:
1.累积散射率:Ti
2. ) α i = 1 − e x p ( − σ i δ i ) :公式中的 1 − exp ( − σ i δ i ) 表示的是第 i 个样本的不透明度(alpha值)。这里的 σ i 是第 i 个样本的散射系数, δ i 是相邻两个样本之间的距离。
为什么会有这样的公式, 需要从光线传输和体积渲染的基本原理说起。在计算机图形学中, 光线传输方程 (Radiance Transfer Equation, RTE) 描述了光线在场景中传播时如何与物质相互作用。在体积渲染中, 我们关心的是光线通过一个体积密度不均匀的介质时的辐射度。
当我们用蒙特卡罗方法进行光线追踪时, 通常会用到这样的策略:光线每前进一步, 都会有一定概率被介质中的粒子散射。这个概率通常由 σ i δ i 决定, 其中 σ i 是散射系数, 描述了介质对光线的散射能力; δ i 是光线在介质中的前进距离。
因此, α i = 1 − exp ( − σ i δ i ) 实际上是在计算光线在前进距离为 δ i 时, 被介质中的粒子散射的概率。当 σ i δ i 趋近于 0 时, α i 接近于 0 , 表示光线几乎不发生散射,也就是不会击中其他粒子; 当 σ i δ i 增大时, α i 接近于 1 , 表示光线有很大概率被散射,大概率会击中其他粒子而发生变化。
所以简化 α i = 1 − exp ( − σ i δ i ) ,代入期望计算:
3. C i ,i位置的颜色
最终的期望:
C ^ ( r ) = ∑ i = 1 N T i α i c i , w h e r e … T i = exp ( − ∑ j = 1 i − 1 σ j δ j )