インテリジェント顔追跡システム – 概要
RDK X5 プラットフォームをベースとしたインテリジェント顔追跡システムです。YOLO11 による顔検出と2自由度パンチルト台の制御を統合しています。MCP プロトコルと RESTful API により、AI アシスタントによる自然言語での制御と、Web 画面でのリアルタイムな操作を実現します。
主な特長
- リアルタイム顔検出:YOLO11n 量子化モデルと BPU ハードウェアアクセラレーションにより、約 30fps のリアルタイム性能を実現
- インテリジェントなターゲット追跡:PID 制御とカルマンフィルタを用いたマルチターゲット追跡システム
- MCP プロトコルの統合:8 つのツール関数を提供し、AI アシスタントとの自然言語インタラクションに対応
- 統合サービスアーキテクチャ:1 つのサーバーで Web サービスと MCP サービスを同時に稼働
- リアルタイム Web 画面:MJPEG 映像ストリームの表示と、インタラクティブなパンチルト制御
- ⚙️ きめ細かな例外処理:充実したエラー分類、例外捕捉、状態フィードバックの仕組み
- 動的な視覚フィードバック:追跡状態をリアルタイムに可視化
システム要件
- ハードウェア:RDK X5 開発ボード、または互換性のある ARM アーキテクチャのプロセッサ
- オペレーティングシステム:Ubuntu 20.04 以降
- Python:3.6 以上
- 周辺機器:USB カメラ、2 自由度 PWM サーボ式パンチルト台
- メモリ:2GB 以上の RAM
- ストレージ:3GB 以上の空き容量
クイックスタート
1. リポジトリのクローン
git clone https://github.com/your-username/Proj_Intelligent-Face-Tracker.git
cd Proj_Intelligent-Face-Tracker
2. 依存パッケージのインストール
# 仮想環境を作成(推奨)
python3 -m venv venv
source venv/bin/activate
# 依存パッケージをインストール
pip install -r requirements.txt
3. ハードウェアの準備
# カメラデバイスを確認
ls /dev/facecamera || ls /dev/video*
# シリアルポートデバイスの権限を確認
ls -l /dev/ttyS1
sudo chmod 666 /dev/ttyS1
4. システムの起動
# 起動スクリプトを使用(推奨)
./bin/start-mcp-server.sh
# または直接実行
python main.py
# 従来の Web モード
python main_legacy.py
5. サービスへのアクセス
- Web 画面:http://localhost:5000
- MCP サービス:http://localhost:8000/mcp/
- API インターフェース:http://localhost:5000/api/faces
- 映像ストリーム:http://localhost:5000/video_feed
詳細ドキュメント
| ドキュメント | 内容 |
|---|---|
| ドキュメントナビゲーション | ドキュメントの索引とクイックナビゲーション |
| アーキテクチャ設計 | システムアーキテクチャとモジュール設計 |
| API インターフェース | RESTful API の詳細仕様 |
| デプロイガイド | 環境設定とデプロイ手順 |
| MCP サーバー | MCP プロトコルの統合とツール関数 |
| 主要機能 | 顔検出・追跡アルゴリズム |
️ MCP ツール関数
本システムは 8 つの MCP ツール関数を提供しており、AI アシスタントから自然言語で制御できます。
検出系ツール
detect_faces()- 現在の顔検出結果を取得します
制御系ツール
control_gimbal(pan, tilt)- パンチルト台の絶対位置を制御しますmove_gimbal_relative(pan_offset, tilt_offset)- パンチルト台を相対移動させますreset_gimbal_position()- パンチルト台の位置を初期状態にリセットします
追跡系ツール
start_face_tracking()- 自動顔追跡を開始しますstop_face_tracking()- 自動顔追跡を停止します
状態系ツール
get_gimbal_status()- パンチルト台の現在の状態を取得しますget_system_status()- システムの稼働状態を取得します
️ プロジェクト構成
Proj_Intelligent-Face-Tracker/
├── face_tracker_mcp/ # MCP 版のメインソースコード
│ ├── main.py # 統合サーバーのエントリーポイント
│ ├── core/ # コアビジネスロジック
│ │ ├── detection.py # YOLO11 顔検出
│ │ ├── gimbal_control.py # パンチルト台制御
│ │ ├── exceptions.py # 例外処理
│ │ └── utils.py # ユーティリティ関数
│ ├── services/ # サービス層
│ │ ├── mcp_service.py # MCP プロトコルサービス
│ │ └── web_service.py # Web サービスのラッパー
│ ├── api/ # API インターフェース層
│ │ └── routes.py # RESTful ルーティング
│ └── config/ # 設定管理
├── src/ # 従来版のソースコード(互換用)
├── config/ # 設定ファイル
├── docs/ # ドキュメントディレクトリ
├── bin/ # スクリプトディレクトリ
├── model/ # YOLO モデルファイル
└── logs/ # ログディレクトリ
技術的特長
顔検出エンジン
- モデル:YOLO11n 量子化モデル、入力サイズ 320 × 320
- アクセラレーション:Horizon BPU によるハードウェアアクセラレーション推論
- 性能:約 30fps のリアルタイム検出、信頼度しきい値 0.6
- フォーマット:NV12 入力形式(RDK X5 プラットフォームに適合)
インテリジェント追跡システム
- マルチターゲット管理:ターゲット ID の対応付けと継続的な追跡
- スコアリングアルゴリズム:信頼度、サイズ、継続時間、位置の連続性を総合的に評価
- 動き予測:カルマンフィルタによるターゲット位置の予測
- ブレ防止制御:ターゲット切り替えのしきい値機構により、頻繁な切り替わりを防止
パンチルト制御システム
- ハードウェア:2 自由度 PWM サーボ式パンチルト台
- 通信:シリアル通信(/dev/ttyS1、ボーレート 115200)
- 制御:PID コントローラーによる滑らかな追従
- 可動範囲:0°~270° の角度制御範囲
⚡ 性能指標
- 検出遅延:33ms 未満(30fps)
- 制御応答:50ms 未満
- メモリ使用量:400MB 未満
- CPU 使用率:約 10%(RDK X5)
- 追跡精度:角度精度 ±2°
️ 安全機能
- 角度制限:パンチルト台の角度範囲を厳密にチェック
- 例外捕捉:充実したハードウェア障害検出
- 状態監視:システム状態をリアルタイムに監視
- 安全な終了処理:SIGINT/SIGTERM シグナルの処理
情報交換の場
資料のダウンロード・技術サポートについては、HumansX株式会社までお問い合わせください。
ドキュメント