基于yolov8的一个ai自瞄应用。能在fps游戏中实现自动瞄准,自动射击。主要使用《战地2》进行了开发和测试。
使用效果:
视频预览
开镜检测偏移配置了一个采样点,如果这个点是黑色,证明已经开启瞄准镜,此时才会进行自瞄。
对游戏进行截图,使用yolov8对游戏人物进行体姿态估计,识别出关键关节坐标,使用程序移动准星自动瞄准目标。
yolov8是基于pytorch开发的,pytorch是一个框架,提供一些基础的方法,矩阵运算,显卡调用等,yolov8在此技术上实现了自己的算法。
官方有直接给出一些例子,进行姿态估计也很简单,官方提供了一些预训练好的模型文件,.pt结尾的,程序里面直接加载就能跑了。 甚至你可以不用去官网下载这个pt文件,直接在代码里面加载,程序会判断如果当前文件夹下没有,会自动去下载。
官方提供的几个模型文件,一个比一个大,效果应该是越大越好,实际跑起来也是越大的越耗时。
https://docs.ultralytics.com/modes/predict/
实测用win32 api,pyautogui,pydirectinput都无法在战地2,cf中移动鼠标, 只有用罗技鼠标驱动成功了。参考: https://github.com/ChengWeiJian03/MouseControl
这里面给出了三个dll,都可以用。实测了MouseControl.dll,ghub_device.dll
MouseControl.dll移动的时候比 ghub_device.dll要精准。ghub_device.dll会到处乱飘。
发现开电脑后,如果python程序里面加载运行了MouseControl.dll, 后面再运行ghub_device.dll,ghub_device.dll的方法会失效。
默认安装的pytorch是使用cpu运算的。 点击torch,进入依赖包的路径,可以看到有一个version.py文件,里面有这样的内容 version = '1.13.1+cpu'
如果想使用cuda运算,需要安装一个支持cuda的pytorch版本。参考笔记: https://note.youdao.com/web/#/file/WEBc41cf6613edd00f10862ab3758dd1e43/note/WEBd5da798bfe909ef32c3a6aaaea1650fc/
进行预测时,代码可以这样写,指定用什么设备来运行
results = model(img_bgr, device="cpu")
results = model(img_bgr, device="cuda")
results = model(img_bgr, device="cuda:0")
# :0可以不写,默认就会使用:0,这里会对device进行校验的,如果不支持cuda,或者字符串输入得不对,都会报错。一个显卡应该都是用的cuda:0,不知道什么情况
# 才使用其他的。
实测用i7 cpu加载yolov8n-pose.pt进行预测有7fps,使用1050ti能达到50fps.
如何判断是否真的用上了cuda。直接在任务管理器里面是看不到的,看起来显卡负载没有增长。两个方法:
命令行中输入nvidia-smi -l 1 ,1秒钟刷新一次
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.32.03 Driver Version: 460.32.03 CUDA Version: 11.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 GeForce GTX 108... Off | 00000000:01:00.0 On | N/A |
| 34% 50C P2 70W / 280W | 1659MiB / 11178MiB | 15% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。