#!/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 ""