# deep-vision
**Repository Path**: aizuda/deep-vision
## Basic Information
- **Project Name**: deep-vision
- **Description**: 🔥🔥🔥 从数据标注、模型训练到实时推理监控的全流程AI视觉系统
- **Primary Language**: Unknown
- **License**: AGPL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 7
- **Forks**: 3
- **Created**: 2025-09-12
- **Last Updated**: 2025-09-15
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# YOLO Detection System
一个完整的YOLO目标检测系统,包含模型训练、推理、数据集管理和Web界面。
## 📸 系统预览
### 🎯 功能展示
🏠 系统主界面
功能导航与系统概览
|
📝 数据标注
可视化图像标注工具
|
🚀 数据集管理
管理属于自己的专属数据集
|
🎯 模型训练
训练属于自己的模型
|
🎯 智能推理
批量检测与结果分析
|
📊实时监控分析
|
---
### ✨ 核心特性一览
🔥 完整的YOLO目标检测解决方案
从数据标注、模型训练到实时推理监控的全流程AI视觉系统
## 🚀 功能特性
### 后端功能
- ✅ **模型训练**: 支持YOLOv8模型训练
- ✅ **模型推理**: 单张图片和批量推理
- ✅ **实时监控**: WebSocket实时推理监控
- ✅ **数据集管理**: 上传、管理、删除数据集
- ✅ **任务监控**: 实时训练进度监控
- ✅ **模型导出**: 支持ONNX等格式导出
- ✅ **建议参数**: 多种预设训练参数配置
### 前端功能
- ✅ **数据标注**: 可视化图像标注工具
- ✅ **数据集管理**: 上传、查看、删除数据集
- ✅ **模型训练**: 可视化训练配置和监控
- ✅ **模型推理**: 图像上传和检测结果展示
- ✅ **实时监控**: 摄像头实时推理监控
- ✅ **参数优化**: 建议参数选择功能
## 📁 项目结构
```
yolo_detection_system/
├── backend/ # 后端API服务
│ ├── yolo_api.py # 主API服务
│ ├── yolo_trainer.py # YOLO训练器
│ ├── start_api.py # API启动脚本
│ ├── requirements.txt # Python依赖
│ ├── Dockerfile # 后端Docker配置
│ └── .dockerignore # Docker忽略文件
├── frontend/ # 前端Vue.js应用
│ ├── src/ # 源代码
│ ├── package.json # 前端依赖
│ ├── vite.config.js # 构建配置
│ ├── Dockerfile # 前端Docker配置
│ ├── nginx.conf # Nginx配置
│ └── .dockerignore # Docker忽略文件
├── scripts/ # 启动脚本
│ ├── start_all.sh # 一键启动脚本
│ ├── start_backend.sh # 后端启动脚本
│ ├── start_frontend.sh # 前端启动脚本
│ ├── docker_start.sh # Docker一键部署
│ └── docker_stop.sh # Docker停止服务
├── data/ # 数据持久化目录(Docker创建)
│ ├── datasets/ # 数据集存储
│ ├── runs/ # 训练结果
│ ├── exports/ # 模型导出
│ └── static/ # 静态文件
├── docker-compose.yml # Docker Compose配置
├── .dockerignore # Docker忽略文件
├── DOCKER.md # Docker部署指南
├── DEPLOYMENT.md # 本地部署指南
└── README.md # 项目说明
```
## 🛠️ 安装和运行
### 环境要求
- Python 3.8+
- Node.js 16+
- npm 或 yarn
### 后端安装
```bash
cd backend
pip install -r requirements.txt
```
### 前端安装
```bash
cd frontend
npm install
```
### 启动服务
#### 方式一:Docker部署(推荐)
```bash
# 一键Docker部署
./scripts/docker_start.sh
# 停止Docker服务
./scripts/docker_stop.sh
```
#### 方式二:本地开发
```bash
# 一键启动
./scripts/start_all.sh
# 或分别启动
cd backend && python start_api.py
cd frontend && npm run dev
```
#### 方式三:手动启动
```bash
# 启动后端API
cd backend
python start_api.py
# 启动前端(新终端)
cd frontend
npm run dev
```
### 访问地址
- **前端界面**: http://localhost:3000
- **后端API**: http://localhost:8000
- **API文档**: http://localhost:8000/docs
## 🎯 使用指南
### 1. 数据标注
1. 访问"数据标注"页面
2. 上传图片并进行标注
3. 导出YOLO格式数据集
### 2. 模型训练
1. 访问"模型训练"页面
2. 选择数据集
3. 选择建议参数配置:
- **二维码优化**: 适合二维码/条码识别
- **小数据集**: 适合少量训练数据
- **通用检测**: 标准目标检测
- **微调模式**: 在预训练模型基础上微调
4. 开始训练并监控进度
### 3. 模型推理
访问"模型推理"页面,支持批量推理和实时监控两种模式:
#### 批量推理模式
1. 选择训练好的模型
2. 调整置信度和IoU阈值
3. 上传单张或批量图片
4. 查看检测结果和统计信息
#### 实时监控模式 🆕
1. 切换到"实时监控"模式
2. 选择视频源:
- **摄像头**: 本地摄像头实时监控
- **监控探头**: RTSP/HTTP网络摄像头
- **视频文件**: 上传的本地视频文件
3. 点击"开始监控"启动实时检测
4. 实时查看检测结果和性能统计
5. 通过配置面板调整检测参数
6. 监控FPS、推理时间等性能指标
#### 九宫格监控模式 🔥
1. 切换到"九宫格监控"模式
2. 点击"配置九宫格"设置网格:
- **网格大小**: 2×2、3×3、2×3可选
- **共享参数**: 统一的模型和检测参数
- **视频源配置**: 为每个格子选择不同的视频源
3. 点击"启动监控"开始多路并发推理
4. 同时查看多个视频源的检测结果
5. 监控全局和单格的性能统计
6. 支持响应式布局,适配不同屏幕尺寸
详细使用说明请参考:
- [实时推理监控功能文档](REALTIME_INFERENCE.md)
- [九宫格监控功能文档](GRID_INFERENCE.md)
#### 功能测试
可以使用测试脚本验证实时推理功能:
```bash
python test_realtime.py
```
#### 故障排除
如果遇到实时推理问题,请参考:[实时推理修复说明](REALTIME_FIX.md)
### 4. 数据集管理
1. 访问"数据集管理"页面
2. 上传、查看、删除数据集
3. 支持批量操作
## 🎯 建议参数配置
### 二维码优化 (推荐用于二维码识别)
- **学习率**: 0.0005
- **批次大小**: 2
- **训练轮数**: 50
- **适用场景**: 二维码、条码、小目标检测
### 小数据集
- **学习率**: 0.001
- **批次大小**: 4
- **训练轮数**: 80
- **适用场景**: 少于50张图片的训练
### 通用检测
- **学习率**: 0.01
- **批次大小**: 16
- **训练轮数**: 100
- **适用场景**: 标准目标检测任务
### 微调模式
- **学习率**: 0.0001
- **批次大小**: 8
- **训练轮数**: 30
- **适用场景**: 在预训练模型基础上微调
## 🔧 开发说明
### 技术栈
- **后端**: FastAPI + Ultralytics YOLO + Python
- **前端**: Vue.js 3 + Element Plus + Vite
- **数据处理**: OpenCV + PIL + NumPy
- **模型**: YOLOv8 系列模型
### API接口
- `POST /train` - 开始训练
- `GET /tasks` - 获取任务列表
- `POST /predict` - 单张图片推理
- `POST /predict/batch` - 批量推理
- `GET /models` - 获取模型列表
- `GET /datasets` - 获取数据集列表
- `POST /upload/dataset` - 上传数据集
- `DELETE /datasets/{id}` - 删除数据集
## 📊 性能优化
### 二维码识别优化
基于实际测试验证,二维码识别的最佳配置:
- **训练参数**: lr=0.0005, batch=2, epochs=50
- **推理参数**: conf=0.015, iou=0.1
- **预期效果**: mAP50>0.95, 正确识别单个二维码
## 🎉 版本信息
- **版本**: 1.0.0
- **创建日期**: 2025-09-11
- **最后更新**: 2025-09-11
## 📞 支持
如有问题或建议,请提交issues。