Files
rtsp-video-analysis-system/UPDATE-SUMMARY.md

295 lines
6.4 KiB
Markdown
Raw Permalink Normal View History

2025-09-30 14:23:33 +08:00
# 🎉 Docker部署方案更新总结
根据您的需求,已完成以下更新:
## ✅ 主要变更
### 1. YOLOv5 → YOLOv8 (Ultralytics)
| 变更项 | 之前 | 现在 |
|-------|------|------|
| Python包 | `yolov5>=7.0.0` | `ultralytics>=8.0.0` |
| 模型文件 | `garbage_model.py` | `yolov8_model.py` |
| 模型名称 | `garbage_detector` | `yolov8_detector` |
| API框架 | yolov5 | Ultralytics YOLO |
**优势:**
- ✨ 更高的检测精度
- ⚡ 更快的推理速度
- 🎯 更简单的API接口
- 📚 更好的官方文档支持
### 2. 前端端口调整
| 变更项 | 之前 | 现在 |
|-------|------|------|
| 对外端口 | 80 | 10080 |
| 容器内部端口 | 80 | 80 |
| 访问地址 | http://localhost | http://localhost:10080 |
**修改文件:**
- `.env` - `FRONTEND_PORT=10080`
- 所有文档中的访问地址
## 📦 新增文件
### 1. YOLOv8模型支持
- `python-inference-service/models/yolov8_model.py` - YOLOv8模型包装类
- `YOLOV8-SETUP.md` - YOLOv8配置和使用指南
- 更新 `python-inference-service/README.md` - 详细的YOLOv8文档
### 2. 配置文件更新
- 更新 `python-inference-service/requirements.txt` - ultralytics依赖
- 更新 `python-inference-service/models/models.json` - 指向yolov8_model
### 3. 文档更新
- `README-DOCKER.md` - 更新端口和YOLOv8说明
- `DOCKER-QUICK-START.md` - 更新访问地址和YOLOv8说明
- `deploy.bat` / `deploy.sh` - 更新访问地址
- `UPDATE-SUMMARY.md` - 本文档
## 🚀 使用指南
### 准备工作
1. **准备YOLOv8模型文件**
```bash
# 将训练好的模型放到指定位置
python-inference-service/models/best.pt
```
2. **创建类别文件**(可选)
```bash
# 创建 classes.txt每行一个类别名
python-inference-service/models/classes.txt
```
3. **检查环境变量**
```bash
# 查看 .env 文件,确认端口配置
FRONTEND_PORT=10080
```
### 快速部署
#### Windows
```batch
deploy.bat
```
#### Linux/Mac
```bash
chmod +x deploy.sh
./deploy.sh
```
#### 手动部署
```bash
# 1. 启动所有服务
docker-compose up -d
# 2. 查看服务状态
docker-compose ps
# 3. 查看日志
docker-compose logs -f python-service
```
### 访问系统
部署成功后访问:
- **前端界面**: http://localhost:10080
- **后端API**: http://localhost:10080/prod-api/
- **Python API**: http://localhost:10080/python-api/
- **API文档**: http://localhost:10080/prod-api/swagger-ui.html
## 📋 YOLOv8模型要求
### 模型训练
如果需要训练新模型:
```python
from ultralytics import YOLO
# 加载预训练模型
model = YOLO('yolov8n.pt') # n/s/m/l/x
# 训练
results = model.train(
data='data.yaml',
epochs=100,
imgsz=640,
batch=16
)
# 模型保存在 runs/detect/train/weights/best.pt
```
### 模型部署
```bash
# 1. 复制模型到项目
cp runs/detect/train/weights/best.pt python-inference-service/models/
# 2. 创建类别文件
cat > python-inference-service/models/classes.txt << EOF
class1
class2
class3
EOF
# 3. 重启服务
docker-compose restart python-service
```
## 🔧 配置说明
### 环境变量(.env
所有配置集中在一个文件:
```bash
# 前端端口
FRONTEND_PORT=10080
# MySQL
MYSQL_HOST=rtsp-mysql
MYSQL_PORT=3306
MYSQL_PASSWORD=ruoyi123
# Redis
REDIS_HOST=rtsp-redis
# MinIO
MINIO_HOST=rtsp-minio
MINIO_ACCESS_KEY=minio
MINIO_SECRET_KEY=minio123
# Python服务
PYTHON_SERVICE_HOST=rtsp-python-service
```
### 模型配置models.json
```json
[
{
"name": "yolov8_detector",
"path": "models/yolov8_model.py",
"size": [640, 640]
}
]
```
### 性能调优
编辑 `yolov8_model.py`
```python
# 置信度阈值
self.conf_threshold = 0.25 # 默认0.25
# 输入尺寸
self.img_size = 640 # 320/640/1280
```
## 🎯 服务架构
```
┌─────────────┐
│ Browser │
│ :10080 │ ← 唯一对外暴露
└──────┬──────┘
┌──────▼──────┐
│ Frontend │
│ Nginx │
└──────┬──────┘
┌───┴────────────────┐
│ │
┌──▼───────┐ ┌──────▼──────┐
│ Backend │ │ Python │
│ :8080 │ │ Service │
│ │ │ :8000(CPU) │
└───┬──┬───┘ └─────────────┘
│ │
┌───▼──▼───┐ ┌─────────────┐
│ MySQL │ │ MinIO(外部) │
│ Redis │ │ 49.232... │
└──────────┘ └─────────────┘
```
## ⚠️ 重要提示
### 必须操作
1. ✅ 将 `best.pt` 文件放到 `python-inference-service/models/` 目录
2. ✅ 确保模型是 YOLOv8 训练的不支持YOLOv5直接使用
3. ✅ 首次启动等待1-2分钟
### 可选操作
1. 📝 创建 `classes.txt` 类别文件
2. 🎨 调整置信度阈值
3. 🔧 修改MinIO配置如需更换服务器
### 常见问题
#### Q1: 模型加载失败
```bash
# 检查模型文件
ls -lh python-inference-service/models/best.pt
# 查看日志
docker-compose logs python-service
```
#### Q2: 端口被占用
```bash
# 修改 .env 文件
FRONTEND_PORT=8080 # 改为其他端口
# 重启服务
docker-compose down
docker-compose up -d
```
#### Q3: 如何更换MinIO服务
```bash
# 编辑 ruoyi-admin/src/main/resources/application.yml
minio:
endpoint: http://your-server:port
access-key: your-key
secret-key: your-secret
bucket: your-bucket
```
## 📖 文档导航
- 📘 **完整部署文档**: `README-DOCKER.md`
- 🚀 **快速开始**: `DOCKER-QUICK-START.md`
- 🤖 **YOLOv8配置**: `YOLOV8-SETUP.md`
- 📋 **文件清单**: `DEPLOYMENT-FILES.md`
- 🐍 **Python服务**: `python-inference-service/README.md`
## 🎓 学习资源
- [Ultralytics YOLOv8官方文档](https://docs.ultralytics.com/)
- [YOLOv8训练教程](https://docs.ultralytics.com/modes/train/)
- [Docker部署最佳实践](https://docs.docker.com/develop/dev-best-practices/)
## 💡 技术支持
遇到问题?
1. 查看日志:`docker-compose logs [服务名]`
2. 查看服务状态:`docker-compose ps`
3. 查看相关文档
4. 检查模型文件和配置
---
**更新日期**: 2025-09-30
**适用版本**: Docker Compose 3.8+, YOLOv8 8.0+
✅ 所有更新已完成,可以直接使用!