嵌入式边缘 AI 人脸识别门禁系统
基于 STM32 的端侧人脸识别、门禁控制和 IoT 远程管理系统。
项目概述
本项目实现了一个轻量级 边缘 AI 门禁系统。系统在 STM32 微控制器 上完成人脸识别和门禁决策,并通过 IoT 通信模块连接移动端管理应用。
项目被设计为一个完整的 边缘感知-决策-通信系统,包括:
- 端侧人脸识别;
- 嵌入式门禁控制逻辑;
- 轻量模型压缩;
- 基于 Wi-Fi 的 IoT 通信;
- Android 远程管理应用。
与依赖云端识别的方案不同,本系统在设备端完成身份验证。这可以减少网络依赖、降低响应延迟,并提升隐私性,因为每一次门禁请求不需要上传原始人脸图像。
这个项目让我理解到:机器学习模型真正部署到资源受限设备上时,模型结构、内存、功耗、通信和系统稳定性必须一起考虑。
该图展示了完整流程:端侧设备采集人脸图像,STM32 上的轻量识别模型输出门禁决策,ESP8266 负责 IoT 连接,Android 应用支持远程用户管理和日志监控。
项目动机
很多 AI 应用在桌面 GPU 上容易验证,但部署到微控制器上会遇到完全不同的问题。微控制器的 SRAM、Flash、计算吞吐和功耗都非常有限。因此,边缘 AI 不只是模型设计问题,而是系统工程问题。
本项目关注三个问题:
- 如何将人脸识别模型压缩到可以在 STM32 级别设备上运行?
- 如何在本地做可靠门禁决策,同时支持远程管理?
- 如何让嵌入式推理、固件控制、IoT 通信和移动端软件协同工作?
最终设计采用本地推理完成实时门禁决策,用云端和移动端负责管理、同步和日志。
系统架构
系统由三个核心部分组成:
- 边缘 AI 推理模块(STM32)
- 无线通信模块(ESP8266)
- Android 远程管理应用
运行流程如下:
- 门禁终端采集人脸图像;
- 检测并预处理人脸区域;
- 在端侧提取紧凑人脸 embedding;
- 与已注册用户 embedding 进行相似度匹配;
- 触发门禁控制,执行开锁或拒绝;
- 上传事件日志和设备状态;
- 通过移动端完成用户管理。
这形成了完整的 边缘感知-决策-通信闭环。
端侧人脸识别
轻量模型设计
识别模块基于 MobileFaceNet 风格的轻量人脸 embedding 网络。模型为每张人脸输出一个紧凑特征向量,然后与注册用户特征进行相似度匹配。
流程包括:
- 人脸采集与预处理;
- 人脸区域检测或对齐;
- embedding 提取;
- cosine similarity 匹配;
- 基于阈值的门禁决策。
相似度计算为:
[ \mathrm{sim}(u,v)=\frac{u^T v}{|u||v|} ]
当相似度超过阈值时,身份验证通过;否则拒绝访问。
TinyML 优化
为了部署到 STM32 这类资源受限硬件上,系统进行了:
- 模型剪枝,减少冗余通道和参数;
- INT8 量化,压缩权重和激活;
- TensorFlow Lite Micro 适配微控制器推理;
- 定点计算优化,降低浮点计算开销;
- 内存规划,确保中间张量能够放入有限 SRAM。
这些优化支持:
- 实时推理;
- 较低内存占用;
- 稳定嵌入式部署;
- 相比云端识别更低的延迟和网络依赖。
主要工程难点在于平衡模型大小和识别鲁棒性。压缩过度会降低识别能力,压缩不足又会导致目标硬件无法稳定运行。
边缘-云端通信
系统使用 ESP8266 Wi-Fi 模块 实现 IoT 连接。端侧设备负责实时门禁决策,网络模块负责管理和日志。
主要功能包括:
- 实时上传识别事件;
- 远程同步用户数据;
- 监控设备状态;
- 查询门禁日志;
- 在授权情况下执行远程控制。
通信使用:
- MQTT 轻量发布/订阅协议;
- 百度云 IoT 平台 进行设备管理和数据转发。
该设计将实时性强的本地决策和非实时的远程管理分离,使系统在临时网络不稳定时仍能完成核心门禁功能。
Android 移动端
项目开发了 Android 应用用于远程管理。
功能包括:
- 用户注册和人脸录入;
- 身份数据库管理;
- 远程开门控制;
- 实时设备状态监控;
- 事件日志和历史记录。
移动端与嵌入式设备、云端平台一起构成完整的 边缘-云端-移动端交互闭环。
关键工程挑战
资源约束
- STM32 的 RAM 和 Flash 都有限;
- 计算吞吐受限;
- 需要模型压缩和内存规划。
实时推理
- 优化预处理和推理路径以降低延迟;
- 减少不必要的内存拷贝;
- 调整模型复杂度,使其满足嵌入式运行限制。
系统集成
- 集成嵌入式固件、AI 推理、网络通信和移动端应用;
- 处理 STM32、ESP8266、云平台和 Android 客户端之间的通信;
- 设计日志和状态信息,便于调试和远程监控。
这个项目最有价值的部分,是让我体会到系统中任何一个小模块的问题都会影响整体体验:延迟消息、不稳定阈值、内存溢出都可能导致系统不可用。
技术栈
硬件
- STM32 微控制器;
- ESP8266 Wi-Fi 模块;
- 摄像头模块;
- 门禁控制执行器。
AI / 嵌入式
- MobileFaceNet 风格轻量 embedding 网络;
- TensorFlow Lite Micro;
- 模型剪枝;
- INT8 量化;
- 定点推理。
通信
- MQTT 协议;
- 百度云 IoT;
- 事件与状态同步。
移动端
- Android 应用;
- 远程用户管理;
- 事件日志界面。
项目结果
系统展示了一个完整的 边缘 AI 部署流程,实现了:
- 微控制器级硬件上的实时人脸识别;
- 低延迟、隐私友好的本地门禁决策;
- 通过 IoT 进行远程监控和用户管理;
- 覆盖 AI、固件、网络和移动端的端到端原型系统。
关键收获
- 系统实践了 TinyML 和嵌入式 AI 部署。
- 搭建了完整的 边缘 AI 系统,包含 AI、固件、IoT 和移动端。
- 理解了压缩、量化和运行时约束如何影响模型行为。
- 建立了在严格资源限制下设计智能系统的工程思维。
这个项目为我后来研究 高效感知系统、通信受限学习和可部署智能体 打下了基础。