Files
jc-video-recognize/apps/server/setup_env.sh
wwh a16e684e46 feat: 新增车辆检测Paddle模型及相关服务,优化依赖与代码兼容性
1. 新增3套PaddlePaddle车辆检测相关模型文件
2. 新增车辆检测服务类与违停检测功能
3. 更新服务依赖并添加环境初始化脚本与文档
4. 修复YOLO检测tensor转换兼容问题
5. 新增PyTorch版本兼容性修复逻辑
6. 扩展模型服务支持Paddle模型加载
2026-05-21 16:26:26 +08:00

98 lines
3.1 KiB
Bash
Raw Permalink 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.
#!/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 ""