使用YOLOv11制作打地鼠游戏辅助器完整指南
1. 环境准备
1.1 安装Python
- 下载安装Python 3.9:Python官网
- 验证安装:
python --version
1.2 安装核心依赖
pip install torch torchvision torchaudio
pip install ultralytics
pip install labelimg
pip install numpy pyautogui opencv-python
1.3 下载预训练模型
下载YOLOv11n模型:
https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n.pt
2. 数据集准备
2.1 目录结构
icon/
├── images/
│ ├── train/ # 训练图片
│ └── val/ # 验证图片
└── labels/
├── train/ # 训练标签
└── val/ # 验证标签
2.2 数据标注
- 启动labelImg:
labelimg - 标注步骤:
- 打开目录:
icon/images/train - 设置输出目录:
icon/labels/train - 选择YOLO格式
- 标注地鼠出现区域为"mouse"
- 打开目录:
3. 模型训练
3.1 配置文件
icon.yaml内容:
path: icon
train: images/train
val: images/val
names:
0: mouse
3.2 训练脚本
train.py:
from ultralytics import YOLO
model = YOLO("yolo11n.pt") # 加载预训练模型
if __name__ == '__main__':
model.train(
data='icon.yaml',
workers=0,
epochs=300,
batch=16,
)
3.3 启动训练
python train.py
4. 游戏辅助实现
4.1 模型应用
训练完成后,最佳模型保存在:
runs/detect/train/weights/best.pt
4.2 辅助脚本
game_assistant.py:
import cv2
import numpy as np
import pyautogui as pg
from ultralytics import YOLO
# 初始化
yolo = YOLO('runs/detect/train/weights/best.pt')
pg.PAUSE = 0.1 # 每次操作间隔0.1秒
pg.FAILSAFE = True # 启用安全模式
while True:
if cv2.waitKey(1) == ord('q'): # 按Q退出
break
# 屏幕截图
shot = pg.screenshot()
shot_np = np.array(shot)
shot_np = cv2.cvtColor(shot_np, cv2.COLOR_RGB2BGR)
# 目标检测
results = yolo.track(shot_np, persist=True)
# 自动点击
for box in results[0].boxes:
x, y, w, h = box.xywh[0].tolist()
pg.doubleClick(x, y)
cv2.destroyAllWindows()
5. 优化建议
5.1 性能优化
-
截图区域限制:
# 只截取游戏区域 shot = pg.screenshot(region=(x, y, width, height)) -
检测间隔控制:
import time while True: start_time = time.time() # ...检测代码... elapsed = time.time() - start_time time.sleep(max(0, 0.1 - elapsed)) # 保持10FPS
5.2 功能增强
-
置信度过滤:
if box.conf > 0.7: # 只处理置信度>70%的检测 pg.doubleClick(x, y) -
多目标处理:
# 优先点击最近出现的目标 boxes = sorted(results[0].boxes, key=lambda b: -b.conf)
6. 注意事项
-
游戏兼容性:
- 确保游戏窗口保持在前台
- 分辨率设置应与训练数据一致
-
防检测机制:
- 随机化点击间隔
- 添加鼠标移动轨迹
-
伦理提醒:
- 本教程仅用于学习目的
- 在多人游戏中使用自动化脚本可能违反服务条款
7. 常见问题解决
7.1 检测不准确
- 增加训练数据量
- 调整训练参数(如增大epochs)
- 检查标注质量
7.2 运行速度慢
- 降低检测分辨率:
results = yolo.track(shot_np, imgsz=320) - 使用GPU加速:
model.to('cuda')
7.3 颜色异常
确保正确处理颜色空间:
shot_np = cv2.cvtColor(np.array(pg.screenshot()), cv2.COLOR_RGB2BGR)

浙公网安备 33010602011771号