メインコンテンツまでスキップ

MCP による顔認識の拡張

概要

このガイドでは、SenseCAP Watcher (Xiaozhi)reComputer Raspberry Pi システム を組み合わせて、顔認識ワークフローをデプロイする方法を説明します。

カスタマイズされたファームウェアを SenseCAP Watcher に書き込むことで、Xiaozhi AI は Hailo-8 アクセラレーションを備えた reComputer による顔認識機能を獲得します。セットアップが完了すると、「この人が誰か確認して」などと Watcher に話しかけるだけで、AI が自動的に写真を撮影し、reComputer 上のローカルデータベースと照合して顔を識別し、その人の名前と信頼度を返します。

ハードウェアの準備

Xiaozhi 用 SenseCAP WatcherreComputer AI R2130-12

前提条件

デプロイ手順

手順 1. reComputer の IP アドレスを確認

reComputer をネットワーク(例: ルーター)に接続し、IP アドレスを取得します。このガイドでは、例として 192.168.24.10 を使用します。

手順 2. Watcher にファームウェアを書き込む

  1. PC と Watcher を、底面ポートの Type-C ケーブルで接続します。

  2. ESP-IDF 5.5 CMD(バージョン 5.5.1)を開き、ファームウェアリポジトリをクローンします:

git clone -b face_rec_api --single-branch https://github.com/suharvest/xiaozhi-esp32.git
cd xiaozhi-esp32
  1. main/boards/sensecap-watcher/sscma_camera.cc を開き、face_rec_url を検索して、IP を reComputer の IP に変更します:
// Before (default):
std::string face_rec_url = "http://192.168.10.131:8001/recognize";

// After (your reComputer IP):
std::string face_rec_url = "http://<reComputer_IP>:8001/recognize";
  1. コンパイルして書き込みます:
idf.py set-target esp32s3
idf.py menuconfig # Select SenseCAP Watcher board
idf.py build flash

手順 3. reComputer 環境のセットアップ

  1. SSH で接続します:
ssh <username>@<reComputer_IP>
# Example: ssh [email protected]
注記

reComputer への接続には、VS Code の Remote - SSH 拡張機能を使用することを推奨します。

  1. システムソフトウェアを更新します:
sudo apt update && sudo apt full-upgrade
sudo rpi-eeprom-update
  1. Hailo ランタイムとドライバをインストールします:
sudo apt install hailo-all
sudo reboot
  1. 再起動後、再度 SSH で接続し、HailoRT を確認します:
hailortcli scan
hailortcli fw-control identify

次のような出力が表示されれば、ドライバは正常にインストールされています:

  1. uv をインストールします:
curl -LsSf https://astral.sh/uv/install.sh | sh
source $HOME/.local/bin/env

手順 4. API をクローンして依存関係をインストール

git clone https://github.com/suharvest/face_rec_api.git
cd face_rec_api/
uv sync

手順 5. 写真を追加してサービスを起動

  1. 写真を photos/ フォルダに配置します。各ファイルは人物名で命名してください(拡張子を除いたファイル名がその人の名前として使用されます):
photos/
├── john_doe.jpg
├── jane_smith.png
└── alice_wang.jpg
  1. 埋め込みベクトルを生成します:
uv run scripts/batch_process.py
  1. サービスを起動します:
chmod +x start_standalone.sh
./start_standalone.sh

サービスは現在ポート 8001 上で動作しています。Watcher は reComputer と通信し、データベース内に顔が存在するかを確認できます。サービスは Ctrl + C で停止できます。

次のようなプロンプトを追加できます: 「人が検出されたら、顔認識ツールを使って名前と信頼度を確認し、信頼度が 0.40 より大きい場合は名前で挨拶し、それ以外の場合は一般的な挨拶をする。」

手順 6. 顔データベースを更新

新しい写真を photos/ フォルダに追加し、埋め込みベクトルを再生成してサービスを再起動します:

uv run scripts/batch_process.py
./start_standalone.sh
ヒント

サービス実行中でも、reload エンドポイントを呼び出すことでデータベースを更新できます:

curl -X POST http://localhost:8001/reload

手順 7. 顔データベースをクリア

  1. photos/ フォルダ内のすべてのファイルを削除します。
  2. data/ フォルダ内の embeddings.json ファイルを削除します。

クリア後にサービスを再起動すると、クリーンなログが表示されます:

実行結果

FAQ

Q: Xiaozhi AI に顔認識 API を呼び出させるにはどうすればよいですか?

A: 「自分が顔認識システムに登録されているか確認して」などと Watcher に質問するだけです。AI が自動的に顔認識ツールを呼び出します。

Q: サービスが接続できない、または顔を認識できません。何を確認すればよいですか?

A: 次の点を確認してください:

  • ファームウェア内の reComputer の IP アドレスが実際の IP と一致している。
  • 顔認識サービスが実行中である(curl http://<reComputer_IP>:8001/health)。
  • ポート 8001 をブロックしているファイアウォールルールがない。

Q: hailo-all をインストールした後も Hailo が検出されません。どうすればよいですか?

A: 完全に再起動した後で hailortcli scan を再実行してください。まだ検出されない場合は、lspci | grep Hailo および dmesg | grep -i hailo で PCIe 接続を確認してください。

Q: 他のデバイスに顔認識システムをデプロイできますか?

A: はい、デバイスが Hailo-8 ハードウェアを備えた Linux ベースのシステムを実行していれば可能です。本ガイドは reComputer シリーズで検証されているため、このプラットフォームを推奨します。

技術サポート

Loading Comments...