ZipSplat:让 3D 重建从分辨率驱动变成场景复杂度驱动
draft.md
基于已整理草稿生成的网页版文章,适合先稳定落地,再做局部润色与发布检查。
ZipSplat:让 3D 重建从"分辨率驱动"变成"场景复杂度驱动"
---
6 月初,ETH 苏黎世与微软联合发布 ZipSplat——一种前馈式 3D Gaussian Splatting 模型,核心创新是把高斯分布的放置逻辑从像素网格中解放出来,用 token 机制实现"按需分配"几何复杂度。该模型在稀疏无姿态图像输入下,一秒内完成场景重建,且高斯数量比现有方法减少 6 倍、质量反而更高。目前代码和权重已在 GitHub 开源。
---
为什么现有的前馈 3DGS 有个根本缺陷
在说 ZipSplat 之前,先理解它解决的问题。
过去几年,前馈式 3D 重建(给定几张照片直接出 3D 结果,无需逐场景优化)进展迅速。pixelSplat、YoNoSplat、MVSplat 等工作证明了这个方向的可行性,但它们都有一个共同的设计缺陷:每个输入像素对应一个高斯输出。
这个绑定带来一个矛盾:简单白墙和细节丰富的雕塑,分配的高斯数量是一样的。白墙不需要 50 万个高斯,但模型不知道。
另一个更严重的问题是:像素锚定导致几何与相机参数耦合。每个高斯沿着输入像素对应的射线"升起",如果相机位姿估计有误差,高斯的位置就会系统性地错位。结果就是:视角稍偏,渲染质量就崩。
---
ZipSplat 怎么做到的
ZipSplat 的思路很直观,但工程实现颇为精妙。
第一步:提取视觉 token。 模型用多视角 backbone(DA3-Giant)从输入图像中提取密集的视觉特征,得到 T 个 token。这些 token 携带了每个像素的语义和几何信息。
第二步:k-means 聚类压缩。 同一表面被多个视角重复观测,token 之间高度冗余。用 k-means 在特征空间做聚类,把 T 个 token 压缩为 K = r·T 个场景 token(r ∈ (0,1] 是压缩比,用户在推理时直接指定)。这一步把 token 数量和相机分辨率解耦——简单场景用少量 token,复杂场景用更多。
第三步:Token 解码为 3D 高斯。 交叉 + 自注意力精炼场景 token,轻量 MLP 把每个 token 解码为一组高斯。这里的关键区别是:高斯被直接放置在 3D 空间中,而不是沿射线升起。这样几何就脱离了相机参数的约束。
第四步:推理时质量/效率一键切换。 你不需要 retrain 模型来改变精度——只要调压缩比 r,k-means 自动保留不同比例的 token。r=1.0 全量输出,r=0.1 只用 10% token 跑出极轻量版本。同一权重,多档输出。
---
数字说话
| 测试集 | 主要对比 | 结果 |
|--------|----------|------|
| DL3DV(6 视角) | vs pixel-aligned 方法(393K Gaussians) | 62K Gaussians,PSNR +2.1 dB |
| RealEstate10K | vs YoNoSplat(最强 pose-free baseline) | PSNR +1.2 dB |
| Mip-NeRF360、ScanNet++ | 零样本迁移 | 质量稳定泛化,全面超越 baseline |
特别值得注意的一点:随着输入视角数量增加,pixel-aligned 方法的渲染质量反而下降(因为高斯数量同步膨胀、相互干扰),而 ZipSplat 的质量稳步提升。这说明 token 机制确实解决了高斯预算与视角数量耦合的根本问题。
---
对谁有用
3D 开发者 / 研究者: 几张照片进,一秒 3D 场景出。不需要跑 COLMAP 重建流程、不需要逐场景优化。尤其适合快速预览概念资产的 3D 结构。
游戏 / 影视资产师: 一个模型可以导出多个 LOD 变体。背景道具用低压缩比(r 小),英雄资产用高保真(r=1.0),不需要重新生成。
AR/VR 场景搭建者: 一张产品概念图 → 直接生成可渲染的 Gaussian 场景 → 放入 AR 环境。目前已有 ComfyUI 集成(v0.23.0+),有模板可用。
科研 / 工程复用: 代码 Apache 2.0 开源,预训练权重托管在 HuggingFace,可本地部署、可接入 custom pipeline。底层 splatfactory 库也一并开源。
---
局限在哪里
ZipSplat 生成的是 Gaussian Splat 格式,不是可直接导入 Blender / Maya 的传统网格(.obj / .fbx / .gltf)。如果工作流需要传统网格,需要额外的提取步骤(如 SuGaR 等方法)。
在极稀疏视角(4 张以下)场景下,质量仍有瓶颈。此外,目前仅支持静态场景,暂不支持含运动物体的动态建模。
---
怎么用
```bash
克隆代码
基于已整理草稿生成的网页版文章,适合先稳定落地,再做局部润色与发布检查。
git clone https://github.com/cvg/ZipSplat.git
cd ZipSplat
下载预训练权重
基于已整理草稿生成的网页版文章,适合先稳定落地,再做局部润色与发布检查。
mkdir -p checkpoints
wget -O checkpoints/re10k_trisplat.ckpt \
https://huggingface.co/cvg/ZipSplat/resolve/main/re10k_zipsplat.ckpt
推理示例(Python API)
基于已整理草稿生成的网页版文章,适合先稳定落地,再做局部润色与发布检查。
from zipsplat import ZipSplat
model = ZipSplat("checkpoints/re10k_zipsplat.ckpt")
输入:N 张图像;输出:Gaussian splat
基于已整理草稿生成的网页版文章,适合先稳定落地,再做局部润色与发布检查。
scene = model(images, compression=0.5) # 0.5 = 压缩比,调大更清晰
```
详细推理和训练文档见 GitHub README。
---
小结
ZipSplat 的核心贡献不是什么玄学概念,而是一个非常实用的工程改进:把"每个像素出一个高斯"改成"按场景复杂度分配高斯"。这个改变带来的效果是:6 倍更少的高斯、更高的重建质量、推理时随意切换精度档位。
从 2023 年 3DGS 爆火到今天,领域里一直缺一个真正好用的前馈方案。ZipSplat 可能是目前最接近的那个。
来源:ETH Zürich & 微软,arXiv:2606.05102,GitHub: cvg/ZipSplat,基于论文及项目页整理。
参考来源
说明:该页面由基础模板稳定生成,后续可继续局部润色样式或补充模块,再进入发布检查。