20396d5c
Hu Chunming
添加车头车尾算法
|
1
2
3
4
5
6
7
8
9
10
11
|
#include "PicAnalysis.h"
#include "./utils/logger.hpp"
PicAnalysis::PicAnalysis(/* args */)
{
aclInit(nullptr);
}
PicAnalysis::~PicAnalysis()
{
|
ba6761f1
Hu Chunming
补充日志
|
12
|
LOG_INFO("~PicAnalysis()");
|
4a273a4a
Hu Chunming
添加hcp和hp
|
13
|
release();
|
20396d5c
Hu Chunming
添加车头车尾算法
|
14
15
16
|
aclFinalize();
}
|
e8beee4d
Hu Chunming
实现jni接口
|
17
18
|
int PicAnalysis::init(VillageParam param) {
|
ba6761f1
Hu Chunming
补充日志
|
19
20
21
|
string log_path = param.log_path + "/main.log";
set_default_logger(LogLevel(param.log_level), "PicAnalysis", log_path.c_str(), param.log_mem, param.log_days);
|
e3062370
Hu Chunming
优化日志
|
22
23
24
25
26
27
|
// 输入参数
LOG_INFO("dev_id: {}", param.dev_id);
LOG_INFO("sdk_path: {}", param.sdk_path);
LOG_INFO("log_level: {}", param.log_level);
LOG_INFO("log_days: {}", param.log_days);
|
ba6761f1
Hu Chunming
补充日志
|
28
|
LOG_INFO("log_path: {}", log_path);
|
e3062370
Hu Chunming
优化日志
|
29
|
|
e8beee4d
Hu Chunming
实现jni接口
|
30
|
int dev_id = param.dev_id;
|
20396d5c
Hu Chunming
添加车头车尾算法
|
31
|
|
4a273a4a
Hu Chunming
添加hcp和hp
|
32
33
|
int ret = SY_FAILED;
|
581a68a4
Hu Chunming
修正parse_road无返回值导...
|
34
|
ret = m_vehicle_analysis.init(dev_id, param.sdk_path, 16);
|
9b88b335
Hu Chunming
恢复代码
|
35
36
37
38
|
if(0 != ret){
return -1;
}
|
10667f7c
Hu Chunming
违法载人判断的优化
|
39
40
41
42
43
44
45
46
|
head_tail_param ht_param;
ht_param.devId = dev_id;
ht_param.max_batch = 16;
ht_param.sdk_root = param.sdk_path;
ret = m_head_tail_algorithm.init(ht_param);
if(0 != ret){
return -1;
}
|
9b88b335
Hu Chunming
恢复代码
|
47
|
|
581a68a4
Hu Chunming
修正parse_road无返回值导...
|
48
|
ret = m_clothes_algorithm.init(dev_id, param.sdk_path);
|
9b88b335
Hu Chunming
恢复代码
|
49
50
51
52
|
if(0 != ret){
return -1;
}
|
581a68a4
Hu Chunming
修正parse_road无返回值导...
|
53
|
ret = m_human_algorithm.init(dev_id, param.sdk_path);
|
9b88b335
Hu Chunming
恢复代码
|
54
55
56
57
|
if(0 != ret){
return -1;
}
|
581a68a4
Hu Chunming
修正parse_road无返回值导...
|
58
|
ret = m_human_car_algorithm.init(dev_id, param.sdk_path);
|
9b88b335
Hu Chunming
恢复代码
|
59
60
61
62
|
if(0 != ret){
return -1;
}
|
581a68a4
Hu Chunming
修正parse_road无返回值导...
|
63
|
ret = m_motor_rainshed_algorithm.init(dev_id, param.sdk_path);
|
9b88b335
Hu Chunming
恢复代码
|
64
65
66
67
|
if(0 != ret){
return -1;
}
|
581a68a4
Hu Chunming
修正parse_road无返回值导...
|
68
|
ret = m_motor_phone_algorithm.init(dev_id, param.sdk_path);
|
9b88b335
Hu Chunming
恢复代码
|
69
70
71
|
if(0 != ret){
return -1;
}
|
2ae58093
Hu Chunming
添加road_seg算法
|
72
|
|
581a68a4
Hu Chunming
修正parse_road无返回值导...
|
73
|
ret = m_road_seg_algorithm.init(dev_id, param.sdk_path);
|
4a273a4a
Hu Chunming
添加hcp和hp
|
74
75
76
77
|
if(0 != ret){
return -1;
}
|
b3012672
Hu Chunming
天啊及hp,road_seg子sd...
|
78
79
80
81
82
|
ret = m_crop_util.init(dev_id);
if(0 != ret){
return -1;
}
|
4a273a4a
Hu Chunming
添加hcp和hp
|
83
84
|
ACL_CALL(aclrtCreateContext(&m_ctx, 0), ACL_SUCCESS, SY_FAILED);
ACL_CALL(aclrtSetCurrentContext(m_ctx), ACL_SUCCESS, SY_FAILED);
|
20396d5c
Hu Chunming
添加车头车尾算法
|
85
86
87
88
89
90
91
|
ACL_CALL(aclrtCreateStream(&stream), ACL_SUCCESS, SY_FAILED);
m_dvpp = new DvppProcess();
m_dvpp->InitResource(stream);
return 0;
}
|
427201b2
Hu Chunming
完善结果返回
|
92
93
94
|
vector<AnalysisResult> PicAnalysis::analysis_file(vector<string> vec_file_path){
vector<AnalysisResult> result;
|
20396d5c
Hu Chunming
添加车头车尾算法
|
95
|
|
e8beee4d
Hu Chunming
实现jni接口
|
96
97
98
|
int ret = aclrtSetCurrentContext(m_ctx);
if (SY_SUCCESS != ret) {
printf("aclrtSetCurrentContext failed!");
|
427201b2
Hu Chunming
完善结果返回
|
99
|
return result;
|
e8beee4d
Hu Chunming
实现jni接口
|
100
|
}
|
15756629
Hu Chunming
添加clothes算法
|
101
|
|
20396d5c
Hu Chunming
添加车头车尾算法
|
102
103
104
105
|
const int batch_size = vec_file_path.size();
vector<sy_img> vec_img;
|
20396d5c
Hu Chunming
添加车头车尾算法
|
106
107
108
109
110
111
112
113
114
|
// ImageData 内部是智能指针,分析未处理完成前不得释放
ImageData dvpp_data[batch_size];
for (size_t i = 0; i < vec_file_path.size(); i++)
{
string file_path = vec_file_path[i];
ImageData src;
ret = Utils::ReadImageFile(src, file_path); //将二进制图像读入内存,并读取宽高信息
if(ret != SY_SUCCESS){
LOG_ERROR("ReadImageFile failed!");
|
427201b2
Hu Chunming
完善结果返回
|
115
|
return result;
|
20396d5c
Hu Chunming
添加车头车尾算法
|
116
117
118
119
120
|
}
ret = m_dvpp->CvtJpegToYuv420sp(dvpp_data[i], src); //解码
if(ret != SY_SUCCESS){
LOG_ERROR("CvtJpegToYuv420sp failed!");
|
427201b2
Hu Chunming
完善结果返回
|
121
|
return result;
|
20396d5c
Hu Chunming
添加车头车尾算法
|
122
123
124
125
126
127
128
129
130
|
}
sy_img img;
img.w_ = dvpp_data[i].width;
img.h_ = dvpp_data[i].height;
img.data_ = dvpp_data[i].data.get();
vec_img.push_back(img);
}
|
e8beee4d
Hu Chunming
实现jni接口
|
131
132
133
134
|
return analysis_img(vec_img);
}
|
427201b2
Hu Chunming
完善结果返回
|
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
|
vector<AnalysisResult> PicAnalysis::va_result2AnalysisResult(va_result* result, int batchsize) {
vector<AnalysisResult> vec_result;
for (int b = 0; b < batchsize; b++)
{
vector<VehicleInfo> vec_info;
for(int c=0;c<result[b].count;c++)
{
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 ;
|
427201b2
Hu Chunming
完善结果返回
|
159
|
|
10667f7c
Hu Chunming
违法载人判断的优化
|
160
|
|
427201b2
Hu Chunming
完善结果返回
|
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
|
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);
}
AnalysisResult one_result;
one_result.info = vec_info;
vec_result.push_back(one_result);
}
return vec_result;
}
vector<AnalysisResult> PicAnalysis::analysis_img(vector<sy_img> vec_img){
|
ba6761f1
Hu Chunming
补充日志
|
187
188
|
LOG_INFO("vec_img size:{}", vec_img.size());
|
427201b2
Hu Chunming
完善结果返回
|
189
|
vector<AnalysisResult> vec_result;
|
e8beee4d
Hu Chunming
实现jni接口
|
190
191
192
193
194
|
const int batch_size = vec_img.size();
int ret = aclrtSetCurrentContext(m_ctx);
if (SY_SUCCESS != ret) {
|
ba6761f1
Hu Chunming
补充日志
|
195
|
LOG_INFO("aclrtSetCurrentContext failed!");
|
427201b2
Hu Chunming
完善结果返回
|
196
|
return vec_result;
|
e8beee4d
Hu Chunming
实现jni接口
|
197
198
|
}
|
b3012672
Hu Chunming
天啊及hp,road_seg子sd...
|
199
|
va_result* result = m_vehicle_analysis.detect(vec_img);
|
427201b2
Hu Chunming
完善结果返回
|
200
|
if (result) {
|
427201b2
Hu Chunming
完善结果返回
|
201
202
203
204
|
vec_result = va_result2AnalysisResult(result, batch_size);
m_vehicle_analysis.release_result(result, vec_img.size());
}
|
ba6761f1
Hu Chunming
补充日志
|
205
206
|
LOG_INFO("vec_result size:{}", vec_result.size());
|
81e8a405
Hu Chunming
初步完成SDK
|
207
|
bool bConsistent = false;
|
06e0182f
Hu Chunming
修复src图片alignWidth...
|
208
209
|
std::vector<RoadInfo> vec_road = m_road_seg_algorithm.detect(vec_img);
if (vec_road.size() == batch_size && vec_result.size() == batch_size) {
|
81e8a405
Hu Chunming
初步完成SDK
|
210
|
bConsistent = true;
|
06e0182f
Hu Chunming
修复src图片alignWidth...
|
211
212
213
214
215
|
for (size_t i = 0; i < batch_size; i++) {
vec_result[i].vec_line = vec_road[i].vec_line;
vec_result[i].vec_road = vec_road[i].vec_road;
}
}
|
b3012672
Hu Chunming
天啊及hp,road_seg子sd...
|
216
|
|
427201b2
Hu Chunming
完善结果返回
|
217
|
for (int b = 0; b < vec_result.size(); b++)
|
b3012672
Hu Chunming
天啊及hp,road_seg子sd...
|
218
|
{
|
427201b2
Hu Chunming
完善结果返回
|
219
220
|
vector<VehicleInfo>& vec_info = vec_result[b].info;
|
81e8a405
Hu Chunming
初步完成SDK
|
221
222
223
224
225
|
RoadInfo road_info;
if (bConsistent) {
road_info = vec_road[b];
}
|
e8beee4d
Hu Chunming
实现jni接口
|
226
|
sy_img img = vec_img[b];
|
06e0182f
Hu Chunming
修复src图片alignWidth...
|
227
|
|
e8beee4d
Hu Chunming
实现jni接口
|
228
229
230
|
ImageData src;
src.width = img.w_;
src.height = img.h_;
|
06e0182f
Hu Chunming
修复src图片alignWidth...
|
231
232
233
|
src.alignWidth = ALIGN_UP16(img.w_);
src.alignHeight = ALIGN_UP2(img.h_);
src.size = YUV420SP_SIZE(src.alignWidth, src.alignHeight);
|
e8beee4d
Hu Chunming
实现jni接口
|
234
|
src.data_naked = img.data_;
|
427201b2
Hu Chunming
完善结果返回
|
235
|
for(int c=0;c<vec_info.size();c++)
|
b3012672
Hu Chunming
天啊及hp,road_seg子sd...
|
236
|
{
|
427201b2
Hu Chunming
完善结果返回
|
237
238
|
VehicleInfo& result_info = vec_info[c];
int shot_type=result_info.type;
|
b3012672
Hu Chunming
天啊及hp,road_seg子sd...
|
239
|
|
81e8a405
Hu Chunming
初步完成SDK
|
240
241
|
sy_rect vehicle_rect = result_info.vehicle_body_detect_res.rect;
|
5e69f8fc
Hu Chunming
补充字段;
|
242
243
|
if (road_info.vec_direct.size() > 0 && (1 == shot_type || 0 == shot_type)) {
result_info.reverse_driving = m_road_seg_algorithm.check_reverse_driving(road_info.vec_direct, vehicle_rect, src.width, src.height, shot_type);
|
81e8a405
Hu Chunming
初步完成SDK
|
244
245
|
}
|
b3012672
Hu Chunming
天啊及hp,road_seg子sd...
|
246
|
// 行人
|
10667f7c
Hu Chunming
违法载人判断的优化
|
247
|
if (0 == result_info.vpt_type)
|
b3012672
Hu Chunming
天啊及hp,road_seg子sd...
|
248
|
{
|
81e8a405
Hu Chunming
初步完成SDK
|
249
|
ImageData* human_data = m_crop_util.crop(src, vehicle_rect.left_, vehicle_rect.top_, vehicle_rect.left_ + vehicle_rect.width_, vehicle_rect.top_ + vehicle_rect.height_);
|
b3012672
Hu Chunming
天啊及hp,road_seg子sd...
|
250
251
252
253
254
255
256
257
258
|
sy_img img;
img.w_ = human_data->alignWidth;
img.h_ = human_data->alignHeight;
img.data_ = human_data->data_naked;
vector<sy_img> vec_human_img;
vec_human_img.push_back(img);
|
427201b2
Hu Chunming
完善结果返回
|
259
260
261
262
|
vector<BodyColorInfo> vec_body_color = m_human_algorithm.detect(vec_human_img);
result_info.human_upper_color = vec_body_color[0].upper_body_color;
result_info.human_lower_color = vec_body_color[0].lower_body_color;
|
b3012672
Hu Chunming
天啊及hp,road_seg子sd...
|
263
264
265
|
delete human_data;
human_data = nullptr;
|
10667f7c
Hu Chunming
违法载人判断的优化
|
266
267
268
269
270
|
} else if(result_info.vpt_type == 1 || result_info.vpt_type == 2 || result_info.vpt_type == 3){
if(result_info.manned_res.hs_count >= 3){
// 摩托车、三轮车载人
result_info.motor_manned = 1;
}
|
667e7a90
Hu Chunming
雨棚和打电话初步代码
|
271
|
} else {
|
10667f7c
Hu Chunming
违法载人判断的优化
|
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
|
ImageData* vehicle_data = m_crop_util.crop(src, vehicle_rect.left_, vehicle_rect.top_, vehicle_rect.left_ + vehicle_rect.width_, vehicle_rect.top_ + vehicle_rect.height_);
sy_img img;
img.w_ = vehicle_data->alignWidth;
img.h_ = vehicle_data->alignHeight;
img.data_ = vehicle_data->data_naked;
vector<sy_img> vec_vehicle_img;
vec_vehicle_img.push_back(img);
vector<HeadTailResult> head_tail_result;
ret = m_head_tail_algorithm.detect(vec_vehicle_img, head_tail_result);
if (0 != ret) {
LOG_ERROR("m_head_tail_algorithm failed!");
head_tail_result.clear();
} else {
auto one_ht_result = head_tail_result[0];
if(result_info.vpt_type == 6 || result_info.vpt_type == 7){
if (one_ht_result.cls == 0 && result_info.manned_res.hs_count > 0)
{ // 车尾,判断是否 货车尾部货厢载人
result_info.truck_manned = 1;
}
}
|
667e7a90
Hu Chunming
雨棚和打电话初步代码
|
296
|
}
|
10667f7c
Hu Chunming
违法载人判断的优化
|
297
298
|
|
b3012672
Hu Chunming
天啊及hp,road_seg子sd...
|
299
300
301
|
}
// 司乘
|
427201b2
Hu Chunming
完善结果返回
|
302
303
|
auto& pendant_res = result_info.vehicle_pendant_det_res;
int vpd_num = pendant_res.size();
|
b3012672
Hu Chunming
天啊及hp,road_seg子sd...
|
304
|
vector<sy_img> vec_human_img;
|
427201b2
Hu Chunming
完善结果返回
|
305
|
vector<ImageData*> vec_data;
|
b3012672
Hu Chunming
天啊及hp,road_seg子sd...
|
306
307
|
for(int p=0; p<vpd_num; p++)
{
|
427201b2
Hu Chunming
完善结果返回
|
308
309
310
|
int index = pendant_res[p].index;
if(index == 0){ //driver
sy_rect human_rect = pendant_res[p].rect;
|
b3012672
Hu Chunming
天啊及hp,road_seg子sd...
|
311
312
313
314
315
316
317
318
|
ImageData* human_data = m_crop_util.crop(src, human_rect.left_, human_rect.top_, human_rect.left_ + human_rect.width_, human_rect.top_ + human_rect.height_);
sy_img img;
img.w_ = human_data->alignWidth;
img.h_ = human_data->alignHeight;
img.data_ = human_data->data_naked;
vec_human_img.push_back(img);
|
427201b2
Hu Chunming
完善结果返回
|
319
320
|
vec_data.push_back(human_data);
|
b3012672
Hu Chunming
天啊及hp,road_seg子sd...
|
321
322
323
|
}
}
|
427201b2
Hu Chunming
完善结果返回
|
324
|
vector<int> vec_color = m_clothes_algorithm.detect(vec_human_img);
|
b3012672
Hu Chunming
天啊及hp,road_seg子sd...
|
325
|
|
427201b2
Hu Chunming
完善结果返回
|
326
|
for(int p=0; p<vec_color.size(); p++)
|
b3012672
Hu Chunming
天啊及hp,road_seg子sd...
|
327
|
{
|
427201b2
Hu Chunming
完善结果返回
|
328
329
330
331
332
333
334
|
int index = pendant_res[p].index;
if(index == 0) { // 更新司乘衣着颜色
pendant_res[p].iColor = vec_color[p];
ImageData* human_data = vec_data[p];
delete human_data;
human_data = nullptr;
|
b3012672
Hu Chunming
天啊及hp,road_seg子sd...
|
335
336
337
338
339
340
|
}
}
// 摩托车
if(shot_type==2)//摩托车
{
|
81e8a405
Hu Chunming
初步完成SDK
|
341
|
ImageData* motor_data = m_crop_util.crop(src, vehicle_rect.left_, vehicle_rect.top_, vehicle_rect.left_ + vehicle_rect.width_, vehicle_rect.top_ + vehicle_rect.height_);
|
b3012672
Hu Chunming
天啊及hp,road_seg子sd...
|
342
343
344
345
346
347
348
349
350
|
sy_img img;
img.w_ = motor_data->alignWidth;
img.h_ = motor_data->alignHeight;
img.data_ = motor_data->data_naked;
vector<sy_img> vec_motor_img;
vec_motor_img.push_back(img);
|
6f9dffde
Hu Chunming
返回prob
|
351
352
353
354
|
vector<MotorRainshedResult> vec_rainshed_result = m_motor_rainshed_algorithm.detect(vec_motor_img);
if (vec_rainshed_result.size() > 0) {
result_info.rainshed = vec_rainshed_result[0].rainshed;
result_info.rainshed_prob = vec_rainshed_result[0].prob;
|
667e7a90
Hu Chunming
雨棚和打电话初步代码
|
355
|
}
|
b3012672
Hu Chunming
天啊及hp,road_seg子sd...
|
356
|
|
6f9dffde
Hu Chunming
返回prob
|
357
358
359
360
|
vector<MotorPhoneResult> vec_phone_result = m_motor_phone_algorithm.detect(vec_motor_img);
if (vec_phone_result.size() > 0) {
result_info.phoning = vec_phone_result[0].phoning;
result_info.phoning_prob = vec_phone_result[0].prob;
|
81e8a405
Hu Chunming
初步完成SDK
|
361
362
|
}
|
f258e1c8
Hu Chunming
添加非机动车驾乘信息
|
363
|
int iColor = -1;
|
81e8a405
Hu Chunming
初步完成SDK
|
364
|
std::vector<HumanCarResult> vec_hcp_result = m_human_car_algorithm.detect(vec_motor_img);
|
5e69f8fc
Hu Chunming
补充字段;
|
365
|
if (vec_hcp_result.size() > 0 && road_info.vec_direct.size() > 0) {
|
a1a053f2
Hu Chunming
修正人骑车逻辑错误
|
366
|
int head_or_tail = vec_hcp_result[0].orient;
|
5e69f8fc
Hu Chunming
补充字段;
|
367
368
|
if (head_or_tail == 0 || head_or_tail == 1) {
result_info.reverse_driving = m_road_seg_algorithm.check_reverse_driving(road_info.vec_direct, vehicle_rect, src.width, src.height, head_or_tail);
|
81e8a405
Hu Chunming
初步完成SDK
|
369
|
}
|
f258e1c8
Hu Chunming
添加非机动车驾乘信息
|
370
371
372
373
374
375
376
377
378
379
380
381
382
383
|
iColor = vec_hcp_result[0].up_color;
}
int hs_num = result_info.manned_res.hs_count;
for (size_t i = 0; i < hs_num; i++)
{
pendant_info one_pendant;
one_pendant.confidence = result_info.manned_res.hs_rect[i].score;
one_pendant.rect = result_info.manned_res.hs_rect[i].rect;
one_pendant.index = 0;
one_pendant.iColor = iColor;
result_info.vehicle_pendant_det_res.push_back(one_pendant);
|
667e7a90
Hu Chunming
雨棚和打电话初步代码
|
384
385
|
}
|
b3012672
Hu Chunming
天啊及hp,road_seg子sd...
|
386
387
388
|
delete motor_data;
motor_data = nullptr;
}
|
81e8a405
Hu Chunming
初步完成SDK
|
389
390
|
//压黄实线
|
581a68a4
Hu Chunming
修正parse_road无返回值导...
|
391
|
result_info.cross_line = m_road_seg_algorithm.check_cross_line(road_info.vec_line, vehicle_rect, src.width, src.height);
|
81e8a405
Hu Chunming
初步完成SDK
|
392
|
// 压导流线
|
581a68a4
Hu Chunming
修正parse_road无返回值导...
|
393
|
result_info.cross_diversion_line = m_road_seg_algorithm.check_cross_region(road_info.vec_road, vehicle_rect, src.width, src.height, 3); //3是导流线区域
|
b3012672
Hu Chunming
天啊及hp,road_seg子sd...
|
394
395
|
}
}
|
20396d5c
Hu Chunming
添加车头车尾算法
|
396
|
|
06e0182f
Hu Chunming
修复src图片alignWidth...
|
397
|
LOG_INFO("analysis finished!");
|
4a273a4a
Hu Chunming
添加hcp和hp
|
398
|
|
427201b2
Hu Chunming
完善结果返回
|
399
|
return vec_result;
|
20396d5c
Hu Chunming
添加车头车尾算法
|
400
401
402
|
}
int PicAnalysis::release() {
|
4a273a4a
Hu Chunming
添加hcp和hp
|
403
404
|
ACL_CALL(aclrtSetCurrentContext(m_ctx), ACL_SUCCESS, SY_FAILED);
|
20396d5c
Hu Chunming
添加车头车尾算法
|
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
|
delete m_dvpp;
m_dvpp = nullptr;
if (stream != nullptr) {
int ret = aclrtDestroyStream(stream);
if (ret != ACL_SUCCESS) {
LOG_ERROR("destroy stream failed");
}
stream = nullptr;
}
aclrtDestroyContext(m_ctx);
return 0;
|
20396d5c
Hu Chunming
添加车头车尾算法
|
420
|
}
|