feat: 新增PaddlePaddle检测支持,重构项目架构

1. 新增concurrently依赖用于并行启动服务
2. 新增服务器启动脚本统一管理环境变量和虚拟环境
3. 新增PaddlePaddle推理引擎和配套工具代码
4. 新增抽烟检测Paddle模型支持,完善模型管理
5. 重构开发启动脚本,优化开发体验
6. 更新.gitignore排除不必要的外部目录和缓存
7. 完善文档说明,新增PaddlePaddle部署指南
This commit is contained in:
wwh
2026-05-21 10:39:26 +08:00
parent 7aa71c5f83
commit e97bd503ec
31 changed files with 8759 additions and 199 deletions

67
setup-paddlepaddle.sh Normal file
View File

@@ -0,0 +1,67 @@
#!/bin/bash
set -e
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
PADDLE_DIR="${PROJECT_ROOT}/third-party/paddle-inference"
SERVER_DIR="${SCRIPT_DIR}/apps/server"
echo "🚀 PaddlePaddle 环境设置脚本"
echo "================================"
echo "项目根目录: $PROJECT_ROOT"
echo "PaddlePaddle 目录: $PADDLE_DIR"
echo "服务器目录: $SERVER_DIR"
if [ -d "$PADDLE_DIR" ]; then
echo "✅ PaddlePaddle 目录已存在: $PADDLE_DIR"
if [ -d "$SERVER_DIR/venv" ]; then
echo "✅ 服务器虚拟环境已找到"
echo ""
echo "📋 环境信息:"
echo " PaddlePaddle 目录: $PADDLE_DIR"
echo " 服务器虚拟环境: $SERVER_DIR/venv"
echo ""
echo "✅ PaddlePaddle 环境配置完成!"
echo ""
echo "📝 使用说明:"
echo " 1. 确保 paddle_detection_service.py 中的路径配置正确"
echo " 2. 运行 'sh scripts/dev.sh' 启动开发服务器"
echo " 3. 或运行 'pnpm dev' 启动整个项目"
echo ""
echo "💡 说明: PaddlePaddle 依赖已安装在服务器虚拟环境中"
echo "💡 PaddlePaddle 推理代码和模型已集成在 third-party 目录中"
exit 0
else
echo "❌ 服务器虚拟环境未找到,需要先设置服务器环境"
echo ""
echo "📝 首先运行服务器设置:"
echo " cd $SERVER_DIR"
echo " python3 -m venv venv"
echo " source venv/bin/activate"
echo " pip install -r requirements.txt"
echo " pip install paddlepaddle==3.0.0"
echo " pip install 'numpy==1.26.4' 'opencv-python==4.7.0.72'"
echo " pip install imgaug==0.4.0"
exit 1
fi
fi
echo "❌ PaddlePaddle 目录不存在"
echo ""
echo "📝 首次设置步骤:"
echo " PaddlePaddle 推理代码和模型已集成在项目中"
echo " 如需更新或重新部署 PaddlePaddle请手动操作"
echo " 1. 从 PaddlePaddle 官方下载 PaddleDetection release-2.9"
echo " 2. 复制必要的文件到: $PADDLE_DIR"
echo " - deploy/python/*"
echo " - output_inference/"
echo ""
echo "🔗 下载链接:"
echo " https://github.com/PaddlePaddle/PaddleDetection/releases/tag/release%2F2.9"
echo ""
echo "💡 注意: PaddlePaddle 依赖将安装在服务器虚拟环境中"