bef_effect_ai_video_cls.h 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. #ifndef ANDROIDDEMO_BEF_EFFECT_AI_VIDEO_CLS_H
  2. #define ANDROIDDEMO_BEF_EFFECT_AI_VIDEO_CLS_H
  3. #if defined(__ANDROID__) || defined(TARGET_OS_ANDROID)
  4. #include <jni.h>
  5. #endif
  6. #include "bef_effect_ai_public_define.h"
  7. typedef unsigned long long bef_ai_video_cls_handle;
  8. /**
  9. * @brief 模型参数类型
  10. *
  11. */
  12. typedef enum {
  13. BEF_AI_kVideoClsEdgeMode = 1, ///< TODO: 根据实际情况修改
  14. } bef_ai_video_cls_param_type;
  15. /**
  16. * @brief 模型枚举,有些模块可能有多个模型
  17. *
  18. */
  19. typedef enum {
  20. BEF_AI_kVideoClsModel1 = 1, ///< TODO: 根据实际情况更改
  21. } bef_ai_video_cls_model_type;
  22. /**
  23. * @brief 封装预测接口的输入数据
  24. *
  25. * @note 不同的算法,可以在这里添加自己的数据
  26. */
  27. typedef struct {
  28. bef_ai_base_args *bases; ///< 对视频帧数据做了基本的封装
  29. int is_last; //是否为最后一帧
  30. } bef_ai_video_cls_args;
  31. typedef struct {
  32. int id; //类别id
  33. float confidence; //类别的置信度
  34. float thres; //类别的默认阈值
  35. } bef_ai_video_cls_type;
  36. /**
  37. * @brief 封装预测接口的返回值
  38. *
  39. * @note 不同的算法,可以在这里添加自己的自定义数据
  40. */
  41. typedef struct {
  42. // 下面只做举例,不同的算法需要单独设置
  43. bef_ai_video_cls_type* classes;//内存由sdk分配,由sdk释放
  44. int n_classes;
  45. } bef_ai_video_cls_ret;
  46. /**
  47. * @brief 封装预测接口的返回值
  48. *
  49. * @note 不同的算法,可以在这里添加自己的自定义数据
  50. */
  51. typedef struct {
  52. float* feat;//内存由sdk分配,由sdk释放
  53. int len_feat;
  54. } bef_ai_video_cls_feat;
  55. BEF_SDK_API
  56. bef_effect_result_t bef_effect_ai_video_cls_create(bef_ai_video_cls_handle *handle);
  57. BEF_SDK_API
  58. bef_effect_result_t bef_effect_ai_video_cls_check_license(bef_ai_video_cls_handle handle, const char *licensePath);
  59. BEF_SDK_API
  60. bef_effect_result_t bef_effect_ai_video_cls_check_online_license(bef_ai_video_cls_handle handle, const char *licensePath);
  61. BEF_SDK_API
  62. bef_effect_result_t bef_effect_ai_video_cls_detect(bef_ai_video_cls_handle handle,
  63. bef_ai_video_cls_args *args,
  64. bef_ai_video_cls_ret *result);
  65. BEF_SDK_API
  66. bef_effect_result_t bef_effect_ai_video_cls_set_model(bef_ai_video_cls_handle handle, bef_ai_video_cls_model_type type, const char *modelPath);
  67. BEF_SDK_API
  68. bef_effect_result_t bef_effect_ai_video_cls_set_paramF(bef_ai_video_cls_handle handle, bef_ai_video_cls_param_type type, float value);
  69. BEF_SDK_API
  70. bef_effect_result_t bef_effect_ai_video_cls_set_paramS(bef_ai_video_cls_handle handle, bef_ai_video_cls_param_type type, char *value);
  71. BEF_SDK_API
  72. bef_effect_result_t bef_effect_ai_video_cls_release(bef_ai_video_cls_handle handle);
  73. #endif //ANDROIDDEMO_BEF_EFFECT_AI_VIDEO_CLS_H