4D Gaussian Splatting 是怎么工作的:从规范 Gaussian 到形变场的原理拆解

简介: 4D-GS创新性地将3D高斯泼溅扩展至动态场景:摒弃逐帧存储,仅维护一组规范高斯,通过轻量因子分解形变场(6个2D平面+双线性插值)预测时序位移、旋转与缩放,避免显存爆炸;锁定颜色/不透明度以保障物理真实性,兼顾实时渲染与几何一致性。

实时渲染静态 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 把这个任务拆成两个阶段:观察者(编码器)和导演(解码器)。

1、时空结构编码器(观察者)

要形变一个点,得先知道它的上下文:位置在哪,此刻是什么时间,邻居在做什么。

最简单的的做法是把场景塞进一个庞大的 4D 神经体素网格(x、y、z、t),但 O(N⁴) 的显存开销是不现实的。4D-GS 借用了 HexPlane 和 K-Planes 里的一个技巧:分解。

把庞大的 4D 空间拍平成 6 个轻量、多分辨率的 2D 平面:

  • 空间平面:XY、XZ、YZ
  • 时间平面:XT、YT、ZT

网络查询一个连续的 Gaussian 坐标(比如 μ = (1.234, 5.678, 2.0))在时间 t 的值时,这个坐标不会正好落在网格顶点上。编码器用双线性插值找到每个平面上最近的四个网格角点,算出距离加权平均,提取出 6 个特征向量。

这 6 个向量通过逐元素(Hadamard)乘积绑定在一起:

这个稠密向量 f_h 再送进一个很小的 MLP,得到最终压缩后的上下文向量 f_d。

HexPlane 怎么初始化

网络能不能训好很大程度上取决于起点,4D-GS 里六个特征平面的初始化方式其实是很值得研究的。第一次前向传播之前,显式特征网格要先填好数值:空间平面(XY、XZ、YZ)用 [0.1, 0.5] 区间内的均匀随机值初始化,给网络留出学习空间特征的余地;时空平面(XT、YT、ZT)则统一初始化为 1。

时间特征为什么要设成 1?

不同平面的特征通过逐元素相乘组合。如果时间特征是 1,乘上空间特征不会有任何变化:x × 1 = x。

模型一开始的行为就等同于把整个世界当成静止的。这是刻意为之:网络不预设到处都有运动,而是从静态场景出发,只有当损失函数说明必须靠运动才能解释观测数据时,才去修改时空特征。

运动不是模型自带的,得靠优化过程"挣"出来。这样网络只会在真正存在运动的地方学习形变,得到的动态场景表示也更稳定、更符合物理规律。

2、多头解码器(导演)

拿到上下文向量后,多头解码器把 f_d 翻译成具体的物理指令。几个独立的线性头分别预测:

  • 位置偏移:ΔX
  • 旋转偏移:Δr
  • 缩放偏移:Δs

这些值加到规范 Gaussian 上,场景交给可微分光栅化器做实时的、基于图块的 splatting。

不过这里有一个有意思的架构限制:4D-GS 主流程并不预测颜色 ΔC 或不透明度 Δα 的变化。

为什么要卡死这两项?神经网络一旦有机会偷懒就会偷懒。要是能自由改颜色和不透明度,网络完全可以不老老实实把 Gaussian 从 A 点挪到 B 点,而是把 A 点的不透明度调成零、B 点调成一,颜色再一闪,伪造出物体在移动的假象。

这样一来场景的物理几何结构就被破坏了,下游的 3D 跟踪也没法做。锁死颜色和不透明度,逼着网络去学真正的物理形变。(作者也提到,遇到流体或极端非刚性运动这类边缘情况,可以把 ΔC 和 Δα 的预测重新打开。)

损失函数与训练过程

从零训练一个动态场很容易乱套:优化器要同时琢磨清楚基础几何和运动。4D-GS 用两阶段训练来稳住这个过程。

  1. 静态预热:前 3000 次迭代里,形变场完全关闭,模型的行为等同于一个普通 3D-GS,逼着规范 Gaussian 先找到最优的静态几何。
  2. 4D 优化:打开形变场,网络开始预测运动,通过可微分 splatting 渲染图像并计算损失。

目标函数在准确性和平滑性之间做了权衡:

