Raspberry Piでリアルタイムパン/チルト顔追跡 - 実践ガイド
わずかな時間と25ドルのパーツ投資で、Raspberry Piを軽量なリアルタイムパン/チルトウェブカメラに変え、顔を追従させることができます。OpenCV顔検出、2つのホビーサーボ、servoblasterドライバーを組み合わせることで、Piは1秒に1回以上の速度でカメラを被写体の中心に保ち続けられます。
ステップ1: ハードウェアを入手
必要なもの:
- Raspberry Pi – Model AまたはBで動作。新しいModel A(またはPi Zero)で完全に十分。
- パン/チルトブラケット(Thingiverseに多数の無料デザインあり)
- 2つのホビーサーボ(例: SG90またはMG995)
- GPIOリボンケーブル
- Pi互換ウェブカメラ(Logitech C210を使用)
すでにPiとウェブカメラをお持ちなら、追加パーツは約25ドルです。
ステップ2: Raspberry Piを準備
公式Raspbian OS(ハードウェア浮動小数点版)を使用し、最新の状態に保ちます。800MHzへのオーバークロックでリアルタイム検出に必要なCPU余裕が得られますが、安定性が低下する可能性があります。
Python用OpenCVをインストール:
sudo apt-get install python-opencv
servoblaster(Richard Hirstによるサーボドライバー)をダウンロードしてインストール:
git clone https://github.com/richard-hirst/servoblaster.git cd servoblaster make install_autostart
オプション: 1秒間非アクティブ後にドライバーがパルス送信を停止するタイムアウトを設定。/etc/modulesにこの行を追加:
servoblaster idle_timeout=1000
ドライバーを開始:
sudo modprobe servoblaster
カメラ調整: Gmotoの洞察により、uvcvideoモジュールの調整でレイテンシ問題が解決。起動ごとに1回実行するか、/etc/modulesに追加:
rmmod uvcvideo modprobe uvcvideo nodrop=1 timeout=5000 quirks=0x80
ステップ3: リグを組み立て
ブラケットの指示に従い、サーボを取り付け、ウェブカメラをブラケットの上部に取り付け(テープでOK)。カメラをPiのUSBポートに接続。パワードUSBハブはオプションですが、カメラがより多くの電流を消費する場合に役立ちます。
ステップ4: サーボを接続
Servoblasterはservo-0をGPIO 4、servo-1をGPIO 17にマッピング。典型的なサーボワイヤーは:
- 赤 – +5V
- 茶/黒 – GND
- 制御 – 信号線
リボンケーブルで制御ワイヤーを正しいGPIOピンに接続。コードはservo-0をパン(左右)、servo-1をチルト(上下)として扱います。
サーボの電源供給: 小型ホビーサーボはPiの5V GPIOピンから直接給電可能なことが多いですが、大型や要求の厳しいモデルは外部5V-6V電源が必要です。サーボの+5VとGNDを外部電源に接続し、外部GNDをPiのGPIOグラウンドピンに接続。
ステップ5: 追跡プログラムを実行
提供されるPiFace.pyスクリプトをダウンロードし、Piに配置して実行:
cd /path/to/PiFace.py python PiFace.py
OpenCVは320×240解像度で顔検出を実行し、右プロファイル、左プロファイル、正面顔を検索。サーボは1秒に1回以上の速度で調整し、検出された顔をカメラの中心に保ち続けます。
元記事にリンクされているデモビデオを参照してください。
製造プロセス
- Raspberry Pi 2でDS18B20温度センサー読み取りガイド
- Raspberry PiとDS18B20によるプロフェッショナルな温度監視
- Raspberry PiでMaxim 1-WireセンサーとDS2482 I2Cブリッジを用いた温度測定
- Raspberry Piでサーバークローゼットの温度を正確に監視
- センサーデータをRaspberry Piに統合:実践ガイド
- Raspberry Piでライントラッキングセンサー – シンプルなKY-033ドア/ライン検出器
- Raspberry PiとAS3935で落雷検知: 実践ガイド
- OpenCVでRaspberry Pi上級卓球球追跡
- Adafruit T-Cobbler PlusでヘッドレスRaspberry Pi 2水漏れアラームを構築
- Raspberry Piでリアルタイムパン/チルト顔追跡 - 実践ガイド
- Raspberry Piの可能性を最大限に引き出す必須アクセサリー