ESP32-CAM視頻流和Arduino IDE的人臉識別


本文是ESP32-CAM開發板的快速入門指南。我們將向您展示如何使用Arduino IDE在不到5分鐘的時間內設置具有面部識別和檢測功能的視頻流Web服務器。

注意:在本教程中,我們使用arduino-esp32庫中的示例。

所需部件

要遵循本教程,您需要以下組件:

  • 帶OV2640的ESP32-CAM
  • USB轉串口模塊
  • 母對母跳線
  • 介紹ESP32-CAM

    ESP32-CAM視頻流和Arduino IDE的人臉識別

    該ESP32-CAM是一個非常小的相機模塊,除了OV2640相機和幾個用於連接外圍設備的GPIO外,它還具有microSD卡插槽,可用於存儲相機拍攝的圖像或存儲要提供給客戶端的文件。

    ESP32-CAM視頻流和Arduino IDE的人臉識別

    該ESP32-CAM沒有配備USB接口,所以你需要一個USB轉串口模塊上傳代碼。

    ESP32-CAM視頻流和Arduino IDE的人臉識別

    特徵

    以下是ESP32-CAM功能的清單:

    · 最小的802.11b / g / n Wi-Fi BT SoC模塊

    · 低功耗32位CPU,也可以為應用處理器服務

    · 時鐘速度高達160MHz,彙總計算能力高達600 DMIPS

    · 內置520 KB SRAM,外部4MPSRAM

    · 支持UART / SPI / I2C / PWM / ADC / DAC

    · 支持OV2640和OV7670相機,內置閃光燈

    · 支持圖片WiFI上傳

    · 支持TF卡

    · 支持多種睡眠模式

    · 嵌入式Lwip和FreeRTOS

    · 支持STA / AP / STA + AP操作模式

    · 支持Smart Config / AirKiss技術

    · 支持串行端口本地和遠程固件升級(FOTA)

    ESP32-CAM引腳排列

    有三個GND引腳和兩個用於供電的引腳:3.3V或5V。

    GPIO 1和GPIO 3是串行引腳。您需要這些引腳將代碼上傳到板上。此外,GPIO 0還起著重要作用,因為它確定ESP32是否處於閃爍模式。當GPIO 0連接到GND時,ESP32處於閃爍模式。

    以下引腳內部連接到microSD卡讀取器:

    · GPIO 14:CLK

    · GPIO 15:CMD

    · GPIO 2:數據0

    · GPIO 4:數據1(也連接到板載LED)

    · GPIO 12:數據2

    · GPIO 13:數據3

    視頻流服務器

    請遵循以下步驟,使用您可以在本地網絡上訪問的ESP32-CAM來構建視頻流Web服務器。

    1.安裝ESP32插件

    · 在此示例中,我們使用Arduino IDE對ESP32-CAM板進行編程。因此,您需要安裝Arduino IDE以及ESP32附加組件。

    2. CameraWebServer示例代碼

    在您的Arduino IDE中,轉到文件 > 示例 > ESP32 > 相機並打開CameraWebServer示例。

    ESP32-CAM視頻流和Arduino IDE的人臉識別

    應加載以下代碼。

    ESP32-CAM視頻流和Arduino IDE的人臉識別

    在上傳代碼之前,您需要在以下變量中插入用戶名和密碼:

    const char* ssid = "REPLACE_WITH_YOUR_SSID";

    const char* password = "REPLACE_WITH_YOUR_PASSWORD";

    然後,確保選擇正確的相機模塊。在這種情況下,我們使用的是AI-THINKER模型。

    ESP32-CAM視頻流和Arduino IDE的人臉識別

    因此,請註釋所有其他模型,並取消註釋該模型:

    #define CAMERA_MODEL_AI_THINKER

    現在,代碼準備好上傳到您的ESP32

    ESP32-CAM上傳代碼

    使用USB轉串口模塊將ESP32-CAM板連接到計算機。請遵循下一個原理圖:

    ESP32-CAM視頻流和Arduino IDE的人臉識別

    重要提示: GPIO 0需要連接到GND,以便能夠上傳代碼。

    要上傳代碼,請按照以下步驟操作:

    1. 轉到工具 > 主板,然後選擇ESP32 Wrover Module

    2. 轉到工具 > 端口,然後選擇ESP32連接到的COM端口

    3. 在" 工具" >" 分區方案"中,選擇" 巨大的APP(3MB否OTA) "

    4. 按下ESP32-CAM板載RESET按鈕

    5. 然後,點擊上傳按鈕上傳代碼

    ESP32-CAM視頻流和Arduino IDE的人臉識別

    重要提示:如果無法上傳代碼,請仔細檢查GPIO 0是否已連接到GND,以及是否在" 工具"菜單中選擇了正確的設置。您還應該按板上的Reset(重置)按鈕以閃爍模式重啟ESP32。

    獲取IP地址

    上載代碼後,將GPIO 0與GND斷開。

    以115200的波特率打開串口監視器。按ESP32-CAM板上覆位按鈕。

    ESP32 IP地址應在串行監視器中打印。

    ESP32-CAM視頻流和Arduino IDE的人臉識別

    訪問視頻流服務器

    現在,您可以訪問本地網絡上的相機流服務器。打開瀏覽器,輸入ESP32-CAM IP地址。按下開始流媒體按鈕以開始視頻流媒體。

    ESP32-CAM視頻流和Arduino IDE的人臉識別

    您還可以通過單擊" 獲取靜止圖像"按鈕選擇拍照。不幸的是,此示例未保存照片,但是您可以對其進行修改以使用板載microSD卡存儲捕獲的照片。

    您還可以使用幾種相機設置來調整圖像設置。

    最後,您可以進行面部識別和檢測。

    ESP32-CAM視頻流和Arduino IDE的人臉識別

    首先,您需要註冊一張新面孔。它將進行幾次嘗試來挽救臉孔。在註冊新用戶之後,它應該稍後再檢測人臉(主題0)。

    ESP32-CAM視頻流和Arduino IDE的人臉識別

    就是這樣。現在,您可以通過庫中的示例啟動並運行視頻流Web服務器,並進行人臉檢測和識別。

    故障說明

    · 無法連接到ESP32:超時等待報文頭

    · 相機初始化失敗,錯誤0x20001或類似錯誤

    · 掉電檢測器或Guru冥想錯誤

    · 程序太大錯誤–選擇了錯誤的分區方案

    · COMX上的板不可用–未選擇COM端口

    · Psram錯誤:未安裝GPIO isr服務

    · Wi-Fi信號弱

    · Arduino IDE串行監視器中沒有IP地址

    · 無法打開網絡服務器

    · 圖像滯後/顯示大量延遲

    寫在最後

    ESP32-CAM提供了一種廉價的方法來構建更高級的家庭自動化項目,這些項目具有視頻,拍照和人臉識別功能。

    在本教程中,我們已經測試了CameraWebServer示例,以測試攝像機的功能。


    分享到:


    相關文章: