Blame view

algorithm/vehicle_analysis/vehicle_result.h 8 KB
eac85cd5   Hu Chunming   调通va
1
  #include <stddef.h>

a89b93e8   Hu Chunming   更新注释
2
  //---------------- 车辆分析结果结构体定义 ------------------//

eac85cd5   Hu Chunming   调通va
3
  

a89b93e8   Hu Chunming   更新注释
4
  //中间结果信息

eac85cd5   Hu Chunming   调通va
5
6
7
8
  #ifndef VPT_INFO_MIDD_TEMP_

  #define VPT_INFO_MIDD_TEMP_

  typedef struct vpt_info_midd_temp

  {

3e43f0c7   Hu Chunming   优化初始化值
9
  	int obj_id {-1};					

eac85cd5   Hu Chunming   调通va
10
  	sy_rect obj_rect;					

3e43f0c7   Hu Chunming   优化初始化值
11
12
13
  	int obj_index {-1};

  	float obj_score {0.0};

  	int dis {-1};          //20220308到最佳目标点的加权距离

eac85cd5   Hu Chunming   调通va
14
15
16
17
18
  }vpt_info_midd_temp;

  #endif

  

  

  

a89b93e8   Hu Chunming   更新注释
19
20
  //1.车检测结果

  #define MAXCARCOUNT 100	            //支持最多100个车检测

eac85cd5   Hu Chunming   调通va
21
22
23
24
25
26
  

  #ifndef VD_RESULT_

  #define VD_RESULT_

  typedef struct vd_result

  {

  	sy_rect rect;

3e43f0c7   Hu Chunming   优化初始化值
27
  	float score{0.0};

eac85cd5   Hu Chunming   调通va
28
29
30
31
  }vd_result;

  #endif

  

  

a89b93e8   Hu Chunming   更新注释
32
  //2.车颜色结果

eac85cd5   Hu Chunming   调通va
33
34
35
36
  #ifndef VC_RESULT_

  #define VC_RESULT_

  typedef struct vc_result

  {

3e43f0c7   Hu Chunming   优化初始化值
37
38
  	float score{0.0};

  	int index{-1};//车颜色索引0-12,对应"棕", "橙", "灰", "白", "粉", "紫", "红", "绿", "蓝",  "银", "青", "黄", "黑"

eac85cd5   Hu Chunming   调通va
39
40
41
42
  }vc_result;

  #endif

  

  

a89b93e8   Hu Chunming   更新注释
43
  //3.车型识别结果

eac85cd5   Hu Chunming   调通va
44
45
  #ifndef VR_RESULT_

  #define VR_RESULT_

a89b93e8   Hu Chunming   更新注释
46
  typedef struct vr_result                //结果

eac85cd5   Hu Chunming   调通va
47
  {

3e43f0c7   Hu Chunming   优化初始化值
48
49
50
51
52
53
54
  	char vehicle_brand[260] {};                //车辆品牌

  	char vehicle_subbrand[260] {};             //车辆子品牌

  	char vehicle_issue_year[260] {};           //车辆年款

  	char vehicle_type[260] {};                 //车辆类型

  	char freight_ton[260] {};                  //货车吨级

  	float name_score{0.0};                       //识别置信度

  	int index{-1};

eac85cd5   Hu Chunming   调通va
55
56
57
58
59
60
  }vr_result;

  #endif

  

  

  

  

a89b93e8   Hu Chunming   更新注释
61
62
63
64
65
66
67
68
69
70
71
72
  //4.车牌检测识别结果

  #define PLATENUM 8	                    //车牌号码位数

  #define MAXPLATECOUNT 20	            //支持最多20个车牌检测

  //车牌类型

  #define SINGLETYPE_BLUE 0		        //单排蓝色

  #define SINGLETYPE_YELLOW 1		        //单排黄色

  #define SINGLETYPE_WHITE 2		        //单排白色

  #define SINGLETYPE_BLACK 3		        //单排黑色

  #define DOUBLETYPE_YELLOW 4		        //双排黄色

  #define DOUBLETYPE_WHITE 5		        //双排白色

  #define NEWENERGYTYPE_YELLOWGREEN 6		//新能源黄绿色

  #define NEWENERGYTYPE_WHITEGRA 7		//新能源白绿色

