Files
rtsp-video-analysis-system/UPDATE-SUMMARY.md
2025-09-30 14:23:33 +08:00

295 lines
6.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🎉 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+
✅ 所有更新已完成,可以直接使用!