一句话定位

ai2-thor 引擎之上做程序化场景生成:给定一份房间规格(如”3 卧 3 卫 1 厨”),自动依次采样楼层平面图、外墙结构、门窗、灯光,再从 1,633 个可交互物体实例里按语义规则批量摆放家具,一次性产出万级、物理可交互、支持机械臂操作的房屋;仅用 10,000 套生成房屋预训练一个不带深度传感器、不建地图、无人工任务监督的简单 CNN+GRU 策略,零样本或微调后就在 RoboTHOR、Habitat 2022、AI2-THOR Rearrangement 2022 三个正在进行的挑战赛榜单上登顶,并在 AI2-iTHOR、ArchitecTHOR、ManipulaTHOR ArmPointNav 上刷新纪录——拿下 NeurIPS 2022 最佳论文(Outstanding Paper Award)。

背景与定位

CV/NLP 靠海量数据(CLIP、DALL-E、GPT-3、Flamingo)训练出强泛化模型,而 Embodied AI 领域的场景数量长期停留在百级:AI2-iTHOR 120 个场景、RoboTHOR 89 个、iGibson 15 个、Habitat 2.0 105 个布局、HM3D 1,000 个静态扫描场景。场景太少导致智能体在有限训练场景上过拟合,难以泛化到未见环境。

已有的场景扩充路线有两条:一是人工搭建(ai2-thor、ThreeDWorld),耗费 3D 美术大量时间;二是真实世界 3D 扫描重建(Habitat 的 HM3D、Gibson),扫描加拼接成本高,且扫出来的场景是静态的、不可交互——HM3D 没有物理仿真和物体交互,只能用于导航任务。ProcTHOR 走第三条路线:在 ai2-thor 引擎基础上做程序化生成,让场景数量摆脱人力或扫描成本的线性约束。与同期的程序化生成工作 Megaverse 相比,Megaverse 渲染速度快但只做游戏化的简化外观场景,ProcTHOR 力图在物理仿真、物体交互、外观复杂度上逼近真实住宅。

论文把 habitat / habitat-2 的 HM3D 路线当作核心对照:HM3D 场景来自真实扫描、静态不可交互,ProcTHOR 场景是程序化合成、全交互、可无限复制,两条路线在同一套 ObjectNav 评测协议下直接对比。另外单独发布 ArchitecTHOR——10 栋由 3D 美术手工搭建、专用于评测的房屋(5 验证 + 5 测试),用来检验”程序化训练出的策略是否只是记住了生成算法的偏置”,而不是让 ProcTHOR 自己生成数据自证自己。

模型架构

本页”架构”包含两层:(1) ProcTHOR 自身的程序化生成流水线;(2) 用来验证该流水线数据价值的下游策略网络(论文刻意选用简单架构,以凸显数据规模本身的贡献)。

(1) 程序化生成流水线(Fig. 2,多阶段条件采样):给定房间规格(如”1 卧 1 卫 1 厨 1 客厅”及房间连通关系)→ 迭代边界切割得到外部轮廓 → 用 Lopes et al. 的递归布局算法切分房间 → 按用户定义的连通约束连接房间、采样门的位置 → 生成外墙结构 → 添加灯光(1 个方向光模拟太阳 + 若干点光源模拟灯泡,可调颜色/强度模拟一天中不同时段)→ 采样结构材质(墙面 40 种纯色或 122 种贴图材质,天花板材质从墙面材质集合采样,另有 55 种地板材质)→ 依次采样大件地面物体(含 Semantic Asset Group 依赖采样,如”餐桌+4 把椅子”整体摆放)、墙面物体(窗、画)、表面物体(如台面上的杯子)→ 校验器(Validator)确保每个房间在 0.25×0.25m 网格上至少有 5 个可达位置,不通过则用同一房间规格重新采样。

规模数字:16 种房间规格作为生成种子,理论可组合出超过 1000 亿(10^11)种布局;108 种物体类型、1,633 个可交互实例的资产库;18 组 Semantic Asset Group(SAG),可组合出约 2000 万种资产组实例;场景序列化为 JSON 规格,运行时加载进 ai2-thor,内存开销很低——10,000 栋房屋(ProcTHOR-10K)在配 4 块 NVIDIA RTX A5000 GPU 的本地工作站上 1 小时即生成完毕。

