前言
Myolotrain 是一个可视化管理 YOLO 视觉模型训练的系统,为计算机视觉任务提供了直观的图形界面。该平台集成了数据集管理、模型管理、训练管理和目标检测功能,支持 Windows、Linux、Docker 等多种部署方式,使用户能够轻松地训练和部署 YOLOv8 及以上版本 的模型。
系统支持 CPU 与 GPU(含 CUDA 12.6) 加速训练,通过 TensorBoard 实时查看训练进度,并具备以下高级能力:
-
数据集自动分割
-
数据增强
-
实时视频/图像检测
-
动态目标轨迹追踪与预测
-
在线标注
-
流媒体处理
-
华为昇腾 NPU 支持(自 2025-05-13 起)
环境要求(2025 年 10 月起)
Python ≥ 3.12
PyTorch == 2.6.0 + cu126(CUDA 12.6)
若无法安装上述版本,需自行解决 numpy、onnxruntime 等依赖的版本兼容问题:
-
NumPy 版本对照:numpy.org/doc/
-
ONNX Runtime CUDA 支持表:onnxruntime.ai/docs/execut…
-
providers/CUDA-ExecutionProvider.html
注意事项
-
仅支持 YOLOv8 及以上版本(如 yolov11n),暂不支持 YOLOv5(2025-04-18)
-
根目录提供
yolov8n.pt和yolov11n.pt预训练模型 -
datasets_import/目录下包含测试数据集,可直接用于功能验证
功能介绍
技术特点
| 组件 | 技术栈 |
|---|---|
| 后端 | FastAPI(高性能 RESTful API) |
| 前端 | Bootstrap 5 + 现代 JavaScript |
| 数据库 | PostgreSQL |
| 模型引擎 | Ultralytics |
| 可视化 | TensorBoard |
主要特性
-
直观的 Web 界面
-
多种数据集导入方式(ZIP 上传 / 服务器本地目录)
-
数据集自动分割(训练/验证/测试)
-
灵活训练配置(矩形训练、GPU 显存限制、多卡选择)
-
完整 NVIDIA GPU 加速支持
-
TensorBoard 实时训练监控
-
内置图像/视频检测功能
-
支持 Windows / Linux / Docker 部署
-
PostgreSQL 存储数据集、模型、任务信息
-
异步处理长时间运行任务
-
多用户并发支持
-
模块化设计,易于扩展
核心功能
在线标注
-
支持从系统数据集、ZIP 上传、服务器目录导入图片
-
AI 自动标注(使用已上传模型)
-
导出为系统数据集或纯标签文件
-
"扫描图片"将清除所有现有标注,请慎用
数据集管理
-
ZIP 上传自动解压并验证结构
-
本地目录直接导入(自动列出
datasets_import/下目录) -
自动识别类别数、图片数
-
支持比例分割(两种模式)
-
删除前自动校验是否被训练任务引用
模型管理
-
上传
.pt模型(预训练或训练生成) -
查看模型类型、任务类型、来源
-
删除前校验是否被任务使用
训练管理
-
创建任务:选择数据集、预训练模型、参数
-
配置:batch size、学习率、epochs、图像尺寸、矩形训练
-
硬件资源:CPU/GPU 选择、显存限制
-
实时监控损失与指标
-
集成 TensorBoard
-
支持暂停/取消任务
模型测试功能
-
图像/视频上传检测
-
配置置信度阈值、IoU、类别过滤
-
可视化结果(框、标签、置信度)
-
支持结果下载
图像处理功能
-
预处理:缩放、去噪、亮度/对比度、锐化
-
质量分析
-
数据增强:翻转、旋转、噪声、透视变换等
视频处理功能
-
按间隔提取帧
-
场景变化检测
-
运动检测
-
实时检测:支持报警区域绘制、自定义报警项、轨迹追踪与预测
目标追踪(2025-08-27 起暂时关闭)
技术流程:
1、YOLO 检测 → 2、CBAM+Transformer 特征提取 → 3、交叉注意力匹配 → 4、轨迹更新 → 5、可视化(ID、轨迹线)
目录结构
Myolotrain/
├── app/ # 应用主代码
│ ├── api/ # REST API 路由
│ ├── core/config.py # 配置
│ ├── crud/ # 数据库 CRUD
│ ├── db/ # 数据库连接
│ ├── models/ # ORM 模型
│ ├── patches/torch_load_path.py # PyTorch 环境适配
│ ├── schemas/ # Pydantic 模型
│ ├── services/ # 业务逻辑(训练、检测、TensorBoard 等)
│ └── static/ # 静态资源(CSS/JS/uploads/datasets/models/results)
├── logs/tensorboard/ # TensorBoard 日志(⭐训练过程日志)
├── datasets_import/ # 本地数据集导入目录(无需压缩)
├── config.yaml # 全局配置
├── requirements.txt # Python 依赖
├── run.py # 主运行脚本
├── start.py # ⚠️ 初始化脚本(会重置数据库!)
├── train.py # 独立训练脚本
└── docker-compose*.yml # Docker 部署配置
3、系统要求
| 类别 | 要求 |
|---|---|
| 操作系统 | Windows 10/11, Linux (Ubuntu 18.04+), macOS |
| Python | 3.12 或更高 |
| 数据库 | PostgreSQL 12+ |
| CPU | 建议 4 核以上 |
| 内存 | 建议 8 GB RAM 以上 |
| 存储 | 至少 10 GB 可用空间 |
| GPU | NVIDIA GPU(支持 CUDA,推荐但非必需) |
快速开始
Windows 安装(推荐)
1、安装 PostgreSQL
-
用户名:
postgres,密码:postgres -
确保服务已启动
2、安装 Python 3.12
- 勾选 "Add Python to PATH"
3、获取项目
git clone https://gitee.com/rock_kim/Myolotrain.git
cd Myolotrain
4、启动系统
以管理员身份运行 启动.bat
保持命令窗口开启
5、访问
Web 界面:http://localhost:8000
4.2 Docker 部署
-
CPU 版本:
docker-compose up -d -
GPU 版本(需安装 NVIDIA Container Toolkit):
docker-compose -f docker-compose-gpu.yml up -d -
访问:
- Web:http://localhost:8000
- TensorBoard:http://localhost:6006
GPU 设置
CUDA 12.6(默认)
# Windows 示例
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126
包名示例:
torch-2.6.0+cu126-cp312-cp312-win_amd64.whl
2.6.0= PyTorch 版本cu126= CUDA 12.6cp312= Python 3.12
验证 GPU
import torch
print(f"PyTorch版本: {torch.__version__}")
print(f"CUDA是否可用: {torch.cuda.is_available()}")
if torch.cuda.is_available():
print(f"CUDA版本: {torch.version.cuda}")
print(f"GPU数量: {torch.cuda.device_count()}")
for i in range(torch.cuda.device_count()):
print(f"GPU {i}: {torch.cuda.get_device_name(i)}")
CPU 用户无需安装 CUDA 相关依赖
使用指南
数据集管理
推荐格式
dataset/
├── classes.txt
├── train/
│ ├── images/
│ └── labels/
├── val/
│ ├── images/
│ └── labels/
└── test/ (可选)
导入方式
-
ZIP 上传:打包后上传,系统自动解压验证
-
服务器导入:选择
datasets_import/下目录
分割
-
在列表页点击"分割数据集"
-
设置比例(如 70% / 20% / 10%)
模型管理
-
上传
.pt文件 -
系统自动识别模型类型(detect/classify 等)
训练管理
1、选择数据集与预训练模型
2、配置参数(batch, epochs, imgsz, rect)
3、选择 GPU(支持多卡)
4、点击"开始训练"
5、通过 TensorBoard 监控
模型测试
-
上传图像/视频
-
调整阈值
-
查看/下载结果
注意事项
- 数据集格式
必须包含 classes.txt 或 data.yaml
ZIP 包内文件需在根目录(无外层文件夹)
- 图像尺寸
推荐 640×640
非固定比例请启用"矩形训练模式"
宽度建议为 8 的倍数
- 预训练模型
建议手动下载(自动下载较慢)
- GPU 训练
如遇 OOM,减小 batch size 或设置 gpu_mem_limit
故障排除
| 问题类型 | 解决方案 |
|---|---|
| 数据库连接失败 | 检查 PostgreSQL 是否运行;核对 config.py 和 init_db.py 中的连接参数 |
| 训练失败 | 检查数据集格式;确保磁盘/内存充足;查看 logs/ 下日志 |
| Web 无法访问 | 检查 8000 端口占用;确认依赖已安装;查看应用日志 |
| TensorBoard 无数据 | 检查 6006 端口;确认 logs/tensorboard/ 有日志;尝试手动启动 tensorboard --logdir logs/tensorboard |
最后
如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。
也可以加入微信公众号 [DotNet技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!
优秀是一种习惯,欢迎大家留言学习!