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;
}
|
b3012672
Hu Chunming
天啊及hp,road_seg子sd...
|
75
|
va_result * 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
80
81
82
83
84
85
86
87
88
|
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...
|
89
|
|
d708ccb3
Hu Chunming
增加日志
|
90
|
LOG_INFO("va_batch start");
|
eac85cd5
Hu Chunming
调通va
|
91
|
|
d708ccb3
Hu Chunming
增加日志
|
92
|
int ret = va_batch(m_handle, vec_img.data(), batch_size, result);
|
eac85cd5
Hu Chunming
调通va
|
93
|
|
d708ccb3
Hu Chunming
增加日志
|
94
|
LOG_INFO("va_batch end:{}", ret);
|
eac85cd5
Hu Chunming
调通va
|
95
|
|
eac85cd5
Hu Chunming
调通va
|
96
|
//delete result
|
b3012672
Hu Chunming
天啊及hp,road_seg子sd...
|
97
98
99
100
101
102
|
// 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...
|
103
104
105
106
|
// }
// if(result[b].info!=NULL){
// delete[] result[b].info;
// }
|
b3012672
Hu Chunming
天啊及hp,road_seg子sd...
|
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
// }
// 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
|
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
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
|
140
|
}
|