Files
note_sync/大模型/deepseek/05-多模态/08-DreamCraft3D-2310.16818_abstract.md
T

115 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# DreamCraft3D:基于自举扩散先验的层次化 3D 生成
> **原文标题**:DreamCraft3D: Hierarchical 3D Generation with Bootstrapped Diffusion Prior
> **arXiv**:[2310.16818](https://arxiv.org/abs/2310.16818) | **发布**:25 Oct 2023(最后修订 26 Oct 2023)
> **作者/机构**:Jingxiang Sun、Bo Zhang(通讯作者)、Ruizhi Shao、Lizhen Wang、Wen Liu、Zhenda Xie、Yebin Liu(清华大学、DeepSeek AI(深度求索)、独立研究者)
> **原文 PDF**:[08-DreamCraft3D-2310.16818.pdf](./08-DreamCraft3D-2310.16818.pdf)
> **说明**:本文作者主要来自清华大学,论文脚注明确标注「Work partially done during the internship at DeepSeek AI」,作者单位中列入 DeepSeek AI(Wen Liu、Zhenda Xie)。DeepSeek 的参与度有限,属实习期间的早期合作成果,与 DeepSeek 主线大模型研究无直接关系;论文代码托管于 `deepseek-ai/DreamCraft3D`。
## 一、摘要(全文翻译)
我们提出 DreamCraft3D,一种层次化的 3D 内容生成方法,能够产生高保真且连贯一致的 3D 物体。我们通过利用一张 2D 参考图像来引导「几何雕塑」(geometry sculpting)与「纹理增强」(texture boosting)两个阶段,从而解决该问题。本工作的核心关注点是解决已有方法所遭遇的一致性(consistency)问题。为了雕塑出渲染结果彼此连贯的几何形状,我们通过一个视角相关的扩散模型(view-dependent diffusion model)执行分数蒸馏采样(Score Distillation Sampling, SDS)。这一 3D 先验连同若干训练策略,优先保障几何一致性,但在纹理保真度上有所妥协。我们进一步提出自举分数蒸馏(Bootstrapped Score Distillation, BSD),专门用于提升纹理质量。我们在该场景的增强渲染图像上训练一个个性化扩散模型 DreamBooth,使其获得关于正在被优化的场景的 3D 知识。由这一 3D 感知扩散先验所做的分数蒸馏,为场景提供视角一致的引导。值得注意的是,通过对扩散先验与 3D 场景表征进行交替优化,我们实现了互相促进的改进:优化后的 3D 场景有助于训练场景专属的扩散模型,而后者又为 3D 优化提供越来越视角一致的引导。于是优化过程形成自举(bootstrapped),并带来显著的纹理提升。凭借贯穿层次化生成过程的量身定制 3D 先验,DreamCraft3D 生成的 3D 物体既连贯一致,又具备照片级真实的渲染效果,推进了 3D 内容生成的最先进水平。代码发布于 https://github.com/deepseek-ai/DreamCraft3D 。
## 二、核心贡献
1. **层次化流水线**:把「文本→3D」拆为「文本→2D 参考图→几何雕塑→纹理增强」,各阶段用专门技术,在高复杂度资产上兼顾全局 3D 一致性与照片级纹理。
2. **视角条件 3D 先验与混合 SDS**:用 Zero-1-to-3 提供 3D 感知的分数引导,并与 2D 扩散先验的 SDS 相加($\mu=2$),在抑制 Janus 问题与保持通用图像升维质量之间取得平衡。
3. **几何一致性训练策略**:渐进扩大训练视角、扩散时间步退火、由 NeuS 隐式表面过渡到 DMTet 带纹理网格的由粗到细优化。
4. **自举分数蒸馏(BSD)**:在带噪增强的多视角渲染上微调 DreamBooth 得到场景专属 3D 先验,并与 3D 网格交替优化,使扩散先验与 3D 表征互相促进。
5. **结构感知隐变量正则化**:用 ControlNet 引导的 inpainting 补全参考视角不可见区域,并以隐变量范数约束温和注入,减少不一致。
6. **大幅领先并开源**:300 样本基准上四项指标全面领先 Make-it-3D 与 Magic123,用户研究中平均 92% 偏好本方法;代码公开。
## 三、方法与技术要点
### 3.1 总体流水线与设计动机
灵感来自人工美术流程:先画 2D 草稿,再塑粗模、雕细节、最后上色。方法据此把「文本→3D」拆为三级:先用文本到图像模型生成 2D 参考图,再提升到 3D,依次经过几何雕塑与纹理增强。拆阶段是因为:几何阶段优先多视角一致性与全局结构、容忍纹理损失;纹理阶段固定几何、只专注连贯真实的纹理。关键差别在于 SDS 与 VSD 都从**固定的** 2D 分布蒸馏,只保证单视角「看起来合理」而非全局 3D 一致,故普遍受困于雅努斯问题(Janus issue,各视角单独看合理、整体语义与风格互相矛盾)。
### 3.2 几何雕塑阶段:参考视角监督损失
目标是在参考视角匹配参考图 $\hat{\bm{x}}$,同时其他视角依然合理,故对随机视角施加 SDS 损失:
$$\nabla_\theta \mathcal{L}_{\text{SDS}}(\phi, g(\theta)) = \mathbb{E}_{t,\bm{\epsilon}}\Big[\omega(t)\big(\bm{\epsilon}_\phi(\bm{x}_t;y,t)-\bm{\epsilon}\big)\frac{\partial \bm{x}}{\partial \theta}\Big]$$
即渲染图加噪后预测噪声与所加噪声的逐像素差,$\omega(t)$ 为权重函数。为利用参考图,在参考视角 $\hat{c}$ 上施加仅计前景的光度损失 $\mathcal{L}_{\text{rgb}}=\lVert\hat{\bm{m}}\odot(\hat{\bm{x}}-g(\theta;\hat{c}))\rVert_2$ 与掩码损失 $\mathcal{L}_{\text{mask}}=\lVert\hat{\bm{m}}-g_m(\theta;\hat{c})\rVert_2$(后者鼓励场景稀疏),并由参考图推断深度与法向先验强制一致:
$$\mathcal{L}_{\text{depth}}=-\frac{\text{conv}(\bm{d},\hat{\bm{d}})}{\sigma(\bm{d})\sigma(\hat{\bm{d}})},\qquad \mathcal{L}_{\text{normal}}=-\frac{\bm{n}\cdot\hat{\bm{n}}}{\lVert\bm{n}\rVert_2\cdot\lVert\hat{\bm{n}}\rVert_2}$$
其中 $\hat{\bm{d}}$、$\hat{\bm{n}}$ 由现成单视图估计器给出;深度损失取**负皮尔逊相关**形式以规避深度尺度不匹配。但仅此仍难保证背面语义一致,故需额外手段。
### 3.3 3D 感知扩散先验与混合 SDS 损失
仅靠逐视角监督的 3D 优化欠约束,因此引入在大规模 3D 资产上训练的视角条件扩散模型 Zero-1-to-3:给定参考图与相对位姿 $c$ 即可「幻想」对应视角图像,编码更丰富的 3D 知识:
$$\nabla_\theta \mathcal{L}_{\text{3D-SDS}}(\phi, g(\theta)) = \mathbb{E}_{t,\bm{\epsilon}}\Big[\omega(t)\big(\bm{\epsilon}_\phi(\bm{x}_t;\hat{\bm{x}},c,y,t)-\bm{\epsilon}\big)\frac{\partial \bm{x}}{\partial \theta}\Big]$$
它能缓解 Janus 类缺陷,但该模型基于类别有限、渲染质量偏低的数据微调,生成能力受损,单独使用会拖坏通用图像升维质量。故采用**混合 SDS 损失**,同时纳入 2D 与 3D 先验:
$$\nabla_\theta \mathcal{L}_{\text{hybrid}}(\phi, g(\theta)) = \nabla_\theta \mathcal{L}_{\text{SDS}}(\phi, g(\theta)) + \mu \nabla_\theta \mathcal{L}_{\text{3D-SDS}}(\phi, g(\theta))$$
取 $\mu=2$ 强调 3D 先验权重;$\mathcal{L}_{\text{SDS}}$ 使用 DeepFloyd IF base 模型($64\times64$ 像素空间,更擅长捕捉粗粒度几何)。
### 3.4 渐进视角训练、时间步退火与由粗到细
**渐进视角训练**:直接求解 360° 自由视角会因单张参考图的固有歧义产生几何伪影,故逐步扩大训练视角,把已稳固的几何传播到 360°。**扩散时间步退火**:优化初期从 $[0.7,0.85]$ 采样较大的 $t$ 以建立全局结构,数百次迭代内线性退火到 $[0.2,0.5]$ 再精修细节。**细节结构增强**:先用 NeuS 式隐式表面与体渲染建立粗结构,再用可变形四面体网格(DMTet)初始化带纹理网格以获得高分辨率细节;该表示解耦几何与纹理学习,使此后可以只精修纹理。
### 3.5 自举分数蒸馏(BSD)
几何阶段纹理模糊有三因:2D 先验分辨率粗($64\times64$)、3D 感知模型锐度有限、大无分类器引导(CFG)带来过平滑与过饱和。纹理阶段改用变分分数蒸馏(VSD)并切换到 Stable Diffusion 获取高分辨率梯度,固定四面体网格只优化纹理,且刻意**不**用 Zero-1-to-3(会损害纹理质量):
$$\mathcal{L}_{\text{VSD}}=D_{\text{KL}}\big(q^\mu(\bm{x}_0|y)\,\|\,p(\bm{x}_0|y)\big),\qquad \nabla_\theta \mathcal{L}_{\text{VSD}} = \mathbb{E}_{t,\bm{\epsilon}}\Big[\omega(t)\big(\bm{\epsilon}_\phi(\bm{x}_t;y,t)-\bm{\epsilon}_{\text{lora}}(\bm{x}_t;y,t,c)\big)\frac{\partial \bm{x}}{\partial \theta}\Big]$$
但仅用 VSD,不一致的纹理可能回归。作者观察到上一阶段的多视角渲染虽偏模糊却具备良好 3D 一致性,于是用 DreamBooth 在这些渲染 $\{\bm{x}\}$ 上微调,让模型对「场景环绕视角」形成概念——提示词含唯一标识符与类别名(如 "A [V] astronaut"),每视角相机参数作为附加条件。关键技巧是用**带噪增强**渲染 $\bm{x_r}=r_{t'}(\bm{x})$:按时间步 $t'$ 注入高斯噪声 $\bm{x}_{t'}=\alpha_{t'}\bm{x}_0+\sigma_{t'}\bm{\epsilon}$ 再由模型恢复,$t'$ 越大暴露的高频细节越多、但保真度越低。据此对 3D 场景与扩散先验做**交替优化**:初期渲染模糊就用较大的 $t'$ 增强纹理(代价是引入一些 3D 不一致);纹理变精细后减小噪声,DreamBooth 便从更一致的渲染学习。3D 梯度由如下 BSD 损失给出:
$$\nabla_\theta \mathcal{L}_{\text{BSD}}(\phi, g(\theta)) = \mathbb{E}_{t,\bm{\epsilon},c}\Big[\omega(t)\big(\bm{\epsilon}_{\text{DreamBooth}}(\bm{x}_t;y,t,r_{t'}(\bm{x}),c)-\bm{\epsilon}_{\text{lora}}(\bm{x}_t;y,t,\bm{x},c)\big)\frac{\partial \bm{x}}{\partial \theta}\Big]$$
与从固定 2D 模型蒸馏的先前工作不同,BSD 学习一个**不断演化**的模型,靠正在被雕刻的 3D 模型反馈而越来越 3D 一致;交替两轮即可得到细节丰富且一致的纹理。
### 3.6 结构感知隐变量正则化与实现细节
**结构感知隐变量正则化**:为在保留 BSD 画质的同时减少不一致,另用 ControlNet 引导的 inpainting 扩散模型正则化纹理——先算出任意视角渲染图在参考视角下的可见部分(生成中的不变量),由 inpainting 补全其余区域并经 ControlNet 注入几何法向;补全图不直接作为渲染图损失,而以隐变量范数约束温和引入:$\mathcal{L}_{\text{reg}}(\phi,g(\theta))=\Sigma(\lVert E(x)\rVert_2-\lVert E(x_{\text{reg}})\rVert_2)^2$。
**实现细节**:几何阶段用 NeuS 与带纹理网格、Instant NGP(分辨率 64→384),纹理网格用 DMTet(网格 128、渲染 512);按 Magic3D 定期做密度剪枝,并**冻结材质增广**(不利于收敛)。粗 NeuS 阶段一半 GPU 采样随机相机距离与视场角、另一半固定默认内参(Zero-1-to-3 需固定内参)。时间退火:几何阶段 $t$ 由 $\mathcal{U}(0.7,0.85)$ 退火到 $\mathcal{U}(0.2,0.50)$ 后保持,多视角数据集生成由 $t=0.5$ 退火到 $t=0.1$。
## 四、主要实验结果
| 基准 / 任务 | 本模型 | 对比对象 | 说明 |
|---|---|---|---|
| CLIP ↑(语义一致性) | 0.896 | Make-it-3D 0.872;Magic123 0.843 | 300 个生成样本 |
| Contextual Distance ↓ | 1.579 | Make-it-3D 1.609;Magic123 1.628 | 像素级一致性 |
| PSNR ↑(参考视角保真) | 31.801 | Magic123 22.838;Make-it-3D 18.937 | 参考视角 |
| LPIPS ↓(参考视角保真) | 0.005 | Magic123 0.053;Make-it-3D 0.054 | 参考视角 |
| 用户研究偏好率 | 平均 92% 的用户偏好本方法 | DreamFusion、Magic3D、ProlificDreamer、Make-it-3D、Magic123 | 15 组提示/图像,32 名参与者,共 480 份回答 |
| 消融:去掉 3D 先验 | 出现多面 Janus 问题、几何不规则 | 完整模型 | 说明视角感知 3D 先验对全局一致形状的关键作用 |
| 消融:纹理优化损失 | BSD 在真实感与一致性之间取得平衡 | SDS(过平滑、过饱和);VSD(真实但一致性明显差) | 1 轮 BSD 提升一致性,2 轮 BSD 进一步增加细节 |
定量上四指标全面领先两个图像到 3D 基线,参考视角保真度提升最悬殊:PSNR 从 22.838 升到 31.801,LPIPS 从 0.053 降到 0.005。定性上所有文本到 3D 方法都有一致性问题:ProlificDreamer 纹理真实却难形成合理 3D 物体;Make-it-3D 正面好但几何欠佳;Magic123 借 Zero-1-to-3 改善几何正则,但两者纹理与细节都过度平滑。附录补充多样性实验与失败案例(大象鼻子几何学错)。
## 五、结论、局限与影响
- **结论**:几何雕塑阶段产生合理连贯的 3D 几何,自举分数蒸馏——从优化中的 3D 感知扩散先验蒸馏、并适配被优化实例的多视角渲染——显著提升纹理质量与一致性;方法生成高保真、细节丰富且多视角一致的 3D 资产,作者视之为朝向「3D 内容创作民主化」的重要一步。
- **局限性**(作者自述,附录 A.3):因深度歧义与深度先验不准确,偶尔会把正面视角的几何细节错误混入纹理(附录图 9 大象鼻子为失败案例);且未显式分离材质与光照,留待未来探索。
- **影响**:把扩散先验从静态蒸馏目标改造为随优化演化的自举先验,为 2D 先验驱动的 3D 生成提供了可复用思路;其分阶段范式与开源实现对该方向后续工作有直接参考价值。
## 六、关键术语对照表
| English | 中文 |
|---|---|
| Hierarchical 3D generation | 层次化 3D 生成 |
| Score Distillation Sampling (SDS) | 分数蒸馏采样 |
| Bootstrapped Score Distillation (BSD) | 自举分数蒸馏 |
| Variational Score Distillation (VSD) | 变分分数蒸馏 |
| View-dependent diffusion model | 视角相关扩散模型 |
| 3D-aware diffusion prior | 3D 感知扩散先验 |
| Classifier-Free Guidance (CFG) | 无分类器引导 |
| Janus problem | 雅努斯(多面)问题 |
| Geometry sculpting | 几何雕塑 |
| Texture boosting | 纹理增强 |
| DreamBooth | 个性化扩散模型微调(DreamBooth) |
| DMTet (Deformable Tetrahedral Grid) | 可变形四面体网格 |
| NeuS | 神经隐式表面表示 |
| Timestep annealing | 时间步退火 |
| Photometric loss | 光度损失 |
| ControlNet-guided inpainting | ControlNet 引导的图像修复 |