Project Icon

ViZDoom

AI视觉强化学习平台,支持多平台与多语言

ViZDoom平台基于ZDoom引擎,可通过视觉信息训练AI玩Doom游戏,适用于视觉学习和深度强化学习研究。支持Linux、macOS和Windows平台,提供Python和C++ API以及Gymnasium/OpenAI Gym环境封装。该平台具备自定义场景创建、同步和异步多玩家模式、可调分辨率和渲染参数,还支持3D视觉和音频缓冲区访问。

PyPI version Build pre-commit Code style: black

ViZDoom 允许开发仅使用视觉信息(屏幕缓冲区)玩 Doom 的 AI 机器人。它主要用于机器视觉学习,特别是深度强化学习的研究。

ViZDoom 基于 ZDoom 引擎提供游戏机制。

ViZDoom Demo

特点

  • 多平台支持(Linux,macOS,Windows),
  • Python 和 C++ API,
  • Gymnasium/OpenAI Gym 环境包装器(感谢 Arjun KG Benjamin Noah BealLawrence FrancisMark Towers),
  • 易于创建的自定义场景(提供视觉编辑器、脚本语言和示例),
  • 支持异步和同步单人和多人模式,
  • 快速(在同步模式下单线程运行速度可达 7000 fps),
  • 轻量(几 MB),
  • 可自定义分辨率和渲染参数,
  • 可访问深度缓冲区(3D 视觉),
  • 自动标注帧中可见的游戏对象,
  • 可访问音频缓冲区(感谢 Shashank Hegde),
  • 可访问演员/对象列表和地图几何结构,
  • 屏外渲染,
  • 支持录制游戏剧集,
  • 异步模式下的游戏时间缩放。

ViZDoom API 对于强化学习非常友好(也适合于示范学习、学徒学习或反向强化学习学徒等)。

Julia(感谢 Jun Tian),Lua 和 Java 绑定可在其他分支中找到,但不再维护。

引用

M Wydmuch, M Kempka & W Jaśkowski, ViZDoom Competitions: Playing Doom from Pixels, IEEE Transactions on Games, vol. 11, no. 3, pp. 248-259, 2019 (arXiv:1809.03470)

