将检测任务迁移python
This commit is contained in:
295
UPDATE-SUMMARY.md
Normal file
295
UPDATE-SUMMARY.md
Normal file
@@ -0,0 +1,295 @@
|
||||
# 🎉 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+
|
||||
|
||||
✅ 所有更新已完成,可以直接使用!
|
||||
Reference in New Issue
Block a user