“写笔记”支持四种格式——Word 文档、Excel 表格、Markdown、纯文本,起稿或二次编辑时都能随时切换,同一篇笔记想用哪种形态来记,都由你说了算。
md、txt、csv、json 这类纯文本则原样载入,不做多余加工。拿一张现成的表倒进来、改几笔、再导出去,等于白用一台免费的格式转换器。
要带走就在右上角点“下载”,可导出 PDF、Word、Markdown、Excel、TXT 等格式;列表卡片“⋯”菜单里,也有同样的下载入口。
在“工具”页点“+ 上传工具”即可发布:填好名称与链接,再用 Markdown 把使用方法写清楚——能解决什么问题、怎么装、怎么用,比堆介绍实在。
要分发安装包就一并上传压缩包(ZIP、RAR、7Z、TAR.GZ,最大 35MB),别人在详情页一键下载;只放链接不带附件也可以。
工具按大家的收藏热度排序,好用的自然会被顶上来。发布后可在详情页或卡片菜单里编辑、下架。
写笔记时勾上“隐藏”,这篇就只存在于你自己的账号里:不进列表、不进搜索、不上首页精选,也不会出现在任何公开的页面,链接发给别人同样打不开。
适合放密码、草稿、日记这类只给自己看的内容;想公开,去“发布”打开它,把“隐藏”的勾去掉再保存,之后编辑会默认保持原状态,不会悄悄变回公开。
你的内容会同时保存在多个副本上,系统定期做备份与完整性校验,再配合异地容灾机制:就算某台机器出问题,数据也不会丢,可以长期放心存放;特别重要的资料,仍建议你另外再留一份备份。
全站跑在容器化、模块化的现代架构上,更新、部署、回滚都很快,扩展性和稳定性都按长期运营的标准来设计(Built for reliability, designed to scale)。
这个网站最早只是一个人的笔记仓库,后来慢慢长成现在的知识中枢。设计上很克制——没有广告、没有追踪、没有推荐算法,只是干干净净地存放一些东西;既然做好了,就公开出来,万一有人用得上呢。
不做大而全,不做平台梦,保持简单、保持克制、保持好奇。所有内容都由用户贡献、由用户维护:不会突然冒出付费墙,不会在角落塞广告位,也不会把你的数据卖给第三方。
产品会持续迭代,站内日志页记录着每一次改动,改了什么都有迹可循;想了解这个站是怎么一步步走到今天的,翻翻日志就能看到来龙去脉。
如果在这里看到涉嫌违规的内容,点对应卡片右侧的“举报”按钮就能提交,我们会尽快核实处理;也谢谢你花一点时间,一起把这里维护干净。
Fable 团队发布 4D 高斯泼溅格式:让动态场景渲染进入新维度
本文介绍了一种名为 4D Splat 的新型动态场景表示与渲染格式,通过在 4D 空间(三维空间 + 时间)中扩展 3D 高斯泼溅(3D Gaussian Splatting),实现了对运动物体的高效、高质量实时渲染,并提供了完整的开源工具链。
背景:从 NeRF 到 3D 高斯泼溅,再到 4D
近年来,神经渲染领域经历了两次重大飞跃。2020 年提出的 NeRF(Neural Radiance Fields,神经辐射场)首次让从稀疏图像合成新颖视角成为可能,但其渲染速度极慢,通常需要数秒甚至数分钟才能生成一帧。2023 年问世的 3D 高斯泼溅(3D Gaussian Splatting,简称 3DGS) 彻底改变了这一局面:它将场景表示为一组三维高斯椭球体(每个椭球体带有颜色、透明度、位置、旋转和尺度参数),并通过可微分光栅化直接渲染到图像平面。3DGS 不仅渲染速度达到实时(>30 FPS),而且质量与 NeRF 相当甚至更优。
然而,3DGS 的核心假设是 场景是静态的 —— 每个高斯体的位置和属性在渲染过程中固定不变。一旦场景中存在运动物体(如行走的人、飘动的旗帜、行驶的汽车),3DGS 就会产生严重的拖影或伪影。
Fable 团队 的这项工作正是为了解决这一问题:他们将 3D 高斯泼溅扩展到 4D 空间,在三维位置 (x, y, z) 之外引入时间维度 t,使得每个高斯体可以随时间变化其位置、形状、颜色和透明度,从而自然地表达动态场景。这个新格式被命名为 4D Splat。
核心创新:4D 高斯体的数学定义
在 4D Splat 中,每个基元不再是 3D 高斯体,而是一个 四维高斯体,其概率密度函数定义为:
G(x, t) = exp(-0.5 * (x - μ_x)^T Σ_x^(-1) (x - μ_x) - 0.5 * (t - μ_t)^2 / σ_t^2)
其中:
- x = (x, y, z) 是三维空间坐标
- t 是时间坐标(归一化到 [0, 1] 区间)
- μ_x 是高斯体在空间中的中心位置(3 维向量)
- Σ_x 是空间部分的 3x3 协方差矩阵(控制椭球的形状、旋转和缩放)
- μ_t 是高斯体在时间轴上的中心位置(标量,表示该高斯体主要作用的时刻)
- σ_t 是时间轴上的标准差(标量,控制该高斯体在时间上的“宽度”)
关键区别:3DGS 中每个高斯体只有空间属性,而 4D Splat 的高斯体同时具有空间和时间属性。这意味着一个 4D 高斯体可以“存活”在时间轴上的某个区间内,并在其生命周期内移动、变形。
为了支持随时间变化的属性(如颜色、透明度、甚至形状本身),作者引入了 时间相关参数:每个高斯体还附带一组多项式系数(通常是线性或二次函数),用于描述其颜色和透明度随时间的变化。例如,颜色 c(t) = c_0 + c_1 * (t - μ_t),其中 c_0 和 c_1 是可学习的参数。
渲染管线:4D 到 3D 的投影
渲染动态场景时,我们需要在特定时刻 t 生成一帧图像。4D Splat 的做法是:
时刻切片(Temporal Slicing):对于给定的渲染时刻 t,计算每个 4D 高斯体在该时间切片上的“条件 3D 高斯体”。数学上,这相当于对 4D 高斯体在时间维度上进行条件概率计算,得到一个 3D 高斯体,其空间位置和协方差由原 4D 高斯体的参数和 t 共同决定。
3D 光栅化:将得到的 3D 高斯体集合输入标准的 3DGS 光栅化器,按深度排序、alpha 混合,生成该时刻的 2D 图像。
这个过程与 3DGS 完全兼容,意味着可以直接复用 3DGS 的高效 CUDA 光栅化内核,无需从头实现 4D 光栅化。
训练策略:从视频序列学习 4D 场景
4D Splat 的训练数据是一段多视角视频(或多台同步相机拍摄的同一动态场景)。训练过程如下:
初始化:从所有帧中随机采样一些点,为每个点创建一个 4D 高斯体,其 μ_t 设为该点所在帧的时间,σ_t 设为相邻帧间隔的一半。
前向传播:对于每个训练时刻 t(对应视频的某一帧),执行时刻切片 + 3D 光栅化,得到预测图像。
损失函数:使用 L1 损失 + 结构相似性(SSIM)损失,与 3DGS 相同。
反向传播与参数更新:梯度通过 3DGS 光栅化器反向传播到 4D 高斯体的所有参数(包括 μ_x, Σ_x, μ_t, σ_t, 颜色系数等)。
自适应密度控制:类似 3DGS,训练过程中会动态增加或删除高斯体:
- 如果某个高斯体的梯度很大且空间尺度合适,将其分裂成两个
- 如果某个高斯体的透明度接近 0,将其删除
- 如果某个高斯体的 σ_t 太大(时间上过于模糊),也将其分裂,以更好地捕捉快速运动
格式设计:紧凑且可流式传输
4D Splat 格式的设计目标不仅是高质量渲染,还注重 存储效率和可流式传输。格式规范包括:
- 文件结构:一个 .4dsplat 文件包含文件头(魔数、版本号、场景元数据)和一系列 4D 高斯体的参数。每个高斯体存储:
- 空间位置 μ_x(3 个 float32)
- 空间协方差矩阵 Σ_x 的 6 个独立元素(3x3 对称矩阵的上三角部分,float16 量化)
- 时间中心 μ_t(float16)
- 时间宽度 σ_t(float16)
- 颜色系数(例如 3 个线性系数用于 RGB,float16)
- 透明度系数(1 个线性系数,float16)
- 球谐函数系数(可选,用于视角相关的颜色,通常 3 阶需要 16 个 float16)
- 量化与压缩:对协方差矩阵和颜色系数使用 float16 量化,文件头中记录全局均值与标准差用于反量化。可选使用 zstd 进行整体压缩。
- 流式支持:4D 高斯体按时间中心 μ_t 排序存储,播放器可以只加载当前时间附近的高斯体(例如 μ_t ± 3σ_t 范围内的部分),从而实现 渐进式加载,适合 Web 端或 VR 场景。
实验与结果
作者在多个动态场景数据集上进行了测试,包括:
- D-NeRF 数据集:合成动态场景(弹跳球、机械臂等)
- NeRF-DS 数据集:真实动态场景(旋转风扇、行走的人)
- 自采数据:用手机拍摄的短动态视频(如挥手、跳跃)
量化指标(PSNR、SSIM、LPIPS)显示:
- 4D Splat 在大多数场景上 显著优于 基于 NeRF 的动态方法(如 D-NeRF、TiNeuVox),PSNR 提升 2-5 dB。
- 渲染速度达到 60+ FPS(RTX 3090),比 NeRF 类方法快 100-1000 倍。
- 存储大小约为 10-50 MB 每个场景(取决于高斯体数量,通常 50k-200k 个),远小于视频原始帧序列(几百 MB 到 GB 级别)。
局限性
作者坦诚指出了当前方法的不足:
- 大运动模糊:当物体运动速度极快(如快速挥手),单个高斯体的时间宽度 σ_t 可能不足以覆盖整个运动轨迹,导致渲染结果出现模糊。
- 视角外推困难:与所有基于高斯泼溅的方法一样,对于训练视角未覆盖的区域,4D Splat 会产生空洞或伪影。
- 时间一致性:由于每个时间切片独立渲染,相邻帧之间可能出现微小的闪烁(flickering),尽管作者通过时间平滑正则化部分缓解了这个问题。
工具链与生态
Fable 团队不仅发布了格式规范,还提供了完整的开源工具:
- 训练代码:基于 PyTorch 和 CUDA,支持多 GPU 训练
- Web 查看器:基于 Three.js 的浏览器端播放器,支持交互式视角控制和时间轴拖动
- 格式转换工具:从常见的 3DGS .ply 文件、NeRF 模型或视频帧序列转换为 .4dsplat 格式
- Unity 插件:可直接在 Unity 引擎中加载和播放 4D Splat 场景,适用于游戏和 VR 应用
未来方向
作者计划在以下方面继续改进:
- 引入 运动先验(如光流或骨骼动画)来约束高斯体的运动,减少训练所需帧数
- 支持 长时间序列(几分钟到几小时),通过分层时间结构(如关键帧 + 插值)
- 探索 端到端压缩,结合神经压缩技术进一步减小文件体积
总结
4D Splat 是 3D 高斯泼溅向动态场景的自然扩展,它通过引入时间维度的高斯体,在保持实时渲染速度的同时,实现了高质量的动态场景表示。这项技术对 VR/AR、电影特效、数字人、自动驾驶仿真等领域具有重要价值。Fable 团队的开源工作为社区提供了一个强大且易用的工具,有望推动动态神经渲染从实验室走向实际应用。