一句话定位
Dream Fields 用冻结的预训练 CLIP(图文对比模型)作为引导信号、逐 prompt 优化一个 nerf 风格的神经辐射场,在完全没有 3D 监督、没有 3D/多视角数据集的前提下从一句自然语言生成开放集(open-set)的 3D 物体几何 + 颜色。核心创新是把”2D 图文模型的语义”通过可微体渲染反向传播进 3D 表示,并配一套几何先验(透射率稀疏正则 + 场景边界 + 新 MLP 架构)来压制 CLIP 引导固有的 floater/伪影。它是 dreamfusion 的直接前身、文本→3D 的开山工作之一。每个物体约 10K 步、8 个 TPU core、约 1 小时 12 分、$3–4 即可生成。
背景与定位
2021 年的文本→3D 几乎都受困于”缺少多样化的带文本标注 3D 数据”:CLIP-Forge / Text2Shape 等只能在 ShapeNet 少数类别上生成、且需要真值多视角图或体素(voxel)监督,无法 zero-shot 推广到新概念。与此同时,2D 侧已经爆发出一批”用 CLIP 引导优化 2D 表示”的玩法——advadnoun(CLIP×SIREN)、Katherine Crowson 的 vqgan-clip 与 clip-guided-diffusion,以及 dall-e-1 的文生图。Dream Fields 的洞见:
- 既然没有 3D 数据,就别学生成模型,而是把”从随机视角渲染出的图要和 caption 在 CLIP 空间里高分”当成每个 prompt 的优化目标,端到端反传到 NeRF 的 MLP 上。
- 它在思想脉络上接 DeepDream / 可微图像参数化(differentiable image parameterization)——用预训练网络的”偏好输入可视化”来生成,但把损失从风格/内容换成图文对比损失,并把固定几何换成 NeRF 的可微体渲染(前作只能优化纹理、几何固定)。
- 与同期作者自己的 DietNeRF(用 CLIP 做语义一致性正则,但比较的是渲染图 vs 真实图,需要真实照片)关键区别:Dream Fields 比较的是渲染图 vs caption,因此可用于没有任何物体照片的 zero-shot 场景。
- 相对 clip-forge(CLIP 条件 + normalizing flow,仅 ShapeNet 类别、需多视角+体素)、ClipMatrix(只编辑 SMPL 人体网格)等并发工作,Dream Fields 第一次做到开放集、同时优化几何与纹理、零 3D 数据。
定位:它把”2D 大模型先验 → 3D 资产”这条范式打通了。一年后 dreamfusion 把这里的 CLIP 引导换成扩散模型的 Score Distillation Sampling (SDS),质量大幅跃升,但骨架(逐 prompt 优化 NeRF + 随机相机位姿 + 透明度/几何先验)正是 Dream Fields 奠定的。
模型架构
不是一个训练好的生成网络,而是”每个 prompt 现场优化一个小 MLP 场”(per-prompt optimization)。
- 3D 表示:一个 NeRF 风格 MLP,输入 3D 坐标 x,输出体密度 σθ(x) 与颜色 cθ(x),用 emission–absorption 体渲染(沿光线积分透射率 T 与颜色,公式同标准 NeRF)。故意只依赖坐标、不依赖视角方向(作者发现加 view-dependence 无益),以鼓励多视角一致的几何。渲染时每条光线采 N=192 个点(训练)、测试时 512 点。
- 位置编码:用 mip-NeRF 的积分位置编码 (IPE) 抗锯齿 + 随机傅里叶特征基(频率 ω=2^u·d,u∼U[0,L],d∼U(S²)),频率层数 L=8(视图合成常用 10;消融用 6 有时收敛更好)。
- MLP 架构(一个关键创新):不用 NeRF 原版 8 层等宽 MLP,而是残差 MLP——每两层加一个残差连接;残差块开头加 LayerNorm(提升难 prompt 上的优化)、特征维做 bottleneck(先降后升);激活从 ReLU 换成 Swish,密度用 softplus 整流以缓解高透明场景下的梯度消失。每个场景仅 280K 参数(NeRF 原版 494K,体素 baseline 的 1/16),更少参数反而更平滑、伪影更少。
- 引导模型(冻结,不训练):
- 主用 CLIP(ViT 图像编码器 + masked transformer 文本编码器,400M 图文对、224² 输入)。
- 另用 LiT_uu ViT B/32(Google 自家,在更大的 ~3.6B 图文对、288² 高分辨率、ALIGN 式带噪 alt-text 上从头对比训练;uu = 两端都从头训)。
- 条件注入方式:没有显式 cross-attention;条件 = “渲染图在 CLIP 空间和 caption 文本向量的内积要高”这一损失,通过可微体渲染把梯度传回 MLP 权重。
- 分辨率策略:训练渲 168²(裁到 154² 覆盖约 80% 面积,再上采样到 CLIP 的 224²);高质量可视化渲 252²(裁 224²);测试渲到引导模型输入分辨率(CLIP 224²/LiT 288²)算指标,可视化渲 400²。场景被限制在边长为 2 的立方体内(masking 密度),相机固定半径 4、仰角 30°。
数据
这是本工作最反直觉的点:训练数据为零——既无 3D 数据、也无图文训练数据集。所有”数据先验”都封装在冻结的 CLIP / LiT 里:
- CLIP 训练集:400M 网络图文对(224²)——这是 OpenAI 的,Dream Fields 只是调用,不参与训练。
- LiT_uu 训练集:约 3.6B 图文对(288²),按 ALIGN 简化流程采集的带噪 web alt-text——Google 内部,同样只调用。
- 评测用 prompt 数据集(作者自建):从 COCO(Common Objects in Context) 子集采的 Object-Centric COCO——153 条测试 prompt + 74 条开发 prompt。筛选规则:只取单一 bounding-box 标注的 object-centric 样本,排除含 “extreme close up” 等短语的 caption(COCO 每图 5 条 caption,只用 1 条生成)。另有 79 条手写 prompt 用于长训曲线分析,及取自 dall-e-1 网站的组合式 prompt 模板(如 “armchair in the shape of an avocado”)。
- 合成/再标注数据:无。整个方法不涉及 re-captioning、美学过滤、安全过滤等生成式数据流水线——因为它根本不训练生成模型。
- 局限提示:作者明确指出依赖预训练模型会继承其有害偏见,是放大到大规模资产生成前必须解决的方向。
训练方法
“训练”= 对单个 prompt 做迭代优化(test-time optimization),没有跨样本的预训练/SFT/RLHF 阶段。
- 优化目标:
- 主损失 L_CLIP = −g(I(θ,p))ᵀ h(y):渲染图 I 经图像编码器 g、caption y 经文本编码器 h,最大化两者归一化内积(即最小化负相似度)。每步随机采一个相机位姿 p、渲染、对 MLP 参数 θ 做梯度下降。
- 透射率稀疏正则 L_T = −min(τ, mean(T(θ,p))),总损失 L_total = L_CLIP + λ·L_T。目标透明度 τ=88%,并在前 500 步从 τ=40% **退火(anneal)**进来以平滑引入透明度、防止场景塌成全透明。这是压制 NeRF 在纯 CLIP 引导下产生的”floater/近场半透明伪影”的核心手段。消融显示该 clipped additive 形式比 beta 先验、密度扰动、乘法门控都好(R-Precision 比无正则 baseline +26.8%)。
- 三类几何/数据增强先验(缺一不可):
- 3D 相机位姿采样:每步在 azimuth 0–360° 均匀采(仰角固定),等价于 3D 数据增强,逼出真正的 3D 几何而非”广告牌”平面。窄角采样会导致从侧/后看伪影严重——消融证明全 360° 最好。
- 背景增强:训练时把渲染 alpha 合成到随机背景上——高斯噪声、棋盘格、随机傅里叶纹理(随机高斯模糊),测试时换白底。没有背景增强,透明度正则压不住云雾状结构;二者互补,合用才得到干净前景物体(R-Precision +18%/+15.6%)。
- 物体定位/场景边界:用**渲染密度质心的指数滑动平均(decay 0.999)**追踪物体原点并平移光线,防止物体漂走;再用边长 2 的立方体 mask 密度限制范围(+13%/+11%)。
- 超参(Appendix C):Adam,ε=1e-5;学习率 1e-5 指数 warmup 到 1e-4,历时 1500 步后保持恒定;MLP 用 Flax 默认初始化(LeCun normal)。
- 训练时长 / 早停:标准 10K 步;2K–20K 步对多数物体足够,训得越久细节越多。但作者发现 Dream Fields 会对引导用的图文模型过拟合——训练损失持续下降,验证 R-Precision 在 5–10K 步后反而下滑,故定量实验固定 10K 步早停。
- 加速/蒸馏:本工作无任何蒸馏或加速(consistency/LCM/步数蒸馏都没有)。作者把 meta-learning / 摊销(amortization)列为未来加速方向。
- 替代参数化(Appendix E):早期试过 VolSDF(用 SDF + Laplace CDF 定义密度,可自动微分出法向),能成功训练、视觉效果不错,但引入额外 Eikonal 损失权重需调,最终未作为主方案。
Infra(训练 / 推理工程)
- 官方实验配置(Appendix C “Hardware”):每个 Dream Field 在 8 个 preemptible TPU core 上优化,10K 步约 1 小时 12 分,按 Google Cloud 价折算约 $3–4 / 物体。瓶颈在体渲染时 MLP 的前向 + 反传,而非 CLIP(CLIP/LiT 是冻结的、且渲染分辨率低)。
- 代码栈:JAX + Flax(官方仓库基于
google-research/google-research/dreamfields)。开源 release 提供 JAX GPU/TPU 两路安装;附 Docker(基于 NVIDIA NGCtensorflow:21.11)。 - 开源配置档:
config_lq.py(低质、~30 分钟、4×16GB GPU 够用)/config_mq.py/config_hq.py(更高分辨率+更多增强)。显存吃紧可降render_width/crop_width/n_local_aug。带 Tensorboard 监控、Colab demo。 - 推理形态:没有”推理”这一独立阶段——生成即优化。无量化/缓存/步数蒸馏等部署优化(这是其相对后续 feed-forward 文本→3D 方法的主要工程劣势:每个物体都要从头优化)。
评测 benchmark(把效果讲清楚)
没有 3D 真值、也无 captioned 多视角数据,无法用 Chamfer / PSNR / LPIPS。作者改用文生图领域的 CLIP R-Precision(在 held-out 相机位姿渲染图上,用一个与引导模型不同的检索 CLIP 判断渲染图能否检索回原 caption),训练相机仰角 30°、评测 45°。所有数字取自 153 条 Object-Centric COCO(消融时每 caption 1 个 seed = 153 次;主表每 caption 2 seed = 306 个物体)。
Table 1 — 几何先验逐项叠加(引导 CLIP B/16,检索 CLIP B/32 / LiT_uu B/32,10K 步):
| 配置 | CLIP B/32 R-Prec ↑ | LiT_uu B/32 R-Prec ↑ |
|---|---|---|
| COCO 真值图(oracle) | 77.1±3.4 | 75.2±3.5 |
| Simplified NeRF baseline | 31.4±2.7 | 10.8±1.8 |
| + mip-NeRF IPE | 29.7 | 12.4 |
| + 高频 Fourier 特征 | 24.2 | 10.5 |
| + 随机裁剪 | 25.8 | 10.5 |
| + 透射率损失 | 23.7 | 7.6 |
| + 背景增强 | 44.1 | 26.1 |
| + MLP 架构 | 52.0 | 27.8 |
| + 场景边界 | 65.4 | 38.9 |
| + 追踪原点 | 59.8 | 34.6 |
| + LiT_uu ViT B/32 引导 | 59.5 | – |
| + 20K 步、252² 渲染 | 68.3 | – |
要点:最大增益来自背景增强、MLP 架构、场景边界三项;单纯透射率损失甚至会掉点,必须配背景增强才生效(说明先验之间强耦合)。
Table 2 — 稀疏正则消融(LiT_uu B/32 引导,10K 步 168²,检索 CLIP B/32,153 runs):
| 正则 | R-Prec |
|---|---|
| 无正则 L_CLIP | 35.3 |
| 密度 σ 扰动(NeRF 式) | 47.7 |
| Beta 先验(Neural Volumes) | 50.3 |
| Gated T(乘法门控) | 34.6 |
| Clipped gated T | 62.1 |
| Clipped additive T(本文 L_T) | 62.1 |
本文的 additive 透射率损失是凸的、更稳定,与 clipped-gated 并列最好(+26.8% over 无正则),且对超参不敏感。
Table 3 — 引导/检索图文模型交叉对比(10K 步 168²;括号=同模型自评,会过拟合):3×3 矩阵,行=优化(引导)模型、列=检索(评测)模型 CLIP B/32 / CLIP B/16 / LiT_uu B/32:
| 优化模型 \ 检索模型 | CLIP B/32 | CLIP B/16 | LiT_uu B/32 |
|---|---|---|---|
| CLIP B/32 | (86.6±2.0) | 74.2±2.5 | 42.8±2.8 |
| CLIP B/16 | 59.8±2.8 | (93.5±1.4) | 35.6±2.7 |
| LiT_uu B/32 | 59.5±2.8 | 66.7±2.7 | (88.9±1.8) |
要点:去掉对角自评后,异模型评测落在 35.6–74.2 区间(LiT 作检索器时给 CLIP-引导模型打分偏低,34–43)。论文结论:CLIP B/32 引导整体表现最好,超过更贵的 CLIP B/16(推测低分辨率渲染下大 patch 已够编码语义);但定性上 LiT_uu B/32 引导生成的几何与纹理最细致(开放集评测仍困难)。
其他对照(Appendix D):把 NeRF 换成显式 128³ 体素网格 baseline → CLIP B/32 R-Prec 仅 37.0±3.9,而 NeRF 59.8±2.8,且 NeRF 参数少 16×;2D 单图 RGBα 优化无法多视角一致。证明神经隐式表示对一致性贡献显著。
定性:能从 COCO/艺术家手写/DALL·E 式组合 prompt 生成多视角一致的物体,支持论文 Figure 6 那类组合泛化——“armchair in the shape of an avocado”(变物体)、“a snail made of/with the texture of baguette”(变材质),形状/材质细粒度可控、非 cherry-pick。局限:几何细节不总真实(蜗牛眼柄长错在壳上而非身上、绿花瓶模糊——均为论文原文举例),CLIP 对空间关系编码差所以不擅复杂多物体场景,且生成需迭代优化、较慢。
创新点与影响
核心贡献:
- 首次用对齐的图文模型(CLIP/LiT)在无 3D 形状、无多视角数据的条件下优化 NeRF,把 2D 大模型先验”蒸馏”进 3D(虽未用扩散 SDS,但范式同源)。
- 提出 Dream Field:一个简单、受约束的 3D 表示 + 神经引导,支持zero-shot 开放集从 caption 生成 3D 物体(几何+颜色),用语言做创作接口。
- 一套提升保真度的通用几何先验:透射率稀疏正则(含退火)、场景立方体边界 + 质心 EMA 定位、残差/LN/Swish/bottleneck 的新 MLP 架构、360° 相机采样 + 背景增强。
影响:
- 是文本→3D 的奠基工作之一,直接催生 dreamfusion(2022,Poole 等同组)——后者把 CLIP 引导换成扩散模型的 Score Distillation Sampling,质量大幅提升,但”逐 prompt 优化 NeRF + 随机位姿 + 透明/几何先验”的骨架沿用 Dream Fields。
- 确立了”没有 3D 数据,就用 2D 基础模型当先验、靠可微渲染把信号灌进 3D”的主流思路,是后续 Magic3D、Fantasia3D、ProlificDreamer 等一长串 optimization-based text-to-3D 的源头。
- CLIP R-Precision 被沿用为早期文本→3D 的事实评测协议。
已知局限:
- 每个物体都要从头迭代优化(~1 小时/物体),无 feed-forward 推理、无蒸馏加速。
- 对引导图文模型过拟合,需 5–10K 步早停。
- 所有视角共用同一 prompt → 物体多面会出现重复纹理(Janus 雏形);CLIP 空间关系弱,不擅复杂场景。
- 继承 CLIP/LiT 的偏见;几何细节不总真实。
原始链接
- project_page: https://ajayj.com/dreamfields
- arxiv_abs: https://arxiv.org/abs/2112.01455
- arxiv_pdf: https://arxiv.org/pdf/2112.01455
- github (官方代码, JAX/Flax): https://github.com/google-research/google-research/tree/master/dreamfields
- colab_demo: https://colab.research.google.com/drive/1TjCWS2_Q0HJKdi9wA2OSY7avmFUQYGje
- video (YouTube): https://www.youtube.com/watch?v=1Fke6w46tv4
一手源存档(sources/)
- arxiv-2112.01455.pdf (官方论文 PDF,21MB,不入 git;已 pdftotext 校验与 HTML 一致)
- paper-html.md (ar5iv 全文 HTML→markdown,含正文+全附录 A–F,精读所用)
- project.md (项目主页快照)
- readme.md (官方 GitHub README,含运行/配置/硬件说明)