| ---
|
| language:
|
| - zh
|
| - en
|
| license: mit
|
| tags:
|
| - pytorch
|
| - computer-vision
|
| - cookie-run
|
| - game-ai
|
| - cnn
|
| ---
|
|
|
| # 🍪 Cookie Run AI Bot Model (跑跑薑餅人 AI 決策模型)
|
|
|
| 基於 PyTorch 訓練的卷積神經網路 (CNN) 模型,用於即時解析《跑跑薑餅人:烤箱大逃亡》遊戲畫面並做出操作決策。
|
|
|
| ## ⚙️ 模型資訊 (Model Info)
|
| - **架構**: 3層 Conv2D + MaxPool2D + 全連接分類層 (CookieNet)
|
| - **參數量**: 約 1,152 萬 (11.5M params)
|
| - **輸入尺寸**: 200 x 112 (RGB / BGR 影像,正規化至 0.0 ~ 1.0)
|
| - **輸出動作 (Classes)**:
|
| - `0: None` (無動作 / 正常奔跑)
|
| - `1: Jump` (跳躍)
|
| - `2: Slide` (滑行)
|
| - `3: Enter` (發動技能)
|
|
|
| ## 🚀 如何在 Python 中使用 (Usage)
|
|
|
| ```python
|
| import torch
|
| import cv2
|
| import numpy as np
|
| from model import CookieNet
|
|
|
| device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
|
| model = CookieNet().to(device)
|
| model.load_state_dict(torch.load("cookie_bot2.pth", map_location=device))
|
| model.eval()
|
|
|
| # 影像前處理 (Resize to 200x112)
|
| img = cv2.imread("screenshot.jpg")
|
| img_resized = cv2.resize(img, (200, 112))
|
| img_tensor = torch.tensor(np.transpose(img_resized.astype(np.float32) / 255.0, (2, 0, 1))).unsqueeze(0).to(device)
|
|
|
| with torch.no_grad():
|
| output = model(img_tensor)
|
| action = torch.argmax(output, dim=1).item()
|
| labels = ["None", "Jump", "Slide", "Enter"]
|
| print(f"預測動作: {labels[action]}")
|
| ```
|
|
|