基于YOLOv5的FPS类游戏瞄准辅助(附可用于CSGO的模型) | 您所在的位置:网站首页 › 游戏脚本检测 › 基于YOLOv5的FPS类游戏瞄准辅助(附可用于CSGO的模型) |
本文来自作者去年写的一个小项目,项目使用YOLOv5-2.0和PyTorch,实现了一款基于目标检测算法的射击类游戏瞄准辅助,俗称“AI外挂”。(文中含项目地址及演示视频,项目中提供了作者预训练的可用于CSGO的模型。) 项目地址:https://github.com/Aa-bN/AimYolo 文章目录 一、前言1.1 项目地址1.2 项目结构1.3 注意事项 二、开发过程2.1 总体设计2.2 屏幕实时捕获2.3 鼠标定位与移动2.3.1 鼠标定位2.3.2 鼠标移动 2.4 代码重构 三、模型开发3.1 模型结构3.2 数据集3.2.1 CSGO专用数据集3.2.2 检测类别3.2.3 数据集划分3.2.4 数据分布特征3.2.5 数据示例 3.3 模型训练3.3.1 超参数3.3.2 训练结果3.3.3 预测效果 四、核心代码五、项目部署与展示5.1 项目部署5.2 使用5.3 游戏内展示 六、总结参考 一、前言本文整理自作者去年写的一个小项目,出于个人兴趣而写,为demo级别,较为粗糙,优化空间很大。灵感来源于B站up主“林亦LYi”的视频。 1.1 项目地址 已在GitHub开源,点此进入同步更新至站外博客 1.2 项目结构 PyTorch,机器学习框架YOLOv5-2.0,项目地址自瞄模块 1.3 注意事项 *本项目旨在激起深度学习、游戏安全等方面爱好者的兴趣,仅供学习交流*切勿用于盈利及违法用途,以及进行任何破坏游戏公平的行为联网测试有封号风险,推荐断网使用推荐结合Anaconda部署并使用10系显卡效果明显不如30系(o(╥﹏╥)o)值得注意的是,AI外挂几年前就已经出现,最初为YouTube上的一位创作者开发,网络上也可以找到一些版本。本项目理论上可以用于CSGO、APEX、PUBG等多种游戏,实际以CSGO为例进行了模型的开发与使用。相对于传统外挂,AI外挂多基于目标检测算法,不会修改游戏的本地内存,也不会上传恶意数据。本文后续有6个部分:开发过程、模型开发、核心代码、项目部署与展示、总结与参考。 二、开发过程本节分为总体设计、屏幕实时捕获、鼠标定位与移动和代码重构等4个部分。 2.1 总体设计项目整体分为8个模块,看图。(づ ̄3 ̄)づ╭❤~ 这里并非真正的实时,而是从屏幕截取到模型推理,再到鼠标移动,整个过程的用时很少,宏观感受为实时。废话少说,看图(づ ̄3 ̄)づ╭❤~。 以只因哥打篮球的视频为例,这个部分的效果应该是这样的。(づ ̄3 ̄)づ╭❤~ 坤哥打球实时检测 2.3 鼠标定位与移动关于鼠标的定位与移动,需要搞清几个问题,看图(づ ̄3 ̄)づ╭❤~。 重构了YOLOv5中的detect.py:保留核心模型,更改原有逻辑,添加自定义功能。看图。(づ ̄3 ̄)づ╭❤~ 更多细节留给核心代码部分。 三、模型开发本节分为模型结构、数据集和模型训练等3个部分。 3.1 模型结构采取的模型结构,看图。具体介绍可参考江佬的博客,该图也源此。(づ ̄3 ̄)づ╭❤~ 需要说明的是: 代码版本:YOLOv5-2.0选取模型:Pretrained YOLOv5s,后续训练时,以此为依托,进行不太严格的fine-tune任务类型:目标检测 3.2 数据集本小节对使用的数据集进行介绍。 3.2.1 CSGO专用数据集数据集项目地址,点此进入。时间有限,并没有进行数据集的构建,当时,这个项目解决了博主的燃眉之急。值得说明的是,该项目的创作者也附加了一些单纯的检测代码。 3.2.2 检测类别检测类别数:4,包括 ct, t, t_head, ct_head,即反恐精英,恐怖分子,恐怖分子头部,反恐精英头部。这有利于模型进行目标身体或头部的检测与锁定。 3.2.3 数据集划分图片总数:800张。博主进行手动(不够随机)划分->训练集:700张,验证集:100张。 3.2.4 数据分布特征img_250.jpg的原始图像信息、标签信息,以及一些图片的groundtruth如下。(づ ̄3 ̄)づ╭❤~ 本小节展示了训练过程中产生的数据和预测效果。 3.3.1 超参数
核心代码集中在z_captureScreen.py,z_ctypes,z_detect5.py中。 懒得写了,有空再补,相信以gie gie们的聪明才智,一定可以看明白哒,哒哒哒。(づ ̄3 ̄)づ╭❤~ 五、项目部署与展示本节分为项目部署、使用和游戏内展示等3个部分。 5.1 项目部署 A. Anaconda(推荐)和 PyTorch 的安装B. 部署 YOLOv5C. 自瞄模块的依赖库,可见项目的requirements.txt,依赖不多,也可根据报错安装 5.2 使用 进入项目目录python z_detect5.py [可选参数],例如: python z_detect5.py --view-img --classes 0 1 2 3python z_detect5.py --classes 2python z_detect5.py… 上述命令推荐在命令行中运行,在PyCharm中使用,可能出现win32相关库的报错 5.3 游戏内展示CSGO中,注意在游戏内设置中关闭数据原始输入。 CSGO人机实战 六、总结本节总结了一些问题。 小目标检测:对于小目标,存在误检,可能检测不到鼠标移动:移动速度过快,无法最大程度仿真弱点:后台实时运行的脚本 + 不自然的鼠标移动模式可能的优化方向:远程外挂;多进程提速;数据集优化(增加人物模型等);硬件性能提升(CPU+GPU)三个问题: A. 坐标不一致性 监听器和控制器不一致,即屏幕的物理尺寸 |
CopyRight 2018-2019 实验室设备网 版权所有 |