一个真正免费可商用的 YOLO 可视化训练系统

119 阅读6分钟

前言

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)

若无法安装上述版本,需自行解决 numpyonnxruntime 等依赖的版本兼容问题:

注意事项

  • 仅支持 YOLOv8 及以上版本(如 yolov11n),暂不支持 YOLOv5(2025-04-18)

  • 根目录提供 yolov8n.ptyolov11n.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
Python3.12 或更高
数据库PostgreSQL 12+
CPU建议 4 核以上
内存建议 8 GB RAM 以上
存储至少 10 GB 可用空间
GPUNVIDIA 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
    
  • 访问:

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.6
  • cp312 = 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.txtdata.yaml

ZIP 包内文件需在根目录(无外层文件夹)

  • 图像尺寸

推荐 640×640

非固定比例请启用"矩形训练模式"

宽度建议为 8 的倍数

  • 预训练模型

建议手动下载(自动下载较慢)

  • GPU 训练

如遇 OOM,减小 batch size 或设置 gpu_mem_limit

故障排除

问题类型解决方案
数据库连接失败检查 PostgreSQL 是否运行;核对 config.pyinit_db.py 中的连接参数
训练失败检查数据集格式;确保磁盘/内存充足;查看 logs/ 下日志
Web 无法访问检查 8000 端口占用;确认依赖已安装;查看应用日志
TensorBoard 无数据检查 6006 端口;确认 logs/tensorboard/ 有日志;尝试手动启动 tensorboard --logdir logs/tensorboard

最后

如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。

也可以加入微信公众号 [DotNet技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!

优秀是一种习惯,欢迎大家留言学习!