HumansXドキュメントセンター 公式サイトへ ↗

デプロイガイド

環境の準備

1. システム要件

  • オペレーティングシステム :Ubuntu 20.04 以降
  • Python バージョン :3.6 以上
  • ハードウェアプラットフォーム :RDK X5 開発ボード(推奨)または互換性のあるARMアーキテクチャ
  • メモリ要件:2GB以上のRAM
  • ストレージ :3GB以上の空き容量
  • ネットワーク :有線/無線ネットワーク接続に対応

2. ハードウェアの接続

カメラ機器

# 检查摄像头设备
ls /dev/video*
# 或检查 facecamera 设备(RDK X5专用)
ls /dev/facecamera

# 测试摄像头功能
v4l2-ctl --list-devices

雲台(PTZ)シリアルポート機器

# 检查串口设备
ls /dev/ttyS*

# 设置串口权限
sudo chmod 666 /dev/ttyS1

# 或添加用户到dialout组(推荐)
sudo usermod -a -G dialout $USER
# 需要重新登录生效

ハードウェア接続チェックリスト

  • カメラが正常に接続され、デバイスパスにアクセスできること
  • 雲台が /dev/ttyS1 に接続されていること
  • シリアルポートのボーレートが115200に設定されていること
  • 雲台の電源が正常で、サーボが正常に応答すること
  • ネットワーク接続が安定していること

インストール手順

1. プロジェクトのクローン

# 克隆项目到本地
git clone https://github.com/your-username/Proj_Intelligent-Face-Tracker.git
cd Proj_Intelligent-Face-Tracker

# 检查项目结构
ls -la

2. 仮想環境の作成(推奨)

# 使用Python内置venv
python3 -m venv venv
source venv/bin/activate

# 或使用conda
conda create -n face_tracker python=3.8
conda activate face_tracker

3. システム依存関係のインストール

# 更新包管理器
sudo apt update

# 安装系统依赖
sudo apt install -y \
    python3-dev \
    python3-pip \
    build-essential \
    cmake \
    pkg-config \
    libjpeg-dev \
    libpng-dev \
    libtiff-dev \
    libavcodec-dev \
    libavformat-dev \
    libswscale-dev \
    libv4l-dev \
    libxvidcore-dev \
    libx264-dev \
    libgtk-3-dev \
    libatlas-base-dev \
    gfortran \
    libusb-1.0-0-dev

# RDK X5特定依赖(如果适用)
sudo apt install -y hobot-dnn hobot-cv

4. Python 依存関係のインストール

# 升级pip
pip install --upgrade pip

# 安装项目依赖
pip install -r requirements.txt

# 验证关键包安装
python -c "import cv2; print('OpenCV版本:', cv2.__version__)"
python -c "import numpy; print('NumPy版本:', numpy.__version__)"
python -c "import flask; print('Flask版本:', flask.__version__)"

5. モデルファイルの準備

# 确保模型文件在正确位置
ls -la model/yolo11n_face_detect_bayese_320x320_nv12.bin

# 如果模型文件不存在,请从以下来源获取:
# 1. 项目发布页面下载
# 2. 联系开发团队获取
# 3. 自己训练YOLO11人脸检测模型

環境設定

1. 基本設定ファイル

本プロジェクトでは、YAML設定ファイルと環境変数で設定を管理します。

# 查看默认配置
cat config/default.yaml

# 根据需要修改配置
cp config/default.yaml config/production.yaml
vim config/production.yaml

2. 環境変数の設定

環境変数ファイルを作成します(任意。通常は変更不要です)。

# 创建.env文件
cat > .env << 'EOF'
# Web服务配置
FACE_TRACKER_WEB_PORT=5000
FACE_TRACKER_WEB_HOST=0.0.0.0

# MCP服务配置
FACE_TRACKER_MCP_PORT=8000
FACE_TRACKER_MCP_HOST=0.0.0.0

# 日志配置
FACE_TRACKER_LOGGING_CONSOLE_LEVEL=INFO
FACE_TRACKER_LOGGING_FILE_LEVEL=DEBUG

