项目介绍:VirtualHome
什么是 VirtualHome?
VirtualHome 是一个互动平台,用于通过程序模拟复杂的家庭活动。该平台的核心特点是允许用户与环境进行复杂的交互,例如拾取物品、开关电器等。使用者可以通过简单的指令序列来编写活动,然后通过 Python API 将其在 VirtualHome 中呈现。用户还可以在不同的代理和环境之间进行选择,甚至动态修改环境。此外,VirtualHome 支持流式传输各种真实数据,如带有时间戳的动作、实例和语义分割、光流和深度等。该平台能够模拟多代理活动,并可为具身人工智能任务训练代理提供环境。
最新更新
VirtualHome 2.3 版本现已发布!主要更新包括:
- 增加了程序生成能力,帮助代理探索无限可能的独特环境。
- 添加了更多自定义设计的环境。
- 增强了与环境的模拟物理效果。
- 引入了同步的昼夜管理系统。
- 提供新的户外地形,具备精确的阳光和阴影。
- 改善了室内实时照明效果。
- 房间设计更加逼真。
- 显著提升了性能、优化了资源以及稳定性,并修复了现有环境的通用bug。
平台概览
VirtualHome 中的活动通过两个组件表示:程序用于描述构成一个活动的动作序列,图则定义了活动进行的环境。通过给定一个程序和环境图,模拟器可以执行该程序,生成活动的视频或一系列反映环境变化过程的图。VirtualHome 包含两个模拟器:Unity Simulator 和 Evolving Graph。
Unity Simulator
这是一个基于 Unity 的模拟器,可以生成活动的视频。要使用这个模拟器,用户需要下载相应的可执行文件,并与 Python API 一起运行。
Evolving Graph
这个模拟器完全以 Python 运行,允许在程序执行期间生成一系列图。该模拟器的一些对象和动作目前在 Unity Simulator 中尚不支持。
数据集
我们收集了一组程序,并使用 Evolving Graph 模拟器扩充了这些程序的图。这些数据集可以用于训练和评估在各种环境中的代理活动。
应用场景
VirtualHome 可以用于增强现实(AR)、虚拟现实(VR)和人机交互等领域的研究,也可用于训练涉及多代理协调的人工智能模型。
如何设置
用户可以通过 pip install virtualhome
命令安装 VirtualHome。使用 Unity Simulator 时,需根据使用平台(Linux, Mac OS, Windows)下载相应的版本。VirtualHome 也支持通过 Docker 容器运行,方便在服务器上实验。
如何贡献
如果希望为 VirtualHome 做出贡献或根据不同的研究需求修改模拟器,用户可以访问 VirtualHome 的 Unity 源代码。在对代码进行更新后,可以使用 Unity 编辑器构建自己的可执行文件。
VirtualHome 提供了一个详尽的开发者指南,并拥有活跃的社区,欢迎开发者提出修改建议和问题。