MVDream: Multi-view Diffusion for 3D Generation

基本信息

项目 内容
论文标题 MVDream: Multi-view Diffusion for 3D Generation
作者 Yichun Shi, Peng Wang, Jianglong Ye, Long Mai, Kejie Li, Xiao Yang
作者单位 ByteDance (USA), University of California, San Diego
时间 2023(推断)
发表会议/期刊 未明确说明(应为计算机视觉/图形学顶会)

方法概览

特点 文章性质
输入 自然语言文本提示(支持少样本图像输入用于个性化生成)
输出 多视角一致的 3D 模型(NeRF 参数化,可导出网格),支持任意视角渲染
所属领域 文本驱动三维物体生成(多视角扩散蒸馏,兼顾通用性与一致性)

摘要精简

MVDream 的核心任务不是直接生成可用的 3D 模型文件(例如 OBJ/GLTF/PLY 等),而是:从文本 + camera 参数生成一致的多视角图像

MVDream 提出首个多视角扩散模型,实现文本到高质量 3D 模型的生成。核心思路是将预训练 2D 文本到图像扩散模型(Stable Diffusion)迁移为多视角一致的 3D 先验,通过混合 2D 文本图像对与 3D 渲染多视角图联合训练,兼顾 2D 模型的通用性与 3D 场景的一致性。模型引入 3D 自注意力机制与相机参数嵌入,可直接生成文本对应的多视角一致图像,并通过多视角 Score Distillation Sampling(SDS)优化 3D 表示(NeRF)。实验表明,该方法有效解决了现有 2D-lifting 方法的 “多脸问题” 和内容漂移,在文本对齐度、多视角一致性上显著超越 DreamFusion、Magic3D 等基线;同时支持少样本个性化生成(类似 3D 版 DreamBooth),仅需少量目标图像即可学习身份特征并生成一致 3D 模型。

引言与出发点

传统3D内容创建依赖专业设计,耗时耗力。现有3D生成方法可分为三类:

  1. 基于模板的生成流程;
  2. 3D生成模型;
  3. 2D提升方法。

前两者受限于可获取的3D模型数量和数据复杂性,难以泛化到任意对象生成。近年来,2D提升方法(如DreamFusion、Magic3D)利用预训练2D扩散模型通过分数蒸馏采样监督3D表示优化,展现出创造艺术化资产的潜力。然而,这些方法因缺乏多视角知识或3D感知而面临挑战:

  1. 多面Janus问题:系统在不同视角重复生成文本描述的内容。
  2. 不同视角间的内容漂移

作者认为大规模2D数据对可泛化的3D生成至关重要,因此提出多视角扩散模型,将其作为与3D表示无关的多视角3D先验,以同时生成一组一致的多视角图像,从而解决上述一致性问题。

创新点

  1. 首个通用多视角扩散模型:提出了一个能够从任何给定文本生成一组物体多视角图像的扩散模型。**

    • 提出 Inflated 3D Self-Attention 机制,将 2D 自注意力层扩展为 3D 形式,把多视角图像视为空间关联的 token 序列,强制不同视角特征交互,学习视角间的几何约束;
    • 设计相机参数嵌入模块:将绝对相机外参矩阵通过 2 层 MLP 编码为低维向量,以残差形式添加到时间嵌入中,让模型区分不同视角,避免视角混淆;
    • 基于 Stable Diffusion 修改,冻结基础 U-Net 骨干,仅训练 3D 自注意力层与相机嵌入模块,降低训练成本。
  2. 混合数据集训练策略

    • 训练数据包含两部分:大规模 2D 文本 - 图像对(如 LAION)保证模型通用性,3D 渲染多视角数据集(从 ShapeNet 等 3D 模型渲染 4 个均匀分布视角图像)注入多视角一致性知识;
    • 3D 渲染数据采用 “固定仰角(0°-30° 随机选择)+ 均匀方位角” 采样,避免视角分布过广导致训练困难,平衡一致性与泛化性。
  3. 多视角 Score Distillation Sampling(SDS)

    • 扩展传统 SDS 损失,同时对多个视角的渲染图像计算蒸馏损失,强制 3D 模型在所有视角下均满足文本约束。
  4. 少样本个性化 3D 生成

    • 提出多视角 DreamBooth 扩展,仅需 3-5 张目标物体的多视角图像,微调模型的轻量级适配器,即可让模型学习目标身份特征;
    • 微调过程采用低学习率(10−6)和小批量大小(4),平衡身份保留与样式灵活性,避免过拟合。
  5. 网络结构创新

    • 膨胀的3D自注意力:将原始2D自注意力层扩展为3D,连接所有不同视角,以建模跨视角依赖,实现大视角跨度下的一致性生成。

    • 相机嵌入:通过一个2层MLP嵌入相机参数,作为时间嵌入的残差添加,以提供视角控制。

