1. 新增3套PaddlePaddle车辆检测相关模型文件 2. 新增车辆检测服务类与违停检测功能 3. 更新服务依赖并添加环境初始化脚本与文档 4. 修复YOLO检测tensor转换兼容问题 5. 新增PyTorch版本兼容性修复逻辑 6. 扩展模型服务支持Paddle模型加载
98 lines
3.1 KiB
Bash
98 lines
3.1 KiB
Bash
#!/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 "" |