详细接口说明查看头文件:FaceAttribute.h
BEF_SDK_API int HeidiFaceAttributeCreateHandle( unsigned long long config, const char * strModelPath, HeidiHandle *handle );
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
config | unsigned long long | 人脸属性检测算法的配置 |
strModelPath | const char * | 模型文件所在路径 |
handle | HeidiHandle * | 创建的人脸属性检测句柄 |
返回值
成功返回 HEIDI_CODE_SUC, 失败返回相应错误码, 具体请参考 HeidiPublicDefines.h
int HeidiFaceAttributeCheckLicense(HeidiHandle handle, const char* licensePath);
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
handle | HeidiHandle | 已创建的人脸检测句柄 |
licensePath | const char * | 授权文件路径 |
返回值
成功返回 HEIDI_CODE_SUC, 失败返回相应错误码, 具体请参考 HeidiPublicDefines.h
int HeidiFaceAttributeSetParam( HeidiHandle handle, HeidiFaceAttributeParamConfigType type, float value );
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
handle | HeidiHandle | 已创建的人脸检测句柄 |
type | HeidiFaceAttributeParamConfigType | 需要设置的人脸检测类型,可参考 HeidiFaceAttributeParamConfigType |
value | float | 具体设置的值 |
返回值
成功返回 HEIDI_CODE_SUC, 失败返回相应错误码, 具体请参考 HeidiPublicDefines.h
人脸属性检测结果定义在头文件FaceAttribute.h中,具体如下:
/* *@heidi 表情类别枚举 **/ typedef enum { HEIDI_FACE_ATTRIBUTE_ANGRY = 0, //生气 HEIDI_FACE_ATTRIBUTE_DISGUST = 1, //厌恶 HEIDI_FACE_ATTRIBUTE_FEAR = 2, //害怕 HEIDI_FACE_ATTRIBUTE_HAPPY = 3, //高兴 HEIDI_FACE_ATTRIBUTE_SAD = 4, //伤心 HEIDI_FACE_ATTRIBUTE_SURPRISE = 5, //吃惊 HEIDI_FACE_ATTRIBUTE_NEUTRAL = 6, //平静 HEIDI_FACE_ATTRIBUTE_NUM_EXPRESSION = 7 //支持的表情个数 } HeidiFaceAttributeExpressionType; typedef enum { HEIDI_AGE = 0x00000001, ///< 年龄 HEIDI_GENDER = 0x00000002, ///< 性别 HEIDI_EXPRESSION = 0x00000004, ///< 表情 HEIDI_ATTRACTIVE = 0x00000008, ///< 颜值 HEIDI_HAPPINESS = 0x00000010, ///< 开心程度 HEIDI_FILTER = 0x00000040, ///< 人脸类型 HEIDI_QUALITY = 0x00000080, ///< 质量 HEIDI_EXP_DEGREE = 0x00000100, ///< 表情程度 HEIDI_EXTRA = 0x00000200, ///< 额外的属性 } HeidiAttrTypes; /* *@heidi 单个人脸属性结构体 **/ typedef struct HeidiFaceAttributeInfo { float age; // 预测的年龄值, 值范围【0,100】之间 float boy_prob; // 预测为男性的概率值,值范围【0.0,1.0】之间 float attractive; // 预测的颜值分数,范围【0,100】之间 float happy_score; // 预测的微笑程度,范围【0,100】之间 HeidiFaceAttributeExpressionType exp_type; // 预测的表情类别 float exp_probs[HEIDI_FACE_ATTRIBUTE_NUM_EXPRESSION]; // 预测的每个表情的概率,未加平滑处理 // extra float real_face_prob; // 预测属于真人脸的概率,用于区分雕塑、漫画等非真实人脸 float quality; // 预测人脸的质量分数,范围【0,100】之间 float arousal; // 情绪的强烈程度 float valence; // 情绪的正负情绪程度 float sad_score; // 伤心程度 float angry_score; // 生气程度 float surprise_score; // 吃惊的程度 float mask_prob; // 预测戴口罩的概率 float wear_hat_prob; // 戴帽子的概率 float mustache_prob; // 有胡子的概率 float lipstick_prob; // 涂口红的概率 float wear_glass_prob; // 带普通眼镜的概率 float wear_sunglass_prob; // 带墨镜的概率 float blur_score; // 模糊程度 float illumination; // 光照 float confused_prob; ///< 疑惑表情概率 } HeidiFaceAttributeInfo;
人脸属性检测是以人脸106关键点作为输入,在106关键点的基础上,完成人脸属性的识别。
人脸属性检测接口分为单人脸输入和多人脸输入, 如果人脸检测结果中只有单个人脸,则调用单人脸输入的接口,接口定义如下:
int HeidiFaceAttributeDetect( HeidiHandle handle, const unsigned char *image, ColorSpaceType pixel_format, int image_width, int image_height, int image_stride, const HeidiAiFace106 *ptr_base_info, unsigned long long config, HeidiFaceAttributeInfo *ptr_face_attribute_info );
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
handle | HeidiHandle | 已创建的人脸检测句柄 |
image | const unsigned char * | 输入图片的数据指针 |
pixel_format | ColorSpaceType | 输入图片的格式 |
image_width | int | 输入图像的宽度 (以像素为单位) |
image_height | int | 输入图像的高度 (以像素为单位) |
image_stride | int | 输入图像每一行的步长 (以像素为单位) |
ptr_base_info | const HeidiAiFace106 * | 人脸检测结果 |
config | unsigned long long | 人脸检测相关的配置 |
ptr_face_attribute_info | HeidiFaceAttributeInfo * | 人脸检测结果 |
返回值
成功返回 HEIDI_CODE_SUC, 失败返回相应错误码, 具体请参考 HeidiPublicDefines.h
如果人脸检测结果中有多个人脸,则调用多人脸输入的接口,接口定义如下:
int HeidiFaceAttributeDetectBatch( HeidiHandle handle, const unsigned char *image, ColorSpaceType pixel_format, int image_width, int image_height, int image_stride, const HeidiAiFace106 *ptr_base_info, int face_count, unsigned long long config, HeidiFaceAttributeResult *ptr_face_attribute_result );
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
handle | HeidiHandle | 已创建的人脸检测句柄 |
image | const unsigned char * | 输入图片的数据指针 |
pixel_format | ColorSpaceType | 输入图片的格式 |
image_width | int | 输入图像的宽度 (以像素为单位) |
image_height | int | 输入图像的高度 (以像素为单位) |
image_stride | int | 输入图像每一行的步长 (以像素为单位) |
ptr_base_info | const HeidiAiFace106 * | 人脸检测结果 |
face_count | int | 人脸检测人脸数 |
config | unsigned long long | 人脸检测相关的配置 |
ptr_face_attribute_result | HeidiFaceAttributeResult * | 人脸属性结果 |
返回值
成功返回 HEIDI_CODE_SUC, 失败返回相应错误码, 具体请参考 HeidiPublicDefines.h
int HeidiFaceAttributeReleaseHandle( HeidiHandle handle );
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
handle | HeidiHandle | 已创建的人脸检测句柄 |