You need to enable JavaScript to run this app.
导航

人脸聚类

最近更新时间2023.06.28 14:41:45

首次发布时间2022.02.25 17:16:51

简介

人脸聚类SDK提供人像聚类的能力,方便将属于同一个人的照片聚成一类,常应用于智能相册中。

技术规格
支持平台Android、iOS、Windows、Mac
内存占用<10M (测试设备OppoR11)
支持角度yaw ≤ ±90° pitch ≤ ±90°
支持输入格式RGBA8888、BGRA8888、BGR888、RGB888、NV21、NV12、YUV420P
支持最小输入尺寸短边128
支持单张图片最大人脸数10
人脸比对速度<18ms(测试设备iPhone7)
C接口

人脸识别及相似度相关头文件 bef_effect_ai_face_clustering.h

人脸聚类

1. 创建人脸聚类句柄

BEF_SDK_API bef_effect_result_t bef_effect_ai_fc_create(bef_effect_handle_t *handle);

参数说明

参数名参数类型参数说明
handlebef_effect_handle_t创建的人脸聚类句柄

返回值

成功返回 BEF_RESULT_SUC, 失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h

2. 人脸聚类授权

android接口

BEF_SDK_API bef_effect_result_t bef_effect_ai_face_cluster_check_license(
    JNIEnv* env,
    jobject context, 
    bef_effect_handle_t handle, 
    const char *license_path
);

参数说明

参数名参数类型参数说明
envJNIEnv *jni环境
contextjobjectjni对象
handlebef_effect_handle_t已创建的人脸聚类句柄
license_pathconst char *授权文件路径

返回值

成功返回 BEF_RESULT_SUC, 失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h

ios接口

BEF_SDK_API bef_effect_result_t bef_effect_ai_face_cluster_check_license(
    bef_effect_handle_t handle,
    const char *license_path
);

参数说明

参数名参数类型参数说明
handlebef_effect_handle_t已创建的人脸聚类句柄
license_pathconst char *授权文件路径

返回值

成功返回 BEF_RESULT_SUC, 失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h

3. 人脸聚类参数设置

BEF_SDK_API bef_effect_result_t bef_effect_ai_fc_set_param(
    bef_effect_handle_t handle, 
    bef_ai_fc_param_type type, 
    float value
);

参数说明

参数名参数类型参数说明
handlebef_effect_handle_t已创建的人脸聚类检测句柄
typebef_face_detect_type参考bef_ai_fc_param_type
valuefloat具体设置的值

返回值

成功返回 BEF_RESULT_SUC, 失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h

4. 人脸聚类接口

BEF_SDK_API bef_effect_result_t  bef_effect_ai_fc_do_clustering(
    bef_effect_handle_t handle,
    float *const features,
    const int num_samples,
    int *clusters
);

参数说明

参数名参数类型参数说明
featuresfloat *const人脸特征,大小为 num_samples * FACE_FEATURE_DIM
num_samplesconst int人脸的数量
clustersint *输出的人脸聚类结果

返回值

成功返回 BEF_RESULT_SUC, 失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h

5. 释放人脸聚类句柄

BEF_SDK_API bef_effect_result_t bef_effect_ai_fc_release(bef_effect_handle_t handle);

参数说明

参数名参数类型参数说明
handlebef_effect_handle_t已创建的人脸聚类句柄
Java接口

人脸聚类相关的函数定义在com.bytedance.labcv.effectsdk.FaceCluster.java文件中。

人脸聚类

1. 初始化人脸聚类句柄

public int init(
    Context context, 
    String license
)

参数说明

参数名参数类型参数说明
contextContext上下文
licenseString授权文件的路径

返回值

成功返回BEF_RESULT_SUC,否则返回对应的错误码

2. 设置聚类参数

public int setDetectParam(
    int paramType , 
    int paramValue
)

参数说明

参数名参数类型参数说明
paramTypeInt参数类型
paramValueint参数值

返回值

成功返回BEF_RESULT_SUC,否则返回对应的错误码

3. 人脸特征聚类

public int[] cluster(
    float[][] features, 
    int numSize
)

参数说明

参数名参数类型参数说明
featuresfloat[][]人脸特征向量
numSizeint人脸特征个数

返回值

聚类结果,每个特征所属类别的数组

备注

聚类结果result[i] = 0, 表示第i个features的属于第0类

4. 释放人脸聚类接口

public void release()

FAQ

1.如果出现任何异常,请查看是否有以下类型日志

答:建议首先查看以下tag输出Error类型的日志:

bef_effect_ai 和SMASH_E_LOG 以及 EffectSDK

错误码

错误码请参考错误码表