MCP による顔認識の拡張
概要
このガイドでは、SenseCAP Watcher (Xiaozhi) と reComputer Raspberry Pi システム を組み合わせて、顔認識ワークフローをデプロイする方法を説明します。
カスタマイズされたファームウェアを SenseCAP Watcher に書き込むことで、Xiaozhi AI は Hailo-8 アクセラレーションを備えた reComputer による顔認識機能を獲得します。セットアップが完了すると、「この人が誰か確認して」などと Watcher に話しかけるだけで、AI が自動的に写真を撮影し、reComputer 上のローカルデータベースと照合して顔を識別し、その人の名前と信頼度を返します。
ハードウェアの準備
| Xiaozhi 用 SenseCAP Watcher | reComputer AI R2130-12 |
|---|---|
![]() | ![]() |
前提条件
- 次の手順に従って reComputer Raspberry Pi システムをインストールします: reComputer R2000 シリーズ入門ガイド
- ソースコードリポジトリ:
デプロイ手順
手順 1. reComputer の IP アドレスを確認
reComputer をネットワーク(例: ルーター)に接続し、IP アドレスを取得します。このガイドでは、例として 192.168.24.10 を使用します。

手順 2. Watcher にファームウェアを書き込む
-
PC と Watcher を、底面ポートの Type-C ケーブルで接続します。
-
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
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";
- コンパイルして書き込みます:
idf.py set-target esp32s3
idf.py menuconfig # Select SenseCAP Watcher board
idf.py build flash
手順 3. reComputer 環境のセットアップ
- SSH で接続します:
ssh <username>@<reComputer_IP>
# Example: ssh [email protected]
reComputer への接続には、VS Code の Remote - SSH 拡張機能を使用することを推奨します。

- システムソフトウェアを更新します:
sudo apt update && sudo apt full-upgrade
sudo rpi-eeprom-update
- Hailo ランタイムとドライバをインストールします:
sudo apt install hailo-all
sudo reboot
- 再起動後、再度 SSH で接続し、HailoRT を確認します:
hailortcli scan
hailortcli fw-control identify
次のような出力が表示されれば、ドライバは正常にインストールされています:

- 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. 写真を追加してサービスを起動
- 写真を
photos/フォルダに配置します。各ファイルは人物名で命名してください(拡張子を除いたファイル名がその人の名前として使用されます):
photos/
├── john_doe.jpg
├── jane_smith.png
└── alice_wang.jpg

- 埋め込みベクトルを生成します:
uv run scripts/batch_process.py

- サービスを起動します:
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. 顔データベースをクリア
photos/フォルダ内のすべてのファイルを削除します。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 シリーズで検証されているため、このプラットフォームを推奨します。

