eac85cd5
Hu Chunming
调通va
|
1
2
3
4
|
#include "VehicleAnalysis.h"
VehicleAnalysis::VehicleAnalysis() {
|
eac85cd5
Hu Chunming
调通va
|
5
6
7
8
9
10
11
|
cout << va_get_version() << endl;
}
VehicleAnalysis::~VehicleAnalysis() {
release();
}
|
d708ccb3
Hu Chunming
增加日志
|
12
13
14
|
int VehicleAnalysis::init(VehicleAnalysisParam tParam) {
va_param param;
|
eac85cd5
Hu Chunming
调通va
|
15
16
17
18
19
20
21
|
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...
|
22
|
param.vehicle_illegal_config= SY_CONFIG_OPEN; //7.开启车违规
|
10667f7c
Hu Chunming
违法载人判断的优化
|
23
24
|
param.vehicle_color_config= SY_CONFIG_OPEN; //3.开启车颜色识别
param.vehicle_feature_config= SY_CONFIG_OPEN; //8.开启车辆特征提取
|
eac85cd5
Hu Chunming
调通va
|
25
|
|
d708ccb3
Hu Chunming
增加日志
|
26
|
param.gpuid=tParam.devId;
|
eac85cd5
Hu Chunming
调通va
|
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
|
//车检测参数
//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
增加日志
|
56
57
|
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
|
58
|
//车型参数
|
581a68a4
Hu Chunming
修正parse_road无返回值导...
|
59
60
|
param.dbPath= (char*)dbPath.data();
param.models_Path= (char*)models_path.data(); //所有模型的地址
|
eac85cd5
Hu Chunming
调通va
|
61
|
|
d708ccb3
Hu Chunming
增加日志
|
62
63
64
65
66
|
param.log_level = tParam.log_level;
param.log_path = tParam.log_path;
param.log_days = tParam.log_days;
param.log_mem = tParam.log_mem;
|
e3062370
Hu Chunming
优化日志
|
67
|
LOG_INFO("va_init start");
|
15756629
Hu Chunming
添加clothes算法
|
68
|
// 内部有 ctx
|
eac85cd5
Hu Chunming
调通va
|
69
70
71
72
73
|
int ret = va_init(&m_handle, param);
if (ret != 0) {
return -1;
}
|
e3062370
Hu Chunming
优化日志
|
74
|
LOG_INFO("va_init success");
|
eac85cd5
Hu Chunming
调通va
|
75
76
77
|
return 0;
}
|
b3012672
Hu Chunming
天啊及hp,road_seg子sd...
|
78
|
va_result * VehicleAnalysis::detect(vector<sy_img> vec_img) {
|
eac85cd5
Hu Chunming
调通va
|
79
|
|
20396d5c
Hu Chunming
添加车头车尾算法
|
80
|
int batch_size = vec_img.size();
|
eac85cd5
Hu Chunming
调通va
|
81
82
83
84
85
86
87
88
89
90
91
|
va_result *result=new va_result[batch_size];
for(int b=0;b<batch_size;b++)
{
result[b].count=0;
result[b].info=new vehicle_info[100];
for(int c=0; c<100; c++)
{
result[b].info[c].vehicle_pendant_det_res.vpd_res=new v_pendant_d_info[300];
}
}
|
b3012672
Hu Chunming
天啊及hp,road_seg子sd...
|
92
|
|
d708ccb3
Hu Chunming
增加日志
|
93
|
LOG_INFO("va_batch start");
|
eac85cd5
Hu Chunming
调通va
|
94
|
|
d708ccb3
Hu Chunming
增加日志
|
95
|
int ret = va_batch(m_handle, vec_img.data(), batch_size, result);
|
eac85cd5
Hu Chunming
调通va
|
96
|
|
d708ccb3
Hu Chunming
增加日志
|
97
|
LOG_INFO("va_batch end:{}", ret);
|
eac85cd5
Hu Chunming
调通va
|
98
|
|
eac85cd5
Hu Chunming
调通va
|
99
|
//delete result
|
b3012672
Hu Chunming
天啊及hp,road_seg子sd...
|
100
101
102
103
104
105
|
// for(int b=0;b<batch_size;b++)
// {
// for(int c=0; c<100; c++)
// {
// if(result[b].info[c].vehicle_pendant_det_res.vpd_res!=NULL)
// delete[] result[b].info[c].vehicle_pendant_det_res.vpd_res;
|
b3012672
Hu Chunming
天啊及hp,road_seg子sd...
|
106
107
108
109
|
// }
// if(result[b].info!=NULL){
// delete[] result[b].info;
// }
|
b3012672
Hu Chunming
天啊及hp,road_seg子sd...
|
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
// }
// if(result!=NULL){
// delete[] result;
// }
return result;
}
void VehicleAnalysis::release(){
if (m_handle) {
va_release(&m_handle);
}
}
void VehicleAnalysis::release_result(va_result* result, int batch_size){
|
eac85cd5
Hu Chunming
调通va
|
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
|
for(int b=0;b<batch_size;b++)
{
for(int c=0; c<100; c++)
{
if(result[b].info[c].vehicle_pendant_det_res.vpd_res!=NULL)
delete[] result[b].info[c].vehicle_pendant_det_res.vpd_res;
}
if(result[b].info!=NULL){
delete[] result[b].info;
}
}
if(result!=NULL){
delete[] result;
}
|
eac85cd5
Hu Chunming
调通va
|
143
|
}
|