# YoloUltralyticsWeb **Repository Path**: fontthrone/YoloUltralyticsWeb ## Basic Information - **Project Name**: YoloUltralyticsWeb - **Description**: AI模型训练平台是一个基于 Python Flask 的 Web 多模态大模型 + PT 模型的双重自动标注平台,提供数据增强闭环:"小数据→简单模型→辅助标注→大数据→精确模型" 的完整循环 专门为 YOLOv8/11 目标检测模型的全生命周期管理而设计,旨在为 AI 开发者和研究人员提供一个完整的、易用的目标检测模型训练解决方案。 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 102 - **Created**: 2026-03-03 - **Last Updated**: 2026-09-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FuturoGen - AI模型训练平台 一个基于Python FastAPI的Web应用,用于YOLO26、YOLOv8、YOLO11目标检测模型的图片标注、数据集管理、模型训练和模型导出,由Boyan开发。旨在为AI开发者和研究人员提供一个完整的、易用的目标检测模型训练解决方案。 ## 创新特性 1. 多层次AI辅助标注 :大模型+PT模型的双重AI辅助体系 2. 数据增强闭环 :"小数据→简单模型→辅助标注→大数据→精确模型"的完整循环 3. 实时检测集成 :将训练和部署统一在一个平台 4. 项目级隔离 :多项目并行开发,资源完全隔离 5. 全流程自动化 :从数据标注到模型部署的完整自动化 6. 跨平台兼容 :支持Windows、macOS、Linux多平台部署 > **定位声明**:本项目是给标注 + 训练用的工具,不是通用 AI 教学项目。 ## 使用建议 - 标注样本建议不少于 100 张;训练轮次(epochs)建议不低于 100 —— 30 轮以下通常得不到可用的识别效果。 - 标注拉框支持任意拖拽方向(T-020 起坐标映射对任意方向取包围盒归一化)。 ## 解决的核心问题 ### 1. 数据标注效率低下 - 传统问题 :手动标注大量图片耗时费力,标注质量不一致 - 解决方案 :集成大模型辅助标注功能,支持自动目标检测和智能标注生成 ### 2. 模型训练门槛高 - 传统问题 :需要复杂的环境配置和命令行操作 - 解决方案 :提供Web界面化的训练流程,实时显示训练进度和日志 ### 3. 数据集管理复杂 - 传统问题 :手动组织数据集目录结构,容易出错 - 解决方案 :自动化数据集划分和目录结构生成 ### 4. 实时检测部署困难 - 传统问题 :RTSP视频流检测需要复杂的配置 - 解决方案 :内置RTSP实时检测功能,支持多路视频流 ### 5. 数据增强循环困难 - 传统问题 :缺乏有效的数据增强和迭代标注机制 - 解决方案 :PT模型辅助检测,实现"小数据训练→模型辅助→数据增强→高精度模型"的良性循环 ## 更新历史 - **2026-09**:后端 Flask → FastAPI 改版(ADR-0012);ultralytics 升至 8.4.138、 torch 2.14(支持 YOLO26,默认模型切 yolo26n.pt);pytest 测试套件(226 用例); 登录鉴权(Session + bcrypt,T-035)与 CORS 允许列表 + pre-push 门禁 + 运维脚本工具箱(ADR-0013);可视化架构图(`docs/diagrams/`)。 - **2025-09**:多模态大模型辅助标注、RTSP 视频流推理上线。 ## 内置演示项目:口罩识别 演示库自带一个开箱即用的项目「口罩识别」(项目 1):22 张图、182 个标注框、 2 个标签(已戴口罩 / 未戴口罩),并已训练出可用模型(mAP50 ≈ 0.50)。 推荐演示路径(每一环都在真实数据上跑通): 1. 首页点开「口罩识别」→ 图片管理看缩略图与标注覆盖 2. 图片标注 → 打开任意图片看已有标注框 3. 数据集划分 → 看 train/val/test = 15/4/3 4. 模型训练 → 训练统计与历史产物(`static/datasets/1/train_results/`) 5. **模型推理 → 选系统模型 best.pt + 任选一张口罩图 → 检出框带类别与置信度** 6. 模型导出 → 下载 onnx(下载链接可直接点) > 演示数据说明:原始 22 图与标注来自早期版本(2025-08);原版 best.pt 当时未训出 > 有效模型(mAP50≈0.007),现库中的模型是 2026-09-03 在本平台重训的 > (YOLO26n / 100 epochs / CPU)。原版训练产物备份在 > `static/datasets/1/train_results_origin_bak_20250812/`(运行时数据,不入库)。 ## 功能特性 1. **项目管理**:创建、列出、删除项目 2. **图片管理**: - 上传单张或多张图片 - 通过ZIP文件批量上传图片 - 拖拽上传图片 3. **图片标注**: - 基于Web的边界框标注功能 - 图片间导航(上一张/下一张) - 项目内标签(类别)管理:添加、编辑、删除 - 标注数据实时保存到数据库,并自动生成YOLOv8 `.txt` 格式的标注文件 - **🆕 大模型辅助标注**:集成AI大模型进行智能目标检测和自动标注,大幅提升标注效率 4. **数据集划分**:批量将图片标记为训练集、验证集、测试集或未分配 5. **模型训练**: - 实际调用 `ultralytics` 库进行模型训练 - 训练任务在后台线程中运行,前端实时显示训练日志和进度 - 自动准备训练所需的数据集目录结构和 `data.yaml` 文件 6. **模型导出**:将训练好的模型导出为ONNX、TorchScript等多种格式 7. **🆕 RTSP实时检测**: - 支持RTSP视频流实时目标检测 - 实时显示检测结果和边界框 - 支持多路视频流同时检测 - 可配置检测参数和阈值 ## 技术栈 - **后端**:Python 3.12+, FastAPI, SQLAlchemy 2.0, uvicorn, threading, OpenCV (cv2), Pillow (PIL.Image), ultralytics, python-dotenv, PyYAML - **前端**:HTML5, CSS3, JavaScript, Bootstrap 5, Jinja2, Fabric.js - **数据库**:SQLite - **部署**:直接运行 `python app.py` ## 项目结构 ``` YoloUltralyticsWeb/ ├── app.py # FastAPI 应用入口(应用工厂 + uvicorn 启动) ├── run.py # 备用启动入口(与 app.py 参数完全一致:5500 / 127.0.0.1) ├── pyproject.toml # 依赖清单(uv 权威管理,ADR-0010);requirements.txt 为导出产物 ├── .env.example # 环境变量模板(.env 由它复制而来,不入库) ├── settings.py # 配置读取(root_path / DATABASE_URL) ├── database.py # engine / scoped_session / 启动迁移 ├── models.py # 数据库模型(8 张表) ├── routers/ # FastAPI 路由(main.py:61 条,只做编排;登录墙见 app.py AuthMiddleware) ├── services/ # 业务服务层(8 个服务类) ├── scripts/ # 质量与运维工具(run_checks 一键校验、ops/ 五件套) ├── inference_manager.py # 推理引擎(图片 / 视频 / RTSP) ├── camera_capture.py # 采集引擎(RTSP 抓帧 + 手写 ONVIF SOAP) ├── static/ # 运行时数据(uploads / datasets / models,不入库) └── templates/ # 13 个 Jinja2 页面 ``` ## 安装与运行 > ✅ **已在 Python 3.12.9 + torch 2.14.0+cpu 环境验证**(项目虚拟环境 `.venv`,版本由 > `.python-version` 锁定)。请先激活 `.venv` 再运行——系统 Python 未装依赖, > 直接运行会报 `No module named 'fastapi'`: > > ```bash > .venv\Scripts\activate # Windows;macOS/Linux 用 source .venv/bin/activate > ``` 1. 克隆或下载项目代码 2. 安装依赖(uv 是本项目的权威依赖管理器;也可用 pip 安装 `requirements.txt`): ```bash uv sync ``` 3. 运行应用: ```bash python app.py ``` 4. 在浏览器中访问 `http://localhost:5500` ##运行截图 ![输入图片说明](images/ftyolo1.jpg)![输入图片说明](images/ftyolo2.jpg) ![输入图片说明](images/ftyolo3.jpg)![输入图片说明](images/ftyolo4.jpg) ![输入图片说明](images/ftyolo5.jpg)![输入图片说明](images/ftyolo6.jpg) ## 使用说明 1. **创建项目**:在首页点击"创建项目"按钮,输入项目名称和描述 2. **上传图片**: - 进入项目详情页,点击"图片管理" - 可以上传单张/多张图片、ZIP压缩包或通过拖拽上传 3. **图片标注**: - 在项目详情页点击"图片标注" - 先创建标签(类别),然后选择标签在图片上绘制边界框 - 使用"上一张"/"下一张"导航到不同图片 - 点击"保存标注"保存当前图片的标注结果 - **🆕 大模型辅助标注**:点击"手动大模型识别标注"按钮,大模型将自动识别图片中的目标并生成标注框 4. **数据集划分**: - 在项目详情页点击"数据集划分" - 选择图片并设置为训练集、验证集、测试集或未分配 5. **模型训练**: - 在项目详情页点击"模型训练" - 点击"开始训练"按钮启动训练过程 - 可实时查看训练进度和日志 6. **模型导出**: - 训练完成后,在项目详情页点击"模型导出" - 选择需要的导出格式(ONNX、TorchScript等) - 点击"导出"按钮完成模型导出 7. **🆕 RTSP实时检测**: - 在首页点击"RTSP实时检测"进入实时检测页面 - 输入RTSP视频流地址 - 选择检测模型和项目 - 点击"开始检测"启动实时目标检测 - 可实时查看检测结果和调整检测参数 ## 注意事项 - 应用默认运行在 5500 端口,且**只监听本机(127.0.0.1)**、**调试器默认关闭**(T-013) - 可用环境变量覆盖:`PORT`(端口)、`HOST`(监听地址,如需局域网访问设为 `0.0.0.0`,请自担安全风险)、`FLASK_DEBUG`(调试器) - `app.py` 与 `run.py` 两个入口的启动参数完全一致(此前 run.py 是 5000 端口,T-005 已统一) - 所有数据存储在本地SQLite数据库中 - 上传的图片和训练的模型都保存在本地目录中 - 首次运行时会自动创建所需的目录和数据库 ## 交流群,扫码加好友进群交流, - 🍉是GVP项目yolo-onnx-java作者。 ![输入图片说明](images/ck1.png) ## 文档与 AI Agent 配置 - **[AGENTS.md](./AGENTS.md)** — AI 编码 Agent 的唯一权威入口(技术栈、命令、约定、边界、陷阱)。 同时提供 `CLAUDE.md`、`.cursorrules`、`.github/copilot-instructions.md` 指针文件。 - **[docs/](./docs/)** — 文档中心: | 文档 | 内容 | |---|---| | [PROJECT_MAP.md](docs/PROJECT_MAP.md) | 项目地图(代码在哪) | | [ARCHITECTURE.md](docs/ARCHITECTURE.md) | 架构设计与并发模型(附[可视化架构图](docs/diagrams/)) | | [SPEC.md](docs/SPEC.md) | 功能规格与数据契约 | | [DATA_MODEL.md](docs/DATA_MODEL.md) | 数据模型与迁移 | | [API.md](docs/API.md) | 路由参考 | | [ADR/](docs/ADR/) | 架构决策记录(13 篇) | | [TASKS.md](docs/TASKS.md) | 任务清单 | | [KNOWN_ISSUES.md](docs/KNOWN_ISSUES.md) | 已知问题登记册 | | [WORKFLOW.md](docs/WORKFLOW.md) | 开发工作流与验收标准 | ## 许可证 本项目由Boyan开发,仅供学习和研究使用。