宠物脸识别SDK提供宠物分类、宠物脸脸关键点跟踪和宠物面部动作分析的能力,具备检测速度快、跟踪稳定、性能开销低等特点。
在90个关键点图的基础上去掉的耳朵部分【26-39】14个关键点,其它关键点40号之后顺延。
支持平台 | Android、iOS、Windows、Mac |
---|---|
支持角度 | yaw ≤ ±90° pitch ≤ ±90° |
支持输入格式 | RGBA8888、BGRA8888、BGR888、RGB888、NV21、NV12、YUV420P |
支持最大宠物脸数 | 10 |
支持最小输入尺寸 | 短边128 |
支持距离 | 脸占图片短边的1/10以上 |
检测速度 | <8ms(测试设备OppoR11,高通660) |
详细接口说明查看头文件:bef_effect_ai_pet_face.h
接口说明
创建宠物脸检测的句柄
BEF_SDK_API bef_effect_result_t bef_effect_ai_pet_face_create( const char * strModelPath, long long config, unsigned int maxNum, bef_effect_handle_t *handle );
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
strModelPath | const char * | 模型文件所在路径 |
config | long long config, | 宠物脸检测算法的配置 可以配置只检测猫,只检测狗,或者同时检测猫狗 |
max_face_num | unsigned int | 指定最多能够检测到的宠物脸数目 |
handle | bef_effect_handle_t | 创建的宠物脸检测句柄 |
备注
配置参数可以参考bef_ai_pet_face_config_type, 例如:
只检测狗
detect_config = bef_ai_pet_face_config_type::BEF_DetDog
同时检测猫狗:
detect_config = bef_ai_pet_face_config_type::BEF_DetDog|bef_ai_pet_face_config_type::BEF_DetCat
返回值
成功返回 BEF_RESULT_SUC, 失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h
android接口
BEF_SDK_API bef_effect_result_t bef_effect_ai_pet_face_check_license( JNIEnv* env, jobject context, bef_effect_handle_t handle, const char *license_path );
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
env | JNIEnv * | jni环境 |
context | jobject | jni对象 |
handle | bef_effect_handle_t | 已创建的宠物脸检测句柄 |
license_path | const char * | 授权文件路径 |
返回值
成功返回 BEF_RESULT_SUC, 失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h
ios接口
BEF_SDK_API bef_effect_result_t bef_effect_ai_pet_face_check_license( bef_effect_handle_t handle, const char *license_path );
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
handle | bef_effect_handle_t | 已创建的宠物脸检测句柄 |
license_path | const char * | 授权文件路径 |
返回值
成功返回 BEF_RESULT_SUC, 失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h
BEF_SDK_API bef_effect_result_t bef_effect_ai_pet_face_detect( bef_effect_handle_t handle, const unsigned char *image, bef_ai_pixel_format pixel_format, int image_width, int image_height, int image_stride, bef_ai_rotate_type orientation, bef_ai_pet_face_result *p_pet_face_result );
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
handle | bef_effect_handle_t | 已创建的宠物脸检测句柄 |
image | const unsigned char * | 输入图片的数据指针 |
pixel_format | bef_ai_pixel_format | 输入图片的格式 |
image_width | int | 输入图像的宽度 (以像素为单位) |
image_height | int | 输入图像的高度 (以像素为单位) |
image_stride | int | 输入图像每一行的步长 (以像素为单位) |
orientation | bef_ai_rotate_type | 输入图像的转向,具体请参考 bef_effect_ai_public_define.h 中的 bef_rotate_type |
p_pet_face_result | bef_ai_pet_face_result * | 存放结果信息,需外部分配好内存,需保证空间大于等于设置的最大检测宠物脸数 |
返回值
成功返回 BEF_RESULT_SUC, 失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h
BEF_SDK_API bef_effect_result_t bef_effect_ai_pet_face_release(bef_effect_handle_t handle);
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
handle | bef_effect_handle_t | 已创建的宠物脸检测句柄 |
返回值
成功返回 BEF_RESULT_SUC, 失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h
接口说明
宠物脸关键点检测相关的函数定义在com.bytedance.labcv.effectsdk.PetFaceDetect.java中。
public int init( Context context, String modelPath, int config, String license )
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
context | Context | 上下文 |
modelPath | String | 模型文件路径 |
config | int | 宠物脸检测算法的配置,config = 可检测的特征(必须设置, 参考{@link BytedEffectConstants.PetFaceAction}) |
license | String | 授权文件 |
返回值
成功返回BEF_RESULT_SUC,否则返回对应的错误码
public BefPetFaceInfo detectFace( ByteBuffer buffer, BytedEffectConstants.PixlFormat pixel_format, int image_width, int image_height, int image_stride, BytedEffectConstants.Rotation orientation )
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
buffer | ByteBuffer | 图片数据 |
pixel_format | BytedEffectConstants.PixlFormat | 图片数据格式 |
image_width | int | 图片宽度 |
image_height | int | 图片高度 |
image_stride | int | 图片每一行的步长 |
orientation | BytedEffectConstants.Rotation | 图片旋转角度 |
返回值
成功返回BEF_RESULT_SUC,否则返回对应的错误码
public void release()
返回值
成功返回BEF_RESULT_SUC,否则返回对应的错误码
答:建议首先查看以下tag输出Error类型的日志:
bef_effect_ai 和SMASH_E_LOG 以及 EffectSDK
错误码请参考错误码表