# 硬件配置
FACE_TRACKER_CAMERA_DEVICE_PATH=/dev/facecamera
FACE_TRACKER_GIMBAL_SERIAL_PORT=/dev/ttyS1
FACE_TRACKER_GIMBAL_BAUDRATE=115200

# 模型配置
FACE_TRACKER_MODEL_PATH=model/yolo11n_face_detect_bayese_320x320_nv12.bin
FACE_TRACKER_MODEL_CONFIDENCE_THRESHOLD=0.6
FACE_TRACKER_MODEL_IOU_THRESHOLD=0.45

# 追踪配置
FACE_TRACKER_TRACKING_PID_KP=0.6
FACE_TRACKER_TRACKING_KALMAN_ENABLED=true
FACE_TRACKER_TRACKING_PREDICTION_ENABLED=true
EOF

3. 設定ファイルのカスタマイズ

ログ設定

# config/default.yaml 中的日志配置
logging:
  console_level: "INFO"    # DEBUG, INFO, WARNING, ERROR
  file_level: "DEBUG"
  format: "[%(name)s] [%(asctime)s.%(msecs)03d] [%(levelname)s] %(message)s"
  datefmt: "%H:%M:%S"
  file_path: "logs/app.log"
  max_file_size: 10485760  # 10MB
  backup_count: 5

カメラ設定

camera:
  device_path: "/dev/facecamera"  # 或 "/dev/video0"
  width: 640
  height: 480
  fps: 30

雲台設定

gimbal:
  serial_port: "/dev/ttyS1"
  baudrate: 115200
  pan_pin: 3
  tilt_pin: 4
  init_pan_angle: 135.0
  init_tilt_angle: 135.0
  angle_range: [0, 270]

追跡設定

tracking:
  auto_enabled: false
  pid_kp: 0.6
  kalman_enabled: true
  prediction_enabled: true
  target_center_threshold: 50  # 像素

サービスの起動

方法1:起動スクリプトを使用する(推奨)

# 启动所有服务
./bin/start-mcp-server.sh

# 停止所有服务
./bin/stop-mcp-server.sh

# 查看服务状态
ps aux | grep python | grep face_tracker

起動スクリプトの内容

#!/bin/bash
# bin/start-mcp-server.sh

set -e

echo "启动智能人脸追踪系统..."

# 检查Python虚拟环境
if [[ "$VIRTUAL_ENV" != "" ]]; then
    echo "使用虚拟环境: $VIRTUAL_ENV"
else
    echo "警告: 未检测到虚拟环境"
fi

# 检查必要文件
if [ ! -f "model/yolo11n_face_detect_bayese_320x320_nv12.bin" ]; then
    echo "错误: 模型文件不存在"
    exit 1
fi

# 创建日志目录
mkdir -p logs

# 设置环境变量
export PYTHONPATH="${PYTHONPATH}:$(pwd)"

# 启动服务
echo "正在启动服务..."
python main.py &

SERVER_PID=$!
echo "服务已启动, PID: $SERVER_PID"
echo $SERVER_PID > face_tracker.pid

echo "服务启动完成!"
echo "Web界面: http://localhost:5000"
echo "MCP服务: http://localhost:8000/mcp/"

方法2:直接実行する

# 使用默认配置启动
python main.py

# 指定配置文件启动
python main.py --config config/production.yaml

# 启用调试模式
python main.py --debug

# 后台运行
nohup python main.py > logs/server.log 2>&1 &

デプロイの検証

1. サービス状態の確認

起動後、利用可能なすべてのアクセスアドレスが表示されます。

启动信息:
- Web界面: http://127.0.0.1:5000
- MCP服务: http://127.0.0.1:8000/mcp/
- API接口: http://127.0.0.1:5000/api/system/status

局域网访问:
- Web界面: http://192.168.1.100:5000 (主要)
- MCP服务: http://192.168.1.100:8000/mcp/

2. 機能テスト

Webサービスのテスト

# 测试Web服务
curl http://localhost:5000/api/system/status

# 测试人脸检测API
curl http://localhost:5000/api/faces

# 在浏览器中访问
# http://localhost:5000

MCPサービスのテスト

