人脸识别门禁解锁

材料

  • AMB82-mini x 1

  • SD 卡 x 1

  • 按钮 x 2

  • 绿色 LED(可选) x 1

  • 红色 LED(可选) x 1

  • 舵机(例如 Tower Pro SG90) x 1

  • 220 欧姆电阻(可选) x 2

  • 10K 欧姆电阻 x 2

范例

在本范例中,我们将使用开发板创建一个简单的人脸识别门禁控制系统。已注册的人脸可以开锁。

板载接线图:

../../_images/image0116.png

File -> Examples -> AmebaNN -> DoorUnlockWithFaceRecognition 中打开神经网络范例。

../../_images/image0216.png

用户可以使用任何 GPIO 引脚定义 LED 引脚,或使用板上的板载 LED。2 个按钮将被配置为注册按钮和保存按钮。

../../_images/image0315.png

在突出显示的代码片段中,将 "ssid" 填入您的 WiFi 网络 SSID,并将 "pass" 填入网络密码。

../../_images/image0411.png

使用 modelSelect() 函数选择神经网络(NN)任务和模型。该函数接受 4 个参数:神经网络任务、目标检测模型、人脸检测模型和人脸识别模型。如果所选神经网络任务不需要某些模型,请用 "NA_MODEL" 替换。请注意,在调用 begin() 函数之前,必须调用 modelSelect() 函数。

  • 有效的神经网络任务: OBJECT_DETECTIONFACE_DETECTIONFACE_RECOGNITION

  • 有效的目标检测模型:

    • YOLOv3-tiny 模型: DEFAULT_YOLOV3TINYCUSTOMIZED_YOLOV3TINY

    • YOLOv4-tiny 模型: DEFAULT_YOLOV4TINYCUSTOMIZED_YOLOV4TINY

    • YOLOv7-tiny 模型: DEFAULT_YOLOV7TINYCUSTOMIZED_YOLOV7TINY

  • 有效的人脸检测模型: DEFAULT_SCRFDCUSTOMIZED_SCRFD

  • 有效的人脸识别模型: DEFAULT_MOBILEFACENETCUSTOMIZED_MOBILEFACENET

如果您想使用自己的神经网络模型,请选择自定义选项(例如 CUSTOMIZED_YOLOV4TINY/ CUSTOMIZED_SCRFD/ CUSTOMIZED_MOBILEFACENET)。要了解 AI 模型转换的流程,请参考 AI 模型转换工具 。此外,请参考 AI 模型部署指南 了解如何安装和使用转换后的模型。

../../_images/image0511.png

编译代码并上传至 Ameba。按下重置按钮后,等待开发板连接到 WiFi 网络。开发板的 IP 地址和 RTSP 网络端口号将显示在串口监视器中。

您可以使用 VLC 验证结果。您可以从 此处 下载 VLC 媒体播放器。

软件安装完成后,打开 VLC 媒体播放器,进入 Media -> Open Network Stream

../../_images/image069.png

请确保您的 PC 与开发板连接到同一网络以进行串流。由于使用 RTSP 作为串流协议,请在 VLC 媒体播放器中输入 rtsp://{IPaddress}:{port} 作为网络 URL,将 {IPaddress} 替换为开发板的 IP 地址,{port} 替换为串口监视器中显示的 RTSP 端口,例如 rtsp://192.168.1.154:554。默认 RTSP 端口号为 554。

接下来,单击"播放"开始 RTSP 串流以查看结果。摄像头的视频流将显示在 VLC 媒体播放器中。

../../_images/image078.png

人脸识别神经网络模型检测到的人脸最初标记为"unknown",需要先注册人脸并赋予名称才能进行识别。

../../_images/image087.png

注册模式默认处于禁用状态,人脸识别将直接启动。

进入注册模式以注册人脸:

按下之前配置的注册按钮。当处于注册模式时,两个 LED 将亮起,您可以使用以下命令备份和恢复人脸、注册、删除指定人脸以及重置所有人脸。

  1. 注册人脸

注意:可以注册多张人脸。但在注册人脸时,请确保画面中只有一张人脸。

要开始注册,请将摄像头对准人脸,在串口监视器中输入 "REG={Name}" 为目标人脸赋予名称。例如,"REG=SAM"。

../../_images/image095.png
../../_images/image103.png
  1. 删除特定已注册人脸:

输入命令 "DEL={Name}" 以删除某个已注册的人脸。例如,"DEL=SAM"。

  1. 重置所有已注册人脸:

输入命令 "RESET" 以清除所有之前注册的人脸。所有已分配的人脸和名称将被移除。您可以再次进入人脸注册模式重新注册人脸。

  1. 备份与恢复人脸:

输入命令 "BACKUP" 将已注册人脸的副本保存到闪存。如果备份存在,输入命令 "RESTORE" 从闪存加载已注册人脸。

退出注册模式以开始识别人脸并开锁:

注册人脸完成后,长按之前配置的保存按钮 3 秒。两个 LED 将开始闪烁并退出注册模式;已注册的人脸将保存到闪存,识别模式将启动。

如果检测到多张人脸或单张未识别的人脸,门将保持锁定状态,红色 LED 亮起。如果检测到已注册的人脸,绿色 LED 亮起,门将解锁(舵机旋转 180 度)持续 10 秒。将拍摄快照并命名为 {registeredName}{counter}.jpg 存储到 SD 卡。