利用图像识别在射击游戏中实现辅助瞄准
高一(13)班 喻景恒
一,概述
传统辅助瞄准工具的主要实现方式是利用内存泄漏对游戏数据直接进行操作与处理,也导致容易被反作弊系统所检测与抓获。而利用图像识别进行辅助瞄准则不会有这种问题,它的操作流程与玩家类似,都分为接受图像--识别目标--移动鼠标三步,与玩家行为极为类似,难以检测。此程序仅为一次编程尝试,不会推广使用。
二、程序思路
1、接受图像部分。利用pyautogui库对指定区域进行截屏,原本设想对整个屏幕进行截屏,测试后发现会导致截屏过程与识别过程变慢,于是改为对位于屏幕中心的一个700x500的矩形内的目标进行截图。
2、识别目标部分。利用opencv库提供的haar级联分类器进行人脸识别,获取人脸位置,计算距离准星最近的人脸。
3、移动鼠标部分。利用pyautogui库中的函数进行鼠标移动,将鼠标移动到指定位置。
4、循环。
三、改进思路
1、识别目标部分。由于时间限制,目前暂时利用opencv库提供的人脸识别分类器进行识别。由于针对的是人脸而非人头,会导致识别能力下降,计划下一阶段自行制作与训练新模型并接入此程序。
2、全局热键监听。每次启动都需要运行程序才能使用。计划添加一个键盘监听功能,在按下快捷键时开始识别,以提高程序的灵活性。
3、利用PyQt5进行截图及鼠标移动。PyQt5直接使用WindowsAPI,更加快捷,可提高运行速度。
4、邮差问题。一次识别可能识别出多个目标,目前的解决方案是选取最近的人脸,若之后程序的效率优化到足够的地步,可尝试以最短路径不重复依次锁定所有目标。
四、对比缺点
一、对比传统内存操作,图像识别具有不确定性,亦即每一次识别都未必可以准确,且能发挥的帮助仍属于玩家可以达到的实力范围内。
二、识别速度。对比传统内存操作,图像识别使得每一次检测的速度大大降低。
五、游戏示例
如图:

评论
一起把问题聊明白正在准备评论区…
评论区包含自动审核系统,提交后经审核展示。邮箱仅用于评论通知,不会公开展示。请友善交流,勿在留言中填写敏感信息。