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
9
10
11
12
|
#ifndef VPT_INFO_MIDD_TEMP_
#define VPT_INFO_MIDD_TEMP_
typedef struct vpt_info_midd_temp
{
int obj_id;
sy_rect obj_rect;
int obj_index;
float obj_score;
|
a89b93e8
Hu Chunming
更新注释
|
13
|
int dis; //20220308到最佳目标点的加权距离
|
eac85cd5
Hu Chunming
调通va
|
14
15
16
17
18
19
20
21
22
|
}vpt_info_midd_temp;
#endif
|
a89b93e8
Hu Chunming
更新注释
|
23
24
|
//1.车检测结果
#define MAXCARCOUNT 100 //支持最多100个车检测
|
eac85cd5
Hu Chunming
调通va
|
25
26
27
28
29
30
31
32
33
34
35
|
#ifndef VD_RESULT_
#define VD_RESULT_
typedef struct vd_result
{
sy_rect rect;
float score;
}vd_result;
#endif
|
a89b93e8
Hu Chunming
更新注释
|
36
|
//2.车颜色结果
|
eac85cd5
Hu Chunming
调通va
|
37
38
39
40
41
|
#ifndef VC_RESULT_
#define VC_RESULT_
typedef struct vc_result
{
float score;
|
a89b93e8
Hu Chunming
更新注释
|
42
|
int index;//车颜色索引0-12,对应"棕", "橙", "灰", "白", "粉", "紫", "红", "绿", "蓝", "银", "青", "黄", "黑"
|
eac85cd5
Hu Chunming
调通va
|
43
44
45
46
|
}vc_result;
#endif
|
a89b93e8
Hu Chunming
更新注释
|
47
|
//3.车型识别结果
|
eac85cd5
Hu Chunming
调通va
|
48
49
|
#ifndef VR_RESULT_
#define VR_RESULT_
|
a89b93e8
Hu Chunming
更新注释
|
50
|
typedef struct vr_result //结果
|
eac85cd5
Hu Chunming
调通va
|
51
|
{
|
a89b93e8
Hu Chunming
更新注释
|
52
53
54
55
56
57
|
char vehicle_brand[260]; //车辆品牌
char vehicle_subbrand[260]; //车辆子品牌
char vehicle_issue_year[260]; //车辆年款
char vehicle_type[260]; //车辆类型
char freight_ton[260]; //货车吨级
float name_score; //识别置信度
|
eac85cd5
Hu Chunming
调通va
|
58
59
60
61
62
63
64
|
int index;
}vr_result;
#endif
|
a89b93e8
Hu Chunming
更新注释
|
65
66
67
68
69
70
71
72
73
74
75
76
|
//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
|
77
|
|
a89b93e8
Hu Chunming
更新注释
|
78
|
//车牌号码
|
eac85cd5
Hu Chunming
调通va
|
79
80
81
82
83
84
85
86
87
88
|
#ifndef VPLATENUM_RESULT_
#define VPLATENUM_RESULT_
typedef struct vplate_num
{
char character[4];
float maxprob;
int index;
}vplate_num;
#endif
|
a89b93e8
Hu Chunming
更新注释
|
89
90
91
92
93
|
//车牌遮挡识别
//#define COVER 0 //全部遮挡
//#define NO_COVER 1 //无车牌
//#define NORMAL 2 //正常车牌
//#define PARTIAL 3 //部分遮挡
|
eac85cd5
Hu Chunming
调通va
|
94
95
96
97
98
|
#ifndef SVP_RESULT_
#define SVP_RESULT_
typedef struct stain_vplate_result
{
|
a89b93e8
Hu Chunming
更新注释
|
99
100
|
float score; //识别置信度
int type; //COVER 或者 NO_COVER 或者 NORMAL 或者 PARTIAL
|
eac85cd5
Hu Chunming
调通va
|
101
102
103
104
105
106
107
|
}stain_vplate_result;
#endif
#ifndef VPLATE_RESULTS_
#define VPLATE_RESULTS_
typedef struct vplate_results
{
|
a89b93e8
Hu Chunming
更新注释
|
108
109
110
111
112
|
sy_rect rect;//车牌检测坐标
float detect_score;//车牌检测置信度
vplate_num recg[PLATENUM];//识别号码结果
float num_score;//识别置信度
int type; //车牌类型:0-单排蓝色 1-单排黄色 2-单排白色 3-单排黑色 4-双排黄色 5-双排白色 6-新能源黄绿色 7-新能源白绿色
|
eac85cd5
Hu Chunming
调通va
|
113
|
|
e4943833
Hu Chunming
添加车牌遮挡识别结果
|
114
|
stain_vplate_result stain_vp_result; //车牌遮挡识别结果
|
a89b93e8
Hu Chunming
更新注释
|
115
|
int special_type; //常规车牌、临时车牌、低速车牌。0-common,1-temporary_license_plate,2-low_speed_license_plate.
|
eac85cd5
Hu Chunming
调通va
|
116
117
118
119
|
}vplate_results;
#endif
|
a89b93e8
Hu Chunming
更新注释
|
120
|
//5.车属性结果
|
eac85cd5
Hu Chunming
调通va
|
121
|
#define VPD_FACE_FEATURESIZE 512
|
a89b93e8
Hu Chunming
更新注释
|
122
|
//这里的结构体与vpd.h中的不一样了。
|
eac85cd5
Hu Chunming
调通va
|
123
124
125
126
127
|
#ifndef VPENDANTD_RESULT_
#define VPENDANTD_RESULT_
typedef struct v_pendant_d_info
{
sy_rect rect;
|
a89b93e8
Hu Chunming
更新注释
|
128
129
|
int index; //类型 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; //置信度
|
eac85cd5
Hu Chunming
调通va
|
130
|
|
a89b93e8
Hu Chunming
更新注释
|
131
132
|
int driver_copilot_info; //车属性的主驾副驾信息,0-不分主驾副驾,1-主驾,2-副驾,(只有司机 、人脸、安全带、遮阳板、打电话、抽烟 区分主驾副驾,其他属性默认是输出0)
//float feature[VPD_FACE_FEATURESIZE]; //车属性中的人脸特征。
|
eac85cd5
Hu Chunming
调通va
|
133
134
135
136
137
138
139
140
141
142
|
}v_pendant_d_info;
typedef struct v_pendant_d_result
{
v_pendant_d_info* vpd_res;
int count;
}v_pendant_d_result;
#endif
|
a89b93e8
Hu Chunming
更新注释
|
143
144
145
146
147
148
|
//6.车违规结果
#define ILLEGAL 1000 //违规
#define lEGAL 1001 //合法
#define UNCERTAINTY 1002 //不确定
#define NOBODY 1003 //无人
#define SOMEBODY 1004 //有人
|
eac85cd5
Hu Chunming
调通va
|
149
150
151
152
153
154
|
#ifndef VID_RESULT_
#define VID_RESULT_
typedef struct vid_details
{
|
a89b93e8
Hu Chunming
更新注释
|
155
156
|
int status; //是否违规 ILLEGAL:违规(抽烟 未系安全带 打电话) lEGAL:未违规(未抽烟 系安全带 未打电话) UNCERTAINTY:不确定
float confidence; //置信度
|
eac85cd5
Hu Chunming
调通va
|
157
158
159
160
|
}vid_details;
typedef struct vid_info
{
|
a89b93e8
Hu Chunming
更新注释
|
161
162
163
164
165
|
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
|
166
167
168
169
|
}vid_info;
typedef struct vid_result
{
|
a89b93e8
Hu Chunming
更新注释
|
170
171
|
vid_info driver; //主驾驶
vid_info copilot; //副驾驶
|
eac85cd5
Hu Chunming
调通va
|
172
173
174
175
|
}vid_result;
#endif
|
a89b93e8
Hu Chunming
更新注释
|
176
177
178
179
|
//7.以车搜车结果
//#define FEATURESIZE 256 //特征长度
//#define VA_FEATURESIZE 268 //特征长度
#define VA_FEATURESIZE 520 //特征长度
|
eac85cd5
Hu Chunming
调通va
|
180
181
182
183
184
185
186
187
|
#ifndef VF_RESULT_
#define VF_RESULT_
typedef struct vf_result
{
float feature[VA_FEATURESIZE];
}vf_result;
#endif
|
a89b93e8
Hu Chunming
更新注释
|
188
|
//8.特殊品类车型
|
eac85cd5
Hu Chunming
调通va
|
189
190
191
192
|
#ifndef VS_INFORMATION_
#define VS_INFORMATION_
typedef struct vs_information
{
|
a89b93e8
Hu Chunming
更新注释
|
193
194
|
float score;//车类型置信度
int index; //车类型索引0-10:"吊车", "罐装车", "货车", "渣土车", "轿运车","救援车", "垃圾车", "消防车", "清扫车", "随车吊","危化品车"
|
eac85cd5
Hu Chunming
调通va
|
195
196
197
198
199
200
201
202
|
}vs_information;
#endif
#ifndef VS_RESULT_
#define VS_RESULT_
typedef struct vs_result
{
|
a89b93e8
Hu Chunming
更新注释
|
203
204
|
vs_information vs_info[2];//车类型信息
int count;//车类型的数量,是1,内部没设阈值
|
eac85cd5
Hu Chunming
调通va
|
205
206
207
|
}vs_result;
#endif
|
a89b93e8
Hu Chunming
更新注释
|
208
209
210
211
|
//9.渣土车盖盖
#define COVER 1012 //盖盖
#define NOCOVER_NODIRT 1013 //无盖无土
#define NOCOVER_DIRT 1014 //无盖有土
|
eac85cd5
Hu Chunming
调通va
|
212
213
214
215
216
|
#ifndef MUCKTRUCKCOVER_RESULT_
#define MUCKTRUCKCOVER_RESULT_
typedef struct mucktruckcover_result
{
|
a89b93e8
Hu Chunming
更新注释
|
217
218
|
int status; //是否盖盖 COVER-盖盖 NOCOVER_NODIRT-无盖无土 NOCOVER_DIRT-无盖有土
float confidence; //置信度
|
eac85cd5
Hu Chunming
调通va
|
219
220
221
222
223
|
}mucktruckcover_result;
#endif
|
a89b93e8
Hu Chunming
更新注释
|
224
225
226
227
228
229
230
|
//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
|
231
232
233
234
235
236
|
#ifndef MTA_RESULT_
#define MTA_RESULT_
typedef struct mta_details
{
|
a89b93e8
Hu Chunming
更新注释
|
237
238
|
int status; //摩托车是否载人/摩托车驾驶人是否戴头盔/三轮车是否载人 UNCERTAINTY:不确定
float confidence; //置信度
|
eac85cd5
Hu Chunming
调通va
|
239
240
241
242
|
}mta_details;
typedef struct mta_result
{
|
a89b93e8
Hu Chunming
更新注释
|
243
244
245
246
|
mta_details motor_driver_helmeted; //摩托车驾驶人是否戴头盔
mta_details motor_manned; //摩托车是否载人
mta_details tricycle_manned; //三轮车是否载人
vd_result motor_driver_hs_rect; //摩托车驾驶人(未带头盔时输出)头肩坐标
|
eac85cd5
Hu Chunming
调通va
|
247
248
249
250
251
252
|
}mta_result;
#endif
|
a89b93e8
Hu Chunming
更新注释
|
253
|
//12.是否载人
|
eac85cd5
Hu Chunming
调通va
|
254
255
256
257
|
#ifndef MANNED_RESULT_
#define MANNED_RESULT_
typedef struct manned_result
{
|
a89b93e8
Hu Chunming
更新注释
|
258
259
|
//int status; //是否载人 0-不是货车或不是三轮车或三轮车未载人或货车未载人,1-货车载人,2-三轮车载入
//float confidence; //置信度
|
eac85cd5
Hu Chunming
调通va
|
260
|
|
a89b93e8
Hu Chunming
更新注释
|
261
262
|
vd_result hs_rect[10]; //头肩坐标
int hs_count; //头肩个数
|
eac85cd5
Hu Chunming
调通va
|
263
264
265
266
267
|
}manned_result;
#endif
|