一句话定位

Zero-1-to-3(Zero123)通过在合成多视图数据上微调 stable-diffusion-1,把”相对相机视角变换”作为一个可控条件”螺栓”挂载到大规模扩散模型上,从而用单张 RGB 图做零样本新视角合成(NVS)与单图 3D 重建。其核心论点:大规模 2D 扩散模型在仅看 2D 图像的情况下已隐含学到丰富的 3D 几何先验,只需学一个视角控制机制即可”解锁”。在 Google Scanned Objects 上 NVS 的 PSNR 18.378 / LPIPS 0.088 / FID 0.027,全面碾压 DietNeRF、Image Variation、SJC-I 等基线,开启了”2D 扩散 → image-to-3D”的范式。

背景与定位

单图 3D 重建与新视角合成是高度欠约束(under-constrained)问题,需要极强的先验。此前主流路线有两类局限:

  • 闭世界 3D 监督:依赖昂贵的 CAD 模型、stereo、相机位姿或类别先验(DeepSDF、PixelNeRF 等),数据规模与多样性远不及互联网图文数据,泛化差。
  • 2D 扩散蒸馏 text-to-3Ddreamfusion、Magic3D、SJC 等用 SDS/PAAS 把文本扩散模型蒸馏成 NeRF,但是文生 3D,缺少对”输入图像 identity”的保持,且存在 Janus(多面)问题——文生图模型天然偏好正面规范姿态(论文 Figure 2 展示 DALL·E 2 / SD v2 对 “a chair” 几乎只出正面椅子)。

Zero-1-to-3 的关键洞察与改进:把 NVS 重新表述为视角条件下的 image-to-image 翻译任务,用合成数据显式建模相机外参的相对变换,而不是靠 “a back view of” 这类 prompt trick。由于显式注入了相机视角且在 Objaverse 上微调以保证视角变换后的一致性与精度,它从根本上缓解了 Janus 问题(README 专门讨论)。技术脉络上,它站在 latent-diffusion-ldm(LDM/Stable Diffusion)、dreamfusion(SDS)、SJC(PAAS score)、Objaverse(大规模 3D 资产)这几项工作的交汇点上,并反转了”先重建 3D 再渲染新视角”的顺序——先快速生成新视角,再(可选)蒸馏成 3D。

模型架构

Backbone:U-Net 的隐空间条件扩散(latent diffusion),直接复用 Stable Diffusion 的 encoder E / 去噪 U-Net θ / decoder D,不改主干结构,只”挂载”视角控制。

视角与图像信息通过混合(hybrid)双流条件注入

  • 高层语义流(cross-attention):取输入图的 CLIP 图像 embedding(维度 768),与相对相机外参 (R, T) 拼接,构成”posed CLIP” embedding c(x, R, T),经 cross-attention 注入去噪 U-Net,提供物体类型/结构等高层语义。
  • 低层细节流(channel concat):把输入图直接在通道维与正在去噪的隐变量拼接(channel-concatenate),帮助模型保持物体 identity 与纹理细节。这是 image-conditioned SD 的做法,借用了 Lambda Labs 的 image-variations 检查点起步。

相机位姿编码:用球坐标系 (θ 极角, φ 方位角, r 半径) 表示相机位置。相对变换为 (θ₂−θ₁, φ₂−φ₁, r₂−r₁)。因方位角不连续,φ 编码为 [sin φ, cos φ],最终送入模型的是 4 维向量 [θ, sin φ, cos φ, r]。相机始终指向物体中心,故外参由相机位置唯一确定;假设水平 FOV 49.1°,pinhole 相机模型。

架构改动细节(附录 C):原始 SD 不接受图像多模态条件,先用 image-variations 的已有改造,再为接收”图像 CLIP emb + 相机位姿”额外加一个全连接层 (768+4=772 → 768),这层学习率放大到其余层的 10×,其余网络结构与原版 SD 保持不变。

分辨率策略:训练用 256×256(latent 32×32),而非 SD 原生 512×512(latent 64×64)——为的是把 batch 撑大以稳定训练(见训练方法)。参数量论文未单独披露,约等于 SD v1/v2 的 U-Net 量级。

3D 重建模块:把视角条件扩散模型作为先验,配合 SJC(Score Jacobian Chaining) 优化一个 voxel radiance field(VoxelRF),随机采样视角做体渲染 → 加高斯噪声 → 用 U-Net 去噪算 PAAS score ∇L_SJC 监督 NeRF;再对输入视角加 MSE loss,并加 depth smoothness loss 与 near-view consistency loss 正则。最后用 marching cubes 从密度场抽 mesh。

