引言
在机器人技术飞速发展的今天,数据就是新的黄金。我们正见证着一种转变: 机器人就像大语言模型 (LLM) 一样,越来越多地在海量数据集上进行训练。然而,与从互联网上抓取文本作为养料的聊天机器人不同,机器人需要理解物理空间。它们需要 3D 环境来练习导航、操控和交互。
这就造成了一个瓶颈: 我们从哪里获得数百万个多样化、物理逼真的 3D 场景?
由 3D 艺术家手工创建太慢且太昂贵。收集现实世界的 3D 扫描数据不仅困难,而且缺乏交互性。传统上,研究人员依赖“程序化生成” (procedural generation) ——编写复杂的基于代码的规则来随机放置物体 (这就好比 Minecraft 生成地形的方式) 。虽然这种方法可扩展,但这些系统通常很僵化。如果你想改变物体的分布——例如,为了专门训练机器人应对“凌乱的桌子”——通常必须重写代码。
一篇新的研究论文《Steerable Scene Generation with Post Training and Inference-Time Search》提出了一个强有力的替代方案。研究人员介绍了一种在场景上训练生成式扩散模型 (Generative Diffusion Model) 的方法。该模型不再依赖运行时硬编码的规则,而是从数据中学习场景的概念。
但真正的创新不仅仅是生成场景,而是引导 (steering) 场景。作者展示了如何利用强化学习 (RL) 和一种新颖的树搜索算法,强制生成模型创建满足特定、困难标准的场景——比如高度杂乱或特定的物体堆叠。

如图 1 所示,该流程将静态的程序化数据转化为灵活、可适应的“场景先验”,可以根据机器人训练课程的确切需求进行塑造。
背景: 从 2D 布局到 SE(3) 现实
在深入探讨该方法之前,我们需要了解本文填补了什么空白。
SE(2) 的局限性
许多先前的场景生成尝试都集中在 SE(2)——即二维特殊欧几里得群 (Special Euclidean group) 。通俗地说,这些模型将场景视为平面图。它们可以将沙发或床放在地板上 (x, y 坐标) 并绕垂直轴旋转 (偏航角 yaw) 。这对于在房间内导航是可以的,但对于需要从架子上拿起杯子的机械臂来说毫无用处。
SE(3) 的必要性
机器人操控发生在 SE(3)——即全 3D 空间中。物体具有 3D 位置 (x, y, z) 和 3D 方向 (滚转 roll, 俯仰 pitch, 偏航 yaw) 。机器人需要理解盘子可以放在桌子上面,碗可以放在盘子上面,而勺子可以以一定的角度放在碗里。
该论文解决了这个更难的问题。他们不将“场景”视为图像,而是视为物体的集合,其中每个物体具有:
- 类别 (Category) : 它是什么? (例如: 苹果、罐头、盘子) 。
- 位姿 (Pose) : 它在 3D 空间中的确切位置在哪里?
核心方法: 可引导的场景流程
作者的方法可以分解为三个阶段: 数据蒸馏、扩散训练和新颖的“引导”机制。
1. 蒸馏程序化数据
团队首先使用现有的程序化工具生成了包含超过 4400 万个场景的海量数据集。这些场景范围从早餐桌到储藏室货架。虽然程序化生成是僵化的,但它提供了有效物体放置的“真值 (ground truth) ”。
他们使用这些数据来训练他们的模型。通过这样做,他们将程序化生成器中复杂、硬编码的规则“蒸馏”到了神经网络中。一旦网络学习了这种分布,它就变得可微了——这意味着我们可以使用梯度和数学来调整输出,这在标准的基于代码的程序化生成器中是不可能做到的。
2. 扩散架构
生成模型基于扩散 (Diffusion) 技术,这与 Stable Diffusion 或 DALLE-3 等图像生成器背后的技术相同。
- 连续与离散: 一个场景包含连续数据 (位置/旋转) 和离散数据 (物体类别) 。作者使用了一种“混合扩散”框架。他们向物体位置添加噪声并随机掩盖物体类别,然后训练神经网络 (基于 Flux Transformer 架构) 来逆转这一过程并重建干净的场景。
- 物理后处理: 扩散模型是“梦想家”——它们天生不懂物理。原始输出可能会出现叉子穿过盘子或罐头悬浮在桌子上 1 毫米的情况。为了解决这个问题,作者应用了两步修正:
- 投影 (Projection) : 通过数学优化将物体移动到不发生碰撞的最近点。
- 模拟 (Simulation) : 将场景加载到 Drake 物理模拟器中。开启重力,让不稳定的物体自然沉降。
3. 引导模型
这是本文的核心。标准的生成模型只是模仿其训练数据。如果训练数据主要是整洁的桌子,模型就会生成整洁的桌子。但是,如果机器人需要在杂乱的环境中练习以变得健壮怎么办?
作者提出了三种方法来“引导”模型偏离平均水平并朝向特定目标。
策略 A: 条件生成
控制输出最直接的方法是通过条件化,类似于给图像生成器提供提示词。
文本条件化: 通过集成 BERT 文本编码器,模型可以接受自然语言提示。正如下面的图 3 所示,用户可以指定物体的确切数量和类型。模型在处理细粒度的放置 (罐头、游戏、面包片) 的同时,尊重了大规模布局 (四张桌子) 。