L1 损失约束渲染结果去匹配真实图像 Î;全变分损失 L_tv 直接作用在 HexPlane 网格上,惩罚相邻网格单元间的剧烈跳变,从数学上强制运动保持平滑连续。

反向传播:两条路径

splatting 函数 S 是可微分的,总损失 L 可以通过链式法则一路反传回整个流程。

反向传播时,优化器计算损失相对于所有可学习参数的梯度,这些梯度分成两条路径。

路径 A:更新规范 Gaussian(G)

梯度一路传回基础的规范点云,更新起始位置和属性。dL/dG 更新基础几何,保证规范形状准确。

路径 B:更新形变场(F)

梯度经过加法操作

G' = G + ΔG

流入神经网络,调整网络对运动的预测方式。

所以就需要一套很细的学习率调度,用来保证训练稳定:

解码器权重(θD):dL/dθD 更新多头 MLP 的权重。论文里这部分训练得比较保守,学习率从 1.6 × 10⁻⁴ 衰减到 1.6 × 10⁻⁵。

HexPlane 特征(Rl):dL/dRl 更新六个多分辨率 HexPlane 里存的实际特征值。这些是显式网格参数,不是深度网络权重,学习速度快一些,学习率从 1.6 × 10⁻³ 衰减到 1.6 × 10⁻⁴。

跑完最多 20000 次迭代,规范 Gaussian 逐渐稳定到最优的基础形状,HexPlane 和 MLP 也不断调整参数,直到预测出的形变能准确还原视频里的动态。

多视角与单目:两种不同的现实

动态渲染器的真正考验在于数据输入方式。多视角场景下(比如 Neu3D),15—20 台相机同时拍摄,网络每个时间戳只算一次 4D 形变,但会从 20 个角度分别 splatting、算损失;密集的反馈信息能防止模型为了骗过单一视角而把几何"压扁"。单目场景(比如 D-NeRF)只有一个相机角度,网络得靠 HexPlane 的时间连续性去推断 3D 运动。

在 HyperNeRF 这类相机本身在向前移动的数据集里,形变场容易陷入局部极小值,很难把相机的运动和被拍摄主体的运动区分开。极端快速的运动、又缺乏多视角重叠的场景,对目前的编码器设计来说仍然是个难题。

总结

从静态点云渲染跳到动态渲染,不只是多加一个时间变量那么简单,信息的存储和查询方式得整个重新设计。

  • 用形变取代跟踪:只维护一组规范 Gaussian、预测形变,显存开销取决于运动网络的复杂度,而不是视频长度。
  • 分解是核心:把 4D 空间因子分解成六个 2D 平面,靠双线性插值快速查询特征,绕开了 4D 体素的 O(N⁴) 显存问题。
  • 用约束换真实:不让网络碰颜色和不透明度,逼它去学真正的物理运动,代价是多花点训练技巧,换来的是渲染之外还能做 3D 跟踪。

所以4D-GS 靠合适的因子分解和几个关键约束,显式表示照样能搞定时间维度,而不用牺牲让它一开始就站住脚的实时性能。

https://avoid.overfit.cn/post/683075ee5f55470999e2033fa04ace6f

作者:Prajas Wadekar

