feat: 新增车辆检测Paddle模型及相关服务,优化依赖与代码兼容性
1. 新增3套PaddlePaddle车辆检测相关模型文件 2. 新增车辆检测服务类与违停检测功能 3. 更新服务依赖并添加环境初始化脚本与文档 4. 修复YOLO检测tensor转换兼容问题 5. 新增PyTorch版本兼容性修复逻辑 6. 扩展模型服务支持Paddle模型加载
This commit is contained in:
98
apps/server/setup_env.sh
Normal file
98
apps/server/setup_env.sh
Normal file
@@ -0,0 +1,98 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 视频模型检测平台 - 环境初始化脚本
|
||||
# 创建日期:2026-05-21
|
||||
# Python 版本:3.12
|
||||
|
||||
set -e
|
||||
|
||||
echo "========================================="
|
||||
echo "开始初始化视频模型检测平台环境"
|
||||
echo "========================================="
|
||||
|
||||
# 检查 Python 版本
|
||||
PYTHON_VERSION=$(python3 --version 2>&1 | awk '{print $2}')
|
||||
echo "当前 Python 版本: $PYTHON_VERSION"
|
||||
|
||||
# 创建虚拟环境
|
||||
if [ ! -d "venv" ]; then
|
||||
echo "创建虚拟环境..."
|
||||
python3 -m venv venv
|
||||
echo "✅ 虚拟环境创建成功"
|
||||
else
|
||||
echo "⚠️ 虚拟环境已存在,跳过创建步骤"
|
||||
fi
|
||||
|
||||
# 激活虚拟环境
|
||||
echo "激活虚拟环境..."
|
||||
source venv/bin/activate
|
||||
|
||||
# 升级 pip
|
||||
echo "升级 pip..."
|
||||
pip install --upgrade pip
|
||||
|
||||
# 安装依赖
|
||||
echo "安装项目依赖..."
|
||||
pip install -r requirements.txt
|
||||
|
||||
# 修复 imgaug NumPy 2.0 兼容性问题
|
||||
echo "修复 imgaug NumPy 2.0 兼容性问题..."
|
||||
IMGUAG_FILE="venv/lib/python3.12/site-packages/imgaug/imgaug.py"
|
||||
|
||||
if [ -f "$IMGUAG_FILE" ]; then
|
||||
echo "应用 imgaug 兼容性补丁..."
|
||||
|
||||
# 检查是否已经修复
|
||||
if grep -q "np.float16, np.float32, np.float64" "$IMGUAG_FILE"; then
|
||||
echo "✅ imgaug 已修复,跳过"
|
||||
else
|
||||
# 备份原文件
|
||||
cp "$IMGUAG_FILE" "${IMGUAG_FILE}.backup"
|
||||
|
||||
# 应用修复
|
||||
sed -i.bak 's/NP_FLOAT_TYPES = set(np.sctypes\["float"\])/NP_FLOAT_TYPES = {np.float16, np.float32, np.float64}/' "$IMGUAG_FILE"
|
||||
sed -i.bak 's/NP_INT_TYPES = set(np.sctypes\["int"\])/NP_INT_TYPES = {np.int8, np.int16, np.int32, np.int64}/' "$IMGUAG_FILE"
|
||||
sed -i.bak 's/NP_UINT_TYPES = set(np.sctypes\["uint"\])/NP_UINT_TYPES = {np.uint8, np.uint16, np.uint32, np.uint64}/' "$IMGUAG_FILE"
|
||||
|
||||
echo "✅ imgaug 修复完成"
|
||||
fi
|
||||
else
|
||||
echo "⚠️ imgaug 文件未找到,跳过修复步骤"
|
||||
fi
|
||||
|
||||
# 验证安装
|
||||
echo "验证关键包安装..."
|
||||
python -c "import numpy; print(f'✅ NumPy {numpy.__version__}')"
|
||||
python -c "import torch; print(f'✅ PyTorch {torch.__version__}')"
|
||||
python -c "import ultralytics; print(f'✅ Ultralytics {ultralytics.__version__}')"
|
||||
python -c "import paddle; print(f'✅ PaddlePaddle {paddle.__version__}')"
|
||||
python -c "import cv2; print(f'✅ OpenCV {cv2.__version__}')"
|
||||
|
||||
# 检查 PaddleDetection 第三方库
|
||||
PADDLE_DIR="../third-party/paddle-inference"
|
||||
if [ -d "$PADDLE_DIR" ]; then
|
||||
echo "✅ PaddleDetection 第三方库存在"
|
||||
else
|
||||
echo "⚠️ 警告:PaddleDetection 第三方库不存在于 $PADDLE_DIR"
|
||||
echo "请确保从 AI Studio 下载相关模型和代码"
|
||||
fi
|
||||
|
||||
# 创建必要的目录
|
||||
echo "创建必要的目录..."
|
||||
mkdir -p static/results
|
||||
mkdir -p logs
|
||||
|
||||
echo "========================================="
|
||||
echo "环境初始化完成!"
|
||||
echo "========================================="
|
||||
echo ""
|
||||
echo "使用说明:"
|
||||
echo "1. 激活虚拟环境: source venv/bin/activate"
|
||||
echo "2. 启动服务: python main.py"
|
||||
echo "3. 或使用启动脚本: ./start_server_with_env.sh"
|
||||
echo ""
|
||||
echo "重要提示:"
|
||||
echo "- 确保下载了所有需要的模型文件到 models/ 目录"
|
||||
echo "- PaddleDetection 第三方库位于: $PADDLE_DIR"
|
||||
echo "- 详细版本信息见 requirements.txt"
|
||||
echo ""
|
||||
Reference in New Issue
Block a user