(2) 下游策略网络

  • ObjectNav / Rearrangement 用 EmbCLIP 风格 CNN+GRU:每步输入 3×224×224 RGB 图像,经冻结的 RN50 CLIP-ResNet 视觉编码器得到 2048×7×7 特征,用两层 1×1 卷积压缩到 32×7×7;目标物体类别(16 类之一)编码为 32 维向量后广播为 32×7×7 的目标嵌入;二者拼接为 64×7×7,再压缩为 32×7×7 后展平成 1568 维;拼接上一步动作的 6 维嵌入得到 1574 维输入,送入隐藏维度 512 的单层 GRU;belief state 经两个独立线性层分别输出 actor(6 维离散动作的 softmax 策略)与 critic(标量价值)。
  • “ProcTHOR+Large” 变体(用于 HM3D 挑战):视觉编码器换成更大的 RN50x16 CLIP-ResNet,GRU 隐藏维度扩到 1024,输入分辨率提高到 512×384。
  • ArmPointNav 用更简单的 3 层卷积视觉编码器(得到 512 维特征)+ 3 层线性层编码目标 3D 相对坐标(512 维)→ 拼接后输入 GRU;论文实测这个卷积编码器比 CLIP 编码器效果更好。
  • Rearrangement 沿用 EmbCLIP 风格架构,用模仿学习(行为克隆 + DAgger)而非 RL 训练。
  • 动作空间:导航类任务 6 个离散动作(MoveAhead μ=0.25m/σ=0.01、RotateRight/Left μ=30°/σ=0.5°、LookUp/Down 30°、Done),采用随机执行噪声模拟真实世界。

数据

  • ProcTHOR-10K:10,000 训练房屋 + 1,000 验证 + 1,000 测试,由 16 种房间规格生成,房间数从 1 到 10 不等;对比同期数据集规模——AI2-iTHOR 120 场景、RoboTHOR 89 场景、iGibson 15 场景、HM3D 1,000 个静态场景、Habitat 2.0 105 个布局,ProcTHOR-10K 是当时规模最大的交互式室内数据集之一。
  • 资产:1,633 个可交互实例覆盖 108 种物体类型(以 ai2-thor 资产为主,另手工制作 21 种窗户、20 种门、33 种台面这类嵌入式结构资产);房屋内实际出现的物体覆盖 95 个类别;资产按类型(而非按单个实例)标注房间归属权重(0–3)、摆放位置(靠边/角落/居中)、是否允许同房间多实例;若某物体类型有超过 5 个独立实例,则约 2/3 划入训练集、约 1/6 划入验证集、约 1/6 划入测试集,5 个及以下实例的类型可出现在任意 split。
  • Semantic Asset Group(SAG):18 组预定义的”共现资产组”(如餐桌+4 椅、床+2 枕头),可组合出约 1,930 万种实例化方式,用于依赖采样避免家具孤立摆放。
  • 材质:墙面 40 种纯色 + 122 种贴图纹理,地板 55 种材质,天花板材质从墙面材质集合采样;官方项目主页另给出一个更粗的汇总口径——“3,278 种材质”可用于随机化物体、墙面、地板、天花板外观(材质仅在同类物体间随机化,如苹果不会换成橙子的材质)。
  • 增强/随机化:每条训练 episode 以 Bernoulli(0.8) 概率随机化默认物体材质(墙/天花板/地板材质保持不变,以维持整体色调一致);随机化部分物体状态(台灯/桌灯开关、床铺干净/脏、盒子与笔记本电脑开合程度)。
  • ArchitecTHOR(评测专用,非训练数据):10 栋 3D 美术手工搭建的独栋大户型房屋(5 验证 + 5 测试),资产 split 沿用 ProcTHOR-10K 的 train/val/test 划分。
  • 许可与开放计划(Datasheet):房屋 JSON 数据集、3D 资产库、生成代码计划以 Apache 2.0 协议开源;论文写作时计划公开的静态房屋 JSON 文件达 100 万套(远超论文实验实际使用的 10K 子集)。
  • 无仿真-真实混合训练概念:全部预训练数据均为程序化合成场景;真实/artist-designed 数据只出现在下游基准(RoboTHOR、HM3D、AI2-iTHOR、ArchitecTHOR)的零样本或微调评测中作为目标域,不参与 ProcTHOR 预训练。

