本项目基于 RK3588 + Android + RKNN 平台开发,面向边缘端智能识别场景,目标是在移动设备上实现一套具备 实时人脸检测、特征提取与身份识别 能力的人脸识别系统。系统采用 RetinaFace 作为人脸检测与关键点定位模型,能够准确输出人脸框及五官关键点;采用 MobileNet 作为轻量化人脸特征提取网络,在保证精度的同时兼顾端侧推理速度。软件核心功能包括摄像头实时取流、人脸检测、人脸对齐、特征向量提取、特征库比对、识别结果展示等模块。业务流程上,系统首先从摄像头获取图像帧,经 RetinaFace 完成人脸检测与关键点定位后,对目标人脸进行对齐和裁剪,再由 MobileNet 提取特征向量,并与本地注册的人脸特征库进行相似度比对,最终输出识别结果并在 Android 界面上实时展示。该系统可应用于门禁、考勤、身份核验等场景,具备较好的实时性、稳定性与落地能力。
项目整体采用 Android Java/Kotlin + JNI/NDK + C/C++ + RKNN 的实现方案,上层负责摄像头预览、界面交互与结果展示,下层负责模型推理、图像预处理、后处理与识别逻辑。系统设计上分为图像采集模块、人脸检测模块、人脸对齐模块、特征提取模块、特征比对模块和结果回传模块,各模块通过 JNI 完成高效联动。我主要负责 RetinaFace 和 MobileNet 模型的 RKNN 部署适配、Android 端集成、识别流程打通与性能优化。在项目中,完成了模型从训练侧到端侧的转换与适配,解决了输入输出格式不一致、量化精度下降、预处理与训练流程不统一等问题;同时对摄像头帧处理、内存复用、异步线程调度和推理耗时进行了优化,提升了整体运行效率。项目难点主要在于端侧实时性要求高、检测与识别链路长,以及 Android 与 NPU 推理模块之间的数据传递效率问题。针对这些问题,我通过减少不必要的数据拷贝、优化人脸对齐与后处理流程、合理划分检测与识别线程、控制特征库检索开销等方式,最终实现了较稳定的实时识别效果,并保障了系统在长时间运行场景下的稳定性。