eac85cd5   Hu Chunming   调通va
73
  

a89b93e8   Hu Chunming   更新注释
74
  //车牌号码

eac85cd5   Hu Chunming   调通va
75
76
77
78
  #ifndef VPLATENUM_RESULT_

  #define VPLATENUM_RESULT_

  typedef struct vplate_num

  {

3e43f0c7   Hu Chunming   优化初始化值
79
80
81
  	char character[4] {};	

  	float maxprob{0.0};		

  	int index{-1};

eac85cd5   Hu Chunming   调通va
82
83
84
  }vplate_num;

  #endif

  

a89b93e8   Hu Chunming   更新注释
85
86
87
88
89
  //车牌遮挡识别

  //#define COVER 0					    //全部遮挡

  //#define NO_COVER 1					//无车牌

  //#define NORMAL 2					//正常车牌

  //#define PARTIAL 3					//部分遮挡

eac85cd5   Hu Chunming   调通va
90
91
92
93
94
  

  #ifndef SVP_RESULT_

  #define SVP_RESULT_

  	typedef struct stain_vplate_result	

  	{

3e43f0c7   Hu Chunming   优化初始化值
95
96
  		float score{0.0};						//识别置信度

  		int type{0};							//车牌状态:0-无车牌,1-车牌,2-遮挡车牌

eac85cd5   Hu Chunming   调通va
97
98
99
100
101
102
103
  	}stain_vplate_result;

  #endif

  

  #ifndef VPLATE_RESULTS_

  #define VPLATE_RESULTS_

  typedef struct vplate_results

  {

a89b93e8   Hu Chunming   更新注释
104
  	sy_rect rect;//车牌检测坐标

3e43f0c7   Hu Chunming   优化初始化值
105
  	float detect_score{0.0};//车牌检测置信度

a89b93e8   Hu Chunming   更新注释
106
  	vplate_num recg[PLATENUM];//识别号码结果

3e43f0c7   Hu Chunming   优化初始化值
107
108
  	float num_score{0.0};//识别置信度

  	int type{-1};	//车牌类型:0-单排蓝色 1-单排黄色 2-单排白色 3-单排黑色 4-双排黄色 5-双排白色 6-新能源黄绿色 7-新能源白绿色

eac85cd5   Hu Chunming   调通va
109
  		

3e43f0c7   Hu Chunming   优化初始化值
110
  	int special_type{0};						//常规车牌、临时车牌、低速车牌。0-common,1-temporary_license_plate,2-low_speed_license_plate.

9737ffcd   Hu Chunming   提交头文件的修改内容
111
  	stain_vplate_result stain_vp_result; 		//车牌遮挡识别结果

eac85cd5   Hu Chunming   调通va
112
113
114
115
  }vplate_results;

  #endif

  

  

a89b93e8   Hu Chunming   更新注释
116
  //5.车属性结果

eac85cd5   Hu Chunming   调通va
117
  #define VPD_FACE_FEATURESIZE 512   

a89b93e8   Hu Chunming   更新注释
118
  //这里的结构体与vpd.h中的不一样了。

eac85cd5   Hu Chunming   调通va
119
120
121
122
123
  #ifndef VPENDANTD_RESULT_

  #define VPENDANTD_RESULT_

  typedef struct v_pendant_d_info

  {

  	sy_rect rect;

3e43f0c7   Hu Chunming   优化初始化值
124
125
  	int index{-1};		                     //类型 0-driver 1-face 2-belt 3-sunshield 4-tag 5-decoration 6-napkinbox 7-zhuanjt 8-callPhone 9-sunRoof 10-holder 11-smoke

  	float confidence{0.0};	                 //置信度

eac85cd5   Hu Chunming   调通va
126
  	

3e43f0c7   Hu Chunming   优化初始化值
127
  	int driver_copilot_info{0};              //车属性的主驾副驾信息,0-不分主驾副驾,1-主驾,2-副驾,(只有司机 、人脸、安全带、遮阳板、打电话、抽烟 区分主驾副驾,其他属性默认是输出0

a89b93e8   Hu Chunming   更新注释
128
  	//float feature[VPD_FACE_FEATURESIZE];  //车属性中的人脸特征。

eac85cd5   Hu Chunming   调通va
129
130
131
132
  }v_pendant_d_info;

  

  typedef struct v_pendant_d_result

  {

3e43f0c7   Hu Chunming   优化初始化值
133
134
  	v_pendant_d_info vpd_res[300];

  	int count{0};

eac85cd5   Hu Chunming   调通va
135
136
137
138
  }v_pendant_d_result;

  #endif

  

  

