本项目是一个基于 ESP-DL 深度学习库实现的嵌入式人脸 AI 闭环方案。它不仅实现了人脸的录入与比对,更重要的是通过双级检测架构彻底解决了 ESP32-S3 在人脸识别中常见的对齐崩溃和精度不足的问题。
在 ESP32-S3 开发人脸识别时,开发者通常会遇到以下三个“大坑”,本项目已全部修复:
- 断言崩溃 (Assert Fix):修复了由于单级检测器(如 MSR01)缺失关键点导致的
area == mat.size()矩阵运算崩溃。 - 人脸对齐 (Double-Stage Detection):通过
MSR01定位 +MNP01精确提取 5 个关键点(10个坐标),确保人脸在识别前被完美“扶正”。 - 分区溢出 (Partition Expansion):针对 AI 模型体积巨大的特点(约 2MB+),提供了自定义分区表,将应用空间扩容至 3MB。
- 人脸检测 (MSR01):快速在图像中锁定人脸位置。
- 人脸对齐 (MNP01):精确定位双眼、口、鼻 5 个关键点,进行仿射变换。
- 人脸识别 (FR112V1S8):提取 512 维特征向量,完成内存 ID 的录入与实时相似度匹配。
确保你已安装 ESP-IDF v5.5.1。
# 激活环境 ($HOME 适配不同用户)
. $HOME/esp/v5.5.1/esp-idf/export.sh
# 添加必要依赖组件
idf.py add-dependency "espressif/esp32-camera"
idf.py add-dependency "espressif/esp-dl"-
必须使用项目中的 partitions.csv,并在 menuconfig 中进行如下设置:
-
Partition Table -> Partition Table -> 选择 Custom partition table CSV
-
Custom partition table CSV file -> 填写 partitions.csv
idf.py build
idf.py flash monitor-
硬件: ESP32-S3 + 8MB PSRAM + GC2145
-
分辨率: 320x240 (QVGA)
-
响应: 识别成功后将实时打印匹配 ID 与相似度分数。