Yolov5使用Ai实现FPS游戏自动瞄准

这篇具有很好参考价值的文章主要介绍了Yolov5使用Ai实现FPS游戏自动瞄准。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

自动瞄准技术已经成为了许多FPS游戏玩家们追求的终极目标之一。近年来,随着深度学习技术的发展,越来越多的自动瞄准工具开始出现,其中最为流行且表现出色的莫过于 Yolo 系列目标检测算法,特别是 Yolov5。本文将介绍如何使用 Yolov5 算法实现 FPS 游戏自动瞄准。

  1. xy坐标点与当前鼠标的xy坐标点距离计算

在实现自动瞄准功能中,我们首先需要计算敌人距离屏幕的 xy 坐标点与当前鼠标的 xy 坐标点的距离。这可以通过勾股定理来实现。对于鼠标当前坐标为 (x1, y1),目标敌人坐标为 (x2, y2),距离为 d,则有:

d = math.sqrt((x1 - x2) ** 2 + (y1 - y2) ** 2)
  1. 获取窗口句柄,本文使用的是根据窗口名称获取句柄

在自动瞄准时,我们需要控制鼠标在游戏窗口内移动,因此需要获取游戏窗口的句柄。在本文中,我们采用根据窗口名称获取句柄的方式,代码如下:

import win32gui

hwnd = win32gui.FindWindow(None, window_name)

其中,窗口名称是游戏窗口的标题,可以通过查看窗口属性来获取。

  1. 推理方式 GPU

在使用 Yolov5 算法进行目标检测时,推理速度非常重要。为了实现高效的推理,我们可以使用 GPU 进行加速。这可以通过设置参数 --device gpu 来实现:

python detect.py --source 0 --weights yolov5s.pt --device gpu
  1. 屏幕宽高获取和敌人坐标获取和计算哪个是最近的敌人并控制鼠标去敌人身上和头上

为了确定敌人的坐标并控制鼠标移动到敌人身上,我们需要获取游戏窗口的宽度和高度,并使用 Yolov5 来检测敌人的位置。如果有多个敌人,我们可以通过计算距离来确定最近的敌人,并控制鼠标移动到其身上或头上。代码如下:

import mss
import cv2
import numpy as np
import pyautogui

with mss.mss() as sct:
    monitor = {"top": 40, "left": 0, "width": 800, "height": 640}

    while True:
        # 获取屏幕截图并处理
        img = np.array(sct.grab(monitor))
        img = cv2.cvtColor(img, cv2.COLOR_RGBA2BGR)

        # 使用 Yolov5 进行目标检测
        results = detect_objects(img)

        # 计算敌人和鼠标的距离,选择最近的敌人
        closest_enemy = select_closest_enemy(results)
        if closest_enemy is None:
            continue

        # 控制鼠标移动到最近的敌人身上
        position = get_enemy_position(closest_enemy)
        pyautogui.moveTo(position[0], position[1])
  1. 鼠标按键状态获取

最后,我们需要获取鼠标按键的状态,以便进行自动射击。这可以使用 pyautogui 库来实现,代码如下:

import pyautogui

while True:
    # ...

        # 检测鼠标左键是否按下
        if pyautogui.mouseDown(button="left"):
            # 自动射击
            pass

完整代码如下:

import mss
import cv2
import numpy as np
import pyautogui

# Yolo 相关代码
def detect_objects(image):
    # ...
    return results

def select_closest_enemy(objects):
    # ...
    return closest_enemy

def get_enemy_position(enemy):
    # ...
    return position

# 屏幕宽度和高度
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 640

with mss.mss() as sct:
    monitor = {"top": 40, "left": 0, "width": SCREEN_WIDTH, "height": SCREEN_HEIGHT}

    while True:
        # 获取屏幕截图并处理
        img = np.array(sct.grab(monitor))
        img = cv2.cvtColor(img, cv2.COLOR_RGBA2BGR)

        # 使用 Yolov5 进行目标检测
        results = detect_objects(img)

        # 计算敌人和鼠标的距离,选择最近的敌人
        closest_enemy = select_closest_enemy(results)
        if closest_enemy is None:
            continue

        # 控制鼠标移动到最近的敌人身上
        position = get_enemy_position(closest_enemy)
        pyautogui.moveTo(position[0], position[1])

        # 检测鼠标左键是否按下
        if pyautogui.mouseDown(button="left"):
            # 自动射击
            pass

总体来说,使用 Yolov5 算法实现 FPS 游戏自动瞄准非常有挑战性,需要在目标检测算法优化和实现细节等方面下大力气。同时,在实现自动射击时,需要注意游戏的反作弊机制以避免被封禁。如果您想要尝试实现此功能,建议先研究游戏反作弊机制和相关法律法规,并在此基础上进行技术实现。文章来源地址https://www.toymoban.com/news/detail-485970.html