a89b93e8   Hu Chunming   更新注释
139
140
141
142
143
144
  //6.车违规结果

  #define ILLEGAL 1000			//违规

  #define lEGAL 1001				//合法

  #define UNCERTAINTY 1002		//不确定

  #define NOBODY 1003				//无人

  #define SOMEBODY 1004			//有人

eac85cd5   Hu Chunming   调通va
145
146
147
148
149
150
  

  #ifndef VID_RESULT_

  #define VID_RESULT_

  

  typedef struct vid_details

  {

3e43f0c7   Hu Chunming   优化初始化值
151
152
  	int status {UNCERTAINTY};					         //是否违规 ILLEGAL:违规(抽烟 未系安全带 打电话) lEGAL:未违规(未抽烟 系安全带 未打电话) UNCERTAINTY:不确定 

  	float confidence{0.0};			         //置信度

eac85cd5   Hu Chunming   调通va
153
154
155
156
  }vid_details;

  

  typedef struct vid_info

  {

a89b93e8   Hu Chunming   更新注释
157
158
159
160
161
  	vid_details belt;			         //是否系安全带	ILLEGAL:未系安全带 LEGAL:系安全带

  	vid_details smoke;			         //是否抽烟		ILLEGAL:抽烟	LEGAL:未抽烟

  	vid_details phone;					//是否使用电话	ILLEGAL:使用电话	LEGAL:未使用电话

  	vid_details call;					//是否打电话	ILLEGAL:打电话	LEGAL:未打电话

  	vid_details person;			         //是否有人		NOBODY:无人	SOMEBODY:有人

eac85cd5   Hu Chunming   调通va
162
163
164
165
  }vid_info;

  

  typedef struct  vid_result

  {

a89b93e8   Hu Chunming   更新注释
166
167
  	vid_info driver;			         //主驾驶

  	vid_info copilot;			         //副驾驶

eac85cd5   Hu Chunming   调通va
168
169
170
171
  }vid_result;

  #endif

  

  

a89b93e8   Hu Chunming   更新注释
172
173
174
175
  //7.以车搜车结果

  //#define FEATURESIZE 256		             //特征长度

  //#define VA_FEATURESIZE 268		             //特征长度

  #define VA_FEATURESIZE 520		             //特征长度

eac85cd5   Hu Chunming   调通va
176
177
178
179
  #ifndef VF_RESULT_

  #define VF_RESULT_

  typedef struct  vf_result

  {

3e43f0c7   Hu Chunming   优化初始化值
180
  	float feature[VA_FEATURESIZE] {};

eac85cd5   Hu Chunming   调通va
181
182
183
  }vf_result;

  #endif

  

a89b93e8   Hu Chunming   更新注释
184
  //8.特殊品类车型

eac85cd5   Hu Chunming   调通va
185
186
187
188
  #ifndef VS_INFORMATION_

  #define VS_INFORMATION_

  typedef struct vs_information

  {

3e43f0c7   Hu Chunming   优化初始化值
189
190
  	float score {0.0};//车类型置信度

  	int index {-1};  //车类型索引0-10:"吊车", "罐装车",  "货车", "渣土车", "轿运车","救援车",  "垃圾车", "消防车", "清扫车", "随车吊","危化品车"

eac85cd5   Hu Chunming   调通va
191
192
193
194
195
196
197
198
  }vs_information;

  #endif

  

  

  #ifndef VS_RESULT_

  #define VS_RESULT_

  typedef struct vs_result

  {

a89b93e8   Hu Chunming   更新注释
199
  	vs_information vs_info[2];//车类型信息

3e43f0c7   Hu Chunming   优化初始化值
200
  	int count {-1};//车类型的数量,是1,内部没设阈值

eac85cd5   Hu Chunming   调通va
201
202
203
  }vs_result;

  #endif

  