训练方法

  • ObjectNav:DD-PPO 强化学习,离散 6 动作;奖励 r_t = max(0, min Δ_{0:t-1} − Δ_t) + s_t − ρ(到目标物体最近可达实例的距离缩短量 + 成功完成奖励 10 − 每步惩罚 0.01);折扣因子 γ=0.99、GAE λ=0.95、episode 上限 500 步、PPO clip ε=0.1、entropy 系数 0.01、value loss 系数 0.5、rollout 20 步、学习率 3e-4、Adam 优化器、梯度裁剪范数 0.5。目标物体用 ε-greedy(ε=0.2)在”完全随机采样”和”优先采样训练中出现次数最少的类别”之间取舍;每个候选目标先做 BFS 可达性检查(0.25m 网格)+ 最多 6 条可见性 raycast,确保目标物体不需要额外操作(如开冰箱)即可被看见。
  • ProcTHOR 主预训练:全部 16 种目标类别,训练 4.23 亿步,200M 步时已达峰值性能的 90%;用 3 台 AWS g4dn.12xlarge 多机训练,约 5 天完成。
  • 各下游基准微调:RoboTHOR(缩减到 12 类目标,60 个训练场景微调 2900 万步,8×NVIDIA Quadro RTX 8000,约 7 小时);HM3D-Semantics(缩减到 6 类目标,80 个训练房屋——“ProcTHOR”架构从预训练 2.2 亿步的 checkpoint 起再微调约 2.2 亿步,8×NVIDIA RTX A6000,约 43 小时;“ProcTHOR+Large”架构改用专门重采样的 ProcTHOR-Large-10K(4–10 房间的大房子子集,仅练 6 类目标),从预训练 1.25 亿步的 checkpoint 起再微调约 1.85 亿步,8×NVIDIA RTX A6000,约 85 小时);AI2-iTHOR(沿用全部 16 类目标,8×TITAN V 微调约 200 万步,约 1.5 小时;论文提到尝试微调但均不如零样本模型,故最终报告零样本结果);ArchitecTHOR 无训练场景,只做零样本评测。
  • ArmPointNav:在 7,000 栋房屋子集、58 个物体类别上预训练,每条 episode 随机选取可拾取物体与目标位置;训练 1 亿帧,4 台 AWS g4dn.12xlarge(共 16 GPU、192 CPU 核心)训练 3 天;超参:学习率 3e-4、128 梯度步、γ=0.99、GAE λ=0.95、旋转粒度 45°、step penalty −0.01、单层 RNN、Adam。
  • Rearrangement(1-phase):模仿学习两阶段。先在 2,500 栋 1–2 房间的 ProcTHOR-10K 房屋子集预训练(每栋房屋每次 episode 打乱 1–5 个物体的位置或开合状态,20 条 episode/栋),2×10^5 步 teacher forcing + 200 万步 DAgger 数据聚合 + 约 1.8 亿步行为克隆,rollout 长度 64、batch size 7,680、学习率 7.4e-4、Adam、梯度裁剪 0.5;6 台 AWS g4dn.12xlarge(共 24 GPU、288 CPU 核心)、240 路并行仿真,训练 4 天。之后用 AI2-iTHOR 官方 4,000 条训练 episode(80 个单房间场景)微调,先后以 64/96/128 步 rollout 各训 300 万/600 万/600 万步,8×Titan X、40 路并行仿真,共 16 小时。