修复 (Inpainting) 和重排: 模型还可以接受部分场景并填充空白。这允许进行“场景重排”。你可以掩盖特定物体 (如餐具) 的位置,同时保持它们的身份不变,并要求模型生成新的位置。

在图 5 中,模型成功地将餐具从器皿罐 (垂直方向) 移动到了桌面 (水平方向) ,证明了它理解 SE(3) 旋转,而不仅仅是 2D 滑动。
策略 B: 强化学习 (RL) 后期训练
有时,你希望全局性地改变模型的行为,而不需要每次都进行提示。例如,你可能希望模型总是生成最大程度杂乱的场景,以对机器人的路径规划器进行压力测试。
作者将强化学习应用于扩散模型 (类似于 ChatGPT 使用 RLHF 进行微调) 。他们定义了一个奖励函数——在这里是“物体数量”。

图 4 展示了这种方法的威力。原始训练数据最多大约有 23 个物体。经过 RL 后期训练 (图表中的蓝线) ,模型学会了在架子上堆满更多物体 (中间的图像) ,有效地推断出了其训练数据之外的情况。
策略 C: 推理时搜索 (MCTS)
文中提出的最复杂的引导方法是在推理时应用蒙特卡洛树搜索 (MCTS) 。
RL 会永久性地调整模型权重。相反,MCTS 是在运行时优化特定的单个生成过程。它迭代地构建场景,在每一步检查它是否正在最大化特定奖励 (例如,“物理可行性”或“堆叠高度”) 。
工作原理: 该过程将场景生成视为一棵博弈树。
- 根节点 (Root) : 一个空场景。
- 扩展 (Expansion) : 模型提出几种可能的物体或放置方式 (修复) 。
- 推演 (Rollout) : 系统使用奖励函数评估这些放置有多好。
- 反向传播 (Backpropagation) : 分数更新树,引导模型探索最有希望的分支。

这种方法对于困难的物理排列特别有用。在下面的例子 (图 7) 中,目标是在点心堆叠场景中最大化物理上可行物体的数量。

标准的生成可能会意外地创建不稳定的堆叠导致倒塌。MCTS (右图) 显着提高了成功率,找到了包含 34 个可行物体的配置,而标准采样只能找到 21 个。它有效地“搜索”了一种稳定的方式来堆叠竹蒸笼。
实验与结果
作者在五个不同的环境中评估了他们的模型: 早餐桌、客厅货架、储藏室货架、餐厅和点心桌。
定量质量
为了衡量真实感,他们使用了 Fréchet Inception Distance (FID)——这是生成质量的标准度量——以及 中位总穿透深度 (MTP) 来衡量物理违规 (碰撞) 。

如表 1 所示,所提出的方法 (“Ours”) 取得了与 DiffuScene 和 MiDiffusion 等基线相当或更好的 FID 分数。更重要的是,查看 MTP (cm) 列,所提出的方法具有显着更低的穿透误差 (例如,在餐厅场景中为 6.31 vs 18.11) 。这表明模型学习到了更紧凑、在物理上更合理的物体分布。
插值能力
学习分布的一个迷人特性是混合概念的能力。作者在客厅货架 (书籍、玩具) 和储藏室货架 (食物、罐头) 上训练了一个联合模型。

图 6 显示模型可以在这些领域之间平滑插值。当被提示时,它会创建混合场景——将食物放在客厅家具上或将游戏放在储藏室货架上——同时保持合理的物理特性。
结论与启示
这项研究弥合了机器人模拟中的一个关键差距。通过从僵化的程序化生成转向可引导的生成模型 , 作者创造了一种合成无限、多样化且特定于任务的训练数据的方法。
主要结论是:
- 统一先验: 单个扩散模型可以学习从海量程序化数据集中生成有效的 3D 场景。
- 物理至关重要: 在 SE(3) 中生成位姿需要仔细处理物理问题 (投影和模拟) 才能对机器人有用。
- 可引导性是关键: 能够强制模型创建高杂乱度场景 (通过 RL) 或物理稳定的堆叠 (通过 MCTS) ,使得研究人员能够针对分布的“长尾”——即机器人经常失败的罕见、困难场景。
这项工作预示着这样一个未来: 机器人训练环境不再是手工设计或随机生成的,而是由 AI 策划的。一个在抓取盘子方面遇到困难的机器人可以自动触发生成模型来“想象”数千种困难的盘子堆叠场景,从而进行自我训练。
](https://deep-paper.org/en/paper/733_steerable_scene_generation-2627/images/cover.png)