Blame view

src/ai_engine_module/VPTProcess.h 2.22 KB
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
1
2
3
4
5
6
  /*******************************************************************************************
  * Version: VPT_x64_V2.0.0_20170705
  * CopyRight: 中科院自动化研究所模式识别实验室图像视频组
  * UpdateDate: 20170705
  * Content: 人车物监测跟踪
  ********************************************************************************************/
d5345ee9   Hu Chunming   代码优化
7
8
9
  #ifndef __AI_ENGINE_MODULE_VPT__
  #define __AI_ENGINE_MODULE_VPT__
  
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
10
11
12
13
14
15
  #include <iostream>
  #include <vector>
  #include <string>
  #include "sort/Sort.h"
  #include "acl/acl.h"
  #include "acl/ops/acl_dvpp.h"
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
  
  #include "ai_engine_header.h"
  
  using namespace std;
  
  // #define THRESHOLD 0.45
  #define THRESHOLD 0.3
  
  struct TaskTracker
  {
  	string TaskID;
  	double ratioWidth;
  	double ratioHeight;
  	Sort tracker;
  };
  
  
  typedef struct VPTProcess_PARAM
  {
  	int gpuid;              //指定显卡id
  	float threshold;
  	int max_batch;
  
  	char* serialize_file;
  	char* auth_license;
      string model_dir;
  	VPTProcess_PARAM() : gpuid(0), threshold(0.6), max_batch(20) {};
  }VPTProcess_PARAM;
  
  class VPTProcess {
  
  public:
      VPTProcess();
      ~VPTProcess();
      /*************************************************************************
      * FUNCTION: VPT_Init
      * PURPOSE: 初始化
      * PARAM:
      [in] vparam		参数
      * RETURN:	handle
      * NOTES:
      *************************************************************************/
      int init(VPTProcess_PARAM vparam);
  
      int process(vector<DeviceMemory*> vec_vptMem, vector<onelevel_det_result>& result, vector<vector<int>>& deleteObjectID, vector<vector<onelevel_det_result>>& unUsedResult);
  
      /*************************************************************************
      * FUNCTION: VPT_Release
      * PURPOSE: 资源释放
      * PARAM:
      [in] handle		- 处理句柄
      * RETURN:	NULL
      * NOTES:
      *************************************************************************/
      void release();
  
  
      void addTaskTracker(const string taskID, double rWidth =1, double rHeight=1, int skip_frame=5); //221117byzsh
      bool finishTaskTracker(const string taskID);
  
  private:
      int m_devId; 
      aclrtContext m_algorthim_ctx;
6fdcb6a5   Hu Chunming   初次提交,代码大体完成编写,完善中
79
80
81
82
83
      void* m_det_handle{nullptr};
  	float threshold{0.6};
  	int m_max_batchsize;
  	map<string, TaskTracker> taskTrackers;
  };
d5345ee9   Hu Chunming   代码优化
84
85
86
  
  
  #endif      // __AI_ENGINE_MODULE_VPT__