风筝
发表于: 2020-9-25 15:04:56 | 显示全部楼层

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


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


ESP32-CAM模块简介

ESP32-Camera-module.jpg

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电路板。

ESP32-CAM-Module-PinOut.jpg


主要特征:

●    最小的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-Security-Camera-Circuit-Diagram.png


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电源。 设置如下所示:

Setup-for-ESP32-Cam-Video-Streaming.jpg


在Arduino IDE上安装ESP32开发板

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


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

Preferences-to-Install-ESP32-Board-on-Arduino-IDE.png

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

Installing-ESP32-Board-on-Arduino-IDE.png


现在转到Tools > Board > Boards Manager

Baords-manager-to-Install-ESP32-Board-on-Arduino-IDE.png

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

Installing-ESP32-by-Espressif-Systems.png


ESP32相机Web服务器代码

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

ESP32-Camera-Webserver.png

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

  1. const char* ssid = "WiFi Name";
  2. const char* password = "Password";
复制代码

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


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

Tools-for-ESP32-Camera-Webserver-Code.png


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

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

ESP-IP-Address-and-Port-no.-on-Serial-Monitor.png


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

Camera-Streaming-Access-Setup.png

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


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

Face-Detection-and-Recognition-Enable.png


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


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


代码

本文使用的完整代码如下所示: main.rar (1.26 KB, 下载次数: 55)

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 54 | 回复: 107



手机版|

GMT+8, 2024-4-26 15:36 , Processed in 0.040935 second(s), 6 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表