TRAE SOLO × YOLO × ADB:自动识别人物工具作品集系统开发介绍

一、项目背景与目标

在移动端自动化交互、游戏辅助与视觉测试场景中,如何高效、精准地识别画面中的人物元素并驱动自动化操作,是提升流程效率的核心痛点。本项目结合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 模型输出的人物坐标转化为设备控制指令,实现自动化交互:

  1. 通过 ADB 获取安卓设备画面流

  2. 调用 YOLO 模型实时检测画面中的人物,输出目标坐标

  3. 基于坐标生成 ADB 点击 / 滑动指令,驱动设备执行操作


5. Streamlit 可视化界面开发

搭建 Web 端界面,实现以下核心功能:

  • 上传本地图片 / 视频,测试人物检测效果

  • 实时预览设备画面流与检测标注结果

  • 展示模型训练指标与性能曲线

  • 调试 ADB 交互指令,验证自动化流程


五、系统核心功能

  1. 自定义数据标注:通过自研标注工具,快速生成符合 YOLO 格式的训练数据,解决标注效率痛点

  2. 多版本模型训练:支持 YOLOv8/YOLO11 多版本模型,通过 CPU/GPU 双模式训练脚本,适配不同开发环境

  3. 人物目标检测:基于训练好的模型,精准识别画面中的人物目标并输出坐标

  4. 自动化交互控制:结合 ADB 指令,根据检测结果驱动安卓设备执行操作

  5. 可视化调试平台:通过 Streamlit 界面,实现模型测试、结果展示与流程调试一体化

  6. 训练过程全链路管理:从环境验证、数据准备到模型训练、测试,全流程可追溯、可复现


六、项目总结与拓展方向

本项目通过自研标注工具、YOLO 目标检测、ADB 自动化控制与 Streamlit 可视化的结合,完成了一套可落地的 “自动识别人物工具” 作品集系统,验证了 AI 视觉技术在移动端自动化场景的可行性,也沉淀了一套从数据准备到模型部署的完整工作流。

后续可拓展方向:

  • 优化标注工具,支持多人协作标注与标注结果自动校验

  • 优化模型轻量化,提升移动端实时检测帧率

  • 增加多目标分类,支持人物姿态、动作识别

  • 扩展多设备适配,兼容不同安卓版本与分辨率

  • 完善日志与告警功能,提升自动化流程的稳定性


附:项目技术关键词

TRAE SOLO挑战赛 YOLOv8 YOLO11 目标检测 自定义标注工具 ADB自动化 Streamlit Python Anaconda OpenCV