bef_effect_ai_avatar_drive.h 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. //
  2. // bef_effect_ai_avatar_drive.h
  3. // effect-sdk
  4. //
  5. //
  6. #ifndef bef_effect_ai_avatar_drive_h
  7. #define bef_effect_ai_avatar_drive_h
  8. #if defined(__ANDROID__) || defined(TARGET_OS_ANDROID)
  9. #include <jni.h>
  10. #endif
  11. #include "bef_effect_ai_public_define.h"
  12. #include "bef_effect_ai_face_detect.h"
  13. #define BEF_AI_AM_E_DIM 52
  14. #define BEF_AI_AM_U_DIM 75
  15. #define BEF_AI_AVATAR_MAX_FACE_COUNT 10
  16. typedef unsigned long bef_ai_avatar_handle;
  17. /**
  18. @brief avatar 检测结果
  19. */
  20. typedef struct bef_ai_avatar_info {
  21. float alpha[BEF_AI_AM_U_DIM];
  22. float beta[BEF_AI_AM_E_DIM];
  23. float landmarks[240*2];
  24. float rot[3];
  25. float mvp[16];
  26. float mv[16];
  27. float affine_mat[9];
  28. int succ; // 是否检测成功
  29. int face_id; // 人脸 id
  30. } bef_ai_avatar_info;
  31. BEF_SDK_API
  32. bef_effect_result_t bef_effect_ai_avatar_create(bef_ai_avatar_handle *handle);
  33. BEF_SDK_API
  34. bef_effect_result_t bef_effect_ai_avatar_check_license(bef_ai_avatar_handle handle, const char *licensePath);
  35. BEF_SDK_API
  36. bef_effect_result_t bef_effect_ai_avatar_check_online_license(bef_ai_avatar_handle handle, const char *licensePath);
  37. BEF_SDK_API
  38. bef_effect_result_t bef_effect_ai_avatar_set_model(bef_ai_avatar_handle handle, const char *modelPath, int inputWidth, int inputHeight);
  39. BEF_SDK_API
  40. bef_effect_result_t bef_effect_ai_avatar_detect(bef_ai_avatar_handle handle,
  41. const unsigned char *image,
  42. bef_ai_pixel_format pixelFormat,
  43. int imageWidth,
  44. int imageHeight,
  45. int imageStride,
  46. bef_ai_rotate_type rotation,
  47. bef_ai_avatar_info *result);
  48. BEF_SDK_API
  49. bef_effect_result_t bef_effect_ai_avatar_detect_with_face(bef_ai_avatar_handle handle,
  50. const unsigned char *image,
  51. bef_ai_pixel_format pixelFormat,
  52. int imageWidth,
  53. int imageHeight,
  54. int imageStride,
  55. bef_ai_rotate_type rotation,
  56. int faceCount,
  57. int id[BEF_AI_AVATAR_MAX_FACE_COUNT],
  58. float landmark106[BEF_AI_AVATAR_MAX_FACE_COUNT][212],
  59. bef_ai_avatar_info *result);
  60. BEF_SDK_API
  61. bef_effect_result_t bef_effect_ai_avatar_set_escale(bef_ai_avatar_handle handle, int escale);
  62. BEF_SDK_API
  63. bef_effect_result_t bef_effect_ai_avatar_release(bef_ai_avatar_handle handle);
  64. #endif /* bef_effect_ai_avatar_drive_h */