【论文笔记】4D Gaussian Splatting: Towards Efficient Novel View Synthesis for Dynamic Scenes
原文链接:https://arxiv.org/abs/2402.03307
1. 引言
尽管从2D图像实现动态场景的3D重建并合成新视图图像仍然面临诸多挑战。一些研究综合运用了三维场景与动态元素的空间时间关系,并尝试通过改进细节保留机制来解决相关问题;然而这些方法往往难以有效平衡细节捕捉与运动补偿之间的矛盾;另外一些研究则通过将空间与时间分离处理 并构建静态常规的空间模型 来模拟物体形变过程 从而能够较好地处理连续性问题;然而基于体采样的技术由于需要在大量射线上进行密集采样而难以实现实时渲染
本文将基于静态场景的新视图合成方法3D GS延伸至4D,并建立时空表征使其能够适应动态场景的变化。通过将动态变化的三维场景建模为四维时空高斯椭球体的时间片(如图所示为XY平面至XYT空间的拓展)。此外,在时间维度上拓展剪枝与分裂机制以实现对突然出现与消失物体的有效表达。

本文采用了4D转子(rotor, 旋转算子),即一种基于时空可分的旋转变换模型来描述4D旋转。当时间为零时, 该方法相当于空间中的三维旋转变换, 因此可以在静态情况下应用该方法。
此外,在本文中,优化策略被进一步提升,并增加了新的正则化项以稳定和促进动态重建过程。熵损失通过使得高斯分布的不透明度接近0或1来有效地去除'漂浮物'。4D一致性损失通过正则化高斯运动参数来实现更一致的动态重建
3. 方法

3.2 4D高斯溅射
3.2.1 基于转子的4D高斯表达
该四维高斯函数可由其均值参数\mu_{4D}=(\mu_x,\mu_y,\mu_z,\mu_t)以及协方差矩阵\Sigma_{4D}进行描述:
四维高斯函数G_{4D}(x)定义如下:
G_{4D}(x) = \exp\left[-\frac{1}{2}\cdot(x - \mu_{4D})^\top\Sigma^{-1}_{4d}\cdot(x - \mu_{d})\right]
该协方差矩阵可通过进一步分解表示为四个维度的缩放组件\mathbf{S}_{4D} = \text{diag}(s_x, s_y, s_z, s_t)和四个维度的旋转组件\mathbf{R}_{4D}:
\Sigma_{4D} = \mathbf{R}_{4D}\mathbf{S}_{4D}\mathbf{S}_{4D}^\top\mathbf{R}_{4D}^\top
类似于将一个三维旋转矩阵表示为四元数的方法较为常见, 而对于一个四维旋转矩阵 R_{4D} 即可表示为四维转子 r, 它包含八个分量:
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}
其中e_{0123}=e_0\wedge e_1\wedge e_2\wedge e_3,\wedge表示外积,e_i为4D欧式空间中的标准正交基。因此4D旋转可以表达为8个系数,其中前4个表示3D空间旋转,后4个定义了时空旋转(即空间平移)。将后四个数设置为0可将r变换为四元数,因此本文方法也可表达静态场景。
转子r可通过合适的归一化函数和转子-矩阵映射函数转化为4D旋转矩阵。
3.2.2 时间切片的4D高斯溅射
记录4维协方差矩阵
其中U和A均为3\times3矩阵。给定时域内t时,则可得到其在时域内的3D高斯分布:
其中\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
该表达式包含了一个随时间衰减的指数项\exp[-\frac{1}{2}\lambda(t-\mu_t)^2]。在时间均值\mu_t附近位置上,则该3D高斯分布达到最大不透明度;而远离该均值的时间段上,则几乎完全透明(此时的3D高斯分布消失)。因此,在渲染过程中设置了关于距离均值的时间滤波机制。具体而言,在距离均值的位置超过一定范围时,则被滤除(即设置了一个关于(t-\mu_t)的距离阈值)。
此外,在该区域中包含了(t-\mu_t)\frac V W这一项运动量,在当前时刻\frac V W代表了该时间点的速度值。由此可知,在建模过程中能够同时得到速度场。
最后一步上,在与3DGS平行的情况下,在二维图像平面上投射出三维高斯分布,并实现了快速可微栅格化的处理过程以生成最终结果
3.3 优化策略
因为时间维度带来的额外自由度为高斯提供了基础支持,在此情况下我们选择引入正则化项以确保训练过程的稳定性。
3.3.1 熵损失
在理想情况下,在本文中采用熵损失函数以使高斯的不透明度o_i应当接近于1,并在此训练过程中移除那些在不透明度接近于0时出现的高斯分布:
L_{entropy}=\frac 1 N\sum_{i=1}^N-o_i\log(o_i)
该损失可以精简高斯并过滤噪声漂浮物,在稀疏视图训练下很有用。
3.3.2 4D一致性损失
在4D空间中周围的高斯可能具有类似的运动轨迹。因为切片过程中能够获得速度s,在Ω邻域内的K近邻4D高斯被用来正则化运动使其趋于一致:
L_{consistent4D}=\frac 1 N\sum_{i=1}^N\|s_i-\frac1K\sum_{j\in\Omega_i}s_j\|_1
采用4维空间的距离度量相较于3维空间更为有效。其优势在于,在3维空间中,相邻的点可能属于不同的物体,并呈现出不同的运动速度。通过归一化处理时空尺度参数,使得各维度具有统一的量纲。
3.3.3 总损失
在上述正则化项的基础上,使用3DGS中的L_1损失和SSIM损失。
4. 实验
4.2 实施细节
位于4D边界框内部均匀分布地选取样本点用于生成高斯均值
4.4 结果
与现有NeRF相关的方法相比,在速度和精度方面均表现最佳。相较于其他基于高斯分布的方法,在动态区域中本文方法的重建细节更加突出。
4.5 消融研究
实验表明:采用熵损失方案能够在降低高斯数量(约十倍)的同时维持重建精度;然而,在存在较多透明物体或密集视图的情况下:该方案可能会导致性能下降
4D一致性损失 的引入有助于减少物体的运动自由度,并且能够有效降低优化难度的同时提升整体渲染质量。
批量训练方法:批量训练方法能够减少梯度噪声的影响并提升模型稳定性。实验结果表明该方法能够提升模型性能以及增强多模态数据的一致性。
附录
A. 4D高斯溅射的细节
A.1 4D转子归一化
r需满足rr^\dagger=1,其中\dagger表示共轭。推导过程见原文。
具体过程:首先应用
r:=r+\delta\nabla\epsilon
其中
\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}
然后按下式更新r:
r:=r/l
A.2 4D转子到旋转矩阵的变换
通过下式可将4D向量u映射为u':
u'=rur^\dagger
也可通过旋转矩阵表达此映射:
u'=R_{4D}u
据此可求解旋转矩阵与r各元素的关系(见原文)。
B. 额外实验
B.2 额外实施细节
根据数据集SfM点的范围定义与轴对齐的边界框。
