Blame view

vpt/src/VPT/VPT.h 4.57 KB
144cd8c4   Hu Chunming   v6.0.0 替换模型
1
2
  /*******************************************************************************************

  * Version: VPT_V4.0.4

6ca63d90   Hu Chunming   提交v4.0.0
3
  * CopyRight: 中科院自动化研究所模式识别实验室图像视频组

144cd8c4   Hu Chunming   v6.0.0 替换模型
4
  * UpdateDate: 20190701

6ca63d90   Hu Chunming   提交v4.0.0
5
  * Content: 人车物监测跟踪

144cd8c4   Hu Chunming   v6.0.0 替换模型
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  ********************************************************************************************/

  #ifndef VPT_H_

  #define VPT_H_

  

  #ifdef _MSC_VER

  #ifdef VPT_EXPORTS

  #define VPT_API __declspec(dllexport)

  #else

  #define VPT_API __declspec(dllimport)

  #endif

  #else

  #define VPT_API __attribute__ ((visibility ("default")))

  #endif

  

  #include <stdio.h>

6ca63d90   Hu Chunming   提交v4.0.0
21
  #include "header.h"     //回调函数定义头文件

144cd8c4   Hu Chunming   v6.0.0 替换模型
22
23
24
25
26
27
28
29
30
  

  

  

  using namespace std;

  

  extern "C"

  {

  

  

6ca63d90   Hu Chunming   提交v4.0.0
31
  typedef struct VPT_ObjInfo	//检测物体结果结构体

144cd8c4   Hu Chunming   v6.0.0 替换模型
32
  {

6ca63d90   Hu Chunming   提交v4.0.0
33
34
35
36
37
38
39
40
41
  	int left;                //检测结果左坐标

  	int top;                 //检测结果上坐标

  	int right;               //检测结果右坐标

  	int bottom;              //检测结果下坐标

  	int center_x;            //检测结果中心位置X坐标

  	int center_y;            //检测结果中心位置Y坐标

  	int index;			         //行人/车辆类别,支持9

  	long id;			           //目标唯一ID,同一ID为同一目标

  	double confidence;	     //置信度

144cd8c4   Hu Chunming   v6.0.0 替换模型
42
43
44
  }VPT_ObjInfo;

  

  

6ca63d90   Hu Chunming   提交v4.0.0
45
  typedef struct VPT_Result           //检测结果结构体

144cd8c4   Hu Chunming   v6.0.0 替换模型
46
  {

6ca63d90   Hu Chunming   提交v4.0.0
47
48
  	int objCount;                     //检测到物体总数

  	VPT_ObjInfo *obj;                 //各个物体的结果信息

144cd8c4   Hu Chunming   v6.0.0 替换模型
49
50
51
  }VPT_Result;

  

  

6ca63d90   Hu Chunming   提交v4.0.0
52
53
  //规定9个检测种类的最小检测框

  //行人 自行车 摩托车 三轮车 小型车 大车 卡车 拖拉机 中巴

144cd8c4   Hu Chunming   v6.0.0 替换模型
54
55
56
  const int DETECTTYPE = 9;

  const int EDGES = 4;

  

6ca63d90   Hu Chunming   提交v4.0.0
57
  typedef struct MRECT                                    //检测框

144cd8c4   Hu Chunming   v6.0.0 替换模型
58
  {

6ca63d90   Hu Chunming   提交v4.0.0
59
60
61
62
  	int width;                                           //检测框宽度

  	int height;                                          //检测框高度

  	MRECT(){ width = 0; height = 0; }                    //构造函数

  	MRECT(int w, int h){ width = w; height = h; }        //构造函数

144cd8c4   Hu Chunming   v6.0.0 替换模型
63
64
65
66
67
  }MRECT;

  

  

  typedef struct SNAPSHOT_PARAMETER

  {

6ca63d90   Hu Chunming   提交v4.0.0
68
69
70
71
72
  	bool selectFromMinbox;                               //选取快照时,是否需要剔除掉小于Minbox的快照      

  	bool selectFromMindistance;                          //选取快照时,是否需要剔除掉距边框的距离小于minDistance的快照

  	MRECT minBoxsize[DETECTTYPE];                        //自定义的minBoxsize大小

  	int minDistance[EDGES];                              //自定义的minDistance大小

  	SNAPSHOT_PARAMETER(){ selectFromMinbox = true;  selectFromMindistance = true; }     //构造函数

144cd8c4   Hu Chunming   v6.0.0 替换模型
73
74
75
  }SNAPSHOT_PARAMETER;

  

  

6ca63d90   Hu Chunming   提交v4.0.0
76
  typedef struct VPT_PARAM                   //VPT设置参数结构体

144cd8c4   Hu Chunming   v6.0.0 替换模型
77
  {

6ca63d90   Hu Chunming   提交v4.0.0
78
79
80
81
82
83
84
  	int gpuid;                               //显卡ID

  	int maxResultCount;                      //最大检测前景个数

   // float thres;

    char* serialize_file;

  	SNAPSHOT_PARAMETER  *SnaoshotParameter;  //快照保存参数设置

  

  	VPT_PARAM(){ SnaoshotParameter = NULL; serialize_file = NULL;}

144cd8c4   Hu Chunming   v6.0.0 替换模型
85
86
87
88
89
  }VPT_PARAM;

  

  

  /*************************************************************************

  * FUNCTION: VPT_Init

6ca63d90   Hu Chunming   提交v4.0.0
90
  * PURPOSE: 初始化

144cd8c4   Hu Chunming   v6.0.0 替换模型
91
  * PARAM:

6ca63d90   Hu Chunming   提交v4.0.0
92
93
94
95
96
  [in] handle		                    - 句柄

  [in] vparam		                    - 参数

  [in] resDir                       - 快照保存路径

  [in] VideoObjSnapshotCallBack     - 结果返回回调函数

  * RETURN:	成功(0)或错误代码(< 0

144cd8c4   Hu Chunming   v6.0.0 替换模型
97
98
99
100
101
102
103
  * NOTES:

  *************************************************************************/

  VPT_API int VPT_Init(void **handle, VPT_PARAM vparam, char* resDir, VIDEO_OBJECT_SNAPSHOT_CALLBACK VideoObjSnapshotCallBack = NULL);

  

  

  /*************************************************************************

  * FUNCTION: VPT_ResetTracker

6ca63d90   Hu Chunming   提交v4.0.0
104
  * PURPOSE: 重置跟踪器

144cd8c4   Hu Chunming   v6.0.0 替换模型
105
  * PARAM:

6ca63d90   Hu Chunming   提交v4.0.0
106
  [in] handle		        - 操作句柄

144cd8c4   Hu Chunming   v6.0.0 替换模型
107
108
109
110
111
112
113
114
  * RETURN:	NULL

  * NOTES:

  *************************************************************************/

  VPT_API void VPT_ResetTracker(void * handle);

  

  

  /*************************************************************************

  * FUNCTION: VPT_Process

6ca63d90   Hu Chunming   提交v4.0.0
115
  * PURPOSE: 人车物检测跟踪

144cd8c4   Hu Chunming   v6.0.0 替换模型
116
  * PARAM:

6ca63d90   Hu Chunming   提交v4.0.0
117
118
119
120
121
122
123
124
125
  [in] handle		      - 处理句柄

  [in] rgb		        - 图片数据(3通道BGR数据 cv::Mat格式)

  [in] width		      - 图片宽度

  [in] height		      - 图片高度

  [in] channels	      - 图片通道数

  [in] frameCount	    - 视频当前的帧数

  [in] result		      - 目标检测结果

  [in] showTrack      - 是否显示轨迹

  * RETURN:	成功(0)或错误代码(< 0

144cd8c4   Hu Chunming   v6.0.0 替换模型
126
127
128
129
130
131
  * NOTES:

  *************************************************************************/

  VPT_API int VPT_Process(void * handle, unsigned char *bgr, int width, int height, int channels, int frameCount, VPT_Result *result, bool showTrack);

  

  

  /*************************************************************************

144cd8c4   Hu Chunming   v6.0.0 替换模型
132
  * FUNCTION: VPT_Release

6ca63d90   Hu Chunming   提交v4.0.0
133
  * PURPOSE: 资源释放

144cd8c4   Hu Chunming   v6.0.0 替换模型
134
  * PARAM:

6ca63d90   Hu Chunming   提交v4.0.0
135
  [in] handle		- 处理句柄

144cd8c4   Hu Chunming   v6.0.0 替换模型
136
137
138
139
140
141
142
  * RETURN:	NULL

  * NOTES:

  *************************************************************************/

  VPT_API void VPT_Release(void **handle);

  

  }

  #endif