/******************************************************************************************* * Version: VPT_x64_V2.0.0_20170705 * CopyRight: �п�Ժ�Զ����о���ģʽʶ��ʵ����ͼ����Ƶ�� * UpdateDate: 20170705 * Content: �˳�������� ********************************************************************************************/ #pragma once #include "opencv2/highgui/highgui.hpp" #include #include "utools.h" #include #include #include "../common.h" #include "../sort/Sort.h" //tracker using namespace std; struct TaskTracker { int TaskID; double ratioWidth; double ratioHeight; Sort tracker; unsigned int lastFrameIndex; vector< vector > lastDetectResult; vector lastDeleteObjectID; }; struct DataInfo { int task_id {-1}; sy_img img; unsigned long long frameIndex; }; struct VPTProcessResult { int task_id {-1}; VPT_Result vptResult; vector vecDeleteObj; vector vecUnUsedResult; unsigned long long ts; }; class VPTProcess { public: VPTProcess(/* args */); ~VPTProcess(); /************************************************************************* * PURPOSE: 初始化 * PARAM: [in] vparam 参数 * RETURN: handle * NOTES: *************************************************************************/ int init(int gpuid, int max_batch_size); /************************************************************************* * PURPOSE: 人车物检测跟踪 *************************************************************************/ vector process(vector vec_data); /************************************************************************* * PURPOSE: 资源释放 * PARAM: [in] handle - 处理句柄 * RETURN: NULL * NOTES: *************************************************************************/ void release(); void AddTaskTracker(const int taskID); void FinishTaskTracker(const int taskID); void PauseTaskTracker(const int taskID); void RestartTaskTraker(const int taskID); void DrawTracker(const int taskID, cv::Mat *img); private: void config_fpn_param(ctools_init_params& param, int batch_size); void config_yolo_param(ctools_init_params& param, int batch_size); void check_VPT_Result(VPT_Result & vResult); private: int m_max_batch_size {20}; void* det_handle {nullptr}; vector taskTrackers; map m_taskTrackerMap; };