基于ESP32-CAM相机模块的人脸识别系统设计案例

电子说

1.2w人已加入

描述

人证识别系统有许多种方式,比如使用签名、指纹、语音、面部识别等来识别人员,但是只有人脸识别系统可以检测和识别机场、零售店和火车站等公共场所中的人员。人脸识别系统不仅可以用于安全目的以识别公共场所中的人员,还可以用于办公室和学校中的考勤记录。

在本篇文章中,我们将使用ESP32-CAM模块搭建一个人脸识别系统,该ESP32-CAM安全系统可以识别未经授权的人脸。ESP32-CAM是一款基于ESP32-S芯片的非常小的相机模块。使用ESP32-CAM模块,我们可以搭建人脸识别系统,而无需使用任何复杂的程序和任何额外的组件。

ESP32-CAM模块简介

AI-Thinker ESP32-CAM模块配有一颗ESP32-S芯片、超小尺寸的OV2640相机和Micro SD卡插槽。 Micro SD卡插槽可用于存储从相机拍摄的图像或存储文件。该ESP32-CAM模块可广泛用于各种IoT应用中。它可以用作办公室、学校和其他私人区域中的面部检测系统,还可以用作无线监控、QR无线识别和许多其他物联网应用程序。

ESP32-CAM模块可以使用ESP-IDF或Arduino IDE进行编程。 ESP32-CAM模块还具有多个GPIO引脚,用于连接外部硬件。 ESP32-CAM没有USB连接器,因此要对模块进行编程,需要使用FTDI电路板。

主要特征:

● 最小的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相机,内置闪光灯

● 支持图片Wi-Fi上传

● 支持TF卡

● 支持多种睡眠模式

● 嵌入式Lwip和FreeRTOS

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

● 支持Smart Config / AirKiss技术

● 支持串行端口本地和远程固件升级(FOTA)

规格:

● SPI闪存:默认32Mbit

● 内存:520KB SRAM + 4M PSRAM

● 支持TF卡:最大4G

● 支持接口:UART,SPI,I2C,PWM

● 图像输出格式:JPEG,BMP,GRASSCALE

● IO端口:9

● 电源范围:5V

所需的组件

● ESP32-CAM模块

● FTDI电路板

电路原理图

要搭建ESP32 CAM安全系统,我们只需要连接ESP32相机模块和FTDI编程器对其进行编程。

相机模块

ESP32-CAM没有USB连接器,因此您需要一个FTDI编程器将代码上传到ESP32-CAM中,如上图所示。 ESP32的Vcc和GND引脚与FTDI电路板的Vcc和GND引脚连接。 ESP32的Tx和Rx与FTDI板的Rx和Tx连接。

注意:在上传代码之前,将IO0接地。 IO0确定ESP32是否处于编程模式。当GPIO 0连接到GND时,ESP32处于编程模式。

对ESP32进行编程后,取下FTDI电路板,然后使用7805稳压器将模块连接到3.3V电源。 设置如下所示:

相机模块

在Arduino IDE上安装ESP32开发板

在本文中,ESP32-CAM是使用Arduino IDE编程的。为此,我们必须在Arduino IDE上安装ESP32插件。

要将ESP32开发板安装在Arduino IDE中,请转到File 》 Preferences

相机模块

然后,复制以下链接并将其粘贴到“Additional Board Manager URLs”字段中,如下图所示。然后,单击“OK”按钮:https://dl.espressif.com/dl/package_esp32_index.json

相机模块

现在转到Tools 》 Board 》 Boards Manager

相机模块

在Board Manager中搜索ESP32并安装“ESP32 by Espressif Systems”。

相机模块

ESP32相机Web服务器代码

安装完成ESP插件后,我们就有了ESP32 cam视频流和面部识别的示例代码。使用File 》 Examples 》 ESP32 》 Camera打开ESP32示例,然后打开CameraWebServer示例。

相机模块

在上传代码之前,您需要输入您的Wi-Fi名称和密码。

const char* ssid = “WiFi Name”;

const char* password = “Password”;

复制代码

之后,定义ESP相机模块。他们在代码中定义了5个摄像头模块,因此取消注释“ CAMERA_MODEL_AI_THINKER”并注释掉其余模块。现在,代码可以上传了。

要上传代码,请将FDTI电路板连接至笔记本电脑,然后选择“ ESP32 Wrover Module”作为开发板。另外,根据此图片更改其他设置:

相机模块

在上传代码之前,请按下ESP32复位按钮,然后单击上传按钮。

上载代码后,断开IO0和GND引脚。然后打开串口监视器,并将波特率更改为115200。然后按ESP32复位按钮,它将在串口监视器上打印ESP IP地址和端口号,如下所示。

相机模块

现在要访问视频流,请导航至浏览器并输入ESP的IP地址。要启动ESP32 cam视频流,请单击页面底部的“Start Stream”按钮

相机模块

您可以通过更改流式传输页面上的“Resolution”来更改流式传输质量。您也可以通过点击“Get Still”按钮来截取图片,但是该代码没有保存图片的选项。

测试完视频流之后,现在我们将测试ESP32 cam面部检测和识别功能。为此,请通过设置打开面部识别和检测功能:

相机模块

首先要进行人脸识别,您需要先注册一个人脸。您可以通过点击“Enroll Face”选项来注册一个新人脸。需要进行多次尝试来保存人脸。保存人脸后,它将该人脸设别为主题0,现在可以通过识别面部将其用作安全系统。

以上这就是可以轻松配置ESP相机模块以进行视频流和面部识别的方式。
编辑:hfy

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分