扩展至个性化3D生成:将多视角扩散模型扩展为多视角DreamBooth,可从少量2D图像中学习身份信息,并保持微调后的多视角一致性,用于个性化3D生成。

相关工作总结与对比

相关领域 代表性工作 指出问题/局限性
3D生成模型 3D GANs (GET3D, EG3D等), 3D扩散模型 (针对tri-planes或feature grids) 泛化性有限,主要针对特定物体(如人脸、ShapeNet物体),未验证其具有与2D模型同等的泛化能力。
新视角合成 Zero-1-to-3, SparseFusion, Viewset Diffusion等 受限于其训练数据,没有证据表明能泛化到多样化的图像输入;生成的图像仍存在几何不一致问题,导致输出3D模型模糊。
2D提升至3D DreamFusion, Magic3D, SJC, ProlificDreamer等 多视角一致性问题困扰(Janus问题、内容漂移);每个3D模型需单独调整提示词和超参数以避免生成失败。
视频扩散模型 Make-A-Video, Video LDM等 直接适配到多视角生成非易事,几何一致性比时序一致性更精细;内容漂移仍可能发生在视角变化大的帧之间;且通常针对动态场景训练,存在域差距。

网络架构

image-20251219120050164

image-20251219120039629

网络基于 Stable Diffusion 扩展,核心由文本编码模块、相机嵌入模块、3D 自注意力模块、U-Net 解码器、SDS 损失模块组成:

文本编码模块

  • 采用 CLIP Text Encoder,将输入文本提示转换为高维文本嵌入向量,传递给 U-Net 的交叉注意力层,提供文本条件约束。

相机嵌入模块

  • 输入:相机外参矩阵(包含方位角、仰角、距离等信息);
  • 结构:2 层 MLP+ReLU 激活,输出低维相机嵌入向量;
  • 融合方式:以残差连接形式添加到时间嵌入中,避免与文本嵌入相互干扰,提升视角区分能力。

3D 自注意力模块

  • 结构:Inflated 3D Self-Attention,将K个视角的特征图展平为 token 序列,通过自注意力计算 token 间关联,建模视角间依赖;
  • 位置:替换 Stable Diffusion U-Net 中的部分 2D 自注意力层,仅在关键特征层引入,平衡性能与计算成本。

U-Net 解码器

  • 模型基于预训练的Stable Diffusion v2.1文本到图像UNet架构,进行了两处关键修改:

    1. 自注意力从2D变为3D:用于跨视角连接。
    2. 为每个视图添加相机嵌入:作为条件输入。
  • 沿用 Stable Diffusion 的 U-Net 骨干,冻结大部分参数,仅微调与 3D 自注意力、相机嵌入相关的层;

  • 功能:接收文本嵌入、相机嵌入、多视角特征,预测扩散过程中的噪声,为 SDS 损失提供梯度信号。

SDS 损失模块

  • 计算多视角渲染图像的噪声预测损失,反向传播更新 3D 模型(NeRF)参数,实现多视角协同优化。

训练流程:使用多视角渲染图像(来自3D资产)训练扩散模型。
推理/生成流程:多视角扩散模型作为3D先验,通过分数蒸馏采样优化3D表示(如NeRF)。

特征提取机制

文本特征提取

  • 文本经 CLIP Text Encoder 编码为固定维度的嵌入向量,捕捉文本的语义信息(如物体类别、属性、场景);
  • 文本嵌入通过交叉注意力层与图像特征融合,引导模型生成符合文本描述的内容。

相机特征提取

  • 相机外参矩阵经 MLP 编码为低维嵌入,编码视角的空间位置信息,让模型识别不同视角的关联性(如正面与侧面的几何对应);
  • 相机嵌入与时间嵌入融合后,传递给 U-Net 的各层,为不同时间步的噪声预测提供视角条件。

多视角图像特征提取

  • 多视角渲染图像经 U-Net 编码器下采样,提取从局部纹理到全局结构的层级特征;
  • 3D 自注意力模块对多视角特征进行交互融合,学习视角间的几何约束(如物体边缘、遮挡关系的跨视角一致性);
  • 融合后的特征输入 U-Net 解码器,用于噪声预测,间接为 3D 模型优化提供多视角一致的监督信号。

