跳转至

The Scene Language: Representing Scenes with Programs, Words, and Embeddings

会议: CVPR 2025
arXiv: 2410.16770
代码: 待确认
领域: 3D场景生成 / 场景表示
关键词: Scene Representation, Program Synthesis, 3D Scene Generation, CLIP Embeddings, training-free

一句话总结

提出 Scene Language——一种用程序(P, 编码层级结构)+ 词语(W, 语义类别)+ 嵌入(Z, 视觉身份)三元组 \(\Phi(s)=(W,P,Z)\) 表示视觉场景的新范式,通过 Claude 3.5 Sonnet 的 training-free 推理从文本/图像输入生成场景表示,支持传统/神经/混合渲染,在 3D/4D 场景生成质量和可控编辑上超越场景图等现有表示。

研究背景与动机

领域现状:场景表示是 3D 生成的基础——场景图只编码对象和关系的粗粒度拓扑,缺乏视觉细节;扩散模型的隐式表示虽生成质量高但缺乏结构化可控性。

现有痛点:(a) 场景图无法精确编码层级结构和重复模式(如棋盘上 32 个棋子的规律排列);(b) 纯神经表示无法显式编辑(改变一个部件需要重新生成全场景);(c) 程序化表示(如 ShapeAssembly)不支持外观建模。

核心矛盾:需要一种表示既有程序的结构化可控性,又有神经嵌入的视觉保真度。

本文目标 设计一种同时编码结构、语义和视觉身份的场景表示,并能从预训练 LM 零样本推理。

切入角度:程序是天然的结构化表示(层级、重复、变换),自然语言提供语义理解,CLIP 嵌入捕获视觉身份——三者互补。

核心 idea\(\Phi(s) = (W, P, Z)\)——程序编码结构,词语编码语义,嵌入编码外观,三者协同由 LM 零样本推理生成。

方法详解

整体框架

输入文本/图像描述 → Claude 3.5 Sonnet 生成 Python 脚本(实现实体函数,定义场景结构) → 字符串参数通过 CLIP 文本编码器转为嵌入 → 递归执行程序生成场景 → 选择渲染器(Mitsuba 光追 / 3D Gaussian Splatting+SDS / Minecraft / MIGC 扩散)输出图像。全程 training-free。

关键设计

  1. 三元组场景表示 \(\Phi(s) = (W, P, Z)\):

    • Program P:领域特定语言(DSL)定义实体函数,4 个宏操作——call(调用实体函数)、union(组合变换后的实体)、union-loop(for 循环组合重复实体)、transform(配对实体与 3D 仿射变换矩阵)。实体函数递归调用形成层级结构。如棋盘 = 棋子 ×32 + 方格 ×64 + 棋盘框
    • Words W:实体的自然语言类别标签(如 "pawn"、"board"),提供 LM 可理解的语义
    • Embeddings Z:每个实体对应 OpenCLIP-ViT/H 文本嵌入空间中的向量,编码视觉身份。实体函数 \(f_w: (z, \gamma) \mapsto h\),其中 \(z\) 为自身嵌入,\(\gamma=[z_2,...,z_J]\) 为后代实体嵌入
    • 设计动机:P 提供可编辑的结构骨架,W 让 LM 能理解和推理场景,Z 弥合语义到视觉的 gap
  2. Training-Free 推理:

    • LM(Claude 3.5 Sonnet)接收系统提示(DSL 定义 + 辅助函数) + in-context 示例 → 生成 Python 脚本
    • 数值/字符串参数通过 CLIP 文本编码器转为嵌入向量
    • 图像条件推理:GroundingSAM 分割 + Textual Inversion 得到每个实体的嵌入
    • LM 推理耗时 <1 分钟/场景
  3. 多渲染器支持:

    • Mitsuba 光追:基元体(立方体、球、圆柱),高质量光线追踪,<1 分钟
    • 3DGS + SDS:ControlNet + MVDream 引导,每个对象 ~30 分钟(A5000 48GB)
    • Minecraft:资产放置,积木式构建
    • MIGC T2I:Feed-forward 扩散模型 + layout conditioning

训练策略

完全 training-free——不训练任何模型。利用预训练 LM(Claude 3.5 Sonnet)的 in-context learning + CLIP 嵌入 + 预训练渲染器。

实验关键数据

文本→3D 场景生成(9 数值 + 8 通用 prompt)

指标 Scene Language GraphDreamer MVDream
对齐性(用户偏好) 显著最优
CLIP 相似度 最高
计数准确率 完美 0.11 0.11

图像→场景生成

指标 Scene Language GraphDreamer
LPIPS (↓) 0.681 0.811

消融实验(编辑任务)

配置 效果 说明
Full (P+W+Z) 最优 完整三元组
No-P(去掉程序) 下降 失去结构化编辑能力
No-W(随机字符串) 下降 LM 无法理解语义
No-P-No-W 进一步下降 P 和 W 对 LM 推理均不可或缺

关键发现

  • 计数准确率完美 vs GraphDreamer/MVDream 仅 0.11——程序化表示在精确组合上有绝对优势
  • 消融证明 P 和 W 对 LM 推理均不可或缺:P 提供可操作的结构,W 提供 LM 可理解的语义
  • 图像条件生成 LPIPS 0.681 vs 0.811,嵌入 Z 有效保留视觉身份
  • LM 推理 <1 分钟,渲染瓶颈在 SDS(~30 分钟/对象)

亮点与洞察

  • "程序即场景"的表示范式非常优雅——程序天然编码层级、重复、变换等结构,且可精确编辑(缩放楼梯半径 80%、删除积木块、修改分形分支数)
  • 三元组互补设计:P 提供骨架(可编辑但无外观)、W 提供语义桥梁(让 LM 能参与推理)、Z 提供视觉保真(捕获具体外观)——缺一不可
  • Training-free 但高质量:利用 LM 和 CLIP 的零样本能力,无需任何 3D 训练数据

局限与展望

  • LM 推理对文本措辞敏感——微小文本变化可能导致大幅质量差异
  • 图像解析跨运行方差高,空间描述模糊时易失败
  • SDS 渲染器引入偏差(如雨伞无法完全折叠),形状/纹理控制未解耦
  • 复杂场景的实体函数递归可能变得过深,LM 难以正确处理

相关工作与启发

  • vs 场景图(Scene Graph):场景图只编码粗粒度拓扑,无法精确控制重复/层级。Scene Language 在计数准确率上完胜
  • vs ShapeAssembly:支持外观建模(通过嵌入 Z),而 ShapeAssembly 仅处理几何结构
  • vs 扩散模型隐式表示:Scene Language 具有显式可解释语义 + 层级结构,支持精确局部编辑

评分

  • 新颖性: ⭐⭐⭐⭐⭐ 三元组表示范式全新,程序+词+嵌入的组合是场景表示领域的范式创新
  • 实验充分度: ⭐⭐⭐⭐ 覆盖 3D/4D 生成、图像条件、多渲染器、编辑,但定量对比对象有限
  • 写作质量: ⭐⭐⭐⭐⭐ 概念清晰,DSL 设计精炼
  • 价值: ⭐⭐⭐⭐⭐ 为场景表示提出了全新范式,training-free 路线极具实用价值