数据

  • 微调数据集:Objaverse——大规模开源 3D 数据集,含 80 万+(800K+)3D 模型,由 10 万+(100K+)艺术家创建,几何丰富、含细粒度细节与材质属性,但无显式类别标签(区别于 ShapeNet)。
  • 渲染流程(附录 B):对每个物体随机采样 12 个相机外参(指向物体中心),用 Blender 的 Cycles 引擎渲染,每条光线 128 samples + 去噪步,分辨率 512×512,透明背景填白。施加随机面光源照明。资产先归一化进 XYZ 单位立方体 [−0.5, 0.5]³,相机视角在单位球上均匀采样:θ ∈ [0, π]、φ ∈ [0, 2π],r 在 [1.5, 2.2] 均匀采样。渲染脚本继承自 Objaverse 作者公开的 objaverse-rendering 仓库。
  • 总规模:共渲染约 10M(千万)张图用于微调。训练时对每个物体取两张不同视角图组成图对 (x, x_{R,T}),其相对视角变换 (R, T) 由两个外参直接推出。
  • 清洗/标注/合成:数据完全是合成渲染(无真实照片),无 re-captioning 等文本标注流程(本工作不依赖文本)。测试集(GSO、RTMV、in-the-wild)均在 Objaverse 之外,故评测结果可视为零样本。美学/安全过滤:未报告。

训练方法

  • 训练目标:标准 DDPM/LDM 去噪 ε-prediction。在 t ∼ [1, 1000] 时间步上最小化 E_{z∼E(x),t,ε} || ε − ε_θ(z_t, t, c(x,R,T)) ||₂²(论文式 (2)),即在 image+pose 条件下预测噪声。推理时从高斯噪声迭代去噪,条件为 c(x, R, T)
  • 微调而非从零训练:从 image-conditioned Stable Diffusion 检查点(Lambda Labs 的 image-variations,即 sd-image-conditioned-v2.ckpt)起步微调,复用互联网级预训练的几何/语义先验,这是零样本泛化的根。
  • Classifier-free guidance(CFG):按 InstructPix2Pix 的做法,训练时随机把输入图像与 posed CLIP embedding 置为 null 向量,推理时放大条件信号,实现 CFG。
  • 关键超参(附录 C.1):优化器 AdamW,学习率 1e-4。一个重要 trick——大 batch 对稳定训练 SD 至关重要:先试 batch 192 + 原始 512×512,但收敛慢、batch 间方差大;因原版 SD 训练用 batch 3072,遂把图缩到 256×256(latent 32×32)以把 batch 撑到 1536,显著改善训练稳定性与收敛速度。
  • 算力与时长:在 8×A100-80GB 机器上微调 7 天。README 进一步披露公开的 300000.ckpt(30 万步)约耗 6000 A100 小时;并提示训练更久的检查点会过拟合训练集、损害零样本泛化(默认推荐用 105000.ckpt)。
  • 无 RL/偏好对齐、无步数蒸馏/一致性蒸馏:本工作不涉及 RLHF/DPO/reward model,也未做 LCM/ADD 等加速蒸馏(属基础范式工作)。
  • 3D 重建训练 trick(附录 D):相对原版 SJC 去掉了 “emptiness loss” 与 “center loss”;对可微渲染的 depth map 加 smoothness loss(利用”几何比纹理低频”的先验,有效去洞);加 near-view consistency loss 提升跨视角纹理一致性。SJC 蒸馏沿用 DreamFusion 思路把 CFG 值设得远高于常规,牺牲多样性换取重建保真度。

Infra(训练 / 推理工程)

  • 训练算力:8×A100-80GB,7 天/次微调;公开 30 万步检查点 ≈6000 A100 小时(README)。分布式细节(并行策略/混合精度/吞吐)论文未单独披露,训练脚本为 8 GPU 单节点、每卡 80GB。
  • 推理(NVS):生成一张新视角图在 RTX A6000 上仅需约 2 秒——因为它反转了顺序(先生成新视角而非先训 NeRF),所以 NVS 又快又能在不确定性下保留多样性。
  • 推理(3D 重建):完整跑一次单图 3D 重建(SJC 优化 VoxelRF + marching cubes 抽 mesh)在 RTX A6000 上约 30 分钟。mesh 抽取:先在 200³ 分辨率查询密度网格,做 (7,7,7) 均值滤波 + (5,5,5) 腐蚀,再 marching cubes(GSO 阈值 8d̄、RTMV 4d̄)。
  • 部署形态:开源 gradio demo + HuggingFace Spaces live demo(HF 资助)。经简单优化后显存约 22GB,可在单张 RTX 3090/4090(Ti) 上跑。in-the-wild 输入推理前用 off-the-shelf 背景去除工具预处理。
  • 后续:README 更新提及 Zero123-XL 检查点与 Objaverse-XL 数据(更大规模重训),以及社区 threestudio / stable-dreamfusion 的复现集成(属本页之外的衍生工作)。

评测 benchmark(把效果讲清楚)

