外挂、脚本是一些玩家一直追求的东西,
所以我决定用一些AI 自动监测的一些算法,
让我们实现自动锁头的脚本。(PS:正规游戏,小心封号)
什么是自动锁头脚本?
这里就不在过多解释了,就是锁定敌人并自动射击,
我们可以使用生活中的一些案例来实现我们这个小测试,例如,高速的违规拍照、行人流量自动检测系统,还有安全识别检测,如果晚上有陌生人考经,则将灯对准那个人或打开警报系统。
然后我使用一些算法为我的模型生成训练数据以准确检测敌人。
测试环境:
- i7–7700k CPU 和 Nvidia 1080TI GPU
- 操作系统 Windows 10
- CUDA 10.1
- cuDNN v7.6.5
- TensorRT-6.0.1.5
- Tensorflow-GPU 2.3.1
这里建议在Ubuntu系统测试,因为在 Ubuntu 上运行 TensorRT 比在 Windows 10 上运行要容易得多(后面才发现的)
首先必须安装TensorFlow
、Python 3
、Cuda
、Cudnn
等包,准备TensorFlow
环境。
其次,还要下载Steam
和CSGO
。
下载玩 Steam 和 CSGO 后,我们需要下载训练好的模型库。我已经压缩了我训练好的模型,并将其放入 checkpoints 文件夹中。
现在,一切准备就绪。
我的yolov3/configs.py文件已经配置为自定义训练对象检测,input_size值为 416。
然后运行。
YOLO_INPUT_SIZE如果你需要更高的准确性,你可以更改,但是根据我的测试掉帧很严重。
现在,当您在后台运行 CSGO 游戏时,运行YOLO_aimbot_main.py脚本。
当 YOLO 检测到屏幕上的物体时,他就会自动锁定敌人并击杀
PS:如果鼠标在游戏中飞来飞去,请打开游戏控制台并键入m_rawinput 0,这会禁用原始游戏输入。此外,你可能需要更改灵敏度或其他次要设置。
结果:
上图!
首先,我大概使用了大约 1500 张图像来训练这个自动模型。
大部分训练数据是我参考别人的方法生成的。
为了让它更准确,建议在不同的地图中使用超过 10,000 张图像,
依此类推,这样我们就可以确保我们的模型不会错误地检测到敌人。
无论如何,我运行了三个不同的测试实例:
- 输入大小为416 的TensorFlow检测:
- TensorRT INT8检测,输入大小为416:
- TensorRT INT8检测,输入大小为608:
那么,这些每秒帧数结果告诉我们什么?
一开始,我使用了没有 TensorRT 优化的标准 YOLO TensorFlow 检测。
这是在使用 1080TI GPU 的 Windows 10 上可以获得的结果,
当然如果你有更好的GPU,则可以获得更好的结果。
然后我将我的 TensorFlow 模型转换为输入大小为 416 的 TensorRT INT8 模型。
我们会看到FPS 增加了一倍多。
最后一个是输入大小为 608 的 TensorRT INT8 模型。
可以看到FPS不是很高,但我确信准确度非常高。
如果我有一张 NVIDIA 3080 甚至 3090,那真不知道会发生什么。虽然目前效果还不错吧