一句话定位

SyncDreamer 是一个「同步多视角扩散」模型:从单张图出发,在一次反向扩散过程里同时生成 16 张几何/颜色一致的固定视角图,使得后续可直接用 vanilla NeuS/NeRF(无需 SDS loss)做单图三维重建。核心创新是用 3D-aware feature attention(深度向 attention + 共享空间特征体) 把 N 个噪声预测器在每一步去噪时同步起来,把 Zero123 各视角独立生成造成的「不一致」问题压下去。在 GSO 数据集上 NVS 的 COLMAP 可重建点数从 Zero123 的 95 暴涨到 1123(一致性指标),SVR 的 Chamfer Distance 0.0261 / Volume IoU 0.5421 均优于 Zero123、Magic123、One-2-3-45、Point-E、Shap-E。ICLR 2024 Spotlight。

背景与定位

单图三维重建是高度欠定的 ill-posed 问题。2023 年的主流路线有两条:

  1. 蒸馏路线(distillation)dreamfusion/SJC 用 SDS loss 把 2D 文生图模型蒸馏成 3D;RealFusion/Magic123/One-2-3-45 把它扩展到单图重建。问题:需要 textual inversion 找输入图的文本描述 + 逐物体 NeRF 优化,慢、要繁琐调参、结果不保证,且单词嵌入难以准确表达图像的丰富细节,重建质量受损;蒸馏只能收敛到单一形状。
  2. 多视角生成路线:直接用 2D 扩散模型生成多视角图再做重建。代表作 Zero123 用相对位姿 ∆v 作条件,从单图生成新视角图,泛化性强(在 Objaverse 上微调 SD),但各视角独立采样,几何与颜色一致性差——这正是 SyncDreamer 要解决的痛点。

SyncDreamer 的定位是「多视角生成路线」的一致性升级:不再蒸馏、不做 textual inversion,而是把扩散框架(ddpm)扩展为联合分布建模 pθ(x₀⁽¹⁾,…,x₀⁽ᴺ⁾|y),让 N 视角在每个去噪步互相交换信息。与同期并行工作的区分:

  • MVDream:也做多视角生成但面向 text-to-3D;SyncDreamer 面向单图重建。
  • Viewset Diffusion:思路相近(生成一组图),但 Viewset Diffusion 需预测 radiance field,SyncDreamer 只用 attention 同步状态、并固定视点以利收敛。
  • MVDiffusion / MultiDiffusion / SyncDiffusion:同样关联多个扩散过程,但用于已知几何的纹理/全景或 2D 图不同区域;SyncDreamer 几何未知。

模型架构

整体:N=16 个「共享」噪声预测器(实现上是同一个 UNet),每个负责一个固定视角,每步去噪时通过 3D-aware attention 交换信息。视角配置:方位角(azimuth)在 [0°,360°] 均匀分布、仰角(elevation)固定 30°;假设物体在原点、归一化进边长 1 的立方体。

Backbone UNet:直接用预训练 Zero123(README 明确为 zero123-xl)的权重初始化——Zero123 本身是 SD 在 Objaverse 上微调而来。沿用 Zero123 的两处设计:

  • 输入视图 y当前噪声目标视图 xₜ⁽ⁿ⁾ 在通道维 concat 后送入 UNet;
  • 复用 SD 的 text attention 层来注入视角差 ∆v⁽ⁿ⁾:把 ∆v⁽ⁿ⁾ 与输入图的 CLIP(ViT-L/14)特征 拼接后过 text-attention(即 ckpt 里的 ViT-L-14.ckpt)。

训练时冻结 UNet 与 text attention 层(消融证明这样泛化更好,见下)。

3D-aware feature attention(核心创新模块),单步去噪流程(论文 Fig.2):

  1. 空间特征体(spatial volume):构造 V³ 顶点(V=32,即 32³)的 3D 体;把每个顶点投影到全部 16 个目标视图,用卷积层抽取各视图特征,concat 成空间特征体;再过一个 3D CNN 捕捉空间关系。全部目标视图共享同一个空间体 → 隐含全局约束「所有视图看的是同一物体」。
  2. 视锥特征体(view-frustum volume):为当前第 n 视图构造与之像素对齐的视锥体(尺寸 32×32×48,48 个 depth plane,因为视线可能从对角方向穿入体),其特征由空间体插值得到。
  3. 深度向 attention(depth-wise attention):在 UNet 每个中间特征图上,新增一层 depth-wise attention,沿深度维从对齐的视锥特征体抽特征。这类似 epipolar attention(Suhail 2022 等),施加局部对极线约束:某像素的特征应与其他视图对极线上的对应特征一致。

