Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file added '
Empty file.
79 changes: 12 additions & 67 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,75 +1,20 @@
# ===========================
# 1. Python 环境与缓存
# ===========================
venv/
.venv/
__pycache__/
.mypy_cache/

# ===========================
# 2. Pixi 包管理环境
# ===========================
.pixi/*
!.pixi/config.toml

# ===========================
# 3. IDE 与编辑器配置
# ===========================
.idea/
.vscode/

# ===========================
# 4. AI 辅助工具配置
# ===========================
.claude/
.codex/
.copilot/
.codeartsdoer

# ===========================
# 5. 模型权重与构建产物
# ===========================
# 模型文件
models/*.png
*.pth
*.onnx
*.onnx.data

# 构建与输出目录
build/
output/

# ===========================
# 6. 数据集与媒体资源
# ===========================
# 基础数据目录
screenshot.png
tmp
log.txt
data/images/
data/[0-9][0-9][0-9][0-9]_[0-1][0-9]_[0-3][0-9]__[0-2][0-9]_[0-5][0-9]_[0-5][0-9]/
images/nums/

arknights_package_[0-9][0-9][0-9][0-9][0-1][0-9][0-3][0-9]_[0-2][0-9][0-5][0-9][0-5][0-9].zip

# 训练相关数据
*.log
models/Local_models/*
models/cache/
!arknights.csv
build/
output/
*.pth
*.onnx
data_train/tmp/
data_train/package/*.zip
data_train/data_images/

# 单独的截图文件
screenshot.png

# ===========================
# 7. 日志与临时文件
# ===========================
# 日志
log.txt
*.log

# 临时目录
tmp

# ===========================
# 8. 其他杂项文件
# ===========================
arknights.csv
multi_ports.txt
*.bak
data_train/images/
171 changes: 69 additions & 102 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,132 +1,99 @@
# CannotMax-Greenvine (Arknights Neural Network)
# Arknights Neural Network

这是一个基于深度学习的明日方舟游戏辅助工具,用于自动识别游戏画面中的单位并预测战斗结果。本项目集成了高精度的图像识别、战斗模拟以及自动化数据处理流。

## 系统要求

- **操作系统**:Windows 10/11
- **Python 版本**:>= 3.10
- **显卡**(可选):NVIDIA GPU(支持 CUDA 12.8/13.0)或纯 CPU 模式
这是一个基于深度学习的明日方舟游戏辅助工具,用于自动识别游戏画面中的单位并预测战斗结果。

## 功能特点

- **多模式画面捕获**:
- **ADB 模式**:适配雷电、MuMu、蓝叠等主流模拟器。
- **PC 模式**:适配明日方舟官方 PC 客户端。
- **WIN 模式**:基于 WinRT 的高性能窗口/屏幕截取,支持直播画面捕捉。
- **深度学习预测**:使用神经网络预测战斗胜率,支持 PyTorch (CUDA 加速) 与 ONNX 运行时。
- **战斗模拟器**:内置独立的战斗模拟引擎 (`main_sim.py`),可手动部署单位进行模拟测试。
- **全自动化流程**:支持自动数据收集、自动清洗、模型训练及验证。
- **历史匹配**:支持与历史战斗记录进行相似度匹配。

## 安装指南

### 前置要求
- 自动识别游戏画面中的单位类型和数量
- 使用深度学习模型预测战斗结果
- 支持自动数据收集和训练
- 提供图形用户界面进行操作
- 支持自动投资和战斗预测

1. **安装 uv**:
参考 [uv 官方文档](https://docs.astral.sh/uv/getting-started/installation) 进行安装。
## 环境要求

```bash
# Windows PowerShell
powershell -ExecutionPolicy BypassUser -c "irm https://astral.sh/uv/install.ps1 | iex"
```
- uv
- Windows 10/11
- NVIDIA GPU (推荐,用于加速模型训练)

2. **克隆项目**:
```bash
git clone https://github.com/Ancientea/CannotMax.git
cd CannotMax
```
## 安装步骤

### 环境配置

根据你的硬件选择对应的安装方式:

#### 运行环境:

##### 方案 1:onnxruntime 模式(最精简)
1. 克隆项目到本地:
```bash
uv sync
git clone [项目地址]
cd [项目目录]
```

##### 方案 2:Pytorch CPU 模式(最兼容)
```bash
uv sync --extra cpu
```
2. 安装uv包管理工具(推荐):
https://docs.astral.sh/uv/getting-started/installation

##### 方案 3:Pytorch CUDA 12.8 加速(推荐)
```bash
uv sync --extra cu128
```
**要求**:NVIDIA 显卡 + CUDA 12.8 工具包(可选,PyTorch 会自动包含运行时)
或使用 pip 安装依赖(替代 uv):
```bash
# CPU 版
pip install -r requirements.txt
# CUDA 12.8 版(NVIDIA GPU)
pip install -r requirements.txt --ignore-installed torch torchvision
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu128
# 国内镜像加速
pip install -r requirements.txt -i https://mirrors.cloud.tencent.com/pypi/simple/
```

##### 方案 4:Pytorch CUDA 13.0 加速(最新)
```bash
uv sync --extra cu130
```
**要求**:NVIDIA 显卡 + CUDA 13.0 工具包(可选)
3. 修改你的设备序列号:
- 详情参考使用方法部分,例如雷电模拟器默认设备序列号'127.0.0.1:5555'
- 你可以从以下网址得知如何找到设备序列号
- 雷电 https://help.ldmnq.com/docs/LD9adbserver
- MUMU https://mumu.163.com/help/20230214/35047_1073151.html
- 蓝叠 https://support.bluestacks.com/hc/en-us/articles/23925869130381-How-to-enable-Android-Debug-Bridge-on-BlueStacks-5

#### 附加开发环境:
```bash
uv sync --group dev
```

## 使用指南
## 使用方法

### 1. 运行程序
1. 运行主程序:
```bash
uv run main.py
```

### 2. 捕获模式选择
- **ADB**:输入或选择模拟器序列号(如 `127.0.0.1:5555`)后连接。
- **设备序列号**:
- 雷电:默认 `127.0.0.1:5555`
- MuMu 12:查看设置中的 ADB 端口
- 蓝叠:查看设置 -> 运行中 -> 开启 ADB
- **PC**:直接连接已开启的明日方舟官方 PC 客户端。
- **WIN**:点击“选择窗口”按钮,通过 WinRT 捕获指定窗口或显示器。

### 3. 核心操作
- **自动获取数据**:开启后,程序将自动在战斗结算时保存截图与数据包。
- **预测/识别**:
- “识别”:手动分析当前画面。
- “预测”:基于当前识别到的单位进行胜率预测。
- **选择范围**:主要用于识别非标准布局的画面(如直播间),框选后回车确认,ESC 取消。

### 4. 获取数据
- 1. 模拟器中打开争锋频道页面
- 2. 点击自动获取数据按钮,程序开始自动获取数据
- 3. 获取足够数据后,点击按钮停止获取
- 4. 点击数据打包按钮,程序自动将获取到的数据打包成zip
- **多开说明**
- 若在同一路径下运行多个main实例收集数据,在点击数据打包前需确保所有实例均处于停止收集状态,数据打包会一次性打包该路径下所有实例收集到的数据
- 若在不同路径下运行的main实例,实例之间互相独立,互不影响

### 5. 模型训练
- 建议在训练模型前收集足够的数据
1. **启动训练**:
2. 在图形界面中:
- 点击"自动获取数据"通过adb链接来自动收集模拟器训练数据
- 可通过点击单人按钮来选择单人或30人模式(注意:30人模式要点击投资勾选框)
- 投资勾选框来选择是投资或观望
- 使用"填写√"和"填写×"按钮记录预测结果
- 使用"预测"按钮获取战斗结果预测
- 点击选择范围按钮来选择识别范围(主要用于截取直播画面进行预测)
- 框选后按回车键确认,框选错误按esc键重新框选
- 使用"识别"按钮手动识别当前画面
- 输入模拟器序列号后点击更新按钮对模拟器进行重新连接


3. 训练模型:
- 数据收集完成后,先进行数据清洗,然后训练:
```bash
uv run train.py
```

## 开发说明

- 使用AI编程助手时建议导入[MAA Framework的Skill库](https://github.com/Kutius/maaframework-skills)
- 如需使用CUDA加速训练,请在训练前根据安装的CUDA版本执行以下命令:
```bash
uv sync --extra cu128
```

## 注意事项

- **分辨率适配**:模拟器/客户端建议设置为 `1920*1080`。
- **依赖冲突**:如遇到 OpenCV 报错,请确保环境内不同版本的 OpenCV 不冲突(删除opencv-python-headless(与opencv-python冲突),推荐仅保留 `opencv-python`)。
- 选择范围时要尽可能按例子框选,且尽可能将直播画面放大再进行框选
- 建议在训练模型前收集足够的数据
- 自动获取数据功能游戏窗口可在后台运行
- 按ESC键可以随时停止自动获取数据
- 模拟器分辨率目前仅适配了1920*1080
- 如遇到cv2.error:OpenCV……报错字样务必删除opencv-python-headless(与opencv-python冲突),仅保留opencv-python

## 文件说明

## 主要文件说明
- `main.py`: 主程序,包含GUI界面和主要功能
- `train.py`: 模型训练脚本
- `loadData.py`: 数据加载和处理模块
- `recognize.py`: 图像识别模块
- `requirements.txt`: 项目依赖包列表
- `data_cleaning.py`: 数据清洗

- `main.py`: 主程序 GUI,集成识别与预测
- `main_sim.py`: 独立战斗模拟器
- `train.py`: 模型训练
- `recognize.py`: 图像识别与 OCR 逻辑
- `winrt_capture.py`: 窗口截取模块
- `simulator/`: 战斗模拟引擎
- `tools/`: 包含数据清洗、模型转换等实用工具
## 贡献

---
欢迎提交 Issue 和 Pull Request!
欢迎提交问题和改进建议!
Loading