| # HonorNet 🎮 |
|
|
| > 一个基于行为克隆的王者荣耀AI,从零开始,在Mac上训练,在Android模拟器中运行。 |
|
|
| [](LICENSE) |
| [](https://www.python.org/) |
| [](https://pytorch.org/) |
|
|
| ## ✨ 项目简介 |
|
|
| **HonorNet** 是一个完全开源的王者荣耀AI项目。它的特点: |
|
|
| - 🍎 **在Mac上训练**:利用Apple Silicon的MPS加速 |
| - 📱 **控制Android模拟器**:通过ADB截图和发送触摸事件 |
| - 🧠 **行为克隆**:学习人类玩家的操作数据 |
| - 🎯 **16个动作空间**:移动8方向 + 技能 + 攻击 + 战术 |
| - 🔓 **MIT协议**:完全开源,任意使用 |
|
|
| 这不是一个“调用API”的demo,而是一个**从数据采集到模型训练再到部署**的完整工程。 |
|
|
| ## 🎯 项目状态 |
|
|
| | 阶段 | 状态 | |
| |------|------| |
| | 数据采集 | ✅ 完成(886帧标注) | |
| | 行为克隆训练 | ✅ 完成(验证准确率54.5%) | |
| | 模拟器部署 | ✅ 完成 | |
| | 强化学习微调 | 🚧 进行中 | |
|
|
| ## 🏗️ 项目结构 |
|
|
| ``` |
| HonorNet/ |
| ├── data/ # 数据处理脚本 |
| ├── models/ # 模型定义 + 训练 |
| ├── inference/ # 模拟器控制 + AI运行 |
| ├── config.py # 配置文件 |
| └── requirements.txt # 依赖 |
| ``` |
|
|
| ## 🚀 快速开始 |
|
|
| ### 1. 环境配置 |
|
|
| ```bash |
| # 克隆仓库 |
| git lfs clone https://huggingface.co/clarenceleo/HonorNet_v1 |
| cd HonorNet_v1 |
| |
| # 安装依赖 |
| pip install -r requirements.txt |
| |
| # 安装ADB(macOS) |
| brew install android-platform-tools |
| ``` |
|
|
| ### 2. 准备数据 |
|
|
| 将王者荣耀1v1录屏放入 `data/raw_videos/`,然后: |
|
|
| ```bash |
| # 抽帧 |
| python data/extract_frames.py |
| |
| # 预处理 |
| python data/preprocess.py |
| |
| # 标注动作(可选,我们提供了标注工具) |
| python data/annotate.py |
| ``` |
|
|
| ### 3. 训练模型 |
|
|
| ```bash |
| python models/train_bc.py |
| ``` |
|
|
| ### 4. 让AI打游戏 |
|
|
| 1. 启动Android模拟器,打开王者荣耀1v1模式 |
| 2. 运行AI: |
|
|
| ```bash |
| python inference/run_ai.py |
| ``` |
|
|
| ## 📊 训练结果 |
|
|
| 使用886帧标注数据训练50轮: |
|
|
| | 指标 | 数值 | |
| |------|------| |
| | 最佳验证准确率 | **54.49%** | |
| | 随机基线 | 6.25% | |
| | 训练准确率 | 95.48% | |
|
|
| **54.5%的准确率意味着AI学会了**: |
| - 根据画面判断移动方向 |
| - 何时普攻、放技能 |
| - 何时回城、升级 |
|
|
| ## 🛠️ 技术栈 |
|
|
| - **PyTorch**:深度学习框架 |
| - **ADB**:Android调试桥,控制模拟器 |
| - **OpenCV**:图像处理 |
| - **Android Studio AVD**:模拟器运行环境 |
|
|
| ## 📈 后续计划 |
|
|
| - [ ] 强化学习微调(PPO) |
| - [ ] 支持更多英雄 |
| - [ ] 5v5多智能体 |
| - [ ] 实时学习(边打边学) |
|
|
| ## 🤝 贡献 |
|
|
| 模型开发与训练数据清洗标注:李天祎(1637321445@qq.com) |
| 训练数据录制与提供:姜懿原 |
|
|
| 欢迎提交Issue和Pull Request! |