基于RV1126B构建一个用于面部检测的系统
1. 人脸检测概述
人脸检测是人脸识别、面部属性分类、人脸编辑和人脸追踪等任务中不可或缺的初始步骤,其性能直接影响人脸识别及其他相关任务的效果。尽管过去几十年在无约束条件下的人脸检测方面取得了显著进展,但在真实场景中实现准确且高效的检测仍是一个未解决的难题。这主要归因于姿态变化、面部表情、尺度差异、光照条件、图像畸变以及面部遮挡等因素。与一般物体检测不同,人脸检测的特点是长宽比变化较小,但尺度变化较大(从几个像素到数千像素不等)。
该人脸检测算法在各类数据集上的性能如下所示:
在EASY-EAI-Nano-TB硬件板上的运行效率:
2. 快速入门
2.1 开发环境准备
如果您是首次阅读本文,请参考《入门指南 / 开发环境准备 / Easy-Eai 编译环境准备与更新》,并按照相关操作部署编译环境。
在电脑的 Ubuntu 系统上运行脚本,进入 EASY-EAI 编译环境,如下所示:
2.2 源代码下载
在 EASY-EAI 编译环境中创建一个管理目录,用于存放源码仓库:
使用 git 工具将远程仓库克隆到管理目录中:
注意:
网络问题可能导致延迟,请耐心等待。
如果必须从 GitHub 网页下载,请下载整个仓库,而不仅仅是本示例对应的目录。
2.3 模型部署
要运行算法演示,首先需要下载人脸检测算法模型。
将下载的人脸检测算法模型复制到 Release/ 目录中:
2.4 示例编译
导航至相应的示例目录,并执行编译命令:
注意:
由于依赖库已部署在开发板上,因此在交叉编译过程中必须保持 /mnt 的挂载状态。
如果使用 cpres 参数运行 build.sh 脚本,则 Release/ 目录中的所有资源将被复制到开发板上。
2.5 示例执行与结果
通过 viaserial 端口调试或 SSH 登录开发板,并导航至示例的部署位置:
使用以下命令运行示例:
在 EASY-EAI 编译环境中获取测试结果图像:
结果图像如下所示:
有关详细 API 描述和 API 调用(本示例源代码),请参阅下方说明。
3. 人脸检测API说明
3.1 参考方法
为方便客户在本地项目中直接调用我们的EASY EAI API库,以下列出了需在项目中链接的库文件和头文件,便于集成使用。
3.2 人脸检测初始化函数
人脸检测初始化函数的原型如下:
详细说明:
3.3 人脸检测执行函数
人脸检测执行函数face_detect_run的原型如下:
详细说明:
3.4 人脸检测释放函数
人脸检测释放函数的原型如下:
详细说明:
4. 人脸检测算法示例
示例目录为 Demos/algorithm-face_detect/test-face-detect.cpp,其操作流程如下。
参考示例代码:
本文编译自hackster.io





