#ifndef _FACE_DET_AI_ENGINE_ #define _FACE_DET_AI_ENGINE_ #include "face_detect.h" #include "./sort/Sort.h" #include "../ai_platform/task_param_manager.h" #include "../ai_platform/det_obj_header.h" #include "acl/acl.h" #include "acl/ops/acl_dvpp.h" using namespace std; typedef struct facedet_ai_engine_param { //int min_recg_frame_counts; fd_param sdk_param; } facedet_ai_engine_param; #ifndef _TASK_TRACKER_ #define _TASK_TRACKER_ struct task_tracker { std::string task_id; int fusion_interval;//跳帧数 //tracker *trk;; Sort tracker; }; #endif class face_det_ai_engine/*: public base_ai_engine*/ { public: face_det_ai_engine(); ~face_det_ai_engine(); int init_ai_engine(const facedet_ai_engine_param &ai_param/*, person_det_algorthim_cache * cache*/); int ai_engine_process_batch(std::vector &task_ids, sy_img *image_data_array, std::vector &result , std::vector> &deleteObjectID); void finish_task(std::string task_id); void add_tracker(std::string task_id, int fusion_interval); void clear(); private: //int cur_batchsize; //person_det_algorthim_cache * _cache; void* handle; int m_max_batchsize; int m_devId; aclrtContext m_algorthim_ctx; std::map task_trackers; //std::vector _cut_data_array; std::map> _fd_result; task_param_manager *task_param_manager_; }; #endif