putao520 / AIAssist

GameAssist是一个AI游戏助手,结合OpenCv、OpenCvSharp4、ssd_mobilenet_v3等技术,对游戏对象进行识别,支持自动瞄准/自动开枪等功能,提升玩家的游戏体验

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

GameAssist是一个AI游戏助手,结合OpenCv、OpenCvSharp4、ssd_mobilenet_v3等技术,对游戏对象进行识别,支持自动瞄准/自动开枪等功能,提升玩家的游戏体验;

工具和普通游戏外挂不同:
普通游戏外挂:通过需改游戏执行代码/修改游戏内存数据/拦截游戏网络通讯等手段,破坏游戏进程,达到提升目的,这些手段是违法的。
GameAssist:使用AI技术进行屏幕检测,原理是用人工智能技术来玩游戏,不使用任何破坏游戏进程的手段。


一、技术栈说明:

1、图像处理框架:
使用OpenCv进行图像封装及AI对象识别;
使用OpenCvSharp4封装库,将OpenCv引入C#开发运行环境;
使用windwos gdi32的Bitmap的Graphics类的CopyFromScreen,获取屏幕像素作为输入图像;

2、AI模型选择:
使用OpenCv的DNN网络模块,加载AI模型进行图像检测;
使用tensoflow的对象检测模型ssd_mobilenet_v3,作为人像检测模型;

注意:OpenCV DNN 模块调用 TensorFlow 训练的目标检测模型时,需要一个额外的配置文件,其主要是基于与 protocol buffers(protobuf) 格式序列化图(graph) 相同的文本格式版本.
OpenCV提供对应的python脚本,根据模型文件来生成模型配置文件:
生成OpenCV生成模型配置文件命令参考:
docker run -it -v /root/123:/root/123 tensorflow/tensorflow:latest-py3 /bin/bash
python tf_text_graph_ssd.py --input frozen_inference_graph.pb --config pipeline.config --output ssd_mobilenet_v2.pbtxt
python tf_text_graph_ssd.py --input frozen_inference_graph.pb --config pipeline.config --output ssd_mobilenet_v3.pbtxt

3、键盘鼠标操作设置:
很多游戏禁止鼠标键盘hook,外部进程无法通过传统事件机制向游戏进程发送鼠标键盘事件。
要实现游戏不会拦截的键盘鼠标操作,需要使用可编程的鼠标键盘硬件设备,这些硬件设备提供程序可以调用的SDK,控制硬件设备来发送鼠标键盘事件。
这种鼠标键盘设备,淘宝上有,USB接口的,具体信息这里不方便列出来,各位兄弟自己去找。


二、测试效果:

1、运行环境:
windows10,16核CPU,16G内存,8G rtx3070显卡

2、测试游戏:
目前只测试了PUBG的绝地求生、腾讯的逆战两款游戏。
逆战图像里面的图像识别准确率比绝地求生高,效果也更好,借助工具辅助,个人由一个菜鸟升级为中高级玩家。

游戏效果截图:
img
img
img
img


三、后续优化方向:

1、模型调优1:目前直接使用了预训练模型,图像识别效果一般。后续需要针对具体的游戏,整理训练样本,进行调优训练,提升识别准确率;(这个需要手工截图、标注,太繁琐,目前实在懒得做)
2、模型调优2:目前只使用对象识别模型,后续尝试对象识别模型和对象追踪算法进行组合,提升模型识别效率;
3、鼠标追踪算法调优:3D游戏鼠标移动瞄准算法,需要不断尝试调优;
4、技术栈升级:opencv、AI模型等,全栈技术紧追业界发展,最快升级到新版本;


四、引用的框架及项目:

1、intel贡献的大神级图像处理框架OpenCv:
https://opencv.org/

OpenCV DNN 模块目前支持多种AI对象检测模型推理运行:
https://github.com/opencv/opencv/tree/master/samples/dnn
https://github.com/opencv/opencv/wiki/TensorFlow-Object-Detection-API
https://github.com/openvinotoolkit/open_model_zoo

2、OpenCvSharp4封装库,将OpenCv引入C#开发运行环境;
https://github.com/shimat/opencvsharp
在Visual Studio中,可以通过NuGet安装OpenCvSharp程序包;

3、谷歌tensoflow的对象检测模型ssd_mobilenet_v3;
https://github.com/tensorflow
https://github.com/tensorflow/models
https://github.com/tensorflow/models/blob/master/research/slim/nets/mobilenet/README.md
https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/tf2_detection_zoo.md
https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/tf1_detection_zoo.md


五、联系方式:

日常工作繁忙,不能及时回复,各位可以在 issues 区交流。

About

GameAssist是一个AI游戏助手,结合OpenCv、OpenCvSharp4、ssd_mobilenet_v3等技术,对游戏对象进行识别,支持自动瞄准/自动开枪等功能,提升玩家的游戏体验

License:Apache License 2.0


Languages

Language:C# 98.6%Language:Python 1.4%