{"id":13672493,"url":"https://github.com/FengQuanLi/WZCQ","last_synced_at":"2025-04-27T22:32:17.932Z","repository":{"id":37845919,"uuid":"382894700","full_name":"FengQuanLi/WZCQ","owner":"FengQuanLi","description":"用基于策略梯度得强化学习方法训练AI玩王者荣耀","archived":false,"fork":false,"pushed_at":"2021-11-16T09:31:23.000Z","size":109,"stargazers_count":1594,"open_issues_count":15,"forks_count":394,"subscribers_count":18,"default_branch":"main","last_synced_at":"2024-11-11T10:42:29.868Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FengQuanLi.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-07-04T16:10:09.000Z","updated_at":"2024-11-11T10:27:55.000Z","dependencies_parsed_at":"2022-07-12T17:02:20.490Z","dependency_job_id":null,"html_url":"https://github.com/FengQuanLi/WZCQ","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FengQuanLi%2FWZCQ","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FengQuanLi%2FWZCQ/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FengQuanLi%2FWZCQ/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FengQuanLi%2FWZCQ/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FengQuanLi","download_url":"https://codeload.github.com/FengQuanLi/WZCQ/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251219601,"owners_count":21554444,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-02T09:01:37.174Z","updated_at":"2025-04-27T22:32:17.553Z","avatar_url":"https://github.com/FengQuanLi.png","language":"Python","funding_links":[],"categories":["GamePlay","Python"],"sub_categories":["HUD"],"readme":"# 用强化学习训练AI玩王者荣耀\n ## 说明\n一、这个项目由我之前的[AI玩王者荣耀](https://github.com/FengQuanLi/ResnetGPT) 项目发展而来。  \n    较之前的项目有进步，也更加复杂。用了强化学习的训练方法，并增加了一个判断回报状态的神经网络。  \n ### 注意! 这个项目处于试验阶段，再加上本人水平有限，所以并不完善，问题很多。\n二、运行环境和我之前的项目相似，请参考之前的项目，但还需要添加 PyQt5模块用于截图参考（requirements.txt）。  \n环境配置参考视频 1  \n链接：https://pan.baidu.com/s/1fJRyX-scxbeOJ2lsddTLiA   \n提取码：msr5  \n环境配置参考视频 2（minitouch安装）    \n链接：https://pan.baidu.com/s/1V8VV24Q1U8ajLKXU9HJT2w     \n提取码：rid1  \n三、我用的显卡是gtx 1660 。根据以往经验，需要1060或以上算力的显卡。  \n四、需要一台打开安卓调试并能玩王者荣耀的手机，虚拟机也可行。  \n五、需要下载[scrcpy](https://github.com/Genymobile/scrcpy/blob/master/README.zh-Hans.md)  的windows版本。 把所有文件解压到项目根目录即可（这是我的笨办法） 。  \n\n六、pyminitouch库运行时会自动安装minitouch。如果无法自动安装则需要手动安装[minitouch](https://github.com/openstf/minitouch) ，比较麻烦。  \n还有，minitouch不支持Android10及以上系统  \n七、本人用的手机分辨率是1080*2160的，本代码并没有针对不同的手机做优化。不同的手机minitouch命令中所描述的位置会有差异，需要对代码做出相应调整，请务必注意。  \n八、注意游戏的布局（摇杆和按键移向两边）务必要一样，可参考B站视频[B站视频](https://www.bilibili.com/video/BV13V411W7aW) 。  \n\n  \n\n\n## 运行游戏AI\n  \n一、首先下载主模型 你可以从[google云盘](https://drive.google.com/file/d/10NXGuEUYuRJyQvPN1kXxkBekoar3gwME/view?usp=sharing) 下载训练过的模型，也可以百度网盘下载  \n链接：https://pan.baidu.com/s/1ZMCierCZkskEsgjj_wwwyw   \n提取码：oiar   \n后放入weights文件夹下  \n注意！要加载不同的模型请 在 模型_策略梯度.py 261行更改。\n\n\n二、先运行 “启动和结束进程.py” 启动scrcpy\n\n三、启动王者荣耀进入5v5人机对战    运行 “训练数据截取_A.py” 即可。\n## 生成训练数据（半自动）\n运行 “训练数据截取_A.py” 这时就可以生成训练用的数据。  \n按\"i\"键则结束或则是重新运行  \n按键'w' 's ' 'a' 'd'控制方向  左、下、右箭头对应是1、2、3技能，上箭头长按则攻击。其它按键请参考源码。   \n注意！！ 如果用按键控制则会记录按键操作数据，否则会记录AI玩游戏的数据。  \n根据我的经验，随着模型训练次数增加，手动干预的次数会越来越小。但总体来说训练数据的获取依然需要人为干预，因为游戏结束\n后要重新开始需要手动操控（我并没有做自动化脚本）。\n\n# 如何训练主模型\n一、下载状态判断模型 你可以从[google云盘](https://drive.google.com/file/d/1eqy-xX29sjEguuQI_1m8qaLEX3g4KAQ7/view?usp=sharing) 下载训练过的模型，也可以百度网盘下载  \n链接：https://pan.baidu.com/s/1-UCuPutZQck3Iawot9bGrw \n提取码：545t  \n后放入weights文件夹下 \n二、数据预处理  \n将图片用resnet101预处理后再和对应操作数据一起处理后用numpy数组储存备用。  \n具体要做的就是运行 “处理训练数据5.py”   \n三、训练  \n预处理完成以后运行 “训练X.py”即可。  \n注意！模型保存路径 在 模型_策略梯度.py 295和296行更改。  \n我的经验是：在原有模型上进行30-40局游戏，训练两轮（会保存两次）即可。\n# 如何训练状态判断模型\n状态判断模型实际上是一个图像分类的神经网络，用了和主模型基本一样结构，只是参数不同。  \n一、获取标注数据  \n标注数据是在游戏运行过程中进行标注的，运行 状态标注.py    \nKey.left 击杀小兵或野怪或推掉塔\nKey.down 击杀敌方英雄\nKey.right 被击塔攻击\nKey.up 被击杀  \n注意这里会加载的标注模型自动参与标注数据以减轻标注工作负担。  \n二、校正标注数据  \n前一步获取的标注数据是不准确的，需要手动校准。  \n运行 筛选事件特征图片.py   \n具体操作参考 代码68至81行  注意其中“过”表示认同原始标注。  \n三、训练  \n运行 训练状态判断模型A.py \n# 其它问题\n源码中保留了一些试验过程中的废代码。\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFengQuanLi%2FWZCQ","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FFengQuanLi%2FWZCQ","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFengQuanLi%2FWZCQ/lists"}