目录
相关文章
|
2月前
|
存储 网络协议 网络安全
阿里云国际站代理:香港服务器和大陆服务器究竟有什么区别?
本文直击阿里云国际站香港与大陆服务器核心差异:免备案、CN2低延迟(5–25ms)vs 强制ICP备案、国内<10ms但跨境受限;剖析合规、性能、成本与数据主权,助企业避开选型坑点。(239字)
503 5
|
2月前
|
人工智能 安全 前端开发
阿里云Qoder CN AI编程智能体:重塑开发全流程的智能助手
在软件开发领域,AI技术正从简单的代码补全工具,进化为能够贯穿需求分析、代码编写、测试验证、项目管理全流程的智能体。阿里云推出的Qoder CN AI编程智能体,正是这一趋势下的核心产品,它脱胎于通义灵码,完成了从传统AI集成开发环境到智能体全自动自主开发工作台的跨越,为个人开发者、技术团队及企业级项目提供了全方位的智能开发支持。Qoder CN不再局限于单一的代码辅助,而是以智能体为核心,构建了一套完整的开发生态,通过多模型融合、多智能体协作、全流程自主执行等能力,彻底改变传统开发模式,大幅提升开发效率与代码质量。
348 3
|
3月前
|
缓存 编解码 测试技术
注意力架构变迁总结:稀疏、线性、SSM、混合架构如何摆脱 O(L²) 的代价
自注意力是Transformer的基石,却因O(L²)计算瓶颈制约长上下文。业界正通过稀疏注意力(如NSA、DSA)、线性注意力(如Lightning Attention)、状态空间模型(Mamba)及混合架构四大路径破局,在保持性能的同时大幅降本提速。
339 1
|
2月前
|
存储 人工智能 安全
Agent Harness 到底是什么:模型之外的那层控制系统
AI Agent Harness 是包裹大模型的“运行支架”,提供工具调用、记忆管理、权限控制、安全护栏、可观测性与故障恢复等能力,将聪明但无约束的模型,转化为安全、可控、可审计的生产级智能体。
753 1
Agent Harness 到底是什么:模型之外的那层控制系统
|
2月前
|
前端开发 安全 JavaScript
Harness Engineering 实践案例:如何Agent 写一份行为规范
本文展示Harness Engineering落地实践:通过`AGENTS.md`(行为总纲)、`ARCHITECTURE.md`(系统骨架)等结构化文档,为编码Agent建立可追溯、可审计、防幻觉的工作规范,实现RAG+微调系统的可控开发。
356 4
Harness Engineering 实践案例:如何Agent 写一份行为规范
|
7月前
|
存储 搜索推荐 开发者
RAG 文本分块:七种主流策略的原理与适用场景
分块是RAG系统的基石,直接影响检索质量与LLM推理效果。行业共识:“分块决定RAG质量的70%”。从固定大小、句子/段落级,到语义、递归、滑动窗口及层次化分块,策略需匹配文档类型与任务需求。劣质分块导致上下文断裂、噪声激增、幻觉频发——燃料不行,再强的引擎也徒劳。
943 2
RAG 文本分块:七种主流策略的原理与适用场景
|
4月前
|
人工智能 自然语言处理 供应链
为什么 MCP 在协议层会有 prompt injection的问题:工具描述如何劫持 agent 上下文
MCP(Model Context Protocol)虽成AI Agent主流集成标准,但其将工具描述全量注入上下文的设计,导致“Context Poisoning”——恶意指令可借工具元数据污染LLM推理。OWASP将其列为LLM应用头号漏洞,2025年已致超10万站点遭袭。根本风险在于协议层信任模型缺失,非清洗不可用。
355 12
为什么 MCP 在协议层会有 prompt injection的问题:工具描述如何劫持 agent 上下文
|
3月前
|
数据采集 存储 算法
视频 RAG 中分块策略:基于停顿、滑动窗口与基于 LLM 的方法
本文探讨视频RAG中的核心挑战——如何为无时间结构的视频转录文本设计有效分块策略。对比传统文本分块,提出基于停顿、重叠窗口、递归切分及LLM驱动的主题分块四层方案,实现细粒度检索与全局理解兼顾,提升视频内容检索准确性与上下文完整性。
285 13
视频 RAG 中分块策略:基于停顿、滑动窗口与基于 LLM 的方法
|
3月前
|
人工智能 Oracle 机器人
推理 → 行动 → 观察:用 LangChain + Python 实现一个智能体循环
智能体循环(Agentic Loop)突破单次问答局限,通过“推理→行动→观察”迭代闭环,让AI能自主分解任务、调用工具、持续优化直至目标完成,是构建真正自动化智能体的核心架构。
515 9
推理 → 行动 → 观察:用 LangChain + Python 实现一个智能体循环
|
2月前
|
机器学习/深度学习 API Python
用 Scikit-LLM 和 Groq 搭建情感分析 pipeline
本文介绍如何用Scikit-LLM集成Groq的Llama 3.1模型,构建零样本情感分析Pipeline:基于IMDB数据集,通过文本清洗、零样本分类与scikit-learn标准接口,实现高效、易用的LLM驱动文本分类,兼顾简洁性与实用性。
162 2
用 Scikit-LLM 和 Groq 搭建情感分析 pipeline