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

6.4 KiB
Raw Blame History

🎉 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模型文件

    # 将训练好的模型放到指定位置
    python-inference-service/models/best.pt
    
  2. 创建类别文件(可选)

    # 创建 classes.txt每行一个类别名
    python-inference-service/models/classes.txt
    
  3. 检查环境变量

    # 查看 .env 文件,确认端口配置
    FRONTEND_PORT=10080
    

快速部署

Windows

deploy.bat

Linux/Mac

chmod +x deploy.sh
./deploy.sh

手动部署

# 1. 启动所有服务
docker-compose up -d

# 2. 查看服务状态
docker-compose ps

# 3. 查看日志
docker-compose logs -f python-service

访问系统

部署成功后访问:

📋 YOLOv8模型要求

模型训练

如果需要训练新模型:

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

模型部署

# 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

所有配置集中在一个文件:

# 前端端口
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

[
  {
    "name": "yolov8_detector",
    "path": "models/yolov8_model.py",
    "size": [640, 640]
  }
]

性能调优

编辑 yolov8_model.py

# 置信度阈值
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: 模型加载失败

# 检查模型文件
ls -lh python-inference-service/models/best.pt

# 查看日志
docker-compose logs python-service

Q2: 端口被占用

# 修改 .env 文件
FRONTEND_PORT=8080  # 改为其他端口

# 重启服务
docker-compose down
docker-compose up -d

Q3: 如何更换MinIO服务

# 编辑 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

🎓 学习资源

💡 技术支持

遇到问题?

  1. 查看日志:docker-compose logs [服务名]
  2. 查看服务状态:docker-compose ps
  3. 查看相关文档
  4. 检查模型文件和配置

更新日期: 2025-09-30 适用版本: Docker Compose 3.8+, YOLOv8 8.0+

所有更新已完成,可以直接使用!