原文链接:https://arxiv.org/abs/2402.03307
1. 引言
从2D图像进行动态场景的3D重建并合成新视图图像仍然面临挑战。一些方法联合建模3D场景与其动态,但因时空纠缠的复杂性,这些方法对细节的保留存在缺陷;其它方法则进行时空解耦,学习静态正则空间,并预测变形场以考虑时间变化,但其难以处理物体突然出现与消失的情况。此外,基于体渲染的方法需要在大量射线上进行密集采样,不能支持实时渲染。
本文将静态场景新视图合成方法3D GS扩展到4D,提出时空表达,使3D GS能适应动态场景。将3D场景动态视为4D时空高斯椭球的时间切片(如下图所示为XY到XYT的扩展)。此外,在时间维度扩展剪枝-分裂机制,使4D高斯可以表达突然出现和消失的物体。
本文选择4D转子(rotor,旋转算子),一种时空可分离的旋转表示,来表达4D旋转。4D转子在时间维度为0时,等价于空间的3D旋转,因此也可用于静态场景。
此外,本文增强了优化策略,引入新的正则化项来稳定和促进动态重建。熵损失使高斯的不透明度趋近0或1,能有效去除“漂浮物”。4D一致性损失能正则化高斯运动,从而进行更一致的动态重建。
3. 方法
3.2 4D高斯溅射
3.2.1 基于转子的4D高斯表达
4D高斯可以表达为4D中心位置
μ
4
D
=
(
μ
x
,
μ
y
,
μ
z
,
μ
t
)
\mu_{4D}=(\mu_x,\mu_y,\mu_z,\mu_t)
μ4D=(μx,μy,μz,μt)和4D协方差矩阵
Σ
4
D
\Sigma_{4D}
Σ4D:
G
4
D
(
x
)
=
exp
[
−
1
2
(
x
−
μ
4
D
)
T
Σ
4
D
−
1
(
x
−
μ
4
D
)
]
G_{4D}(x)=\exp[-\frac1 2(x-\mu_{4D})^T\Sigma^{-1}_{4D}(x-\mu_{4D})]
G4D(x)=exp[−21(x−μ4D)TΣ4D−1(x−μ4D)]
协方差矩阵可进一步表达为4D缩放
S
4
D
=
diag
(
s
x
,
s
y
,
s
z
,
s
t
)
S_{4D}=\text{diag}(s_x,s_y,s_z,s_t)
S4D=diag(sx,sy,sz,st)和4D旋转
R
4
D
R_{4D}
R4D:
Σ
4
D
=
R
4
D
S
4
D
S
4
D
T
R
4
D
T
\Sigma_{4D}=R_{4D}S_{4D}S_{4D}^TR_{4D}^T
Σ4D=R4DS4DS4DTR4DT
类似3D旋转矩阵可转化为四元数,4D旋转矩阵
R
4
D
R_{4D}
R4D可转化为为4D转子
r
r
r,由8个分量组成:
r
=
s
+
b
01
e
01
+
b
02
e
02
+
b
03
e
03
+
b
12
e
12
+
b
13
e
13
+
b
23
e
23
+
p
e
0123
r=s+b_{01}e_{01}+b_{02}e_{02}+b_{03}e_{03}+b_{12}e_{12}+b_{13}e_{13}+b_{23}e_{23}+pe_{0123}
r=s+b01e01+b02e02+b03e03+b12e12+b13e13+b23e23+pe0123
其中 e 0123 = e 0 ∧ e 1 ∧ e 2 ∧ e 3 e_{0123}=e_0\wedge e_1\wedge e_2\wedge e_3 e0123=e0∧e1∧e2∧e3, ∧ \wedge ∧表示外积, e i e_i ei为4D欧式空间中的标准正交基。因此4D旋转可以表达为8个系数,其中前4个表示3D空间旋转,后4个定义了时空旋转(即空间平移)。将后四个数设置为0可将 r r r变换为四元数,因此本文方法也可表达静态场景。
转子 r r r可通过合适的归一化函数和转子-矩阵映射函数转化为4D旋转矩阵。
3.2.2 时间切片的4D高斯溅射
记4D协方差矩阵
Σ
4
D
=
[
U
V
V
T
W
]
,
Σ
4
D
−
1
=
[
A
M
M
T
Z
]
\Sigma_{4D}=\begin{bmatrix}U&V\\V^T&W\end{bmatrix},\Sigma_{4D}^{-1}=\begin{bmatrix}A&M\\M^T&Z\end{bmatrix}
Σ4D=[UVTVW],Σ4D−1=[AMTMZ]
其中
U
U
U与
A
A
A为
3
×
3
3\times3
3×3矩阵。给定时间
t
t
t,可得投影的3D高斯:
G
3
D
(
x
,
t
)
=
exp
[
−
1
2
λ
(
t
−
μ
t
)
2
]
exp
[
−
1
2
λ
(
x
−
μ
(
t
)
)
T
Σ
3
D
−
1
(
x
−
μ
(
t
)
)
]
G_{3D}(x,t)=\exp[-\frac1 2\lambda(t-\mu_t)^2]\exp[-\frac1 2\lambda(x-\mu(t))^T\Sigma^{-1}_{3D}(x-\mu(t))]
G3D(x,t)=exp[−21λ(t−μt)2]exp[−21λ(x−μ(t))TΣ3D−1(x−μ(t))]
其中 λ = W − 1 , Σ 3 D = A − 1 = U − V V T W , μ ( t ) = ( μ x , μ y , μ z ) T + ( t − μ t ) V W \lambda=W^{-1},\Sigma_{3D}=A^{-1}=U-\frac{VV^T}W,\mu(t)=(\mu_x,\mu_y,\mu_z)^T+(t-\mu_t)\frac V W λ=W−1,Σ3D=A−1=U−WVVT,μ(t)=(μx,μy,μz)T+(t−μt)WV
注意该式包含了时间衰减项 exp [ − 1 2 λ ( t − μ t ) 2 ] \exp[-\frac1 2\lambda(t-\mu_t)^2] exp[−21λ(t−μt)2]。这样,在时间均值 μ t \mu_t μt附近,3D高斯达到不透明度峰值;远离 μ t \mu_t μt的时间则几乎完全透明(3D高斯消失)。因此,可以表达突然出现和消失的动态。在渲染时,距离时间均值太远的高斯会被过滤掉(设置 1 2 λ ( t − μ t ) 2 \frac1 2\lambda(t-\mu_t)^2 21λ(t−μt)2的阈值)。
此外,其3D中心有额外的 ( t − μ t ) V W (t-\mu_t)\frac V W (t−μt)WV运动项,此时 V W \frac V W WV就表示当前时刻的运动速度。因此,可以在建模场景的同时获得速度场。
最后,与3DGS一样,将3D高斯按照深度顺序投影到2D图像平面,进行快速可微栅格化,得到最终图像。
3.3 优化策略
由于额外的时间维度为高斯带来额外自由度,因此引入额外的正则化项来稳定训练过程。
3.3.1 熵损失
理想情况下。高斯的不透明度
o
i
o_i
oi应该接近1,因此本文使用熵损失使不透明度趋向0或1,并在训练过程中去除不透明度接近0的高斯:
L
e
n
t
r
o
p
y
=
1
N
∑
i
=
1
N
−
o
i
log
(
o
i
)
L_{entropy}=\frac 1 N\sum_{i=1}^N-o_i\log(o_i)
Lentropy=N1i=1∑N−oilog(oi)
该损失可以精简高斯并过滤噪声漂浮物,在稀疏视图训练下很有用。
3.3.2 4D一致性损失
4D空间中附近的高斯应该有相似的运动。由于在切片时可以得到速度
s
s
s,因此可以通过
Ω
\Omega
Ω邻域内的
K
K
K近邻4D高斯来正则化运动使其一致:
L
c
o
n
s
i
s
t
e
n
t
4
D
=
1
N
∑
i
=
1
N
∥
s
i
−
1
K
∑
j
∈
Ω
i
s
j
∥
1
L_{consistent4D}=\frac 1 N\sum_{i=1}^N\|s_i-\frac1K\sum_{j\in\Omega_i}s_j\|_1
Lconsistent4D=N1i=1∑N∥si−K1j∈Ωi∑sj∥1
使用4D距离比3D距离更好,因为3D空间中的相邻点可能属于不同物体,从而有不同速度。通过除以时空尺度,来平衡每个维度的尺度。
3.3.3 总损失
在上述正则化项的基础上,使用3DGS中的 L 1 L_1 L1损失和SSIM损失。
4. 实验
4.2 实施细节
初始化:在4D边界框内随机采样点作为高斯均值。3D尺寸被设置为与最近邻的距离;转子被初始化为 ( 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ) (1,0,0,0,0,0,0,0) (1,0,0,0,0,0,0,0)以表达静态恒等变换。
4.4 结果
与基于NeRF和其余基于高斯的方法相比,本文方法的速度和精度均最优。在动态区域,本文方法的重建细节更佳。
4.5 消融研究
熵损失:实验表明,加入熵损失能减少一个数量级的高斯数量,且保持重建精度。但在包含透明物体多或有密集视图的场景中,加入熵损失会使性能下降。
4D一致性损失:加入4D一致性损失能减小运动自由度从而降低优化难度,并提高运动一致性和渲染精度。
批训练:批训练能降低梯度噪声并稳定训练。实验表明其可以提高性能和多视图的几何一致性。
附录
A. 4D高斯溅射的细节
A.1 4D转子归一化
r r r需满足 r r † = 1 rr^\dagger=1 rr†=1,其中 † \dagger †表示共轭。推导过程见原文。
具体过程:首先应用
r
:
=
r
+
δ
∇
ϵ
r:=r+\delta\nabla\epsilon
r:=r+δ∇ϵ
其中
δ
=
−
l
2
+
l
4
−
4
ϵ
2
2
ϵ
,
l
2
=
b
01
2
+
b
02
2
+
b
03
2
+
b
12
2
+
b
13
2
+
b
23
2
+
p
2
+
s
2
,
ϵ
=
p
s
−
b
01
b
23
−
b
02
b
13
+
b
03
b
12
\delta=\frac{-l^2+\sqrt{l^4-4\epsilon^2}}{2\epsilon},\\ l^2=b_{01}^2+b_{02}^2+b_{03}^2+b_{12}^2+b_{13}^2+b_{23}^2+p^2+s^2,\\ \epsilon=ps-b_{01}b_{23}-b_{02}b_{13}+b_{03}b_{12}
δ=2ϵ−l2+l4−4ϵ2,l2=b012+b022+b032+b122+b132+b232+p2+s2,ϵ=ps−b01b23−b02b13+b03b12
然后按下式更新
r
r
r:
r
:
=
r
/
l
r:=r/l
r:=r/l
A.2 4D转子到旋转矩阵的变换
通过下式可将4D向量
u
u
u映射为
u
′
u'
u′:
u
′
=
r
u
r
†
u'=rur^\dagger
u′=rur†
也可通过旋转矩阵表达此映射:
u
′
=
R
4
D
u
u'=R_{4D}u
u′=R4Du
据此可求解旋转矩阵与 r r r各元素的关系(见原文)。
B. 额外实验
B.2 额外实施细节
根据数据集SfM点的范围定义与轴对齐的边界框。