| #ifndef __LIBDET_H__ |
| #define __LIBDET_H__ |
| #include "ax_devices.h" |
|
|
| #if defined(__cplusplus) |
| extern "C" |
| { |
| #endif |
| #define AX_DET_MAX_OBJ_NUM 64 |
| #define AX_DET_MAX_KPT_NUM 32 |
| typedef enum |
| { |
| ax_det_errcode_failed = -1, |
| ax_det_errcode_success = 0, |
| } ax_det_errcode_e; |
|
|
| typedef enum |
| { |
| ax_det_model_type_unknown = -1, |
| ax_det_model_type_yolov5, |
| ax_det_model_type_yolov8, |
| ax_det_model_type_yolov8_pose, |
| ax_det_model_type_yolo11, |
| ax_det_model_type_yolo11_pose, |
| } ax_det_model_type_e; |
|
|
| typedef struct |
| { |
| int width; |
| int height; |
| int channels; |
| int stride; |
| void *data; |
| } ax_det_img_t; |
|
|
| typedef struct |
| { |
| struct |
| { |
| int x, y, w, h; |
| } box; |
|
|
| struct |
| { |
| int x, y; |
| } kpts[AX_DET_MAX_KPT_NUM]; |
| int num_kpt; |
|
|
| float score; |
| int label; |
| } ax_det_obj_t; |
|
|
| typedef struct |
| { |
| ax_det_obj_t objects[AX_DET_MAX_OBJ_NUM]; |
| int num_objs; |
| } ax_det_result_t; |
|
|
| typedef struct |
| { |
| ax_devive_e dev_type; |
| char devid; |
|
|
| ax_det_model_type_e model_type; |
| char model_path[256]; |
|
|
| int num_classes; |
| int num_kpt; |
|
|
| float threshold; |
|
|
| |
| |
|
|
| float mean[3]; |
| float std[3]; |
| } ax_det_init_t; |
|
|
| typedef void *ax_det_handle_t; |
|
|
| int ax_det_init(ax_det_init_t *init, ax_det_handle_t *handle); |
| int ax_det_deinit(ax_det_handle_t handle); |
|
|
| int ax_det(ax_det_handle_t handle, ax_det_img_t *img, ax_det_result_t *result); |
|
|
| #if defined(__cplusplus) |
| } |
| #endif |
| #endif |
|
|