| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- #ifndef _BEF_EFFECT_HEADSEG_AI_H
- #define _BEF_EFFECT_HEADSEG_AI_H
- #if defined(__ANDROID__) || defined(TARGET_OS_ANDROID)
- #include <jni.h>
- #endif
- #include "bef_effect_ai_public_define.h"
- #define HS_FACE_KEY_POINT_NUM 106
- typedef long long bef_ai_headseg_handle;
- typedef struct
- {
- int net_input_width; //网络输入的大小
- int net_input_height;
- } bef_ai_headseg_config;
- typedef struct
- {
- int face_id;
- bef_ai_fpoint points[HS_FACE_KEY_POINT_NUM];
- } bef_ai_headseg_faceinfo;
- typedef struct
- {
- int face_id;
- unsigned char* alpha;
- unsigned char* crop;
- int width;
- int height;
- int channel;
- double matrix[6];
- } bef_ai_headseg_face_result;
- typedef struct
- {
- unsigned char* image;
- int image_width;
- int image_height;
- int image_stride;
- bef_ai_pixel_format pixel_format; // kPixelFormat_BGRA8888 或者 kPixelFormat_RGBA8888
- bef_ai_rotate_type orient;
- bef_ai_headseg_faceinfo* face_info;
- int face_count;
- } bef_ai_headseg_input;
- typedef struct
- {
- bef_ai_headseg_face_result* face_result;
- int face_count;
- } bef_ai_headseg_output;
- typedef enum
- {
- BEF_AI_HS_ENABLE_TRACKING = 1, // default set to 1 传递true 用于 防抖
- BEF_AI_HS_MAX_FACE = 2,
- } bef_ai_headseg_paramtype;
- BEF_SDK_API
- int BEF_AI_HSeg_CreateHandler(bef_ai_headseg_handle* out);
- BEF_SDK_API
- int BEF_AI_HSeg_CheckLicense(bef_ai_headseg_handle handle, const char* licensePath);
- BEF_SDK_API
- int BEF_AI_HSeg_CheckOnlineLicense(bef_ai_headseg_handle handle, const char* licensePath);
- //设置网络输入参数
- BEF_SDK_API
- int BEF_AI_HSeg_SetConfig(bef_ai_headseg_handle handle, bef_ai_headseg_config* config);
- //设置模型参数
- BEF_SDK_API
- int BEF_AI_HSeg_SetModelFromBuff(bef_ai_headseg_handle handle,
- const unsigned char* param,
- unsigned int param_len);
- //设置模块参数
- BEF_SDK_API
- int BEF_AI_HSeg_SetParam(bef_ai_headseg_handle handle, bef_ai_headseg_paramtype type, float value);
- BEF_SDK_API
- // int HS_InitModel(HeadSegHandle handle, const char* param);
- int BEF_AI_HSeg_InitModel(bef_ai_headseg_handle handle, const char* param_path);
- BEF_SDK_API
- int BEF_AI_HSeg_DoHeadSeg(bef_ai_headseg_handle handle,
- bef_ai_headseg_input* input,
- bef_ai_headseg_output* output);
- BEF_SDK_API
- int BEF_AI_HSeg_ReleaseHandle(bef_ai_headseg_handle handle);
- #endif // _BEF_EFFECT_HEADSEG_AI_H
|