4D Gaussian Splatting 是怎么工作的:从规范 Gaussian 到形变场的原理拆解
实时渲染静态 3D 场景是很麻烦的,因为现实世界并不是静止的:人在移动,液体在流动,物体在变形。把 3D-GS 扩展到动态场景(4D)听起来只需要一步,随时间跟踪每个点,但是实际操作起来却很麻烦,因为显存瓶颈非常棘手。
4D Gaussian Splatting(4D-GS)的架构的方法相当巧妙,所以本文记录一下 4D-GS 如何用一个因子分解的形变场取代暴力跟踪,从而绕开动态渲染的显存爆炸问题。
显存瓶颈:原始跟踪方式为何行不通
要理解 4D-GS 的精妙之处,得先弄清楚它要解决的问题。
传统动态 NeRF 把一个 8 维输入空间(x、d、t、λ)映射到颜色和密度,λ 是用来处理表面分裂或合并等拓扑变化的潜在编码。这套方案效果不错但 NeRF 的隐式表示天然限制了渲染速度。
3D Gaussian Splatting 把场景显式表示为数百万个类点的 Gaussian,靠光栅化快速渲染,解决了速度问题。但如果为每一帧都存一份每个 Gaussian 的位置、旋转和缩放(1 亿个 Gaussian × 100 帧),显存需求会线性爆炸。
4D-GS 的做法是彻底放弃逐帧存储 Gaussian,只维护一组规范(canonical)3D Gaussian,再用一个轻量神经网络作为形变场,计算这组基础 Gaussian 在任意时间戳下应该如何位移、拉伸、旋转。
渲染方程由此简化为:
G' = G + ΔG
形变后的场景 G' 等于静态基线 G 加上神经网络预测的变化量 ΔG。
拆解形变场
如何在不引发显存爆炸的前提下算出 ΔG?4D-GS 把这个任务拆成两个阶段:观察者(编码器)和导演(解码器)。
https://avoid.overfit.cn/post/683075ee5f55470999e2033fa04ace6f

浙公网安备 33010602011771号