a89b93e8   Hu Chunming   更新注释
204
205
206
207
  //9.渣土车盖盖

  #define COVER 1012				//盖盖

  #define NOCOVER_NODIRT 1013		//无盖无土

  #define NOCOVER_DIRT 1014		//无盖有土

eac85cd5   Hu Chunming   调通va
208
209
210
211
212
  

  #ifndef MUCKTRUCKCOVER_RESULT_

  #define MUCKTRUCKCOVER_RESULT_

  typedef struct mucktruckcover_result

  {

3e43f0c7   Hu Chunming   优化初始化值
213
214
  	int status {-1};					//是否盖盖 COVER-盖盖 NOCOVER_NODIRT-无盖无土 NOCOVER_DIRT-无盖有土 

  	float confidence {0.0};			//置信度

eac85cd5   Hu Chunming   调通va
215
216
217
218
219
  }mucktruckcover_result;

  

  #endif

  

  

a89b93e8   Hu Chunming   更新注释
220
221
222
223
224
225
226
  //11.摩托车是否载人/摩托车驾驶人是否戴头盔/三轮车是否载人

  #define MOTOR_MANNED 1005				//摩托车载人

  #define MOTOR_NOT_MANNED 1006			//摩托车未载人

  #define MOTOR_DRIVER_HELMETED 1007		//摩托车驾驶人戴头盔

  #define MOTOR_DRIVER_NOT_HELMETED 1008	//摩托车驾驶人未戴头盔

  #define TRICYCLE_MANNED 1009			//三轮车载人

  #define TRICYCLE_NOT_MANNED 1010		//三轮车未载人

eac85cd5   Hu Chunming   调通va
227
228
229
230
231
232
  

  #ifndef MTA_RESULT_

  #define MTA_RESULT_

  

  typedef struct mta_details

  {

3e43f0c7   Hu Chunming   优化初始化值
233
  	int status{-1};					         //摩托车是否载人/摩托车驾驶人是否戴头盔/三轮车是否载人 UNCERTAINTY:不确定 

9737ffcd   Hu Chunming   提交头文件的修改内容
234
  	float confidence{0.0};			         //置信度

eac85cd5   Hu Chunming   调通va
235
236
237
238
  }mta_details;

  

  typedef struct mta_result

  {

a89b93e8   Hu Chunming   更新注释
239
240
241
242
  	mta_details motor_driver_helmeted;			 //摩托车驾驶人是否戴头盔

  	mta_details motor_manned;			         //摩托车是否载人

  	mta_details tricycle_manned;			     //三轮车是否载人

  	vd_result motor_driver_hs_rect;              //摩托车驾驶人(未带头盔时输出)头肩坐标

eac85cd5   Hu Chunming   调通va
243
244
245
246
247
248
  }mta_result;

  

  #endif

  

  

  

a89b93e8   Hu Chunming   更新注释
249
  //12.是否载人

eac85cd5   Hu Chunming   调通va
250
251
252
253
  #ifndef MANNED_RESULT_

  #define MANNED_RESULT_

  typedef struct manned_result

  {

a89b93e8   Hu Chunming   更新注释
254
255
  	//int status;					         //是否载人 0-不是货车或不是三轮车或三轮车未载人或货车未载人,1-货车载人,2-三轮车载入

  	//float confidence;			         //置信度

eac85cd5   Hu Chunming   调通va
256
  	

a89b93e8   Hu Chunming   更新注释
257
  	vd_result hs_rect[10];              //头肩坐标

3e43f0c7   Hu Chunming   优化初始化值
258
  	int hs_count{0};						//头肩个数

eac85cd5   Hu Chunming   调通va
259
260
261
262
263
  }manned_result;

  #endif