评测两个任务,全部零样本(测试集在 Objaverse 之外)。NVS 指标:PSNR↑/SSIM↑/LPIPS↓/FID↓;3D 重建指标:Chamfer Distance(CD)↓ / 体素 IoU↑。Benchmark:Google Scanned Objects (GSO) 高质量扫描家居件、RTMV 复杂场景(每个由 20 个随机物体组成,对 Objaverse OOD)。

新视角合成 — GSO(Table 1)

方法PSNR↑SSIM↑LPIPS↓FID↓
DietNeRF8.9330.6450.41212.919
Image Variation5.9140.5400.54522.533
SJC-I6.5730.5520.48419.783
Ours (Zero123)18.3780.8770.0880.027

新视角合成 — RTMV(Table 2,OOD)

方法PSNR↑SSIM↑LPIPS↓FID↓
DietNeRF7.1300.4060.5075.143
Image Variation6.5610.4420.56410.218
SJC-I7.9530.4560.54510.202
Ours10.4050.6060.3230.319

即便在 OOD 的 RTMV 上,各项指标仍显著领先(PSNR 10.405 vs 次优 7.953;FID 0.319 vs 5.143)。

单图 3D 重建 — GSO(Table 3)

方法CD↓IoU↑
MCC0.12300.2343
SJC-I0.22450.1332
Point-E0.08040.2944
Ours0.07170.5052

单图 3D 重建 — RTMV(Table 4)

方法CD↓IoU↑
MCC0.15780.1550
SJC-I0.15540.1380
Point-E0.15650.0784
Ours0.13520.2196

关键消融/分析结论

  • 体素 IoU 上对所有基线大幅领先(GSO 0.5052 vs Point-E 0.2944)。Point-E 虽零样本泛化不错且 CD 相对好,但只生成 4096 点的稀疏非均匀点云,表面常有洞,故 IoU 偏低;Zero123 结合多视图扩散先验 + NeRF 式表征,CD/IoU 双赢。
  • MCC 能较好估计输入视角可见表面,但常无法推断物体背面几何;SJC-I 经常无法重建出有意义的几何。
  • RTMV(杂乱多物体场景)上所有方法都不算好,但 Zero123 仍最佳——尽管它并未针对 3D 重建任务显式训练
  • 论文还定性展示了对印象派油画、DALL·E 2 生成图(text→image→3D)等 in-the-wild/OOD 输入的强泛化,以及在欠约束下采样多样性(同一固定视角可生成多种合理的几何/外观补全)。
  • 与同期 NVS-with-diffusion 工作(Watson et al. 的 [56])相比,Zero123 的差异是用合成数据学视角控制 + 零样本泛化到野外图;与并发的 RealFusion/NeRDi/NeuralLift-360 等相比,它不依赖 textual inversion / language-guided prior。
  • 注:本工作未报告 GenEval、T2I-CompBench、HPSv2、ImageReward 等 T2I 文本对齐类指标(任务不相关);亦无人评 ELO/Arena。

创新点与影响

核心贡献

  1. 证明大规模 2D 扩散模型隐含丰富 3D 几何先验——仅在 2D 图上训练却能被”解锁”出视角控制能力,这是论文的首要论点。
  2. 视角条件 image-to-image 扩散范式:把相对相机外参 (R, T) 作为可”螺栓挂载”的控制条件,混合 CLIP-cross-attn(语义)+ channel-concat(细节)双流注入,保持输入 identity 的同时改变视角。
  3. 零样本单图 NVS + 单图 3D 重建:用合成 Objaverse 渲染微调即可泛化到 GSO/RTMV/野外照片/油画/DALL·E 生成图,反转”先 3D 后渲染”的传统顺序,使 NVS 快至 ~2s。
  4. 从根本缓解 Janus 问题:显式建模视角变换,规避了文生图模型的正面姿态偏置。

对后续工作的影响:Zero-1-to-3 是 image-to-3D 扩散路线的开山之作,直接催生了 Zero123-XL(Objaverse-XL 重训)、One-2-3-45、Magic123、SyncDreamer、Wonder3D、以及多视图一致扩散(MVDream、Zero123++)等一大批工作;被 Stability AI 的 threestudio、stable-dreamfusion 等主流 3D 生成框架集成为标准组件。它确立了”用 2D 扩散先验 + 视角条件 + SDS/SJC 蒸馏做 3D 生成”的工程模板。

已知局限(作者自述 §5.1)

  • 训练数据是单物体 + 纯背景,对带复杂背景的场景泛化仍是挑战(RTMV 上质量明显下降)。
  • 静态物体导向,不建模动态场景/视频几何(作者展望从 scene 到 video 的方向)。
  • 多视图一致性仍非严格几何一致(每个视角独立采样),后续 Zero123++/SyncDreamer 等正是为补这块短板。
  • 3D 重建依赖 SJC 蒸馏,CFG 需调得很高,单图重建约 30 分钟,速度与一致性仍有提升空间。

原始链接

一手源存档(sources/)