eac85cd5
Hu Chunming
调通va
|
1
2
|
#include "VehicleAnalysis.h"
|
5a4c4dc0
Hu Chunming
va库代码移到本项目中
|
3
4
|
#include "VehicleAnalysisDevice.h"
|
eac85cd5
Hu Chunming
调通va
|
5
6
|
VehicleAnalysis::VehicleAnalysis() {
|
eac85cd5
Hu Chunming
调通va
|
7
8
9
10
11
12
13
|
cout << va_get_version() << endl;
}
VehicleAnalysis::~VehicleAnalysis() {
release();
}
|
d708ccb3
Hu Chunming
增加日志
|
14
15
16
|
int VehicleAnalysis::init(VehicleAnalysisParam tParam) {
va_param param;
|
eac85cd5
Hu Chunming
调通va
|
17
18
19
20
21
22
23
|
param.vehicle_detect_config= SY_CONFIG_OPEN; //1.开启车检测 SY_CONFIG_CLOSE SY_CONFIG_OPEN
param.vehicle_recg_config= SY_CONFIG_OPEN; //4.开启车型识别
param.vehicle_recg_supplement_config= SY_CONFIG_OPEN; //4.开启车型识别补充识别
param.vehicle_plate_det_recg_config= SY_CONFIG_OPEN; //5.开启车牌检测识别
param.vehicle_pendant_det_config= SY_CONFIG_OPEN; //6.开启车属性检测识别
param.vehicle_motor_tricycle_analysis_config= SY_CONFIG_OPEN; //8.摩托车分析
param.vehicle_manned_config= SY_CONFIG_OPEN; //8.开启载人分析
|
bb2c60a8
Hu Chunming
修复 vehicle_illega...
|
24
|
param.vehicle_illegal_config= SY_CONFIG_OPEN; //7.开启车违规
|
10667f7c
Hu Chunming
违法载人判断的优化
|
25
26
|
param.vehicle_color_config= SY_CONFIG_OPEN; //3.开启车颜色识别
param.vehicle_feature_config= SY_CONFIG_OPEN; //8.开启车辆特征提取
|
eac85cd5
Hu Chunming
调通va
|
27
|
|
d708ccb3
Hu Chunming
增加日志
|
28
|
param.gpuid=tParam.devId;
|
eac85cd5
Hu Chunming
调通va
|
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
|
//车检测参数
//param.vehicle_det_param.process_min_l = 720;// 720;
//param.vehicle_det_param.process_max_l = 1280;//1280;
//param.vehicle_det_param.thresld=0.3;
//param.min_obj_size=200; //最小目标
param.vehicle_det_thresld=0.4;
//车牌检测参数
//param.vehicle_plate_det_param.process_min_l=320;
//param.vehicle_plate_det_param.process_max_l=320;
//param.vehicle_plate_det_param.thresld=0.4;
param.vehicle_plate_det_thresld=0.5;
//车属性检测参数
//param.vehicle_attribute_det_param.process_min_l=360;
//param.vehicle_attribute_det_param.process_max_l=640;
//param.vehicle_attribute_det_param.thresld=0.3;
param.vehicle_attribute_det_thresld=0.5;
//车logo检测参数
//param.vehicle_logo_det_param.process_min_l=512;
//param.vehicle_logo_det_param.process_max_l=512;
//param.vehicle_logo_det_param.thresld=0.1;
param.vehicle_logo_det_thresld=0.1;
//车颜色阈值
param.vc_thresld = 0.5;
|
d708ccb3
Hu Chunming
增加日志
|
58
59
|
string dbPath = tParam.sdk_root + "/models/vehicle_analysis/db/vr_h0725x210605_r191230.db";
string models_path = tParam.sdk_root + "/models/vehicle_analysis/";
|
eac85cd5
Hu Chunming
调通va
|
60
|
//车型参数
|
581a68a4
Hu Chunming
修正parse_road无返回值导...
|
61
62
|
param.dbPath= (char*)dbPath.data();
param.models_Path= (char*)models_path.data(); //所有模型的地址
|
eac85cd5
Hu Chunming
调通va
|
63
|
|
e3062370
Hu Chunming
优化日志
|
64
|
LOG_INFO("va_init start");
|
15756629
Hu Chunming
添加clothes算法
|
65
|
// 内部有 ctx
|
eac85cd5
Hu Chunming
调通va
|
66
67
68
69
70
|
int ret = va_init(&m_handle, param);
if (ret != 0) {
return -1;
}
|
e3062370
Hu Chunming
优化日志
|
71
|
LOG_INFO("va_init success");
|
eac85cd5
Hu Chunming
调通va
|
72
73
74
|
return 0;
}
|
52516fb9
Hu Chunming
添加授权代码;
|
75
|
vector<AnalysisResult> VehicleAnalysis::detect(vector<sy_img> vec_img) {
|
eac85cd5
Hu Chunming
调通va
|
76
|
|
20396d5c
Hu Chunming
添加车头车尾算法
|
77
|
int batch_size = vec_img.size();
|
eac85cd5
Hu Chunming
调通va
|
78
79
|
va_result *result=new va_result[batch_size];
|
b3012672
Hu Chunming
天啊及hp,road_seg子sd...
|
80
|
|
d708ccb3
Hu Chunming
增加日志
|
81
|
LOG_INFO("va_batch start");
|
eac85cd5
Hu Chunming
调通va
|
82
|
|
d708ccb3
Hu Chunming
增加日志
|
83
|
int ret = va_batch(m_handle, vec_img.data(), batch_size, result);
|
eac85cd5
Hu Chunming
调通va
|
84
|
|
52516fb9
Hu Chunming
添加授权代码;
|
85
86
87
88
89
|
auto vec_result = va_result2AnalysisResult(result, batch_size);
delete[] result;
result = nullptr;
|
d708ccb3
Hu Chunming
增加日志
|
90
|
LOG_INFO("va_batch end:{}", ret);
|
eac85cd5
Hu Chunming
调通va
|
91
|
|
52516fb9
Hu Chunming
添加授权代码;
|
92
|
return vec_result;
|
b3012672
Hu Chunming
天啊及hp,road_seg子sd...
|
93
94
95
96
97
98
99
100
|
}
void VehicleAnalysis::release(){
if (m_handle) {
va_release(&m_handle);
}
}
|
52516fb9
Hu Chunming
添加授权代码;
|
101
102
103
104
105
|
vector<AnalysisResult> VehicleAnalysis::va_result2AnalysisResult(va_result* result, int batchsize) {
vector<AnalysisResult> vec_result;
for (int b = 0; b < batchsize; b++)
|
eac85cd5
Hu Chunming
调通va
|
106
|
{
|
52516fb9
Hu Chunming
添加授权代码;
|
107
108
|
vector<VehicleInfo> vec_info;
for(int c=0;c<result[b].count;c++)
|
eac85cd5
Hu Chunming
调通va
|
109
|
{
|
52516fb9
Hu Chunming
添加授权代码;
|
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
|
vehicle_info result_info = result[b].info[c];
VehicleInfo info;
info.vehicle_detect_res = result_info.vehicle_detect_res ;
info.vehicle_win_detect_res = result_info.vehicle_win_detect_res ;
info.vehicle_body_detect_res = result_info.vehicle_body_detect_res ;
info.vehicle_color_res = result_info.vehicle_color_res ;
info.vehicle_recg_res = result_info.vehicle_recg_res ;
info.vehicle_plate_det_recg_res = result_info.vehicle_plate_det_recg_res;
info.vehicle_illegal_det_res = result_info.vehicle_illegal_det_res ;
info.vehicle_fea_res = result_info.vehicle_fea_res ;
info.mta_res = result_info.mta_res ;
info.manned_res = result_info.manned_res ;
info.type = result_info.type ;
info.vpt_type = result_info.vpt_type ;
auto pendant_result = result_info.vehicle_pendant_det_res;
for (size_t j = 0; j < pendant_result.count; j++)
{
auto pendant_det_info = pendant_result.vpd_res[j];
pendant_info one_pendant_info;
one_pendant_info.rect = pendant_det_info.rect;
one_pendant_info.index = pendant_det_info.index;
one_pendant_info.confidence = pendant_det_info.confidence;
one_pendant_info.driver_copilot_info = pendant_det_info.driver_copilot_info;
info.vehicle_pendant_det_res.push_back(one_pendant_info);
}
vec_info.push_back(info);
|
eac85cd5
Hu Chunming
调通va
|
141
|
}
|
eac85cd5
Hu Chunming
调通va
|
142
|
|
52516fb9
Hu Chunming
添加授权代码;
|
143
144
145
|
AnalysisResult one_result;
one_result.info = vec_info;
vec_result.push_back(one_result);
|
eac85cd5
Hu Chunming
调通va
|
146
|
}
|
52516fb9
Hu Chunming
添加授权代码;
|
147
148
149
|
return vec_result;
}
|