Myolotrain是一个可视化管理yolo视觉模型训练的系统,为计算机视觉任务提供了直观的图形界面。该平台集成了数据集管理、模型管理、训练管理和目标检测功能,支持windows、linux、docker等多种部署方式,使用户能够轻松地训练和部署 YOLOv8 模型, 支持CPU和GPU,使用tensorboard实时查看训练进度,具备数据集自动分割、数据集增强、实时检测、动态轨迹和预测等。
🚧 本项目目前处于早期开发阶段,现阶段功能并不完整,不建议用于生产环境,开发阶段API、功能和文档会频繁变动。欢迎参与开发、试用、提Issue 或提交PR。
‼️ 本项目独立开发的功能完全开源、不限制商用,因目前代码中的训练、推理等功能使用Ultralytics,具体开源协议请遵循Ultralytics,由于使用本项目而产生的商业纠纷或侵权行为一概与本项目开发者无关,请自行承担法律风险。
自2025年10月后的代码,python版本须为3.12,目前此平台在python3.12,torch2.6.0、CUDA12.6环境下开发与测试,若您的环境无法安装以上版本,需自行解决numpy、onnxruntime等依赖版本问题(numpy版本对照:https://numpy.org/doc/ onnxruntime版本对照:https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html)
常见问题:
检查是否是项目的虚拟环境,python、CUDA、torch版本是否适配,建议:先检查CUDA版本,按CUDA版本找适配的torch版本,按torch版本安装适配的python。
标注格式仅支持txt格式,并且严格遵循最新标准(例如OBB旋转框,目前仅支持4个点的坐标,8个数值,老方法不支持),新建两个目录images、labels和一个classes.txt(一行一个类别和已经标注的顺序一致),压缩成ZIP上传在线标注、勾选【导入原标注】,导入后检查类别顺序是否正确
感谢所有开发者的帮助与支持
- 1.功能说明:通过配置SAM3后,实现点选、框选、文本对图片进行SAM3分割,提高标注效率
- 2.注意事项:
- ①SAM3模型官方要求需要申请(如果在huggingface申请,不要选国区,一般不会通过)或自行下载
- ②下载的权重文件不要改名保持原名称,一般为sam3.pt(或带版本)
- ③如果您是更新代码,确保ultralytics版本为最新(SAM3要求8.3.237以上)手动安装依赖:timm>=1.0.24
- 1.导入原标注:新建在线标注项目时,可以勾选“导入原标注”,会自动解析ZIP目录(根目录下仅保留images/labels两个目录和classes.txt文件)、原有数据集的train目录下的图片和标注。
- 2.标注项目合并功能:可以选择相同类型、相同类别数量(不会验证标注类别是否相同,只验证数量)的标注项目进行合并,可以自动处理重名(改名、覆盖、跳过),一定要保证所合并的两个项目类别相同;
- 3.修复了新建各个功能项目后,按钮状态不更新的问题;
- 1.增加模型测试对比功能,可选择两个同类型模型进行检测并对比;
- 2.更新ultralytics,已支持yolo26推理和训练,手动更新:pip install --upgrade ultralytics;
- 3.增加模型剪枝功能,支持非结构化剪枝和自定义的结构化剪枝,手动安装:pip install torch-pruning;
- 4.修复数据集分割时特定名称的图片会出现名称错误、推理时json格式不全的问题。
- 1.增加实例分割、OBB(旋转框)、Pose(关键点)三个类别的在线标注、训练、推理功能;
- 2.解决了系统BUG;
- 1.拆分main.js文件为多个js,包括在线标注、模型管理、训练管理、视频流、用户管理、视频管理等;
- 2.新增多GPU训练,自动GPU训练功能;
- 3.新增训练日志下载功能;
- 4.修复继续训练检查点错误的问题;
- 1.调整高分辨率或浏览器有缩放的情况下,目标绘制框与十字标记错位问题;
- 2.调整目标绘制完毕后主动退出编辑模式,无需再次点鼠标击标记框之外的位置
- 3.调整绘制目标进入编辑模式的方法为三种:
- 3.1点击左侧标注目标列表内的项目;
- 3.2点击绘制目标左上角的文本标签;
- 3.3.按住CTRL,鼠标点击绘制目标;
- 4.调整绘制目标在编辑模式下鼠标的显示样式;
- 优化在线标注功能,增加辅助线、标注框选择与删除、增加标注框ID、鼠标滚轮放大缩小图片 。
- 开发者 @Tomle 完成:增加【用户管理】功能,初始账号密码admin/admin@123, 请手动更新依赖 。
- 优化视频处理-提取帧功能,增加下载、预览、删除服务器缓存功能
- 更新依赖版本,删除onnxruntime(需手动安装),更新docker安装, 非docker用户需要手动安装onnxruntime,CPU版:onnxruntime>=1.21.0,GPU版:onnxruntime-gpu>=1.21.0 并确保CUDA版本在12.0以上,python为3.12。
- !!更新ultralytics 8.3.191,如tensorboard无法生成文件,请务必更新!手动更新亦可,同时手动启用tensorboard,命令行:yolo settings tensorboard=True
- 解决手段中断训练任务后,点击继续训练新生成的日志无法展示的问题,修改为在原日志上继续写入
- 解决已完成的训练任务重复轮询的问题
- 修复数据集分割功能中,由于文件名称问题导致无法分割标签文件的BUG
- 新增一级功能【在线标注】主要功能:在线标注,支持w\s、a\d快捷键快速切换,利用现有模型自动标注(AI自动标注功能),一键导出标注信息(不包含原图片),导出为数据集(包含图片)等,具体介绍详见功能介绍板块
- 临时解决视频处理->提取帧问题
- 关闭视觉追踪模块
- 增加更多的日志捕获,解决训练状态异常问题
- 视频处理->实时检测功能中新增流媒体功能,支持RTSP、RTMP、HTTP、摄像头
关于昇腾NPU支持(仅支持linux部署使用):
- 通过torch_npu实现(深度学习框架依旧为pytorch,暂不支持MindSpore)
- 需要手动安装:torch_npu(必须)、acl(必须)、onnxruntime-ascend(可选安装,后期扩展onnx格式数据集以及MindSpore架构)
- torch_npu下载地址:https://gitee.com/ascend/pytorch/releases
- 在新建训练任务选择设备类型“华为昇腾”并“获取昇腾信息”确认NPU信息获取无误后启动训练即可
(20250418)目前暂不支持yolov5,支持yolov8以上
(20250418)在根目录有yolov8n、yolov11n两个预训练模型,datasets_import下有测试数据集,供测试使用
须手动安装torch环境(华为昇腾NPU环境请参考更新日志)
如果torch相关依赖安装失败,请手动安装:
1、命令行安装(参考Pytorch官网): https://pytorch.org/get-started/locally/
windwos环境示例:
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126
2、手动下载地址:https://download.pytorch.org/whl/cu126 (cu126代表CUDA12.6)
手动请在下载whl时注意,torch-2.6.0+cu126-cp312-cp312-win_amd64.whl示意:2.6.0代表torch版本,cu126代表CUDA12.6版本,cp312代表pyhton3.12版本
此说明仅适用于GPU训练环境,如您为CPU环境,无需参考以上内容
注意:扫描图片功能慎用,点击扫描图片后将清除所有标注!





ZIP导入功能

目录导入功能(非压缩格式)自动列出datasets_import下的所有目录名

展示验证结果

数据集分割

具备两种分割模式













技术实现流程:
1、输入处理:从摄像头获取视频帧,使用YOLO模型进行目标检测
2、特征提取:裁剪检测到的目标区域、使用带有CBAM的特征提取器提取特征的Transformer编码器增强特征
3、目标匹配:预测轨迹的下一个位置、使用交叉注意力计算当前检测与现有轨迹的相似度、结合IOU和特征相似度进行匹配
4、轨迹更新:更新匹配的轨迹、创建新的轨迹、管理未匹配的轨迹
5、结果可视化:绘制检测框和追踪框、显示目标ID和类别、绘制运动轨迹


Myolotrain/ ├── app/ # 应用程序代码 │ ├── api/ # API 端点 │ │ ├── endpoints/ # API 路由处理函数 │ │ └── api.py # API 路由注册 │ ├── core/ # 核心配置 │ │ └── config.py # 应用程序配置 │ ├── crud/ # 数据库 CRUD 操作 │ │ ├── crud_dataset.py # 数据集 CRUD │ │ ├── crud_model.py # 模型 CRUD │ │ ├── crud_training.py # 训练任务 CRUD │ │ └── crud_detection_task.py# 检测任务 CRUD │ ├── db/ # 数据库连接 │ │ ├── init_db.py # 数据库初始化 │ │ └── session.py # 数据库会话 │ ├── models/ # 数据库模型 │ │ ├── dataset.py # 数据集模型 │ │ ├── model.py # 模型模型 │ │ ├── training_task.py # 训练任务模型 │ │ └── detection_task.py # 检测任务模型 │ ├── patches/ # 环境文件 │ │ ├── torch_load_path.py # torch导入环境 │ ├── schemas/ # Pydantic 模式 │ │ ├── dataset.py # 数据集模式 │ │ ├── model.py # 模型模式 │ │ ├── training.py # 训练任务模式 │ │ └── detection.py # 检测任务模式 │ ├── services/ # 业务逻辑 │ │ ├── dataset_service.py # 数据集服务 │ │ ├── model_service.py # 模型服务 │ │ ├── training_service.py # 训练服务 │ │ ├── detection_service.py# 检测服务 │ │ ├── process_monitor.py # 进程监控服务 │ │ └── tensorboard_service.py # TensorBoard 服务 │ │ └── upload_service.py # 上传服务 │ ├── static/ # 静态文件 │ │ ├── css/ # CSS 样式 │ │ ├── js/ # JavaScript 脚本 │ │ ├── uploads/ # 上传文件临时存储 │ │ ├── datasets/ # 数据集存储 │ │ ├── models/ # 模型存储( :star: 训练生成的所有文件存储,包括模型文件) │ │ └── results/ # 检测结果存储 │ └── main.py # 应用程序入口点 ├── logs/ # 日志文件 │ └── tensorboard/ # TensorBoard 日志( :star: 训练过程日志) ├── datasets_import/ # 数据集导入目录(存在这里的数据集可以通过文件导入,不需要压缩) ├── config.yaml # 配置文件 ├── create_example_dataset.py # 创建示例数据集脚本 ├── dataset.py # 数据集处理脚本 ├── detect.py # 检测脚本 ├── docker-compose.yml # Docker Compose 配置 ├── Dockerfile # Docker 配置 ├── init_db.py # 数据库初始化脚本 ├── README.md # 项目说明 ├── requirements.txt # 依赖项 ├── run.py # 运行脚本(主程序运行脚本) ├── setup_venv.bat # Windows 虚拟环境设置脚本 ├── setup_venv.py # 虚拟环境设置脚本 ├── setup_venv.sh # Linux 虚拟环境设置脚本 ├── start.py # 启动脚本( :boom: 此启动脚本作为初始化功能,会重置数据库,请谨慎操作) └── train.py # 训练脚本(独立的训练脚本)
postgres,密码为postgres安装Python
获取项目
git clone https://gitee.com/rock_kim/Myolotrain.git cd Myolotrain
启动系统
启动.bat访问系统
从 Python 官网 下载并安装 Python 3.12
安装时勾选"Add Python to PATH"选项
安装Docker和Docker Compose
CPU版本部署
docker-compose up -d
GPU版本部署
docker-compose -f docker-compose-gpu.yml up -d
访问系统
本项目支持使用NVIDIA GPU加速训练过程。默认配置适用于CUDA 12.6,如果您使用不同版本的CUDA,请按照以下步骤操作:
如果torch相关依赖安装失败,请手动安装:
# Windows环境示例
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126
如果您使用其他CUDA版本,请根据您的版本安装对应的PyTorch:
使用以下Python代码验证PyTorch是否能够检测到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)}")
sudo apt install python3.12 python3.12-dev python3.12-venv python3-pip
准备YOLO格式的数据集,目录结构如下:
dataset/ ├── classes.txt # 类别名称文件 ├── train/ │ ├── images/ # 训练图像 │ └── labels/ # 训练标签 ├── val/ │ ├── images/ # 验证图像 │ └── labels/ # 验证标签 └── test/ # 可选 ├── images/ # 测试图像 └── labels/ # 测试标签
系统支持将数据集自动分割为训练集、验证集和测试集:
数据集格式:
图像尺寸:
预训练模型:
GPU训练:
config.py和init_db.py欢迎贡献代码、报告问题或提出改进建议。请通过以下方式参与项目:
git checkout -b feature/amazing-feature)git commit -m 'Add some amazing feature')git push origin feature/amazing-feature)本项目采用AGPL-3.0 协议许可证 - 详情请参见LICENSE文件