Infra(训练 / 推理工程)

  • 场景生成本身:10,000 栋房屋在 4×NVIDIA RTX A5000 的单机上 1 小时生成完毕。
  • 渲染吞吐(Table 1/Table 11,8×NVIDIA Quadro RTX 8000 服务器;1 GPU 用 15 进程、8 GPU 用 120 进程均匀分布):8 GPU 配置下,ProcTHOR-Small(1–3 房间)房屋导航 FPS 为 8,599±359,ProcTHOR-Large(7–10 房间)为 3,208±127;同设置下 AI2-iTHOR 基线为 5,779±189,RoboTHOR 基线为 9,195±294——房屋规模明显更大的情况下 ProcTHOR 仍取得同量级渲染速度。孤立交互(如推动物体)FPS 在 8 GPU 下 Small/Large 分别为 6,488±250 / 2,861±107;环境查询(如获取智能体尺寸)FPS 高达约 48 万(Small 480,205±19,684,Large 433,587±18,729)。1 GPU(15 进程)配置下导航 FPS 为 Small 1,427±74 / Large 6,280±40——原文如此,大房子在单 GPU 设置下反而测得更高的导航 FPS,论文未额外解释这一反直觉现象。
  • 各实验用的训练集群:ObjectNav 主预训练 3×AWS g4dn.12xlarge、约 5 天;RoboTHOR 微调 8×Quadro RTX 8000、约 7 小时;HM3D 微调 8×RTX A6000、43/85 小时(分别对应 ProcTHOR / ProcTHOR+Large);AI2-iTHOR 微调 8×TITAN V、约 1.5 小时;ArmPointNav 预训练 4×g4dn.12xlarge(16 GPU/192 核)、3 天;Rearrangement 预训练 6×g4dn.12xlarge(24 GPU/288 核)、4 天,微调 8×Titan X、16 小时。
  • 精度(FP16/FP32 等):未披露。
  • 推理 FPS / 控制频率 / 边缘硬件延迟:论文未给出下游部署侧的推理延迟或边缘硬件数字,只报告仿真器渲染 FPS(见上)——未披露。

评测 benchmark

六个基准的零样本(仅用 ProcTHOR-10K 预训练,不接触下游训练数据)与微调结果(Table 2 原文):

任务基准方法SuccessSPL / 其他指标
ObjectNavRoboTHOR ChallengeEmbCLIP(RoboTHOR 训练基线)47.0%SPL 0.200
ProcTHOR 0-shot55.0%SPL 0.237
ProcTHOR + fine-tune65.2%SPL 0.288
ObjectNavHabitat Challenge 2022(HM3D-Semantics)MLNL(排行榜提交)52.0%SPL 0.280
FusionNav / AIRI(排行榜提交)54.0%SPL 0.270
ProcTHOR 0-shot9.00%SPL 0.055
ProcTHOR + fine-tune53.0%SPL 0.270
ProcTHOR+Large 0-shot13.2%SPL 0.077
ProcTHOR+Large + fine-tune54.4%SPL 0.318
ObjectNavAI2-iTHOREmbCLIP(AI2-iTHOR 训练基线)68.4%SPL 0.516
ProcTHOR 0-shot75.7%SPL 0.644
ProcTHOR + fine-tune77.5%SPL 0.621
ObjectNavArchitecTHOREmbCLIP(AI2-iTHOR 训练基线)18.5%SPL 0.118
ProcTHOR 0-shot31.4%SPL 0.195
Rearrangement 1-phaseAI2-THOR Challenge 2022EmbCLIP 基线7.10%% Fixed Strict 0.190
ProcTHOR 0-shot3.80%% Fixed Strict 0.156
ProcTHOR + fine-tune7.40%% Fixed Strict 0.245
ArmPointNavManipulaTHORiTHOR-SimpleConv(在完整 iTHOR 数据上用 RGB 重训的 [33] 模型)29.2%% PickUp SR 73.4
ProcTHOR 0-shot37.9%% PickUp SR 74.8

排行榜战绩(2022 年 6 月 14 日上午 10 点 PT 快照,论文引言原文):RoboTHOR ObjectNav Challenge 微调后 SPL 比此前 SoTA 提升 8.8 点;Habitat 2022 ObjectNav Challenge 登顶,SPL 比第二名高出 3 点以上;AI2-THOR Rearrangement 2022 Challenge(1-phase)登顶,Prop Fixed Strict 从 0.19 提升到 0.245。

