- 2025-01-10
-
发表了主题帖:
[AI挑战营]基于Luckfox pico pro 的 Insightface 实现多人场景下人脸检测
本帖最后由 qsxc 于 2025-1-12 22:29 编辑
# 基于Luckfox pico pro 的 Insightface 实现多人场景下人脸检测
## 一、Insightface介绍
[Insight](https://github.com/deepinsight/insightface) 是一个开源的2D和3D深度人脸分析库,支持人脸检测、识别和对齐等功能。
在[开源示例](https://github.com/deepinsight/insightface/blob/master/examples/demo_analysis.py)中,通过Python实现了这些功能,主要流程是先进行人脸检测,然后对检测到的人脸进行识别。
Insightface 还提供了相应的[模型](https://github.com/deepinsight/insightface/tree/master/model_zoo)。
| Name | Detection Model | Recognition Model | Alignment | Attributes | Model-Size |
| -------------- | --------------- | ------------------- | ------------ | ---------- | ---------- |
| antelopev2 | RetinaFace-10GF | ResNet100@Glint360K | 2d106 & 3d68 | Gender&Age | 407MB |
| buffalo_l | RetinaFace-10GF | ResNet50@WebFace600K | 2d106 & 3d68 | Gender&Age | 326MB |
| buffalo_m | RetinaFace-2.5GF | ResNet50@WebFace600K | 2d106 & 3d68 | Gender&Age | 313MB |
| buffalo_s | RetinaFace-500MF | MBF@WebFace600K | 2d106 & 3d68 | Gender&Age | 159MB |
| buffalo_sc | RetinaFace-500MF | MBF@WebFace600K | - | - | 16MB |
可以看到,Insightface 在多人场景下的人脸检测和追踪中,首先调用 RetinaFace 进行检测,然后调用识别模型。针对不同内存的设备,Insightface 提供了不同大小的模型。
此外,Insightface 提供了跨平台的 [InspireFace](https://github.com/HyperInspire/InspireFace) C++ SDK,可以用于人脸识别应用的部署。目前该 SDK 已经支持 RV1106。
## 二、RKNN介绍
[RKNN-Toolkit2](https://github.com/airockchip/rknn-toolkit2) 工具在 PC 平台上提供 C 或 Python 接口,简化模型的部署和运行。用户可以通过该工具轻松完成以下功能:模型转换、量化、推理、性能和内存评估、量化精度分析以及模型加密。RKNN 软件栈可以帮助用户快速的将 AI 模型部署到 Rockchip 芯片。
## 三、思路
参考 InspireFace 中的示例以及 Luckfox 的 [rkmpi](https://github.com/LuckfoxTECH/luckfox_pico_rkmpi_example) 示例,在示例中Luckfox提供了rkmpi的历程以及InspireFace提供了运行人脸检测识别的历程,通过这些可以编写代码实现多人场景下的人脸检测、精度评分、准确度评估,并应用于智能多人监控系统。
## 四、实际步骤
### 1、板卡
首先,感谢 EEWorld 以及 Luckfox 提供本次活动所需的板卡。
拿到板卡后,首先根据 Luckfox 的[文档](https://wiki.luckfox.com/zh/Luckfox-Pico/Luckfox-Pico-quick-start/)安装摄像头并刷入 buildroot 镜像。
刷好镜像后,将板卡连接电脑 USB,通过 SSH 客户端使用 172.32.0.93:22 连接开发板。系统镜像默认存在 RTSP 程序,可以通过 rtsp://172.32.0.93/live/0 测试 RTSP 效果。
此外,可以参考 [rkmpi](https://github.com/LuckfoxTECH/luckfox_pico_rkmpi_example) 示例文档,测试 RKMPI 效果。
### 2、编译
首先,感谢大佬开源的[测试代码](https://github.com/junanxia/rkface_insightface),在此代码中结合Insightface与Luckfox-SDK实现了人脸检测和识别的测试程序,通过这份代码即可实现Inspireface的多人场景检测。
将代码下载到本地后,使用 VSCode 打开。
将红色框部分修改为自己的[交叉编译链](https://wiki.luckfox.com/zh/Luckfox-Pico/Cross-Compile/)地址。
点击生成进行编译。
为了实现实际应用,可以对代码进行修改,例如作为一个智能监控系统,将实时追踪的数据保存到本地。可以加入以下代码:
```cpp
std::ofstream file("detect.csv", std::ios::app);
if (file.is_open())
{
file
- 2024-11-21
-
回复了主题帖:
入围名单公布:嵌入式工程师AI挑战营(进阶)的挑战者们,领取板卡啦
个人信息已确认,领取板卡,可继续完成任务。
- 2024-11-11
-
回复了主题帖:
嵌入式工程师AI挑战营(进阶):在RV1106部署InsightFace算法的多人实时人脸识别实战
-申请理由 挑战一下 -用自己的话:简述了解的InsightFace、如何在RV1106上部署InsightFace算法,实现多人实时人脸识别的思路 InsightFace是一个基于Pytorch和MXNet的2D/3D人脸分析项目,能够实现人脸识别、人脸检测和人脸对齐算法。利用项目所提供的代码,将待测试的MXNet模型转换为ONNX格式。接着,使用Netron工具验证该模型是否兼容RV1106平台,并将其进一步转换为RKNN模型,尝试在RV1106上进行部署。 -打算在RV1106 Linux开发板(带摄像头)部署什么应用?要求含InsightFace算法的多人实时人脸识别功能; 部署一套智能监控系统,该系统能够实时捕捉视频流,并利用InsightFace对视频中的人脸进行检测、识别和跟踪。采用这种方法,可以实现对特定特征的预警。