设计要点:空间体 = 全局「同一物体」约束;depth-wise attention = 局部对极线一致性约束。两者合力保证多视角一致。消融显示:去掉 depth-wise attention 退化为「Zero123 在固定视点上微调」,仍无法产生强一致;若把视锥体当 2D 特征图(H×W×(D×F))直接卷积加到 UNet 也会产生形变退化。

分辨率/参数策略:图像 256×256;SD 的 latent 特征图 32×32,故空间体/视锥体也取 32 这一尺度对齐。论文未单独报告 SyncDreamer 新增模块的参数量。

数据

  • 训练集:Objaverse(Deitke et al. 2023b),约 800k 个 3D 物体。SyncDreamer 自己用 Blender 渲染:每个物体渲染 16 个固定目标视图(方位角均匀、仰角 30°)+ 16 个随机输入视图(方位角与目标相同、仰角随机)。约定输入视图与第一个目标视图方位角均为 0°。渲染好的整套训练数据约 1.6T(README)。
  • 评测集:Google Scanned Object(GSO),随机选 30 个物体(日用品到动物),每个渲染 256×256 输入图;另收集网图与《原神》Wiki 图测泛化。
  • 预处理/标注:训练用渲染时已知的真实仰角算 ∆v⁽ⁿ⁾;推理时只需粗略仰角([-10°,40°] 范围内,如 0/10/20/30 即可,或用 One-2-3-45 的仰角估计器)。生成图前景 mask 用 CarveKit 预测(重建 NeuS 时也用)。
  • 数据来源/配比/美学/安全过滤等:未单独披露(直接用 Objaverse 全量,未做清洗;论文 limitation 反而指出未来应清洗掉 textureless/点云/复杂场景等「不常见形状」)。

训练方法

  • 训练目标:标准 DDPM ε-prediction(噪声预测的 L2 损失),但扩展为多视角联合分布。前向过程对每个视图独立加噪;反向过程中第 n 视图的均值 μθ⁽ⁿ⁾ 依赖所有视图的状态 xₜ⁽¹:ᴺ⁾。损失: ℓ = E[‖ε⁽ⁿ⁾ − εθ⁽ⁿ⁾(xₜ⁽¹:ᴺ⁾, t)‖²]
  • 单步训练流程:取同物体的 16 张图 → 采样时间步 t 与噪声 ε⁽¹:ᴺ⁾ 加到全部 16 图 → 随机选一个视角 n,只用对应噪声预测器算该视图的预测噪声与 L2 损失(节省显存,无需每步算全部 16 个预测器的梯度)。
  • 多阶段:无独立 SFT/RLHF/DPO/偏好对齐阶段——本质是「从 Zero123 权重初始化 → 加 3D-aware 模块 → 在 Objaverse 上继续训练(freeze UNet)」的单阶段微调。
  • CFG:推理用 classifier-free guidance,cfg_scale=2.0(也可试 1.5)。
  • 关键超参:N=16;空间体 32³;视锥体 32×32×48;训练 80k steps(约 4 天)8×40G A100,total batch size 192;学习率从 5e-4 退火到 1e-5
  • 冻结策略(trick,经消融验证)
    • 冻结 UNet+text attention(只训新增的 volume condition 模块)——比训 UNet 泛化好;训 UNet 会过拟合(在 2D 手绘输入上倾向把物体预测成「薄片」,疑因 Objaverse 多薄片物体 + 固定视点)。
    • Zero123 初始化优于从 SD 初始化——因为 Zero123 用 batch 1536 训出的 3D 先验,而本工作受显存限制只能 batch 192,难以从头学好 3D 先验。
  • 蒸馏/步数加速:未做 consistency/LCM/ADD 类蒸馏;推理直接用 50 步 DDIM

Infra(训练 / 推理工程)

  • 训练算力:8×A100 40G,约 4 天 / 80k steps;total batch 192。计算资源来自 Tencent Taiji 平台。
  • 推理:单张 40G A100 上,50 步 DDIM 采样、约 40s 生成 64 张图(即 4 个 instance × 16 视图)。比 Zero123 略慢,因每步要重建空间特征体。
  • 显存友好:README 提供 --batch_view_num 4 + --sample_num 1,每步只去噪 4 张图,可压到 <10G 显存(但更慢),故 10G 级 GPU 也能跑推理。
  • 重建后处理:vanilla MLP-NeuS 训 2k steps(每步采 4096 rays × 128 points,mask loss + rendering loss)约 10min;hash-grid NeuS 约 3min(需加 normal smoothness loss 抑噪)。
  • 并行/混合精度/吞吐等更细的工程细节:未披露。代码与 docker 环境、预训练 ckpt 均开源。