核心是 “膨胀的3D自注意力” 机制:

  • 输入:形状为 BimesFimesHimesWimesCB imes F imes H imes W imes C 的张量,其中 FF 是视角数。
  • 处理:将其重塑为 Bimes(FimesHimesW)imesCB imes (F imes H imes W) imes C,将第二个维度作为表示所有视角所有图像块(token)的序列维度。
  • 操作:在这个序列上进行标准的自注意力计算。这样,模型能够同时关注同一视角内和不同视角间的图像块关系,从而学习跨视角的一致性。
  • 优势:继承了原始2D自注意力层的权重,保持了生成质量,同时实现了强一致性。

三维物体生成流程

image-20251219120800946

image-20251219120932650

  1. 训练多视角扩散模型:在混合数据集(3D渲染数据 + 大规模2D图文数据)上微调模型,学习生成一致的多视角图像。
  2. 作为先验进行3D优化
    • 采用 分数蒸馏采样 框架。
    • 用训练好的多视角扩散模型替换原来的2D扩散模型。
    • 对3D表示(如基于哈希网格的NeRF)进行优化。
    • 输入:随机采样相机姿态 c\mathbf{c} 和文本提示 yy,渲染当前3D模型得到图像 x=g(ϕ)\mathbf{x} = g(\phi)
    • 损失计算:使用提出的 x0\mathbf{x}_0 重建损失:

      \mathcal{L}_{SDS}(\phi, \mathbf{x}=g(\phi)) = \mathbb{E}_{t,\mathbf{c},psilon}\Big[\|\mathbf{x} - \hat{\mathbf{x}}_0\|_2^2\Big]

      其中 x^0\hat{\mathbf{x}}_0 是从扩散模型预测的噪声 psilon_ heta 估计得到的去噪图像,其梯度被截断。
    • 优化:通过梯度下降更新3D表示参数 ϕ\phi,使得从任意视角渲染的图像都符合多视角扩散模型预测的“理想”多视角集合。
  3. 输出:优化完成后,即可从训练好的3D表示(NeRF)中提取或渲染出3D模型。

数据集与实验对比

训练数据

  • 3D数据:Objaverse数据集(过滤后约35万个物体),渲染多视角图像。
  • 2D数据:LAION数据集子集。
  • 联合训练:70%批次来自3D数据,30%来自2D数据。

测试与对比

  • 任务1:多视角图像生成
    • 评价指标:FID, IS, CLIP分数。
    • 结果:联合训练模型达到了与验证集相近的IS和CLIP分数,表明图像质量和图文一致性良好。纯3D数据训练会导致图像质量下降。
  • 任务2:3D生成
    • 对比方法:DreamFusion, Magic3D, Text2Mesh, ProlificDreamer在threestudio中的实现。
    • 测试集:40个来自不同来源的提示词。
    • 结果
      • 定性:基线方法均存在严重的多视角不一致问题,MVDream生成结果更稳定、质量更高。
      • 用户研究:平均78%的用户偏好MVDream生成的结果。
      • 效率:MVDream在单V100 GPU上约耗时2小时,与DreamFusion相当,快于Magic3D和ProlificDreamer。
  • 任务3:个性化3D生成
    • 对比方法:DreamBooth3D。
    • 结果:MVDreamBooth生成的3D模型在细节(如毛发纹理)上质量更高,几何一致性更好。

消融实验

  1. 注意力模块类型
    • 对比了1D时序注意力、新增3D注意力层、膨胀2D自注意力。
    • 结论:时序注意力仍存在内容漂移;新增3D层导致质量下降;膨胀2D自注意力在保持质量的同时实现了最佳一致性。
  2. 训练数据组成
    • 对比了仅用3D数据与混合(3D+2D)数据训练。
    • 结论:混合训练显著提升了模型的泛化性和图像质量。
  3. SDS中使用的视角数
    • 对比了使用训练有1、2、4个视角的扩散模型进行SDS。
    • 结论:1视角模型仍有严重Janus问题;2视角模型大幅减少多面问题;4视角模型几乎不受多视角一致性问题影响。
  4. SDS优化技巧
    • 逐步添加时间步退火、负向提示词、CFG重缩放技巧。
    • 结论:时间步退火使形状更完整;负向提示词改善视觉风格;CFG重缩放使纹理颜色更自然。

3D模型生成ThreeStudio集成

MVDream本身只提供多视角图像生成功能,完整的3D模型生成需要与ThreeStudio项目配合使用:至于如何生成三维资产的应该是和DreamFusion中的一样,通过NeRF来获得的,再使用 marching cubes、mesh extraction 工具将隐式场转为可用网格(带纹理)。

image-20251219120905815