【小白深度教程 1.12】手把手教你 NeRF(神经辐射场)的基本原理和经典工作(含 PPT)

【小白深度教程 1.12】手把手教你 NeRF(神经辐射场)的基本原理和经典工作(含 PPT)

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

NeRF (Neural Radiance Fields) 简介与原理

NeRF (Neural Radiance Fields) 是一种使用神经网络进行三维场景重建的新方法。NeRF 将三维空间中的场景表示为一个连续的、隐式的神经辐射场,能够以高质量渲染逼真的新视角图像。NeRF 的核心思想是通过体渲染 (volume rendering) 技术,在给定的视角下重建三维场景的密度和颜色。

原理

NeRF 的基本思想是利用一个多层感知器 (MLP) 来学习三维空间中的一个连续函数,该函数可以将空间中的任意一点的坐标 ( x , y , z ) (x, y, z) ( x , y , z ) 和视角方向 ( θ , ϕ ) (\theta, \phi) ( θ , ϕ ) 映射为对应的颜色 ( r , g , b ) (r, g, b) ( r , g , b ) 和密度 σ \sigma σ 。这个映射函数定义为:

F Θ : ( x , d ) → ( c , σ ) F_\Theta : (\mathbf{x}, \mathbf{d}) \rightarrow (\mathbf{c}, \sigma) F Θ : ( x , d ) ( c , σ )

其中:

  • x = ( x , y , z ) \mathbf{x} = (x, y, z) x = ( x , y , z ) 是空间中的位置坐标。
  • d = ( θ , ϕ ) \mathbf{d} = (\theta, \phi) d = ( θ , ϕ ) 是视角方向。
  • c = ( r , g , b ) \mathbf{c} = (r, g, b) c = ( r , g , b ) 是该点在该方向上的颜色。
  • σ \sigma σ 是该点的密度,用于表示体渲染的透明度。

体渲染公式

为了生成图像,NeRF 使用体渲染公式将三维场景投影到二维图像平面。给定一条射线 r ( t ) = o + t d \mathbf{r}(t) = \mathbf{o} + t\mathbf{d} r ( t ) = o + t d ,其中 o \mathbf{o} o 是射线的起点, d \mathbf{d} d 是射线的方向,沿射线的颜色 C ( r ) C(\mathbf{r}) C ( r ) 可以通过对每一个采样点的颜色和密度进行积分来计算:

C ( r ) = ∫ t n t f T ( t ) σ ( r ( t ) ) c ( r ( t ) , d )   d t C(\mathbf{r}) = \int_{t_n}^{t_f} T(t) \sigma(\mathbf{r}(t)) \mathbf{c}(\mathbf{r}(t), \mathbf{d}) \, dt C ( r ) = t n t f T ( t ) σ ( r ( t )) c ( r ( t ) , d ) d t

其中:

  • T ( t ) = exp ⁡ ( − ∫ t n t σ ( r ( s ) )   d s ) T(t) = \exp\left(-\int_{t_n}^{t} \sigma(\mathbf{r}(s)) \, ds\right) T ( t ) = exp ( t n t σ ( r ( s )) d s ) 是从射线起点到 t t t 位置的累积透过率。
  • t n t_n t n t f t_f t f 分别表示射线的最近和最远采样点。

离散化采样

为了在实际中计算该积分,NeRF 对射线进行离散采样,将连续的积分转化为离散和:

C ( r ) ≈ ∑ i = 1 N T i ( 1 − exp ⁡ ( − σ i δ i ) ) c i C(\mathbf{r}) \approx \sum_{i=1}^{N} T_i (1 - \exp(-\sigma_i \delta_i)) \mathbf{c}_i C ( r ) i = 1 N T i ( 1 exp ( σ i δ i )) c i

其中:

  • T i = exp ⁡ ( − ∑ j = 1 i − 1 σ j δ j ) T_i = \exp\left(-\sum_{j=1}^{i-1} \sigma_j \delta_j\right) T i = exp ( j = 1 i 1 σ j δ j ) 是累积透过率。
  • σ i \sigma_i σ i c i \mathbf{c}_i c i 是采样点 i i i 处的密度和颜色。
  • δ i \delta_i δ i 是相邻采样点之间的距离。

网络训练

NeRF 使用多视角图像及其相应的相机参数作为训练数据,采用 MLP 预测密度和颜色。训练目标是最小化预测图像与真实图像之间的差异,即重建误差:

L = ∑ r ∈ R ∥ C ( r ) − C gt ( r ) ∥ 2 \mathcal{L} = \sum_{\mathbf{r} \in \mathcal{R}} \| C(\mathbf{r}) - C_{\text{gt}}(\mathbf{r}) \|^2 L = r R C ( r ) C gt ( r ) 2

其中:

  • R \mathcal{R} R 是所有的射线集合。
  • C ( r ) C(\mathbf{r}) C ( r ) 是预测的射线颜色。
  • C gt ( r ) C_{\text{gt}}(\mathbf{r}) C gt ( r ) 是真实图像中的颜色。

总结

NeRF 是一种基于神经网络的三维重建技术,通过学习一个隐式的辐射场表示,能够生成高质量的新视角图像。其核心是使用体渲染方法来计算沿射线的颜色,并通过神经网络进行参数学习。

相关工作 PPT 下载(百度网盘)

链接: https://pan.baidu.com/s/1V7Oz2Ylfm7qlVuIQf-GE1g
提取码: wbx5