规模消融(Table 3,10/100/1,000/10,000 栋房屋预训练,均训练到 80% 训练集成功率,不使用材质增强):

# 训练房屋ArchitecTHOR Test SPL / SRRoboTHOR 0-shot SPL / SRHM3D 0-shot SPL / SRAI2-iTHOR 0-shot SPL / SR
100.077 / 11.3%0.040 / 8.53%0.007 / 1.60%0.249 / 28.7%
1000.102 / 18.6%0.076 / 20.9%0.050 / 10.4%0.352 / 42.0%
1,0000.122 / 17.2%0.157 / 33.1%0.027 / 4.65%0.456 / 53.0%
10,0000.185 / 27.0%0.210 / 44.5%0.060 / 9.70%0.554 / 64.9%

随训练房屋数量从 10 增至 10,000,四个基准的零样本 SPL/SR 均单调提升,论文以此论证”场景多样性规模”是 Embodied AI 泛化能力的关键变量,且暗示继续扩大规模仍有提升空间。

创新点与影响

  • 贡献:(1) 提出 ProcTHOR 框架,把房屋生成从”人工搭建”或”真实世界扫描”变成”给定房间规格 + 多阶段条件采样”的程序化流程,配合 1,633 个可交互资产、217 种结构材质(40 纯色+122 贴图+55 地板)、灵活的光照与状态随机化,让训练场景规模不再受人力或扫描成本的线性约束;(2) 发布 ArchitecTHOR,一个独立于生成算法之外、由 3D 美术手工搭建的评测集,用来检验程序化训练的真实泛化能力而非”自证”;(3) 用极简的 CNN+GRU 架构(无深度传感器、无显式建图模块、无人工任务监督)仅靠 10,000 栋生成房屋预训练,在 RoboTHOR、Habitat 2022、AI2-THOR Rearrangement 2022 三项当时正在进行的挑战赛登顶,并在 AI2-iTHOR、ArchitecTHOR、ManipulaTHOR ArmPointNav 上刷新纪录,拿下 NeurIPS 2022 Outstanding Paper Award。
  • 改变了什么:证明了 CV/NLP 里”用规模换泛化”的范式在 Embodied AI 同样成立——此前该领域受限于场景数量(几十到千级)难以复现这一效应;论文的规模消融(10→100→1,000→10,000 栋房屋单调提升零样本性能)把”扩大程序化生成规模”变成了后续 Embodied AI 工作可复用的性能杠杆,也让”零样本迁移到真实/artist-designed 场景”成为衡量仿真数据质量的标准评测协议。
  • 论文自述局限:(1) ProcTHOR-10K 目前只支持单层房屋,作者计划在”ProcTHOR v2.0”中支持多层住宅以覆盖更广的户型分布并改善微调效果;(2) 资产库规模计划通过引入 ABO、PartNet、ShapeNet、Google Scanned Objects、CO3D 等开源 3D 资产库进一步扩充;(3) 论文正文承认零样本迁移本身具有挑战性,因为 ArchitecTHOR/AI2-iTHOR 是艺术家精修的高保真场景、HM3D 来自真实扫描、RoboTHOR 用特定材质的墙板与地板,外观与布局统计量都与 ProcTHOR 合成场景存在系统性差异,这也是 HM3D 上零样本表现(SPL 0.055–0.077)明显弱于其他基准的部分原因。

原始链接

一手源存档(sources/)

  • procthor—github-readme — 生成框架 GitHub README 快照(sources/embodied/2022/procthor—github-readme.md)
  • procthor—procthor-10k-github-readme — 数据集仓库 GitHub README 快照(sources/embodied/2022/procthor—procthor-10k-github-readme.md)
  • procthor—project-page — 官方项目主页快照(sources/embodied/2022/procthor—project-page.md)
  • arXiv 原文 PDF(2206.06994v1,不入 git):正文六维数字均取自该 PDF,引用 arXiv URL。