评测 benchmark(把效果讲清楚)

全部在 GSO 数据集,对比基线 Zero123 / RealFusion / Magic123 / One-2-3-45 / Point-E / Shap-E。

任务一:一致新视角合成 NVS(Table 1)

方法PSNR↑SSIM↑LPIPS↓Points↑(COLMAP)
RealFusion15.260.7220.2834010
Zero12318.930.7790.16695
SyncDreamer20.050.7980.1461123
  • #Points 是 COLMAP 在生成图上重建出的 3D 点数,间接量化多视角一致性(越一致→匹配越多→点越多)。Zero123 仅 95 点(图好看但极不一致);SyncDreamer 1123 点,一致性远超 Zero123。
  • RealFusion 点数(4010)虽高(SDS 蒸馏 NeRF 天然一致),但生成图视觉质量差(PSNR 仅 15.26)。SyncDreamer 在「视觉质量 + 一致性」上取得最佳平衡。

任务二:单图三维重建 SVR(Table 2)

方法Chamfer Dist.↓Volume IoU↑
RealFusion0.08190.2741
Magic1230.05160.4528
One-2-3-450.06290.4086
Point-E0.04260.2875
Shap-E0.04360.3584
Zero1230.03390.5035
SyncDreamer0.02610.5421
  • SyncDreamer 在 CD 与 Volume IoU 上全面最优。Point-E/Shap-E 易产生残缺网格;Magic123 依赖输入图深度估计、不鲁棒;One-2-3-45 从 Zero123 的不一致输出回归 SDF,丢细节。

消融结论(定性,Fig.7/Fig.10)

  • 去掉 3D-aware attention → 退化为 Zero123 固定视点微调,仍不一致。
  • 从 SD 初始化(而非 Zero123)→ 泛化变差。
  • 训 UNet(不冻结)→ 过拟合,2D 手绘易变薄片。
  • depth-wise attention 换成「视锥体当 2D 图卷积」→ 形变退化。

随机性分析(Table 3):对 8 个 GSO 物体各采 4 个 instance 报 min/max/avg(如 Mario PSNR 18.25/18.74/18.48),说明扩散随机性导致质量有波动——这也是其 limitation(需多 seed 选优)。

泛化:对卡通、素描、水墨、油画等非真实风格输入也能产生合理 3D 几何与一致多视角图。

创新点与影响

核心贡献

  1. 同步多视角扩散范式:把单视角扩散扩展为 N 视角联合分布建模,用「N 个共享噪声预测器 + 每步互相同步」一次反向过程生成全部视角,从机制上解决多视角一致性,而非靠条件/自回归/外部深度图打补丁。
  2. 3D-aware feature attention:共享空间特征体(全局「同一物体」约束)+ depth-wise/对极线 attention(局部一致性约束)的组合,是把 2D 扩散「3D 化」的简洁有效设计。
  3. 重建解耦:因生成图已一致,下游可用 vanilla NeuS/NeRF 重建、无需 SDS loss,且能事先目测生成质量预判重建好坏;还能从同一输入图生成多个合理实例(蒸馏只能收敛单一形状)。

影响:作为 2023H2「多视角扩散做 3D」浪潮的代表作之一(与 MVDream、Wonder3D、One-2-3-45++ 等同期),把「先生成一致多视角图、再常规重建」确立为 image-to-3D 的主流范式,深刻影响了后续 Era3D、Unique3D、CRM、InstantMesh 等工作;其「空间体 + 视锥 attention」的几何感知注入思路被广泛借鉴。ICLR 2024 Spotlight。

已知局限

  • 生成视角固定(16 个仰角 30°视点),需其他视角时只能用重建的 NeuS 渲染(偏糊)。
  • 生成不总是合理,需多 seed 选优;对前景物体尺寸/crop_size 敏感(影响透视感知)。
  • 假设透视投影输入,对正交投影的 2D 设计图会几何失真。
  • 纹理细节有时不如 Zero123(多视角约束更强 → 倾向大块少细节纹理)。
  • 未清洗 Objaverse,受薄片/无纹理/点云等「脏」样本影响。

原始链接

一手源存档(sources/)