一、项目背景与目标
在移动端自动化交互、游戏辅助与视觉测试场景中,如何高效、精准地识别画面中的人物元素并驱动自动化操作,是提升流程效率的核心痛点。本项目结合TRAE SOLO 挑战赛的技术实践,搭建了一套从「数据标注→模型训练→目标检测→移动端交互」的完整闭环系统,实现了 “自动识别人物工具” 的全流程落地,探索 AI 视觉技术在自动化场景的实际应用。
二、完整项目文件结构
plaintext
pro_YOLO-Annotation-and-Training/
├── annotation_tool/ # 自定义数据标注工具模块
│ ├── 训练图片/
│ ├── annotation_tool.py # 核心标注程序
│ ├── config.json # 标注配置文件
│ ├── README.md
│ ├── t1批量转换图片名称为有序数字.py
│ └── test_config.py
├── models/ # 预训练模型与权重
│ ├── yolo11n.pt
│ ├── yolo11s.pt
│ └── yolov8n.pt
├── pics2videos/ # 图片转视频工具模块
├── runs/ # 训练与检测结果输出目录
│ ├── detect/ # 推理检测结果
│ ├── yolov11n_custom/ # 自定义模型训练结果1
│ ├── yolov11n_custom_2/ # 自定义模型训练结果2
│ └── yolov11n_custom_22/ # 自定义模型训练结果22
├── xunlian/ # 训练数据集与脚本目录
│ ├── images/ # 训练图片集
│ ├── labels/ # 标注标签集
│ ├── data.yaml # 数据集配置文件
│ ├── data copy.yaml
│ ├── I0验证GPU是否可用.py
│ ├── I1加载预训练模型.py
│ ├── I2检查网路图片和视频.py
│ ├── I3训练数据集结构文件.py
│ ├── I4开始训练模型-cpu.py
│ ├── I4开始训练模型-gpu.py
│ ├── I5测试模型结果.py
│ └── I6实现屏幕指定区域的实时检测.py
└── 学习过程.md / 学习过程 - IO验证GPU是否可用.md # 开发日志
三、核心技术栈
表格
| 技术 / 工具 | 作用说明 |
|---|---|
| YOLOv8 / YOLO11(Ultralytics) | 核心目标检测模型,实现画面中人物的识别与定位 |
| 自定义标注工具(annotation_tool) | 为 YOLO 训练提供自定义格式的标注数据,支持批量预处理 |
| ADB(Android Debug Bridge) | 连接并控制安卓设备,实现基于检测结果的自动化交互 |
| Streamlit | 快速构建 Web 端可视化界面,支持模型调试与效果展示 |
| OpenCV / PIL | 图像预处理、帧处理与可视化标注 |
| Python(Anaconda 虚拟环境) | 开发与运行环境,统一依赖管理 |
四、开发过程详解
1. 开发环境搭建
(1)虚拟环境配置
基于 Anaconda 创建独立虚拟环境,统一管理依赖,避免版本冲突:
# 激活虚拟环境
conda activate pro_python_env
(2)核心依赖安装
# 安装Streamlit(Web界面框架)
pip install streamlit --target D:\anaconda3\Lib\site-packages -i https://mirrors.aliyun.com/pypi/simple/
# 安装Ultralytics(YOLO模型库)
pip install ultralytics --target D:\anaconda3\Lib\site-packages -i https://mirrors.aliyun.com/pypi/simple/
# 安装其他依赖
pip install opencv-python pillow numpy pyautogui --target D:\anaconda3\Lib\site-packages -i https://mirrors.aliyun.com/pypi/simple/
(3)Streamlit 服务启动
通过两种方式启动 Web 调试界面,实现模型的可视化测试:
-
方式 1:PyCharm 配置启动
-
Module:
streamlit -
运行参数:
run "你的项目路径/app.py" -
工作目录:项目根目录
-
-
方式 2:PowerShell 命令启动
D:\anaconda3\Scripts\streamlit.exe run "你的项目路径/app.py"
启动成功后,可通过 http://localhost:8501 访问 Web 界面。
2. 自定义 YOLO 标注工具开发(annotation_tool 模块)
为了解决 YOLO 训练前的数据标注与批量预处理痛点,我开发了一套轻量化标注工具:
表格
| 文件 | 核心作用 |
|---|---|
annotation_tool.py |
核心标注程序,支持手动框选目标、自动生成 YOLO 格式标注文件 |
config.json |
配置文件,可自定义标注类别、图片路径、标注输出格式 |
t1批量转换图片名称为有序数字.py |
将杂乱命名的图片批量重命名为 1.jpg/2.jpg/3.jpg 格式,避免标注时路径混乱 |
test_config.py |
快速验证配置文件的有效性,避免因配置错误导致标注失败 |
README.md |
标注工具的使用说明、快捷键与格式规范 |
核心工作流程:批量重命名图片 → 配置标注类别 → 验证配置 → 手动标注 → 生成 YOLO 格式标签文件。
3. 模型训练全流程(xunlian 模块)
我将 YOLO 模型训练拆分为多个步骤脚本,确保每一步可验证、可回溯:
表格
| 脚本 | 核心作用 |
|---|---|
I0验证GPU是否可用.py |
检查 CUDA 环境,确保 GPU 加速可用 |
I1加载预训练模型.py |
加载 YOLOv8/YOLO11 预训练权重 |
I2检查网路图片和视频.py |
验证模型在公开图片 / 视频上的泛化能力 |
I3训练数据集结构文件.py |
检查并生成符合 YOLO 标准的数据集结构与data.yaml配置 |
I4开始训练模型-cpu.py / I4开始训练模型-gpu.py |
分别支持 CPU/GPU 环境启动自定义训练 |
I5测试模型结果.py |
加载训练好的模型,在测试集上验证效果 |
I6实现屏幕指定区域的实时检测.py |
实现桌面指定区域的实时画面检测,对接后续自动化交互流程 |
训练输出文件解析
模型训练完成后,runs/yolov11n_custom/ 目录下会生成完整的训练日志与结果文件:
表格
| 文件 / 文件夹 | 核心作用 |
|---|---|
weights/best.pt |
验证集上 mAP 最高的最优模型,推荐用于推理部署 |
weights/last.pt |
最后一轮训练的模型,仅用于备份 |
results.csv |
训练日志,记录每轮 epoch 的 loss、mAP、precision 等指标 |
results.png |
训练综合曲线图,直观展示 loss 下降与指标收敛情况 |
confusion_matrix.png |
混淆矩阵,分析类别误判情况 |
train_batch*.jpg/val_batch*.jpg |
训练 / 验证样本可视化结果,检查标注与预测效果 |
关键训练指标说明
-
Loss 系列(越小越好):
-
box_loss:边界框位置误差,反映框选精准度 -
cls_loss:分类误差,反映人物识别的准确性 -
dfl_loss:分布焦点损失,YOLOv8 + 特有,优化框坐标精细化预测
-
-
精度指标(越高越好):
-
mAP50:IoU=0.5 时的平均精度,宽松标准下的检测效果 -
mAP50-95:IoU 从 0.5 到 0.95 的平均精度,工业界通用的综合性能指标 -
precision:预测为人物的结果中,真实人物的占比(误报率反向指标) -
recall:真实人物中被成功检测到的占比(漏检率反向指标)
-
4. 移动端交互与 ADB 集成
利用 ADB 工具,将 YOLO 模型输出的人物坐标转化为设备控制指令,实现自动化交互:
-
通过 ADB 获取安卓设备画面流
-
调用 YOLO 模型实时检测画面中的人物,输出目标坐标
-
基于坐标生成 ADB 点击 / 滑动指令,驱动设备执行操作
5. Streamlit 可视化界面开发
搭建 Web 端界面,实现以下核心功能:
-
上传本地图片 / 视频,测试人物检测效果
-
实时预览设备画面流与检测标注结果
-
展示模型训练指标与性能曲线
-
调试 ADB 交互指令,验证自动化流程
五、系统核心功能
-
自定义数据标注:通过自研标注工具,快速生成符合 YOLO 格式的训练数据,解决标注效率痛点
-
多版本模型训练:支持 YOLOv8/YOLO11 多版本模型,通过 CPU/GPU 双模式训练脚本,适配不同开发环境
-
人物目标检测:基于训练好的模型,精准识别画面中的人物目标并输出坐标
-
自动化交互控制:结合 ADB 指令,根据检测结果驱动安卓设备执行操作
-
可视化调试平台:通过 Streamlit 界面,实现模型测试、结果展示与流程调试一体化
-
训练过程全链路管理:从环境验证、数据准备到模型训练、测试,全流程可追溯、可复现
六、项目总结与拓展方向
本项目通过自研标注工具、YOLO 目标检测、ADB 自动化控制与 Streamlit 可视化的结合,完成了一套可落地的 “自动识别人物工具” 作品集系统,验证了 AI 视觉技术在移动端自动化场景的可行性,也沉淀了一套从数据准备到模型部署的完整工作流。
后续可拓展方向:
-
优化标注工具,支持多人协作标注与标注结果自动校验
-
优化模型轻量化,提升移动端实时检测帧率
-
增加多目标分类,支持人物姿态、动作识别
-
扩展多设备适配,兼容不同安卓版本与分辨率
-
完善日志与告警功能,提升自动化流程的稳定性
附:项目技术关键词
TRAE SOLO挑战赛 YOLOv8 YOLO11 目标检测 自定义标注工具 ADB自动化 Streamlit Python Anaconda OpenCV