署名、指紋、音声、手の形状、顔認識などを使用して人を識別する多くの人間識別システムがありますが、空港、小売店、駅などの公共エリアでは、顔認識システム。
顔認識システムは、公共の場所にいる人を認識するためのセキュリティ目的だけでなく、オフィスや学校の出席目的にも使用できます。
このプロジェクトでは、ESP32-CAMを使用して顔認識システムを構築します。これは、許可されていない人物の顔を認識することにより、ESP32-CAMセキュリティシステムとしても機能し ます。ESP32-CAMは、ESP32-Sチップを搭載した非常に小さなカメラモジュールです。ESP32-CAMモジュールを使用すると、複雑なプログラミングや追加のコンポーネントを使用せずに顔認識システムを構築できます。顔認識は、OpenCVを使用したRaspberryPiおよびPiカメラを使用して実行することもできます。
ESP32-CAMの概要
AI-Thinker ESP32-CAMモジュールには、ESP32-Sチップ、非常に小さいサイズのOV2640カメラ、およびマイクロSDカードスロットが付属しています。マイクロSDカードスロットは、カメラから撮影した画像の保存やファイルの保存に使用できます。このESP32-CAMモジュールは、さまざまなIoTアプリケーションで広く使用できます。オフィス、学校、その他のプライベートエリアでの顔検出システムとして使用でき、ワイヤレスモニタリング、QRワイヤレス識別、およびその他の多くのIoTアプリケーションとしても使用できます。
ESP32-CAMのモジュールは、ESP-IDFまたはでプログラムすることができるArduinoのIDE。ESP32-CAMモジュールには、外部ハードウェアを接続するためのいくつかのGPIOピンもあります。ESP32-CAMにはUSBコネクタがないため、モジュールをプログラムするにはFTDIボードが必要です。
特徴:
- 最小の802.11b / g / n Wi-Fi BTSoCモジュール
- 低電力32ビットCPUは、アプリケーションプロセッサにも対応できます
- 最大160MHzのクロック速度、最大600DMIPSの要約計算能力
- 内蔵520KB SRAM、外部4MPSRAM
- UART / SPI / I2C / PWM / ADC / DACをサポート
- OV2640およびOV7670カメラ、内蔵フラッシュランプをサポート
- 画像Wi-Fiアップロードをサポート
- TFカードをサポート
- 複数のスリープモードをサポート
- 組み込みLwipとFreeRTOS
- STA / AP / STA + AP動作モードをサポート
- Smart Config / AirKissテクノロジーをサポートする
- シリアルポートのローカルおよびリモートファームウェアアップグレード(FOTA)のサポート
仕様:
- SPIフラッシュ:デフォルトの32Mビット
- RAM:520KB SRAM + 4M PSRAM
- サポートTFカード:最大。4G
- サポートインターフェース:UART、SPI、I2C、PWM
- 画像出力形式:JPEG、BMP、GRAYSCALE
- IOポート:9
- 電源範囲:5V
必要なコンポーネント
- ESP32-CAM
- FTDIプログラマー
回路図
ESP32 CAMセキュリティカメラを構築するには、ESP32カメラモジュールとFTDIプログラマーだけでプログラミングできます。
ESP32-CAMにはUSBコネクタがないため、上の図に示すように、コードをESP32-CAMにアップロードするにはFTDIプログラマーが必要です。ESP32のVccおよびGNDピンはFTDIボードのVccおよびGNDピンに接続されています。ESP32のTxとRxは、FTDIボードのRxとTxに接続されています。
注:コードをアップロードする前に、IO0をアースに接続してください。IO0は、ESP32がフラッシュモードであるかどうかを判別します。GPIO 0がGNDに接続されている場合、ESP32は点滅モードになります。
ESP32-CAM |
FTDIボード |
3.3V |
VCC |
GND |
GND |
UOR |
TX |
UOT |
処方箋 |
ESP32をプログラムした後、FTDIボードを取り外し、7805電圧レギュレーターを使用してモジュールを3.3V電源に接続しました。ESP32カムビデオストリーミングのセットアップは次のようになります。
ArduinoIDEにESP32ボードをインストールする
ここで、ESP32-CAMはArduinoIDEを使用してプログラムされています。そのためには、ArduinoIDEにESP32アドオンをインストールする必要があります。
Arduino IDEにESP32ボードをインストールするには、[ファイル]> [設定]に移動します
次に、以下のリンクをコピーして、次の図に示すように、「 追加のボードマネージャーURL 」フィールドに貼り付けます。次に、「OK」ボタンをクリックします。
https://dl.espressif.com/dl/package_esp32_index.json
次に、[ツール]> [ボード]> [ボードマネージャー]に移動します
Board ManagerでESP32を検索し、「ESP32 byEspressifSystems」をインストールします。
ESP32カメラWebサーバーコード
ESP32カムビデオストリーミングと顔認識のサンプルコードはすでにあります。[ファイル]> [例]> [ESP32]> [カメラ]を使用してESP32の例を開き、CameraWebServerの例を開きます。
コードをアップロードする前に、Wi-Fi名とパスワードを入力する必要があります。
const char * ssid = "WiFi名"; const char * password = "パスワード";
その後、ESPカメラモジュールを定義します。コードでは、5つのカメラモジュールが定義されているため、「CAMERA_MODEL_AI_THINKER」のコメントを解除し、残りのモジュールにコメントを付けます。
コードをアップロードするには、FDTIボードをラップトップに接続し、ボードとして「 ESP32WroverModule 」を選択します。また、この図に従って他の設定を変更します。
コードをアップロードする前に、ESP32リセットボタンを押してから、アップロードボタンをクリックしてください。
注:コードのアップロード中にエラーが発生した場合は、IO0がGNDに接続されていること、および[ツール]メニューで正しい設定を選択していることを確認してください。
コードをアップロードした後、IO0ピンとGNDピンを外します。次に、シリアルモニターを開き、ボーレートを115200に変更します。その後、ESP32リセットボタンを押すと、以下に示すように、シリアルモニターにESPIPアドレスとポート番号が出力されます。
カメラストリーミングにアクセスするには、ブラウザに移動してESPIPアドレスを入力します。ストリーミングページに移動します。ESP32カムビデオストリーミングを開始するには、ページの下部にある[ストリームの開始]ボタンをクリックします
ストリーミングページの「 解像度 」を変更することで、ストリーミング品質を変更できます。[ 静止画を 表示]ボタンをクリックして画像をクリックすることもできますが、このコードには画像を保存するオプションがありません。
ビデオストリーミングをテストした後、ESP32カム顔検出および認識機能をテストします。そのためには、設定から顔認識および検出機能をオンにします。
最初に顔認識を行うには、顔を登録する必要があります。[顔を登録]オプションをクリックすると、新しい顔に登録できます。顔を保存するには数回の試行が必要です。顔を保存した後、対象0として顔を検出し、顔を認識することでセキュリティシステムとして使用できるようになりました。
つまり、これがESPカメラモジュールをビデオストリーミングと顔認識用に簡単に構成できる方法です。ESP32カメラで撮影した以下の小さなビデオ映像を確認してください。
完全なコードを以下に示します。ここからダウンロードすることもできます。