@article{Wydmuch2019ViZdoom,
  author  = {Marek Wydmuch and Micha{\l} Kempka and Wojciech Ja\'skowski},
  title   = {{ViZDoom} {C}ompetitions: {P}laying {D}oom from {P}ixels},
  journal = {IEEE Transactions on Games},
  year    = {2019},
  volume  = {11},
  number  = {3},
  pages   = {248--259},
  doi     = {10.1109/TG.2018.2877047},
  note    = {The 2022 IEEE Transactions on Games Outstanding Paper Award}
}

M. Kempka, M. Wydmuch, G. Runc, J. Toczek & W. Jaśkowski, ViZDoom: A Doom-based AI Research Platform for Visual Reinforcement Learning, IEEE Conference on Computational Intelligence and Games, pp. 341-348, Santorini, Greece, 2016 (arXiv:1605.02097)

@inproceedings{Kempka2016ViZDoom,
  author    = {Micha{\l} Kempka and Marek Wydmuch and Grzegorz Runc and Jakub Toczek and Wojciech Ja\'skowski},
  title     = {{ViZDoom}: A {D}oom-based {AI} Research Platform for Visual Reinforcement Learning},
  booktitle = {IEEE Conference on Computational Intelligence and Games},
  year      = {2016},
  address   = {Santorini, Greece},
  month     = {Sep},
  pages     = {341--348},
  publisher = {IEEE},
  doi       = {10.1109/CIG.2016.7860433},
  note      = {The Best Paper Award}
}

Python 快速开始

Linux

要安装最新版本的 ViZDoom,只需运行:

pip install vizdoom

支持 x86-64 和 AArch64(ARM64)架构。 在 Linux 上为 Python 3.8+ 提供了 Wheels。

如果您的平台没有可用的 Python 轮文件(Python 版本 <3.8,多数发行版低于 manylinux_2_28 标准),pip 将尝试从源代码安装(构建)ViZDoom。 从源代码安装 ViZDoom 需要 C++11 编译器,CMake 3.12+,Boost 1.54+ SDL2,OpenAL(可选),以及 Python 3.7+。更多详细信息请参见文档

macOS

要安装最新版本的 ViZDoom,只需运行(在 M1/M2 芯片上它可能需要几分钟,因为它会从源代码构建 ViZDoom):

brew install cmake boost sdl2 openal-soft
pip install vizdoom

支持 Intel 和 Apple Silicon CPU。 我们建议至少使用 macOS High Sierra 10.13+ 及 Python 3.7+。 在 Apple Silicon(M1 和 M2)上,确保您使用的是 Apple Silicon 的 Python/Pip。

Windows

要安装最新版本的 ViZDoom,只需运行:

pip install vizdoom

目前,Windows 上仅支持 x86-64 架构。 在 Windows 上为 Python 3.8+ 提供了 Wheels。

请注意,Windows 版本未经过与 Linux 和 macOS 版本同等的测试。 它可以用于开发和测试,但如果您希望在 Windows 上进行严肃的(耗时和资源密集型)实验, 请考虑使用 DockerWSL 使用 Linux 版本。

Gymnasium/Gym 包装器

Gymnasium 环境随 ViZDoom 一起安装。 请参见文档示例 以了解 Gymnasium API 的使用。

OpenAI-Gym 包装器也可用,要安装它们,请运行:

pip install vizdoom[gym]

请参见文档示例 以了解 Gym API 的使用。 OpenAI-Gym 包装器已被弃用,并将在未来版本中移除,以支持 Gymnasium。

示例

  • Python(包含用 PyTorch, TensorFlow 和 Theano 实现的学习示例)
  • C++

目前 Python 示例最丰富,所以我们建议即使您计划使用其他语言,也可以先查看它们。API 对所有语言几乎相同。

另请参见 教程

原版 Doom 图形

遗憾的是,我们无法与 ViZDoom 一起分发原版 Doom 图形。 如果您拥有原版 Doom 或 Doom 2 游戏,您可以通过将 doom.waddoom2.wad 放置在您的工作目录或 vizdoom 包目录中来替换 Freedoom 图形。

或者,任何基本的游戏 WAD(包括其他 Doom 引擎游戏和自定义/社区游戏)都可以使用,通过set_doom_game_path/setDoomGamePath 方法指向它即可。

文档

详细的 ViZDoom 类型和方法描述请参见文档

ZDoom 引擎和 ACS 脚本语言的完整文档请参见 ZDoom Wiki

有用的文章(适用于希望创建自定义环境/场景的高级用户):

超赞的 Doom 工具/项目

  • SLADE3 - 一款适用于 Linux、MacOS 和 Windows 的出色 Doom 地图(场景)编辑器。
  • Doom Builder 2 - 另一款适用于 Windows 的出色 Doom 地图编辑器。
  • OBLIGE - Doom 随机地图生成器,PyOblige 是其简单的 Python 封装。
  • Omgifol - 优秀的 Python 库,用于操作 Doom 地图。
  • NavDoom - 用于 ViZDoom 的迷宫导航生成器(类似于 DeepMind Lab)。
  • MazeExplorer - 更复杂的 ViZDoom 迷宫导航生成器。
  • Sample Factory - 为 ViZDoom 提供的高性能强化学习框架。
  • EnvPool - 为 ViZDoom 提供的高性能矢量化环境。
  • Obsidian - Doom 随机地图生成器,OBLIGE 的延续项目。
  • LevDoom - ViZDoom 中通用化基准测试,具有视觉复杂度的难度等级。
  • COOM - ViZDoom 中的持续学习基准测试,提供具有多样目标的任务序列。

贡献

这个项目在我们空闲时间维护和开发。欢迎所有错误修复、新示例、场景和其他贡献!我们也对功能创意和设计建议持开放态度。

我们为 ViZDoom 的未来开发工作提供了一个路线图,请访问这里

许可

ViZDoom 原始代码使用 MIT 许可。ZDoom 引用了几种来源的代码,具有不同的许可方案

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

稿定AI

稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号