新型肺炎対策・AIによる顔認識および非接触型温度計を利用して体温を自動測定するシステムを開発中です。
DonkeyCarのフレーム上、カメラとサーモセンサー(amg8833)を装備し、この装置の前に立つと自動的に顔認識による個人特定と体温測定を行うもの。大学のキャンパス、教室の出入り口での体温検知による入館チェックなどを想定したシステムです。
新型肺炎対策・AIによる顔認識および非接触型温度計を利用して体温を自動測定するシステムを開発中です。
DonkeyCarのフレーム上、カメラとサーモセンサー(amg8833)を装備し、この装置の前に立つと自動的に顔認識による個人特定と体温測定を行うもの。大学のキャンパス、教室の出入り口での体温検知による入館チェックなどを想定したシステムです。
ついに、webcamから人物認識の段階に来ました。
まず結果を見てください。
face_recognitionのリポジトリ(https://github.com/ageitgey/face_recognition/)から、examples/facerec_from_webcam.pyファイルも同じ画像フォルダに入れてください。
知っている人の写真ファイル名を次のように追加してください。
(とりあえず手作業で追加、後ほどフォルダ内すべての写真を自動追加するようにプログラミングする)
最後に、このプリグラムを起動するだけです。
$ python facerec_from_webcam.py
フォルダ内すべての写真を自動追加するようにプログラミングする
Raspberry Piで動く
Aliexpressで昨年8月購入した5ドル+送料の激安 ESP32-CAMは放置したまま、冬休み期間テストしてみることに。
ESP32-CAM自体シリアルーUSB通信機能がないので、プログラムを書き込んだりするためにはUSB/TTLシリアルコンバーターが必要になる。300円でAmazonから購入した、Raspberry Pi ラズベリーパイ用の USB-TTLシリアルコンソールのUSB変換COMケーブルモジュールのケーブル を使用した。黒い台はDonkeyCar 車台の不良品を利用。黄色テープも地面にDonkeyCarのトラックを作る際用意したもの。
配線部分を拡大した写真です。青い線は、書き込み時には、ESP32-CAMのIO0とGNDをショートして行う。
USB-TTL | ESP32-CAM |
---|---|
TXD ( 緑 ) | UOR |
RXD ( 白 ) | UOT |
– | ( IO0 – GND ) |
5V | 5V |
GND | GND |
ボードマネージャーを使用してESP32ボードを追加する必要があります。
これを完了すると、Arduino IDEボードマネージャーにESP32ボードのリストが表示されます。このリストからA-Thinker ESP32-CAMボードを選択します。
使用するサンプルスケッチは、CameraWebServerスケッチです。次のようにロードできます。
このスケッチはESPO32-CAMをフル機能のオンラインカメラに変え、顔検出機能と豊富なコントロールを完備しています。これは、ESP32-CAM機能の非常に印象的なデモです。
スケッチを使用する前に、ネットワークに合わせてスケッチを修正し、正しいESP32モジュールを選択する必要があります。
ESP32-CAMは2.4 GHz WiFiネットワークでのみ機能することに注意してください。
スケッチのコンパイルには時間がかかる場合がありますが、これは正常です。完了したら、USBケーブルを取り外し、ジャンパー線を取り外してから、USBケーブルを再接続して、ボードの電源を再びオンにします。
シリアルモニターを開き、ボーレートが115,200 bpsに設定されていることを確認します。次に、ESP32-CAMモジュールのリセットスイッチを押します。
初期化情報に続いて、ボードがネットワークに接続し、IPアドレスを取得したことを示すメッセージが表示されます。IPアドレスは、http://192.168.0.180などのURLの形式になります。
このアドレスをコピーして、Webブラウザーのアドレスバーに貼り付けます。Webブラウザーは、ESP32-CAMが接続されているのと同じネットワーク上にある必要があります。
ブラウザで、いろいろ操作できそう。
これで、カメラのWebページが表示され、いくつかのコントロールが表示されます。
[ストリームの開始]ボタンをクリックして、ビデオをストリーミングします。画面上部のドロップダウンを使用して、ビデオのサイズとフレームレートを変更できます。
一応、顔の登録と認識までできたが、後日また補足する。
ESP32は非常に低いスタンバイ電流で動作できますが、無線の動作時に大量の電流を消費するため、WiFiとBluetoothの両方のパフォーマンスに影響を与える可能性があります。
電源の問題があるかどうかを判断する1つの方法は、ESP32-CAMの起動時にシリアルモニターを観察することです。「ブラウンアウト状態」が検出されたというメッセージが表示された場合は、ESP32-CAMが供給できる電流よりも多くの電流を引き込もうとしている可能性があります。
ESP32-CAM Video Streaming and Face Recognition with Arduino IDE