22年8月来自AI2、西雅图华盛顿大学、斯坦福大学和CMU的论文“AI2-THOR: An Interactive 3D Environment for Visual AI”。
House Of inteRactions (THOR),是一个用于视觉 AI 研究的框架。AI2-THOR 由近乎照片般逼真的 3D 室内场景组成,AI 智体可以在场景中导航并与目标交互以执行任务。AI2-THOR 支持许多不同领域的研究,包括但不限于深度强化学习、模仿学习、交互学习、规划、视觉问答、无监督表示学习、目标检测和分割以及认知学习模型。
AI2-THOR 广泛应用于嵌入式人工智能、机器人和计算机视觉等各种任务。它涵盖多种不同类型的场景;不同类型的智体,每种智体都有自己的一套与目标交互的操作;支持多种图像模式;并具有提供有关环境状态的元数据功能。
如图所示AI2-THOR 的智体模拟器循环,其中显示与 Unity 后端交互的前端 Python API。在这里,操作从 Python API 调用,并通过本地服务器发送到 Unity。Unity 是一个强大的实时游戏引擎,它存储场景、有关如何执行操作的代码、具有其属性的 3D 目标以及用于渲染不同图像模态的着色器。然后,Unity 返回一个事件,其中包含来自场景中摄像机的图像和环境元数据。
作为 AI2-THOR 的一部分,已经构建了许多场景数据集,包括 iTHOR、RoboTHOR [1]、ProcTHOR- 10K [2] 和 ArchitecTHOR [2]。这些场景数据集中的每一个都是交互式的,可以通过相同的 API 与任何智体一起使用。
iTHOR 是用于所有实验的原始场景集,其中包括 120 个房间大小的场景,涵盖卧室、浴室、厨房和客厅。这些场景由专业 3D 艺术家手工建模。
RoboTHOR [1] 后来被开发出来,它由 89 个迷宫式宿舍大小的公寓组成,用于研究 sim-2-real 传输。这些场景也是由专业 3D 艺术家开发的。许多场景都是在西雅图的AI2 办公室附近重建的,研究在模拟中评估相同环境中的模型与现实中的差异。
ProcTHOR [2] 旨在使用程序生成来大规模扩大训练场景的数量和多样性,以提高具身智能的泛化能力。过拟合训练场景是一个严重的问题,在 iTHOR 和 RoboTHOR 场景上进行训练时,经常观察到,有人假设仅仅改进训练数据就可以解决这个问题。ProcTHOR-10K 是与论文一起发布的初始数据集,用于实验,它以程序方式生成 10K 个多样化且语义合理的房屋用于训练。使用 ProcTHOR 进行训练产生了显著的泛化结果,预计它将成为未来训练 AI2-THOR 中大多数项目的起点。
ArchitecTHOR [2] 是一组 10 个评估房屋(5 个用于验证,5 个用于测试),与 ProcTHOR 一起开发。由于 ProcTHOR 是程序生成的,因此需要一组来自真实世界分布的房屋测试集来评估在 ProcTHOR 上训练的模型是否仅仅记住了程序生成的偏差,或者它们是否能够推广到真实世界的平面图和物体位置。与 iTHOR 和 RoboTHOR 类似,场景是由专业 3D 艺术家手工打造的,尽管 ArchitecTHOR 的房屋要大得多,而且风格为单层房屋。
AI2-THOR 配备了许多支持一系列实施方案的智体,包括 ManipulaTHOR [5] 智体、Stretch RE1 [14]、LoCoBot [24]、Abstract 智体和 Drone [42] 智体。这些智体中的每一个都体现在不同的物理机器人中,并且有自己的一组可以在环境中执行的操作。
所有智体都能够在场景中导航并执行环境查询和状态更改。ManipulaTHOR 和 Stetch RE1 智体能够使用它们的手臂来抓取和打开物体。LoCoBot、Abstract 和 Drone 智体以更抽象的方式与物体交互,如果智体正在查看物体,则执行高级 OPEN 或 PICKUP 命令,调用高级操作,并且智体在物体的一定距离内。
AI2-THOR 中的智体支持广泛的动作,可以将其分解为导航动作、交互动作、环境查询和环境状态改变。
导航动作。每个智体都具有在给定场景中导航的能力。导航动作可以是离散或连续移动(例如,向前移动 0.25 米)、旋转(例如,向右旋转 30 度)、查看(例如,向右查看 30 度)或传送动作。有手臂的智体可以采取更多动作来控制手臂的定位方式。
交互动作。AI2-THOR 支持多种类型的交互,包括抽象交互、基于手臂的操纵、目标状态变化和因果性交互。
抽象交互,通常是具身智能研究的关键组成部分,人们可能对研究高级规划而不是低级控制感兴趣。在这里,智体可以执行抽象动作,例如打开、拾取、推动、投掷、放下或放置,只要智体可以在其框架中看到对象并且该对象与它的距离在一定范围内,该动作就可以成功执行。抽象动作可用于改变物体的状态,例如烹饪、打碎、切片、拨动、注入液体或用完。
基于手臂的交互,比抽象动作低级,需要通过移动手臂来抓住物体来与物体交互。它们可用于以连续的方式逐步打开物体或抓住物体以将其从一个位置移动到另一个位置。
因果性交互,是与另一个物体交互的结果。例如,打开放有杯子的咖啡机,杯子里就会装满咖啡;用力扔易碎物体可能会导致物体和被扔的表面破碎;推倒桌子会导致桌子上的物体掉落并可能破碎。
环境查询。环境查询用于获取有关环境状态的信息,这些信息未随每个事件提供,因为通常不需要在每个用例的每个时间步骤进行计算。示例包括获取从智体到场景中给定目标对象的最短路径、查询智体当前帧中哪个对象出现在像素处,或获取给定对象的凸包。
环境状态变化。环境状态变化涉及修改环境或其属性的操作。例如,一些环境状态变化包括随机化场景中的材质、随机化场景中的照明、更新渲染质量、更新来自相机的图像的分辨率以及更改场景中的天空盒。
如图所示场景中每个摄像头可以渲染的一系列不同图像模式,包括 RGB、深度、语义分割、实例分割和法线。每个智体都附带一个摄像头,但也可以添加更多摄像头,例如一个用于捕捉场景的俯视图的摄像头。可以通过修改 Unity 后端(通常通过添加着色器)来添加更多图像模式。
AI2-THOR 的目标数据库中包含 3,578 个交互式目标,并且该数据库还在快速增长。每个目标都经过手工建模,以支持一系列交互式操作和状态变化,例如打开、破坏或烹饪。如图所示来自 4 个类别的目标样本,包括闹钟、边桌、植物和椅子。
每次执行动作后都会返回环境元数据。它包括以下信息:每个智体的姿势;场景中每个智体的姿势和状态(例如,目标是否在移动、智体是否可以看到它、距离有多远、它是干净的还是脏的);场景的元数据,例如场景的大小;以及最近的操作是否执行成功(例如,智体在尝试移动时没有与目标发生碰撞)。对于大多数任务,通常不会向智体提供元数据,因为这会使任务过于简单,并且很容易通过启发式方法解决。相反,许多任务使用元数据来构建奖励函数,该函数可以访问智体无法看到的“专家级”信息,构建模仿学习专家,并构建训练和评估数据集。
AI2-THOR 已在多个领域开展研究,如图是一些其应用示例:
版权归原作者 硅谷秋水 所有, 如有侵权,请联系我们删除。