|
|
#!/bin/bash |
|
|
|
|
|
|
|
|
echo "🚀 开始部署单鼠姿态检测WebRTC系统..." |
|
|
|
|
|
|
|
|
echo "🔍 检查Python环境..." |
|
|
if ! command -v python3 &> /dev/null; then |
|
|
echo "❌ 错误: 未找到Python3,请先安装Python 3.11+" |
|
|
exit 1 |
|
|
fi |
|
|
|
|
|
echo "✅ Python版本: $(python3 --version)" |
|
|
|
|
|
|
|
|
echo "🔍 检查虚拟环境..." |
|
|
if [[ "$VIRTUAL_ENV" == "" ]]; then |
|
|
echo "⚠️ 警告: 建议在虚拟环境中运行" |
|
|
echo "💡 创建虚拟环境: conda create -n mouse-webrtc python=3.11" |
|
|
echo "💡 激活环境: conda activate mouse-webrtc" |
|
|
read -p "是否继续在当前环境安装? (y/N): " -n 1 -r |
|
|
echo |
|
|
if [[ ! $REPLY =~ ^[Yy]$ ]]; then |
|
|
exit 1 |
|
|
fi |
|
|
fi |
|
|
|
|
|
|
|
|
echo "📦 安装Python依赖..." |
|
|
pip install -r requirements_gradio_webrtc.txt |
|
|
|
|
|
if [ $? -ne 0 ]; then |
|
|
echo "❌ 依赖安装失败,请检查网络连接和Python环境" |
|
|
exit 1 |
|
|
fi |
|
|
|
|
|
|
|
|
echo "🔍 检查模型文件..." |
|
|
if [ ! -f "models/kunin-mice-pose.v0.1.5n.pt" ]; then |
|
|
echo "❌ 错误: 模型文件不存在 models/kunin-mice-pose.v0.1.5n.pt" |
|
|
echo "请确保模型文件已正确放置在models目录中" |
|
|
exit 1 |
|
|
fi |
|
|
|
|
|
echo "✅ 模型文件检查通过" |
|
|
|
|
|
|
|
|
echo "🧪 测试模型加载..." |
|
|
python check_model.py |
|
|
|
|
|
if [ $? -ne 0 ]; then |
|
|
echo "❌ 模型加载测试失败" |
|
|
exit 1 |
|
|
fi |
|
|
|
|
|
|
|
|
echo "🔍 检查端口占用..." |
|
|
if lsof -Pi :7860 -sTCP:LISTEN -t >/dev/null 2>&1; then |
|
|
echo "⚠️ 端口7860已被占用" |
|
|
read -p "是否强制停止占用进程? (y/N): " -n 1 -r |
|
|
echo |
|
|
if [[ $REPLY =~ ^[Yy]$ ]]; then |
|
|
lsof -ti:7860 | xargs kill -9 2>/dev/null |
|
|
fi |
|
|
fi |
|
|
|
|
|
if lsof -Pi :8765 -sTCP:LISTEN -t >/dev/null 2>&1; then |
|
|
echo "⚠️ 端口8765已被占用" |
|
|
read -p "是否强制停止占用进程? (y/N): " -n 1 -r |
|
|
echo |
|
|
if [[ $REPLY =~ ^[Yy]$ ]]; then |
|
|
lsof -ti:8765 | xargs kill -9 2>/dev/null |
|
|
fi |
|
|
fi |
|
|
|
|
|
|
|
|
mkdir -p logs |
|
|
|
|
|
echo "🎉 部署准备完成!" |
|
|
echo "📋 服务信息:" |
|
|
echo " - Gradio界面: http://localhost:7860" |
|
|
echo " - API服务: http://localhost:8765" |
|
|
echo " - WebSocket: ws://localhost:8765/ws/stream" |
|
|
echo " - API文档: http://localhost:8765/docs" |
|
|
echo "" |
|
|
|
|
|
|
|
|
read -p "是否立即启动服务? (Y/n): " -n 1 -r |
|
|
echo |
|
|
if [[ ! $REPLY =~ ^[Nn]$ ]]; then |
|
|
echo "🚀 启动服务中..." |
|
|
python start_gradio_webrtc.py |
|
|
else |
|
|
echo "💡 手动启动命令: python start_gradio_webrtc.py" |
|
|
echo "💡 测试命令: python test_gradio_webrtc_client.py" |
|
|
fi |