# 测试MCP服务
curl http://localhost:8000/mcp/

# 测试工具列表
curl -X POST http://localhost:8000/mcp/ \
  -H "Content-Type: application/json" \
  -d '{"method": "tools/list", "params": {}}'

ハードウェアのテスト

# 测试摄像头
python -c "
import cv2
cap = cv2.VideoCapture('/dev/facecamera')
print('摄像头状态:', 'OK' if cap.isOpened() else 'Error')
cap.release()
"

# 测试串口权限
python -c "
import serial
try:
    ser = serial.Serial('/dev/ttyS1', 115200, timeout=1)
    print('串口状态: OK')
    ser.close()
except Exception as e:
    print('串口错误:', e)
"

3. パフォーマンスの検証

# 检查系统资源使用
top -p $(pgrep -f "python.*main.py")

# 检查内存使用
ps aux | grep python | grep face_tracker

# 检查网络连接
netstat -tulpn | grep -E "(5000|8000)"

# 测试检测性能
curl -s http://localhost:5000/api/system/status | jq '.performance'

トラブルシューティング

よくある質問

1. カメラデバイスの問題

問題:カメラデバイスが存在しない、またはアクセスできない

# 症状
ls: cannot access '/dev/facecamera': No such file or directory

解決方法 :

# 检查可用摄像头设备
ls /dev/video*
v4l2-ctl --list-devices

# 修改配置文件使用video0
vim config/default.yaml
# 或设置环境变量
export FACE_TRACKER_CAMERA_DEVICE_PATH=/dev/video0

# 检查摄像头权限
sudo chmod 666 /dev/video0

2. シリアルポートの権限の問題

問題 :シリアルポートのアクセス権限が不足している

# 症状
PermissionError: [Errno 13] Permission denied: '/dev/ttyS1'

解決方法 :

# 方法1: 直接修改权限(临时)
sudo chmod 666 /dev/ttyS1

# 方法2: 添加用户到dialout组(永久)
sudo usermod -a -G dialout $USER
# 重新登录或执行
newgrp dialout

# 方法3: 创建udev规则(系统级)
sudo vim /etc/udev/rules.d/99-serial.rules
# 添加内容:
# KERNEL=="ttyS1", MODE="0666"
sudo udevadm control --reload-rules

3. モデルファイルの問題

問題 :モデルファイルが見つからない、または破損している

# 症状
FileNotFoundError: Model file not found: model/yolo11n_face_detect_bayese_320x320_nv12.bin

解決方法 :

# 检查文件是否存在
ls -la model/

# 检查文件权限
chmod 644 model/*.bin

# 验证文件完整性(如果有校验和)
md5sum model/yolo11n_face_detect_bayese_320x320_nv12.bin

# 重新下载模型文件(联系开发团队)

4. ポート使用中の問題

問題 :ポートがすでに使用されている

# 症状
OSError: [Errno 98] Address already in use

解決方法 :

# 查找占用端口的进程
sudo netstat -tulpn | grep :5000
sudo lsof -i :5000

# 终止占用进程
sudo kill -9 <PID>

# 或使用不同端口
export FACE_TRACKER_WEB_PORT=5001
export FACE_TRACKER_MCP_PORT=8001

5. メモリ不足の問題

問題 :システムのメモリが不足している

# 症状
MemoryError: Unable to allocate memory for image processing

解決方法 :

# 检查系统内存
free -h
df -h

# 增加swap空间
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

# 优化配置降低内存使用
vim config/default.yaml
# 调整:
# camera.fps: 20  # 降低帧率
# model.confidence_threshold: 0.7  # 提高阈值减少检测

6. Python 依存関係の問題

問題 :依存パッケージのバージョンが競合している

# 症状
ImportError: cannot import name 'xxx' from 'xxx'

解決方法 :

# 检查依赖版本
pip list | grep opencv
pip list | grep numpy

# 重新安装问题包
pip uninstall opencv-python
pip install opencv-python==4.10.0.84

# 或重建虚拟环境
deactivate
rm -rf venv
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

サポート窓口

資料のダウンロード・技術サポートについては、HumansX株式会社までお問い合わせください。