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示例,以测试摄像机的功能。


    分享到:


    相關文章: