Sigmstar Comake D1 SSD2355 IPU算法之人脸识别算法
本文介绍了人脸识别算法的功能模块及接口调用流程。算法包含人脸检测、属性识别、表情识别等核心功能,支持判断眼镜、性别等5种属性及7种表情。文档详细说明了注册和识别两个主要过程的具体API调用步骤,包括创建句柄、特征提取、比对等关键操作。同时提供了人脸模糊度检测、批量特征比对等扩展功能的实现方法。文中还列出了所有功能模块API的简要说明,并以ALGO_FR_CreateHandle为例展示了接口定义格
人脸识别算法
目录
1. 算法描述¶
人脸识别主要是对人脸进行区分,判断抓拍人脸是否是白名单人员。整个算法包含人脸检测、人脸属性识别、人脸表情识别、人脸关键点、人脸过滤、人脸跟踪、人脸对齐、特征提取以及人脸比对。 其中,人脸属性可以判断人脸的眼镜、性别、口罩、胡子、年龄五个属性;人脸表情可以判断人脸7个表情,分别是正常、高兴、难过、惊讶、害怕、厌恶、生气。
-
算法精度
ALGO 阈值 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 FR TAR% 99.4 98.9 98.5 98.1 97.6 96.9 96.4 95.2 93.9 93.4 92.1 90.9 89.1 86.7 85.4 84.2 FR FAR% 2.3 1.8 1 0.7 0.4 0.1 0 0 0 0 0 0 0 0 0 0 -
模型介绍
model 功能 分辨率(w*h) 输入格式 fr_det_y24s.img 人脸检测 480*288 yuvsp420_nv12 fr_det_y36s.img 人脸检测 640*352 yuvsp420_nv12 fr_det_y48s.img 人脸检测 800*480 yuvsp420_nv12 fr_feature_as.img 人脸特征提取(小) 112*112 BGRA8888 fr_feature_am.img 人脸特征提取(中) 112*112 BGRA8888 fr_feature_al.img 人脸特征提取(大) 112*112 BGRA8888 fr_angle_y66.img 人脸角度估计 64*64 yuvsp420_nv12 fr_cos256.img 人脸特征比对模型 256*512 INT16 far101_224y_emo.img 人脸表情识别模型 224*224 yuvsp420_nv12 far101_224y_emo_s45.img 人脸表情识别模型(小) 224*224 yuvsp420_nv12 far103_224y.img 人脸属性识别模型 224*224 yuvsp420_nv12 fr_blur_as.img 人脸模糊度估计(小) 112*112 BGRA8888
2. 接口调用流程¶
人脸识别主要包含两个过程,一个是人脸注册过程,这个过程是生成人脸白名单(底库)。另外一个是人脸识别过程,这个过程就是对抓拍到的人脸进行识别,判断是否是白名单人员。
2.1. 注册过程¶
注册过程的接口调用:ALGO_FR_CreateHandle → ALGO_FR_InitHandle → ALGO_FR_SetParams → ALGO_FR_GetInputAttr → ALGO_FR_Detect → ALGO_FR_AlignRegist → ALGO_FR_FeatureExtract, 最后将提取到的特征保存起来成为底库。
2.2. 识别过程¶
识别过程的接口调用为:ALGO_FR_CreateHandle → ALGO_FR_InitHandle → ALGO_FR_SetParams → ALGO_FR_GetInputAttr → ALGO_FR_Detect → ALGO_FR_Align → ALGO_FR_FeatureExtract → ALGO_FR_FeatureCompare,通过抓拍到的图片特征和底库的特征进行比对,判断是不是同一个人。
2.3. 人脸属性识别过程¶
人脸属性识别的接口调用:ALGO_FR_CreateHandle → ALGO_FR_InitHandle → ALGO_FR_SetParams → ALGO_FR_GetInputAttr → ALGO_FR_Detect → ALGO_FR_Attr,通过抓拍到的人脸图片进行人脸属性识别。 注意:裁剪后送入该接口的人脸图像需要做一定范围的外扩,外扩的宽高分别为:1.25 × bbox_w, 1.25 × bbox_h
2.4. 获取人脸模糊度的过程¶
获取人脸模糊度的接口调用过程为:ALGO_FR_CreateHandle → ALGO_FR_InitHandle → ALGO_FR_SetParams → ALGO_FR_GetInputAttr → ALGO_FR_Detect → ALGO_FR_Align → ALGO_FR_FaceBlur,将检测到且对对齐后的人脸送入ALGO_FR_FaceBlur接口获取模糊分值。
3. 功能模块API¶
| API名 | 功能 |
|---|---|
| ALGO_FR_CreateHandle | 创建句柄 |
| ALGO_FR_InitHandle | 初始化句柄 |
| ALGO_FR_GetInputAttr | 获取模型的输入属性信息 |
| ALGO_FR_SetParams | 设置算法可配置参数 |
| ALGO_FR_Detect | 人脸检测 |
| ALGO_FR_Align | 人脸对齐 |
| ALGO_FR_AlignRegist | 注册人脸对齐 |
| ALGO_FR_Attr | 人脸属性识别 |
| ALGO_FR_FaceQuality | 执行人脸角度估计以及质量过滤 |
| ALGO_FR_FeatureExtract | 特征提取 |
| ALGO_FR_FeatureCompare | 特征比对 |
| ALGO_FR_BatchFeatureCompare | 执行批量人脸特征比对(需要拷贝一份比对特征) |
| ALGO_FR_BatchFeatureCompareV2 | 执行批量人脸特征比对(不需要拷贝比对特征) |
| ALGO_FR_DeinitHandle | 反初始化句柄 |
| ALGO_FR_ReleaseHandle | 释放句柄 |
| ALGO_FR_FaceBlur | 获取人脸模糊度 |
3.1. ALGO_FR_CreateHandle¶
-
功能
创建句柄。
-
语法
MI_S32 ALGO_FR_CreateHandle(void **handle);
-
形参
参数名称 描述 输入/输出 handle 句柄 输入 -
返回值
返回值 描述 0 成功 其它 失败(详见错误码) -
依赖
头文件:sgs_fr_api.h
库文件:libsgsalgo_fr.so, libsgsalgo_fr.a
4. 参考实例
5. 立即开始
加入Comake开发者社区
主页地址: CoMake开发者社区
SDK下载: CoMake开发者社区
文档中心: CoMake开发者社区
马上购买 : 首页-Comake开发者社区商店
更多推荐
所有评论(0)