到了这里,关于Yolov5使用Ai实现FPS游戏自动瞄准的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • YOLOV5 自动瞄准(OpenVino)(附源码)

    参考文章:基于OpenVINOTM2022.2和蝰蛇峡谷优化并部署YOLOv5模型_openvino 前篇文章:基于YOLOV5的自动瞄准(附代码)_yolov5 自瞄_RedWhiteLuo的博客 之前已经通过Pytroch 调用 NVIDIA GPU 进行推理,但是在实际使用中,独显肯定是最好空闲出来的, 因此我们可以利用闲置的硬件——核显,

    2024年02月08日
    浏览(33)
  • 如何使用Django 结合WebSocket 进行实时目标检测呢?以yolov5 为例,实现:FPS 25+ (0: 系统简介与架构)

    访问:http://127.0.0.1:8000/ObjectDetection/ObjectDetection1/ 先看下效果:两个摄像头实时展示 之后更新了效果,打算加上检测结果和 FPS ,结果加上FPS 实测了一下,好家伙一秒30-40 帧都行 在我的3060 上,这是python 写的 前后端实时检测你敢信,还两个摄像头机位。

    2023年04月08日
    浏览(17)
  • Jetson Nano配置YOLOv5并实现FPS=25

    JetPack 4.6——2021.8 yolov5-v6.0版本 使用的为yolov5的yolov5n.pt,并利用tensorrtx进行加速推理,在调用摄像头实时检测可以达到FPS=25。 在打开的文档的末尾添加如下: 保持并退出,终端执行 1.打开终端输入: 2.修改nvzramconfig.sh文件 3.重启Jetson Nano 4.终端中输入: 可查看到swap已经变为

    2024年02月13日
    浏览(14)
  • Python-Pytorch框架-实现AI自动瞄准(下)

    OpenCV与Ptorch框架搭建一个利用目标骨骼关键点检测实现AI自动瞄准的娱乐项目(该项目仅供学习OpenCV、Ptorch框架、游戏自动化等参考)。 该项目思路大致分为如下步骤: 利用Pywin32以及OpenCV获取游戏窗口图像 数据集获取(本文为17骨骼关键点) 搭建Ptorch训练框架 利用深度学习

    2023年04月08日
    浏览(22)
  • YOLOV5的FPS计算问题

    data换为自己的数据集对应的yaml文件 weights换为训练自己数据集得到的权重 batchsize这里要设置为1 pre-process:图像预处理时间,包括图像保持长宽比缩放和padding填充,通道变换(HWC-CHW)和升维处理等; inference:推理速度,指预处理之后的图像输入模型到模型输出结果的时间;

    2024年02月11日
    浏览(21)
  • yolov5-计算fps(新加入:4. 记录运行B导yolov7-tiny后计算fps的方法)

    参考自:睿智的目标检测21——如何调用摄像头进行目标检测 FPS简单来理解就是图像的 刷新频率 ,也就是 每秒多少帧 假设目标检测网络处理1帧要0.02s,此时FPS就是50 #---------------------------分割线-------------------------------- # 也就是说在计算FPS的时候,会强调 每秒 、 每张 。因

    2024年02月11日
    浏览(18)
  • 基于yolov7的FPS游戏(csgo,cf,cfhd)自瞄开发

    1.训练yolo识别人物导出pt文件 链接: yolov7训练自己的数据集-gpu版 2.使用win32进行屏幕截图和鼠标移动 3.使用导出的pt文件进行推理(pt文件将在完善后发出) 屏幕截图获取屏幕-检测目标的坐标-取中心点-计算距离获取最近的敌人坐标-移动鼠标到中心点 数据集整理后上传 鼠标移动

    2024年02月12日
    浏览(31)
  • FPS游戏自动枪械识别+压枪(以PUBG为例)

    本篇分享PUBG自动识别+压枪宏实现的完整思路,同样的思路可套用在其他FPS游戏上,开发语言使用Python3.9。 项目完整代码见:https://github.com/Cjy-CN/PUBGRecognizeAndGunpress 自动压枪简单的理解就是控制鼠标下移。但是,鼠标下移量的多少却是多方面因素的共同影响结果,以PUBG(绝地

    2024年02月05日
    浏览(18)
  • 使用Vitis AI 部署YOLOv5至KV260

    目录 一、相关介绍 二、相关链接参考 三、模型训练 四、环境部署 五、量化编译 六、上机KV260 如题,此博客记录初步使用Vitis-AI 部署YOLOv5目标检测网络至KV260边缘设备中。 由于整个过程需要注意环境、软件包等之间的版本匹配,我给出所使用的相关版本: 名称 ubantu GPU GP

    2024年04月28日
    浏览(26)
  • 使用yolov5和强化学习训练一个AI智能欢乐斗地主(一)

    你好! 欢迎阅读我的文章,本章将介绍,如何使用yolov5和强化学习训练一个AI斗地主,本项目将分为三个部分,其中包含(yolov5目标检测,pyqt5页面搭建,强化学习训练出牌)。为什么会做这个项目呢,主要是出于作者本人感兴趣,我也喜欢打牌,即使这个项目可能在多数项

    2024年02月11日
    浏览(17)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包