论文标题:ProcTHOR: Large-Scale Embodied AI Using Procedural Generation
论文作者:Matt Deitke, Eli VanderBilt, Alvaro Herrasti, Luca Weihs, Jordi Salvador, Kiana Ehsani, Winson Han, Eric Kolve, Ali Farhadi, Aniruddha Kembhavi, Roozbeh Mottaghi
论文原文:https://arxiv.org/abs/2206.06994
论文出处:–
论文被引:69(12/18/2023)
论文代码:https://github.com/allenai/procthor,183 star
项目主页:https://procthor.allenai.org/
海量数据集和大容量模型推动了计算机视觉和自然语言理解领域的许多最新进展。这项工作提供了一个平台,使具身人工智能也能取得类似的成功。我们提出的 PROCTHOR 是一个程序化生成具身人工智能环境的框架。PROCTHOR 使我们能够对多样化、交互式、可定制和高性能虚拟环境的任意大型数据集进行采样,以训练和评估导航、交互和操作任务中的具身智能体。我们通过 10,000 个生成的房屋样本和一个简单的神经模型展示了 PROCTHOR 的功能和潜力。在 PROCTHOR 上仅使用 RGB 图像训练的模型,在没有显式映射和人类任务监督的情况下,在导航、重新排列和手臂操纵等 6 项具身人工智能基准测试中取得了最先进的结果,其中包括目前正在进行的 Habitat 2022、AI2-THOR Rearrangement 2022 和 RoboTHOR 挑战赛。我们还通过在 PROCTHOR 上进行预训练,而不对下游基准进行微调,在这些基准上展示了强大的 零样本结果,击败了以前使用下游训练数据的最先进系统。
通过使用大规模训练数据,计算机视觉和自然语言处理模型变得越来越强大。最近的模型,如 CLIP [ 93 ]、DALL-E [ 95 ]、GPT-3 [ 10 ] 和 Flamingo [ 3 ],都使用了大量与任务无关的数据来预训练大型神经架构,这些架构在下游任务(包括零样本和少镜头设置)中表现出色。相比之下,Embodied AI(E-AI)研究界主要是在场景少得多的模拟器中训练智能体[ 94 , 63 , 27 ]。由于任务的复杂性和需要较长的规划时间,表现最好的 E-AI 模型在有限的训练场景中仍会过拟合,因此对未知环境的泛化能力较差。
近年来,E-AI 模拟器的功能越来越强大,支持物理、机械手、物体状态、可变形物体、流体和真实模拟对等[63, 101 , 104 , 37 , 124],但将其扩展到数以万计的场景仍然具有挑战性。现有的 E-AI 环境要么是人工设计的 [63, 37],要么是通过真实结构的3D扫描获得的 [101, 94]。前一种方法需要3D艺术家花费大量时间设计3D资产,在大型空间中合理地布置它们,并在这些环境中仔细配置合适的纹理和照明。后者则需要在许多真实世界环境中移动专用摄像机,然后将生成的图像拼接在一起,形成场景的3D重建。这些方法都不具备可扩展性,将现有场景库扩大数倍也不现实。
现有的 E-AI 环境分为两类:
- 专家手动设计:AI2-THOR,ThreeDWorld
- 真实环境扫描:Habitat,HM3D
我们介绍的 PROCTHOR 是一个基于 AI2-THOR [63 ]的框架,用于为 E-AI 研究程序化地生成完全交互的物理环境。给定一个房间规格(例如,一栋有 3 个卧室、3 个浴室和 1 个厨房的房子),PROCTHOR 就能生成符合这些要求的大量不同的平面图(图 1)。
我们还展示了由艺术家设计的3D建筑 ARCHITECTHOR,这是一套由 10 座高质量的全交互式房屋组成的3D模型,旨在作为家庭环境研究的测试环境。与 AI2-iTHOR(单个房间)和 RoboTHOR(视觉多样性较低)环境相比,ARCHITECTHOR 包含更大、更多样和更逼真的房屋。
我们通过对包含 10,000 所房屋(命名为 PROCTHOR-10K)的环境进行采样,展示了 PROCTHOR 的易用性和有效性,该环境由各种布局组成,小到 1 个房间的房屋,大到 10 个房间的房屋。我们在 PROCTHOR-10K 上使用非常简单的神经架构(CNN+RNN)训练智能体(没有深度传感器,仅使用 RGB 通道,没有明确的映射,也没有人类任务监督),并在多个导航和交互基准上生成了最先进的(SoTA)模型。截至太平洋时间 2022 年 6 月 14 日上午 10 点,我们获得了 :
1)RoboTHOR ObjectNav Challenge [5]
2)Habitat ObjectNav Challenge 2022 [ 79 ]
3)1-phase Rearrangement Challenge 2022 [ 4 ]
4)AI2-iTHOR ObjectNav
5)ArmPointNav [ 33 ]
6)ArchitecTHOR ObjectNav
总之,我们的贡献包括:
Embodied AI platforms.
在过去几年里,人们开发了各种具身人工智能平台[ 63 , 101 , 104 , 124 , 37, 121 ]。这些平台针对不同的设计目标。
Large-scale datasets.
大规模数据集已在不同领域取得重大突破,如图像分类 [28 , 67]、视觉与语言 [18 , 111]、3D理解 [ 14 , 125 ]、自动驾驶 [11 , 107 ] 和机器人物体操纵 [ 91, 82 ]。然而,用于E-AI 研究的交互式大规模数据集并不多。PROCTHOR 包含程序化生成的交互式房屋。因此,该框架中的场景数量非常庞大。与我们最接近的作品有 [94, 90, 72]。
Scene generation.
计算机视觉和图形学界对室内场景合成进行了广泛的研究。
PROCTHOR 是专为具身人工智能研究而设计的,它具有以下特点:
PROCTHOR 是一个程序化生成 E-AI 环境的框架。它扩展了 AI2-THOR,因此继承了 AI2-THOR 的大型资产库、机器人智能体和精确的物理模拟。与 AI2-THOR 中设计人员精心创建的场景一样,PROCTHOR 中的环境也是完全交互式的,支持导航、物体操作和多智能体交互。
图 2 显示了 PROCTHOR 生成场景的高级程序示意图。给定一个房间规格(如带 1 间卧室和 1 间浴室的房子),PROCTHOR 使用多阶段条件采样来反复生成平面图(floor plans)、创建外墙结构、采样照明和门,然后采样包括大型、小型和墙面物体在内的资产,挑选颜色和纹理,并确定资产在场景中的适当位置。有关程序生成和采样机制的详情,请参阅附录:多样性、交互性、可定制性、规模和效率。
PROCTHOR 可以创建丰富多样的环境。在视觉和 NLP 领域,使用多样化数据对模型进行预训练取得了成功,与此相对应,我们在多个 E-AI 任务中展示了这种多样性的实用性。PROCTHOR 中的场景在多个方面都表现出了多样性:
平面图(floor plans)的多样性。给定房间规格后,我们首先采用迭代边界切割(iterative boundary cutting)获得外部场景布局(从简单的矩形到复杂的多边形)。然后使用 Lopes 等人[73] 的递归布局生成算法将场景划分为所需的房间。最后,我们使用一组用户定义的约束条件来确定房间之间的连通性。这些程序会产生自然的房间布局(例如,卧室通常通过一扇门与相邻的浴室相连,浴室通常只有一个入口等)。如图 3 所示,PROCTHOR 使用这种程序生成了多种多样的平面图。
资产的多样性。PROCTHOR 从其数据库中收集了 108 个类别的 1633 件家庭资产(图 4 中的示例),在场景中填充了大大小小的资产。虽然许多资产继承自 AI2-THOR,但我们也引入了新的资产,如门窗和台面,这些都是由3D平面设计师手工设计的。资产实例分为训练/验证/测试子集,并且可以交互,即可以在场景中挑选和放置物体,有些物体有多种状态(如灯可以开或关),还有一些物体由具有刚体运动的部件组成(如微波炉上的门)。
材料多样性。墙壁有两种材料:40 种纯色(流行色)或 122 种墙壁纹理(如砖和瓷砖)。我们还提供 55 种地板材料。整栋房屋的天花板材料是从墙壁材料中抽取的。PROCTHOR 还提供了随机化物体材料的功能。材料只在类别内随机化,这样可以确保物体的外观和行为与它们所代表的类别一致。
物体摆放的多样性。资产类别有多种软注释(soft annotations),有助于将它们真实地放置在房屋内。这些软注释包括房间分配(例如,沙发放在客厅而不是浴室)和位置分配(例如,冰箱沿着墙壁,电视机不在地板上)。我们还提出了语义资产组(Semantic Asset Group,SAG)的概念,即通常共同出现的资产组(如餐桌和四把椅子),因此必须使用从属采样(dependent sampling)进行采样和放置。
通过这种取样,可以在任何布局中选择和放置大量不同的物体。图 6 展示了这种变化。
照明的多样性。PROCTHOR 支持单个定向光源(类似太阳)和多个点光源(类似灯泡)。通过改变这些光源的颜色、强度和位置,我们可以模拟出不同的人工照明,通常是在房屋内以及一天中的不同时间。如图 7 所示,照明对渲染图像有很大影响。
PROCTHOR 的一个关键特性是能够与物体互动,改变其位置或状态(图 8)。这种能力是许多E-AI任务的基础。像HM3D[94]这样通过静态3D扫描创建的数据集则不具备这种能力。PROCTHOR 支持带有手臂的智能体,它们能够操纵物体并相互交互。
PROCTHOR 支持多种房间、资产、材料和照明规格。只需几行简单的说明,就能轻松生成客户感兴趣的环境。图 9 展示了这些不同场景(教室、图书馆和办公室)的示例。
PROCTHOR 目前使用 16 种不同的场景规范作为场景生成过程的种子。这些规范可产生超过 1,000 亿个布局。PROCTHOR 使用 18 种不同的语义资产组和 1633 种资产。这可以产生大约 2000 万个独特的资产组。每个资产都可以放置在多个位置。此外,每栋房屋都会按比例缩放,并使用各种照明。这种布局、资产、材料、位置和照明的多样性使我们能够生成任意庞大的房屋集——既可以静态生成并存储为数据集,也可以在每次迭代训练时动态生成。场景以 JSON 格式有效表示,并在运行时加载到 AI2-THOR,从而使存储房屋的内存开销变得异常高效。此外,场景生成过程是全自动且快速的,PROCTHOR 可为 E-AI 模型的训练提供高帧频(详见第 4 章)。
我们使用第 3 节中描述的程序生成过程获得的 10,000 套完全交互式房屋样本来展示 PROCTHOR 的功能和潜力,我们将其命名为 PROCTHOR -10K。另外还有 1,000 套验证房屋和 1,000 套测试房屋可供评估。附录中详细说明了训练/验证/测试的资产分配情况。所有房屋都是完全可浏览的,允许智能体在没有任何交互的情况下穿越每个房间。就规模而言,PROCTHOR -10K 是最大的具身人工智能交互式家庭环境集之一。
将规模扩展到 10K 房屋以上既简单又便宜。这组 10K 房屋是在配备 4 个英伟达 RTX A5000 GPU 的本地工作站上于 1 小时内生成的。图 11 显示了 PROCTHOR-10K 中以自我为中心和自上而下的房屋视图示例。
PROCTHOR -10K 中的房屋是根据 16 种不同的房间规格生成的。房间规格示例如下 该数据集中的房屋少则 1 间,多则 10 间。图 10 显示了这些生成房屋的面积分布(中)和房间数量(右)。通过使用房间规格,我们可以非常容易地改变房屋的大小和复杂程度。PROCTHOR -10K 比 AI2-iTHOR [ 63 ] 和 ROBOTHOR [27](偏重于房间大小的场景)以及 Gibson [ 123 ] 和 HM3D [94](偏重于大型房屋)涵盖了更广泛的场景。
这些房屋中的每个房间都包含 95 个不同类别的物体,包括冰箱、台面、床、马桶和室内植物等常见家居物体,以及门道和窗户等结构物体。图 10(左)显示了每栋房屋每个房间的物品数量分布情况,从中可以看出 PROCTHOR -10K 中的房屋都有很多物品。它们还包含通过 18 个不同语义资产组采样的物体。语义资产组(SAG)的示例包括带 4 把椅子的餐桌或带 2 个枕头的床。考虑到我们庞大的资产库和 SAG,我们可以创建 1930 万种组实例组合。
大规模训练的一个关键要求是高渲染速度,因为训练算法需要数百万次迭代才能收敛。表 1 显示了这些统计数据。实验在配有 8 个英伟达 Quadro RTX 8000 GPU 的服务器上运行。在使用 1 个 GPU 的实验中,我们使用了 15 个进程,而在使用 8 个 GPU 的实验中,我们使用了 120 个进程,平均分配给各个 GPU。PROCTHOR 尽管有更大的房子,却能提供与 iTHOR 和 RoboTHOR 环境相当的帧速率(详见附录),因此它的速度足以在合理的时间内训练数亿步的大型模型。
我们现在介绍在 PROCTHOR -10K 上预先训练的模型在几个导航和操作基准上的结果,以证明大规模训练的好处。我们考虑了ObjectNav(指向特定物体类别的导航):
我们还考虑了两个基于操作的任务:
我们用于所有任务的模型都由一个 CNN(编码视觉信息)和一个 GRU(捕捉时间信息)组成。
我们展示了两种情况下的结果:在下游基准所提供的训练场景上进行零样本和微调后的结果。
在所有实验中,我们只使用 RGB 图像(不使用深度和其他模式)。
与 PROCTHOR 相比,其他环境具有不同的外观统计、布局和物体分布,因此零样本尤其具有挑战性。
零样本迁移结果。仅在 PROCTHOR 上训练并进行了零样本评估的模型在 3 个基准上的表现优于之前的 SoTA 模型(参见表 2 中的零样本行)。这些结果非常出色,因为这些模型不仅可以泛化到未见过的物体和场景,还可以泛化到不同的外观和布局统计。
微调结果。利用每个基准的训练数据对模型进行进一步微调后,在所有基准上都取得了最先进的结果(参见表 2 的微调行)。值得注意的是,截至太平洋时间 2022 年 6 月 14 日上午 10 点,我们的模型在三个公开排行榜上排名第一:Habitat 2022 ObjectNav challenge、AI2-THOR Rearrangement 2022 challenge 和 RoboTHOR ObjectNav challenge。值得注意的是,我们的模型仅使用了非常简单的架构和 RGB 图像就取得了这些成绩。其他技术通常使用更复杂的架构,包括映射或视觉里程测量模块,并使用深度图像等额外的感知传感器。
表 2: 在 ProcTHOR 上训练的模型的结果,以及在多个 E-AI 基准上进行的零样本评估和微调。a)EmbCLIP [58] 在 ROBOTHOR 上训练,b)EmbCLIP [58] 在 AI2-iTHOR 上训练,c)在 Habitat 2022 ObjectNav 排行榜[79]上提交 。 d)对于 HM3D,我们给出了使用标准 EmbCLIP 架构(使用 CLIP 预训练的 ResNet50 主干网)和 Large 模型(使用更大的 CLIP 主干网 CNN 和更宽的 RNN)进行预训练的结果,详见补充资料。 e)使用了[33]中的模型,但在带有 RGB 输入的完整 iTHOR 数据上进行了重新训练。粉色背景的是零样本结果,即模型在 PROCTHOR -10K 上进行预训练,不使用评估基准的任何训练数据。
为了评估规模的影响,我们在 10、100、1,000 和 10,000 座房屋上对模型进行了训练。在这项实验中,我们没有使用任何材料增强。如表 3 所示,当我们使用更多房屋进行训练时,模型的性能就会提高,这证明了大规模数据对具身人工智能任务的益处。
我们提出了 PROCTHOR,这是一个程序化生成任意大型交互式物理房屋集的框架,用于具身人工智能研究。我们对生成的 10,000 所房屋进行了简单模型的预训练,并在 6 个具身导航和操作基准测试中展示了最先进的结果,其中 3 个基准测试的结果甚至超过了之前的最先进水平。
我们要感谢该项目中使用的开源包背后的团队,包括AI2-THOR[63]、AllenAct[116]、Habitat[101]、Datasets[68]、NumPy[45]、PyTorch[88]、Pandas[78]、Wandb[8]、Shapely[41]、Hydra[126]、SciPy[112]、UMAP[77]、NetworkX[44]、EvalAI[127]、TensorFlow[1]、OpenAI Gym[9]、Seaborn[114]、PySAT[50]和Matplotlib[49]。
ProcTHOR资产数据库由108种物体类型的1633种交互式家庭资产组成(更多详细信息,请参阅附录A)。大部分资产来自AI2-THOR。窗户、门和台面都建在AI2-THOR房间的外部,这使我们无法将房间作为独立资产生成。因此,我们还手工制作了21扇窗户、20扇门和33个台面。
语义资产组(SAG)提供了一种灵活多样的方式来编码哪些物体可能出现在彼此附近。SAG的力量在于其支持随机资产和轮换采样的能力。通过我们用户友好的拖放式web界面,SAG可以在几秒钟内创建和导出。
图 26 举例说明了我们如何构建一个将两把椅子推到餐桌边上的 SAG。SAG 包括两个椅子采样器和一个餐桌采样器。资产采样器包含一组可采样的唯一 3D 建模资产实例。当 SAG 实例化时,每个资产采样器会随机选择其中一个实例。资产采样器也可以链接,即多个采样器每次对同一资产实例进行采样。在这里,通过链接可以将同一把椅子的多个实例放置在餐桌上,而不是每个取样器独立取样不同的椅子。
在 SAG 中随机采样资产的能力具有惊人的表现力。例如,考虑一个包含电视柜、电视、沙发和扶手椅采样器的 SAG。如果每个采样器都能从 30 个不同的 3D 建模资产实例中采样,那么就有超过 800K 种独特的实例组合可以从 SAG 中采样。
资产采样器定义了资产之间的相对位置。SAG 是通过资产采样器自上而下的正交图像来构建的,如图 26a 所示。在这里,两个椅子取样器都是餐桌取样器的父取样器。每个子资产采样器与其父资产采样器垂直锚定在 V = {上、中、下},水平锚定在 H = {左、中、右}。例如,在图 26a 中,两个椅子采样器都与父采样器垂直固定在顶部,水平固定在中心。但是,左侧椅子取样器的枢轴位置垂直于中心,水平于右侧,而右侧椅子取样器的枢轴位置垂直于中心,水平于左侧。图 27 举例说明了如何将植物或落地灯取样器放置在扶手椅取样器周围。每个子资产采样器都有一个 (x, y) 偏移量,即从父采样器锚点到子采样器枢轴位置的距离。
对资产采样器进行相对定位的目的是防止网格之间相互剪切。例如,以图 26a 中的 SAG 为例,如果餐桌采样器采样的餐桌尺寸是当前餐桌的两倍,会发生什么情况?椅子不会停留在固定的全局位置,也不会与新的餐桌发生碰撞,而是会反应性地向后移动,并重新定位,使其保持在较大餐桌的下方。此外,考虑到从资产采样器中采样的实例尺寸往往大不相同。例如,一张桌子可能是方形的,而另一张桌子则是长条形的。如果我们只使用 CENTER CENTER 枢轴和偏移量,就无法可靠地将包含不同大小物体的资产采样器直接放置在彼此旁边而不会造成剪切。
虽然设置锚点和枢轴位置可以解决很多网格剪切问题,但仍可能出现一些情况。图 28 显示了一个例子,如果我们的餐桌采样器采样的是一张短餐桌,那么它可能会夹到某些椅子上。这种问题在实践中并不多见,但物体剪切会导致房屋的逼真度和交互性降低。为了解决剪切问题,我们使用拒绝采样对 SAG 中的资产进行重新采样,直到采样资产的三维网格都不发生剪切。
在 PROCTHOR -10K 中,我们构建了 18 个 SAG,这些 SAG 可通过超过 2,000 万种独特的资产组合进行实例化。其中包括桌子周围的椅子、床顶上的枕头、沙发和扶手椅、电视柜顶上的电视、水槽顶上的水龙头以及带椅子的书桌等语义资产组。
图29:详细说明地板物体如何放置在房间中的示意图。首先,我们通过从每个角点绘制水平和垂直分隔符,将房间开放式平面图的自上而下视图矩形化。然后,我们构造在分隔符内形成的所有可能的矩形。然后,我们对其中一个矩形进行采样,并将物体放置在该矩形内。采样物体的自上而下边界框(带边距)显示为蓝色。然后从打开的楼层平面中减去边界框,然后再次重复该过程。
图30:放置在房间的边缘、角落和中间时对象的有效旋转。放置在房间边缘或角落的对象始终背对墙。场景中间的对象可以在任何方向上旋转。通过约束对象的旋转,我们可以确保房间边缘的对象(如冰箱或抽屉)仍然可以打开。
ProcTHOR-10K仅使用一层房屋。我们计划在ProcTHORv2.0中支持多层房屋。这将使我们能够捕捉更广泛的房屋,并提供更好的微调结果。此外,我们计划通过利用许多开源3D资产数据库来扩大我们的资产数据库,如ABO[26]、PartNet[81]、ShapeNet[15]、谷歌扫描对象[30]和CO3D[97]等。
创建该数据集是为了能够在更加多样化的环境中训练模拟的具身智能体。
在AI2-THOR中可以执行的任何任务都可以在ProcTHOR中执行。例如,在E-AI中,房屋可用于:
在更广泛的计算机视觉领域,数据集可用于研究:
我们从JSON规范加载程序生成房屋的框架还可以研究场景杂乱的生成,构建更逼真的程序生成房屋,以及开发综合生成空间,以训练工厂[84]、办公室、杂货店[76]和完整的程序生成城市中的具体代理。
为了计算 "分析 "部分所示的 FPS 性能基准,我们将房屋分为小型房屋(1-3 个房间的房屋)和大型房屋(7-10 个房间的房屋)。对于导航基准,我们执行移动和旋转操作。在交互基准中,我们执行了推动物体的操作。在查询环境数据时,我们会在每个时间步从环境中获取一个不常提供的元数据(例如,检查智能体的尺寸)。在每个时间步骤,我们都会从智能体的自我中心视角渲染一张 3 × 224 × 224 RGB 图像。实验在配有 8 个英伟达 Quadro RTX 8000 GPU 的服务器上进行。我们在单 GPU 测试中使用了 15 个进程,在 8 GPU 测试中使用了 120 个进程,平均分配给各个 GPU。表 11 显示了与 AI2-iTHOR 和 RoboTHOR 的比较。