神经辐射场 (NeRF) 概念
理论介绍
NeRF模型以其基本形式将三维场景表示为由神经网络近似的辐射场。辐射场描述了场景中每个点和每个观看方向的颜色和体积密度。这写为:
F
(
x
,
θ
,
φ
)
→
(
c
,
σ
)
,
(
1
)
F\left( x,\theta ,\varphi \right) →\left( c,\sigma \right) ,(1)
F(x,θ,φ)→(c,σ),(1)
其中
x
=
(
x
,
y
,
z
)
x = (x,y,z)
x=(x,y,z) 是场景内坐标,
(
θ
,
φ
)
(θ,φ)
(θ,φ) 表示方位角和极视角,
c
=
(
r
,
g
,
b
)
c = (r,g,b)
c=(r,g,b) 表示颜色,
σ
σ
σ表示体积密度。该5D函数由一个或多个多层预加速器 (MLP) 近似,有时表示为
f
Θ
f_\Theta
fΘ。两个视角
(
θ
,
φ
)
(θ,φ)
(θ,φ)通常由
d
=
(
d
x
,
d
y
,
d
z
)
d = (dx,dy,dz)
d=(dx,dy,dz)表示,这是一个3D笛卡尔单位向量。通过将
σ
σ
σ (体积密度 (即场景的内容) 的预测限制为与观看方向无关),该神经网络表示被约束为多视图一致,而允许颜色
c
c
c取决于观看方向和场景内坐标。在基线NeRF模型中,这是通过将MLP设计为两个阶段来实现的。
第一阶段作为输入
x
x
x并输出
σ
σ
σ 和高维特征向量 (在原始论文中256)。在第二阶段,特征向量然后与观看方向
d
d
d连接,并传递给额外的MLP,该MLP输出
c
c
c。我们注意到Mildenhall等人 [1] 认为
σ
σ
σ MLP和
c
c
c MLP是同一神经网络的两个分支,但是许多后来的作者认为它们是两个独立的MLP网络,这是我们从这一点开始遵循的惯例。从广义上讲,使用经过训练的NeRF模型进行的新颖视图合成如下。
- 对于正在合成的图像中的每个像素,通过场景发送相机光线并生成一组采样点 (参见图1中的 (a))。
- 对于每个采样点,使用观看方向和采样位置来提取局部颜色和密度,由NeRF MLP(s) 计算 (参见图1中的 (b))。
- 使用体绘制从这些颜色和密度产生图像 (参见图1中的 ©)。
更详细地说,给定体积密度和颜色函数,使用体积渲染来获得任何相机射线
r
(
t
)
=
o
+
t
d
r(t) = o+td
r(t)=o+td的颜色
C
(
r
)
C(r)
C(r),相机位置
o
o
o和观看方向
d
d
d使用
C
(
r
)
=
∫
t
1
t
2
T
(
t
)
⋅
σ
(
r
(
t
)
)
⋅
c
(
r
(
t
)
,
d
)
⋅
d
t
,
(
2
)
C(r)=\int_{t_1}^{t_2}{T(t)·\sigma(r(t))·c(r(t),d)·dt},(2)
C(r)=∫t1t2T(t)⋅σ(r(t))⋅c(r(t),d)⋅dt,(2)
其中
T
(
t
)
T(t)
T(t) 是累积透射率,表示光线从
t
1
t_1
t1传播到
t
t
t而不被拦截的概率,由
T
(
t
)
=
e
−
∫
t
t
1
σ
(
r
(
u
)
)
⋅
d
u
,
(
3
)
T(t)=e^{-\int_{t}^{t_1}{\sigma (r(u))·du}},(3)
T(t)=e−∫tt1σ(r(u))⋅du,(3)
C
(
r
)
C(r)
C(r)通过待合成图像的每个像素。这个积分可以用数值计算。最初的实现 [1] 和大多数后续方法使用了非确定性分层抽样方法,将射线分成
N
N
N个等间距的仓,并从每个仓中均匀抽取一个样本。然后,等式 (2) 可以近似为
C
^
(
r
)
=
∑
i
=
1
N
α
i
T
i
c
i
,
w
h
e
r
e
T
i
=
e
−
∑
j
=
1
i
−
1
σ
j
δ
j
,
(
4
)
\hat{C}\left( r \right) =\sum_{i=1}^N{\alpha _iT_ic_i}\,,\,where\quad T_i=e^{-\sum_{j=1}^{i-1}{\sigma _j\delta _j}},(4)
C^(r)=i=1∑NαiTici,whereTi=e−∑j=1i−1σjδj,(4)
δ
i
\delta _i
δi是从样本
i
i
i到样本
i
+
1
i+1
i+1的距离。
(
σ
i
,
c
i
)
(\sigma_i,c_i)
(σi,ci)是根据NeRF MLP(s) 计算的在给定射线的采样点
i
i
i上评估的密度和颜色。
α
i
α_i
αi在采样点
i
i
i处合成
a
l
p
h
a
alpha
alpha的透明度/不透明度由
α
i
=
1
−
e
σ
i
δ
i
,
(
5
)
\alpha_i = 1-e^{\sigma_i\delta_i},(5)
αi=1−eσiδi,(5)
可以使用累积的透射率计算射线的预期深度为
d
(
r
)
=
∫
t
1
t
2
T
(
t
)
⋅
σ
(
r
(
t
)
)
⋅
t
⋅
d
t
,
(
6
)
d(r)=\int_{t_1}^{t_2}{T(t)·\sigma(r(t))·t·dt},(6)
d(r)=∫t1t2T(t)⋅σ(r(t))⋅t⋅dt,(6)
这可以近似于方程 (4) 近似方程 (2) 和 (3)
D
^
(
r
)
=
∑
i
=
1
N
α
i
t
i
T
i
,
(
7
)
\hat{D}(r) = \sum_{i=1}^{N}{\alpha_it_iT_i},(7)
D^(r)=i=1∑NαitiTi,(7)
某些深度正则化方法使用预期的深度来将密度限制为场景表面的类似delta的函数,或增强深度平滑度。
对于每个像素,使用平方误差光度损失来优化MLP参数。在整个图像上,这是由
L
=
∑
r
∈
R
∣
∣
C
^
(
r
)
−
C
g
t
(
r
)
∣
∣
2
2
,
(
8
)
L = \sum_{r\in R}{|| \hat{C}(r)-C_{gt}(r)||_2^2},(8)
L=r∈R∑∣∣C^(r)−Cgt(r)∣∣22,(8)
其中,
C
g
t
(
r
)
C_{gt}(r)
Cgt(r) 是与
r
r
r相关联的训练图像的像素的地面真实颜色,
R
R
R是与待合成图像相关联的射线批次。
数据集
数据集地址:https://drive.google.com/drive/folders/128yBriW1IG_3NJ5Rp7APSTZsJqdJdfc1
- Synthetic NeRFDataset
- Local Light Field Fusion (LLFF) Dataset
- DTU Dataset
- ScanNet Dataset
- Tanks andTemples Dataset
- ShapeNet Dataset
评估指标
在标准设置中,通过NeRF进行新颖的视图综合使用基准的视觉质量评估指标。这些指标试图评估具有 (完全参考) 或不具有 (无参考) 地面真实图像的单个图像的质量。峰值信噪比 (PSNR),结构相似性指数度量 (SSIM) [31],学习的感知图像补丁相似性 (LPIPS) [32] 是迄今为止NeRF文献中最常用的。
PSNR
PSNR是一种无参考质量评估指标:
P
S
N
R
(
I
)
=
10
⋅
l
o
g
10
M
A
X
(
I
)
2
M
S
E
(
I
)
,
(
10
)
PSNR(I)=10·log_{10}{\frac{MAX(I)^2}{MSE(I)}},(10)
PSNR(I)=10⋅log10MSE(I)MAX(I)2,(10)
其中
M
A
X
(
I
)
MAX(I)
MAX(I) 是图像中的最大可能像素值 (对于8位整数255),并且
M
S
E
(
I
)
MSE(I)
MSE(I) 是在所有颜色通道上计算的像素方向均方误差。
P
N
S
R
PNSR
PNSR也通常用于信号处理的其他领域,并且被很好地理解。
SSIM
SSIM是一个完整的参考质量评估指标,对于单个小块
S
S
I
M
(
x
,
y
)
=
(
2
μ
x
μ
y
+
C
1
)
(
2
σ
x
y
+
C
2
)
(
μ
x
2
+
μ
y
2
+
C
1
)
(
μ
x
2
+
μ
y
2
+
C
2
)
,
(
11
)
SSIM(x,y) = \frac{(2\mu_x\mu_y+C_1)(2\sigma_{xy}+C_2)}{(\mu_x^2+\mu_y^2+C_1)(\mu_x^2+\mu_y^2+C_2)},(11)
SSIM(x,y)=(μx2+μy2+C1)(μx2+μy2+C2)(2μxμy+C1)(2σxy+C2),(11)
其中
C
i
=
(
K
i
L
)
2
C_i = (K_iL)^2
Ci=(KiL)2,L是像素的动态范围 (对于8bit整数255),并且
K
1
=
0.01
K_1 = 0.01
K1=0.01,
K
2
=
0.03
K_2 = 0.03
K2=0.03是由原始作者选择的常数。我们注意到,在原始论文 [31] 中,有 (12) 给出的
S
S
I
M
SSIM
SSIM的更一般形式。在11 × 11圆形对称高斯加权窗口内计算局部统计量
μ
,
s
\mu^,s
μ,s,
σ
,
s
\sigma^,s
σ,s,权重
w
i
w_i
wi的标准差为1.5,并归一化为1。这些是由给出的,没有损失概括
μ
x
=
∑
i
w
i
x
i
,
(
12
)
\mu_x = \sum_i{w_ix_i},(12)
μx=i∑wixi,(12)
σ
x
=
(
∑
i
w
i
(
x
i
−
μ
x
)
2
)
1
2
,
(
13
)
\sigma_x=(\sum_iw_i(x_i-\mu_x)^2)^{\frac{1}{2}},(13)
σx=(i∑wi(xi−μx)2)21,(13)
σ
x
y
=
∑
i
w
i
(
x
i
−
μ
x
)
(
y
i
−
μ
y
)
,
(
14
)
\sigma_{xy}=\sum_iw_i(x_i-\mu_x)(y_i-\mu_y),(14)
σxy=i∑wi(xi−μx)(yi−μy),(14)
其中
x
i
x_i
xi,
y
i
y_i
yi分别是从参考图像和评估图像中采样的像素。在实践中,对整个图像的
S
S
I
M
SSIM
SSIM分数进行平均。
LPIPS
L
P
I
P
S
LPIPS
LPIPS是使用学习的卷积特征的完整参考质量评估指标。得分由多层特征图的加权像素
M
S
E
MSE
MSE给出。
L
P
I
P
S
(
x
,
y
)
=
∑
l
L
1
H
l
W
l
∑
h
,
w
H
l
,
W
l
∣
∣
w
l
⊙
x
h
w
l
−
y
h
w
l
∣
∣
2
2
,
(
15
)
LPIPS(x,y)=\sum_l^L\frac{1}{H_lW_l}\sum_{h,w}^{H_l,W_l}{||w_l\odot x_{hw}^{l}-y_{hw}^{l}||}_2^2,(15)
LPIPS(x,y)=l∑LHlWl1h,w∑Hl,Wl∣∣wl⊙xhwl−yhwl∣∣22,(15)
x
h
w
l
x_{hw}^{l}
xhwl和
y
h
w
l
y_{hw}^{l}
yhwl是参考和评估图像在像素宽度w,像素高度h和层l处的特征。Hl和Wl是相应层处的特征图高度和宽度。最初的
L
P
I
P
S
LPIPS
LPIPS论文使用SqueezeNet [444],VGG [34] 和AlexNet [35] 作为特征提取主干。原始纸张使用了五层。原始作者提供了微调和从头开始的配置,但实际上,已按原样使用预先训练的网络。