使用YOLOv11制作打地鼠游戲輔助器完整指南
1. 環(huán)境準(zhǔn)備
1.1 安裝Python
- 下載安裝Python 3.9:Python官網(wǎng)
- 驗證安裝:
python --version
1.2 安裝核心依賴
pip install torch torchvision torchaudio
pip install ultralytics
pip install labelimg
pip install numpy pyautogui opencv-python
1.3 下載預(yù)訓(xùn)練模型
下載YOLOv11n模型:
https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n.pt
2. 數(shù)據(jù)集準(zhǔn)備
2.1 目錄結(jié)構(gòu)
icon/
├── images/
│ ├── train/ # 訓(xùn)練圖片
│ └── val/ # 驗證圖片
└── labels/
├── train/ # 訓(xùn)練標(biāo)簽
└── val/ # 驗證標(biāo)簽
2.2 數(shù)據(jù)標(biāo)注
- 啟動labelImg:
labelimg - 標(biāo)注步驟:
- 打開目錄:
icon/images/train - 設(shè)置輸出目錄:
icon/labels/train - 選擇YOLO格式
- 標(biāo)注地鼠出現(xiàn)區(qū)域為"mouse"
- 打開目錄:
3. 模型訓(xùn)練
3.1 配置文件
icon.yaml內(nèi)容:
path: icon
train: images/train
val: images/val
names:
0: mouse
3.2 訓(xùn)練腳本
train.py:
from ultralytics import YOLO
model = YOLO("yolo11n.pt") # 加載預(yù)訓(xùn)練模型
if __name__ == '__main__':
model.train(
data='icon.yaml',
workers=0,
epochs=300,
batch=16,
)
3.3 啟動訓(xùn)練
python train.py
4. 游戲輔助實現(xiàn)
4.1 模型應(yīng)用
訓(xùn)練完成后,最佳模型保存在:
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)
# 目標(biāo)檢測
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. 優(yōu)化建議
5.1 性能優(yōu)化
-
截圖區(qū)域限制:
# 只截取游戲區(qū)域 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 功能增強(qiáng)
-
置信度過濾:
if box.conf > 0.7: # 只處理置信度>70%的檢測 pg.doubleClick(x, y) -
多目標(biāo)處理:
# 優(yōu)先點擊最近出現(xiàn)的目標(biāo) boxes = sorted(results[0].boxes, key=lambda b: -b.conf)
6. 注意事項
-
游戲兼容性:
- 確保游戲窗口保持在前臺
- 分辨率設(shè)置應(yīng)與訓(xùn)練數(shù)據(jù)一致
-
防檢測機(jī)制:
- 隨機(jī)化點擊間隔
- 添加鼠標(biāo)移動軌跡
-
倫理提醒:
- 本教程僅用于學(xué)習(xí)目的
- 在多人游戲中使用自動化腳本可能違反服務(wù)條款
7. 常見問題解決
7.1 檢測不準(zhǔn)確
- 增加訓(xùn)練數(shù)據(jù)量
- 調(diào)整訓(xùn)練參數(shù)(如增大epochs)
- 檢查標(biāo)注質(zhì)量
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)

浙公網(wǎng)安備 33010602011771號