49
さあ、次は誰?友達を認識するRaspberry Piドアベルの作り方

スマートドアベルを購入したいのですが、予算が少しオーバーしてしまいます。そこで、Raspberry Pi、スピーカーシステム、カメラを使って、ほんの少しのコストでスマートドアベルシステムを構築します。

前回のプロジェクトでは、人が玄関に来た時に鳴るドアベルシステムを作成しました。今回はコードを拡張し、プロジェクトが知っている人が玄関に来たことを識別し、それに応じてアナウンスできるようにします。これにより、友人や義理の家族が突然訪ねてきた時に、ドアまで走って行くか、2階に隠れるかを選択できるようになります。 

このプロジェクトに必要なもの

  • Raspberry Pi 4または Raspberry Pi 3(電源アダプター付き)
  • デスクトップスピーカーまたは3.5mm入力と3.5mmケーブルを備えたメガホン
  • Wyze Cam V2 (Wyze Cam V3 はまだ互換性がありません)
  • 2x8 GB (またはそれ以上) の microSD カード (1 つは Raspberry Pi 用、もう 1 つはカメラ用)。
  • HDMIケーブルと電源ケーブルを備えたモニター。(オプション)

Raspberry Piを顔認識ドアベルシステムに変える方法 

始める前に、Raspberry Piをセットアップしましょう。まだセットアップをしていない場合は、Raspberry Piの初回セットアップ方法、またはヘッドレスRaspberry Piインストール(キーボードと画面なし)の方法を解説した記事をご覧ください。このプロジェクトでは、ヘッドレスRaspberry Piインストールを推奨します。 

1. Gitをインストールします。GitHubからコードをダウンロードするために必要になります。

sudo apt-get update
sudo apt-get -y install git

2.リポジトリをホームディレクトリにクローンします。これにより、プロジェクトの実行に必要なすべてのコードとオーディオファイルが揃います。

cd ~/
git clone https://github.com/rydercalmdown/facial_recognition_doorbell.git

3. 「make install」コマンドを実行して、プロジェクトの依存関係をすべてインストールします。このスクリプトは、低レベルの依存関係と、プロジェクトの実行に必要なPythonライブラリのインストールを処理します。Raspberry Pi 4では約10~15分かかります。

cd ~/facial_recognition_doorbell/
make install

Raspberry Pi を使った顔認識ドアベル

(画像提供:Tom's Hardware)

4. raspi-configで3.5mmオーディオ出力をデフォルトのオーディオ出力に設定します。raspi-configを起動し(コマンドプロンプトでsudo raspi-configと入力)、システムオプション -> オーディオ -> ヘッドホン1と選択することで設定できます。Raspberry Piでは、3.5mmアナログ出力またはHDMIポートからオーディオを出力できます。モニターを接続していない場合は、ヘッドホンしか選択肢がない場合があります。 

Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。

sudo raspi-config
# Navigate to System Options -> Audio -> Headphones 1

Raspberry Pi を使った顔認識ドアベル

(画像提供:Tom's Hardware)

5. 3.5mm ケーブルを使用してスピーカーをRaspberry Pi に接続します。 

Raspberry Pi を使った顔認識ドアベル

(画像提供:Tom's Hardware)

6.ドアベルの音声ファイルを再生してスピーカーをテストします。スピーカーからドアベルの音が聞こえるはずです。私の場合はメガホンを使っていますが、お手持ちのスピーカーであれば何でも構いません。 

mpg321 /home/pi/facial_recognition_doorbell/src/audio/doorbell.mp3

Raspberry Pi を使った顔認識ドアベル

(画像提供:Tom's Hardware)

7.次のコマンドを実行して、 Piでテキスト読み上げをテストします。スピーカーからテキストが読み上げられるはずです。

say ‘hello there’
# Press Ctrl + C to exit if stuck

8.このチュートリアルに従って、カスタムRTSPファームウェアをWyzeカメラにフラッシュします 。RTSPサポートをインストールすると、カメラに接続してPythonで直接フレームを取得できるようになります。Wyze V2カメラとmicroSDカードが必要です。

9. WyzeアプリケーションからRTSP URL値を取得し、 Makefile内のRTSP_URI変数を編集して、 Raspberry Piをカメラに向けます。RTSP URLは、スマートフォンのWyzeアプリケーションの「詳細設定」セクションで確認できます。

cd ~/facial_recognition_doorbell/
nano Makefile
# STREAM_URI=rtsp://your_username:your_password@camera_ip_address/live

10.カメラは玄関ドアの外側に向けて設置してください。Wyze V2は耐候性ではないため、私は屋根のある場所に設置しています。理想的には、カメラはドアの上に設置し、近づいてくる人に向けて設置するのが良いでしょう。こうすることで、顔認識が最大限に機能します。 

Raspberry Pi を使った顔認識ドアベル

(画像提供:Tom's Hardware)

11.知り合いの写真をダウンロードし、ファイル名をつけて保存します。顔が写っている.jpeg、.jpg、.png形式の画像であればどれでも構いません。1枚の写真につき顔は1つだけとし、1人につき複数の写真を使用する必要はありません。私は、家に遊びに来る友達全員に1枚ずつ写真を用意しています。

ryder.jpeg

Raspberry Pi を使った顔認識ドアベル

(画像提供:Tom's Hardware)

12.既知の人物の写真を src/faces ディレクトリにコピーします。 

mv ryder.jpeg /home/pi/facial_recognition_doorbell/src/faces/

13. Piで「make run」コマンドを実行して、ドアベルシステムを起動します。システムはまず人の存在を検出します。人が検出されると、ドアベルが鳴り、システムは顔ディレクトリから既知の顔の識別を開始します。顔が見つかった場合、システムはテキスト読み上げ機能を使ってドアに人が来たことをアナウンスします。 

Raspberry Pi を使った顔認識ドアベル

(画像提供:Tom's Hardware)

現在、私たちは、人が玄関に来るとベルを鳴らし、その人の写真がファイルに保存されていれば名前をアナウンスするシステムを導入しています。