Gym-UnrealCV简介
Gym-UnrealCV是一个将虚幻引擎(Unreal Engine)与OpenAI Gym集成的开源项目,旨在为视觉强化学习提供逼真的3D虚拟环境。该项目基于UnrealCV开发,允许研究人员在各种逼真的UE4环境中轻松运行强化学习算法,而无需了解虚幻引擎和UnrealCV的具体细节。
如上图所示,Gym-UnrealCV的框架主要包含两个核心组件:
- UnrealCV:作为虚幻引擎和OpenAI Gym之间的基础桥梁
- OpenAI Gym:用于开发强化学习算法的工具包,兼容大多数数值计算库,如TensorFlow和PyTorch
通过这种架构,研究人员可以专注于算法开发,而无需深入了解底层引擎的复杂性。
主要特性
Gym-UnrealCV具有以下主要特性:
-
逼真的3D环境:利用虚幻引擎的强大渲染能力,提供高度逼真的视觉场景。
-
多样化的任务:支持多种机器人视觉任务,包括主动物体跟踪、物体搜索和机器人手臂控制等。
-
易于使用:提供简洁的API,使研究人员能够快速上手和开发算法。
-
可定制性:允许用户根据需求修改预定义环境或添加新的虚幻环境。
-
多智能体支持:可用于单智能体强化学习、对抗性强化学习和多智能体游戏等场景。
安装与使用
安装依赖
Gym-UnrealCV的主要依赖包括:
- UnrealCV
- Gym
- OpenCV(CV2)
- Matplotlib
- Numpy
- Docker(可选)
- Nvidia-Docker(可选)
推荐使用Anaconda来安装和管理Python环境。OpenCV用于图像处理,如提取物体掩码和边界框。Matplotlib用于可视化。
安装Gym-UnrealCV
安装Gym-UnrealCV非常简单,只需运行以下命令:
git clone https://github.com/zfw1226/gym-unrealcv.git
cd gym-unrealcv
pip install -e .
在安装过程中,OpenAI Gym、UnrealCV、Numpy和Matplotlib等依赖项会自动安装。OpenCV需要单独安装,可以使用以下命令:
conda install --channel menpo opencv
或
pip install opencv-python
准备虚幻引擎二进制文件
在运行环境之前,需要准备虚幻引擎的二进制文件。可以通过运行load_env.py
脚本从云端加载:
python load_env.py -e {ENV_NAME}
其中ENV_NAME
可以是RealisticRoom
、RandomRoom
、Arm
等。脚本会自动下载相关的环境二进制文件到UnrealEnv目录。
使用示例
1. 运行随机智能体
安装完成后,可以运行一个简单的随机智能体来测试环境:
cd example/random
python random_agent.py -e UnrealSearch-RealisticRoomDoor-DiscreteColor-v0
如果一切正常,将会启动预定义的gym环境UnrealSearch-RealisticRoomDoor-DiscreteColor-v0
,你会看到智能体在房间内随机移动,试图寻找一扇门。
2. 训练强化学习智能体
为了演示如何在Gym-UnrealCV中训练智能体,项目提供了DQN(基于Keras)和DDPG(基于Keras)的示例代码。此外,还可以参考以下一些最新的项目,了解更高级的用法:
- craves_control: 提供了使用DDPG(PyTorch)学习控制机器人手臂的示例。
- active_tracking_rl: 提供了使用A3C(PyTorch)学习主动视觉跟踪的示例。该训练框架可用于单智能体RL、对抗性RL和多智能体游戏。
- pose-assisted-collaboration: 提供了在多个PTZ摄像机单目标环境中使用A3C(PyTorch)学习多智能体协作的示例。
自定义环境
Gym-UnrealCV提供了一系列教程,帮助用户开始使用和定制环境:
-
修改预定义环境:可以按照modify_env_tutorial教程修改预定义环境的配置。
-
添加新的虚幻环境:可以按照add_new_env_tutorial教程为特定的强化学习任务添加新的虚幻环境。
研究进展
Gym-UnrealCV已在多个顶级会议和期刊上发表的论文中得到应用,涵盖了计算机视觉、机器人学和人工智能等多个领域。以下是一些使用Gym-UnrealCV的代表性论文:
- 《Towards Active Vision for Action Localization With Reactive Control and Predictive Learning》, WACV 2022
- 《Coordinate-aligned multi-camera collaboration for active multi-object tracking》, Arxiv 2022
- 《Towards distraction-robust active visual tracking》, ICML 2021
- 《AD-VAT+: An Asymmetric Dueling Mechanism for Learning and Understanding Visual Active Tracking》, TPAMI 2021
- 《Craves: Controlling robotic arm with a vision-based economic system》, CVPR 2019
- 《End-to-end active object tracking and its real-world deployment via reinforcement learning》, TPAMI 2019
这些研究工作展示了Gym-UnrealCV在视觉强化学习领域的广泛应用,包括主动视觉、多目标跟踪、机器人控制等方向。
结语
Gym-UnrealCV为视觉强化学习研究提供了一个强大而灵活的平台。通过集成虚幻引擎的逼真渲染能力和OpenAI Gym的易用性,该项目使研究人员能够在高度逼真的3D环境中开发和测试先进的强化学习算法。随着计算机视觉和机器人学领域的不断发展,Gym-UnrealCV有望在未来的研究中发挥更加重要的作用。
如果您对使用Gym-UnrealCV感兴趣或有任何建议,欢迎联系项目维护者: zfw1226@gmail.com。同时,我们也鼓励社区成员通过Pull Request或Issue贡献新的功能和应用案例,共同推动视觉强化学习的发展。