本项目在本机识别《Stick Fight: The Game》画面中的存活火柴人,类别为红、蓝、绿、黄。它不向游戏发送键盘、鼠标或网络操作。
安装 Python 3.10–3.13 和 Docker Desktop。先按 PyTorch CUDA 安装页安装与你 NVIDIA 驱动匹配的 PyTorch,再执行:
py -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
pip install -e .确认 GPU:python -c "import torch; print(torch.cuda.is_available())"。
用无边框 1920×1080 运行游戏,每局/地图建立独立 session;建议总计 30–45 分钟、覆盖四种颜色和各种动作。
python scripts/record_session.py --session 20260715_map01 --minutes 15
python scripts/extract_frames.py data/raw/20260715_map01/gameplay.mp4 --session 20260715_map01
python scripts/extract_frames.py data/raw/20260715_map01/gameplay.mp4 --session 20260715_map01_fast --fast-action在本地 CVAT 标注并导出 YOLO 格式。完整标签规则在 docs/annotation.md。不要混合不同 session 的帧;将每个会话放到 data/annotated/sessions//{images,labels}。
python scripts/build_dataset.py
python scripts/train.py --name v1
python scripts/evaluate.py --weights runs/train/v1/weights/best.pt
python scripts/export_onnx.py --weights runs/train/v1/weights/best.ptbuild_dataset.py 按会话 70/20/10 切分 train/val/test,校验框边界,输出 data/dataset/report.json。首版至少采集 4,000 个已标注角色实例,四类尽量均衡。
将导出的模型保存为 models/best.onnx,游戏窗口标题应包含 Stick Fight:
python -m stickfight_ai.runtime --window-title "Stick Fight" --weights models/best.onnx
Invoke-RestMethod http://127.0.0.1:8765/latest程序显示点击穿透的透明框,并只监听 127.0.0.1:8765。响应中的 bbox_xyxy 与 center_xy 均相对游戏客户区左上角;center_norm 在 0–1 范围。
pytest上线前检查独立测试集 mAP50、每类 AP50、实时 FPS 和 30 分钟稳定性。若某颜色、地图、遮挡或特效表现差,优先补录该场景并重训。