Commit d1221b3100c2a01d1744306ffacbb86ccb2077cf
1 parent
b17e0e69
优化显存占用,暂不缓存报警时刻的抓拍图
Showing
10 changed files
with
26 additions
and
6 deletions
src/ai_engine_module/motocycle_hs_process.cpp
@@ -351,6 +351,7 @@ namespace ai_engine_module | @@ -351,6 +351,7 @@ namespace ai_engine_module | ||
351 | result.taskId = det_result.taskId; | 351 | result.taskId = det_result.taskId; |
352 | result.objId = det_result.objId; | 352 | result.objId = det_result.objId; |
353 | result.algor_type = algor_type; | 353 | result.algor_type = algor_type; |
354 | +#if 0 /*暂不保存报警时刻的抓拍图,有需要再启用*/ | ||
354 | // 原图 | 355 | // 原图 |
355 | vpc_img_info src_img_info = VPCUtil::vpc_devMem2vpcImg(src_img); | 356 | vpc_img_info src_img_info = VPCUtil::vpc_devMem2vpcImg(src_img); |
356 | result.origin_img_desc = src_img_info.pic_desc; | 357 | result.origin_img_desc = src_img_info.pic_desc; |
@@ -376,6 +377,7 @@ namespace ai_engine_module | @@ -376,6 +377,7 @@ namespace ai_engine_module | ||
376 | acldvppSetPicDescSize(vpcInputDesc_, nBufferSize); | 377 | acldvppSetPicDescSize(vpcInputDesc_, nBufferSize); |
377 | 378 | ||
378 | result.roi_img_desc = vpcInputDesc_; //需复制 | 379 | result.roi_img_desc = vpcInputDesc_; //需复制 |
380 | +#endif | ||
379 | } | 381 | } |
380 | id_to_result_.emplace(obj_key, std::move(result)); | 382 | id_to_result_.emplace(obj_key, std::move(result)); |
381 | } | 383 | } |
src/ai_engine_module/motocycle_phone_process.cpp
@@ -346,6 +346,7 @@ namespace ai_engine_module | @@ -346,6 +346,7 @@ namespace ai_engine_module | ||
346 | result.taskId = det_result.taskId; | 346 | result.taskId = det_result.taskId; |
347 | result.objId = det_result.objId; | 347 | result.objId = det_result.objId; |
348 | result.algor_type = algor_type; | 348 | result.algor_type = algor_type; |
349 | +#if 0 /*暂不保存报警时刻的抓拍图,有需要再启用*/ | ||
349 | // 原图 | 350 | // 原图 |
350 | vpc_img_info src_img_info = VPCUtil::vpc_devMem2vpcImg(src_img); | 351 | vpc_img_info src_img_info = VPCUtil::vpc_devMem2vpcImg(src_img); |
351 | result.origin_img_desc = src_img_info.pic_desc; | 352 | result.origin_img_desc = src_img_info.pic_desc; |
@@ -371,6 +372,7 @@ namespace ai_engine_module | @@ -371,6 +372,7 @@ namespace ai_engine_module | ||
371 | acldvppSetPicDescSize(vpcInputDesc_, nBufferSize); | 372 | acldvppSetPicDescSize(vpcInputDesc_, nBufferSize); |
372 | 373 | ||
373 | result.roi_img_desc = vpcInputDesc_; //需复制 | 374 | result.roi_img_desc = vpcInputDesc_; //需复制 |
375 | +#endif | ||
374 | } | 376 | } |
375 | id_to_result_.emplace(obj_key, std::move(result)); | 377 | id_to_result_.emplace(obj_key, std::move(result)); |
376 | } | 378 | } |
src/ai_engine_module/motocycle_refit_phone_process.cpp
@@ -366,6 +366,7 @@ namespace ai_engine_module | @@ -366,6 +366,7 @@ namespace ai_engine_module | ||
366 | result.taskId = det_result.taskId; | 366 | result.taskId = det_result.taskId; |
367 | result.objId = det_result.objId; | 367 | result.objId = det_result.objId; |
368 | result.algor_type = algor_type; | 368 | result.algor_type = algor_type; |
369 | +#if 0 /*暂不保存报警时刻的抓拍图,有需要再启用*/ | ||
369 | // 原图 | 370 | // 原图 |
370 | vpc_img_info src_img_info = VPCUtil::vpc_devMem2vpcImg(src_img); | 371 | vpc_img_info src_img_info = VPCUtil::vpc_devMem2vpcImg(src_img); |
371 | result.origin_img_desc = src_img_info.pic_desc; | 372 | result.origin_img_desc = src_img_info.pic_desc; |
@@ -391,6 +392,7 @@ namespace ai_engine_module | @@ -391,6 +392,7 @@ namespace ai_engine_module | ||
391 | acldvppSetPicDescSize(vpcInputDesc_, nBufferSize); | 392 | acldvppSetPicDescSize(vpcInputDesc_, nBufferSize); |
392 | 393 | ||
393 | result.roi_img_desc = vpcInputDesc_; //需复制 | 394 | result.roi_img_desc = vpcInputDesc_; //需复制 |
395 | +#endif | ||
394 | } | 396 | } |
395 | id_to_result_.emplace(obj_key, std::move(result)); | 397 | id_to_result_.emplace(obj_key, std::move(result)); |
396 | } | 398 | } |
src/ai_engine_module/motocycle_refit_process.cpp
@@ -342,6 +342,7 @@ namespace ai_engine_module | @@ -342,6 +342,7 @@ namespace ai_engine_module | ||
342 | result.taskId = det_result.taskId; | 342 | result.taskId = det_result.taskId; |
343 | result.objId = det_result.objId; | 343 | result.objId = det_result.objId; |
344 | result.algor_type = algor_type; | 344 | result.algor_type = algor_type; |
345 | +#if 0 /*暂不保存报警时刻的抓拍图,有需要再启用*/ | ||
345 | // 原图 | 346 | // 原图 |
346 | vpc_img_info src_img_info = VPCUtil::vpc_devMem2vpcImg(src_img); | 347 | vpc_img_info src_img_info = VPCUtil::vpc_devMem2vpcImg(src_img); |
347 | result.origin_img_desc = src_img_info.pic_desc; | 348 | result.origin_img_desc = src_img_info.pic_desc; |
@@ -367,6 +368,7 @@ namespace ai_engine_module | @@ -367,6 +368,7 @@ namespace ai_engine_module | ||
367 | acldvppSetPicDescSize(vpcInputDesc_, nBufferSize); | 368 | acldvppSetPicDescSize(vpcInputDesc_, nBufferSize); |
368 | 369 | ||
369 | result.roi_img_desc = vpcInputDesc_; //需复制 | 370 | result.roi_img_desc = vpcInputDesc_; //需复制 |
371 | +#endif | ||
370 | } | 372 | } |
371 | id_to_result_.emplace(obj_key, std::move(result)); | 373 | id_to_result_.emplace(obj_key, std::move(result)); |
372 | } | 374 | } |
src/ai_engine_module/road_seg_correlation_algor.cpp
@@ -901,6 +901,7 @@ namespace ai_engine_module | @@ -901,6 +901,7 @@ namespace ai_engine_module | ||
901 | result.taskId = det_result.taskId; | 901 | result.taskId = det_result.taskId; |
902 | result.objId = det_result.objId; | 902 | result.objId = det_result.objId; |
903 | result.algor_type = algor_type; | 903 | result.algor_type = algor_type; |
904 | +#if 0 /*暂不保存报警时刻的抓拍图,有需要再启用*/ | ||
904 | // 原图 | 905 | // 原图 |
905 | vpc_img_info src_img_info = VPCUtil::vpc_devMem2vpcImg(src_img); | 906 | vpc_img_info src_img_info = VPCUtil::vpc_devMem2vpcImg(src_img); |
906 | result.origin_img_desc = src_img_info.pic_desc; | 907 | result.origin_img_desc = src_img_info.pic_desc; |
@@ -926,6 +927,7 @@ namespace ai_engine_module | @@ -926,6 +927,7 @@ namespace ai_engine_module | ||
926 | acldvppSetPicDescSize(vpcInputDesc_, nBufferSize); | 927 | acldvppSetPicDescSize(vpcInputDesc_, nBufferSize); |
927 | 928 | ||
928 | result.roi_img_desc = vpcInputDesc_; //需复制 | 929 | result.roi_img_desc = vpcInputDesc_; //需复制 |
930 | +#endif | ||
929 | } | 931 | } |
930 | id_to_result_.emplace(obj_key, std::move(result)); | 932 | id_to_result_.emplace(obj_key, std::move(result)); |
931 | } | 933 | } |
src/ai_engine_module/traffic_light_process.cpp
@@ -611,6 +611,7 @@ namespace ai_engine_module | @@ -611,6 +611,7 @@ namespace ai_engine_module | ||
611 | result.taskId = det_result.taskId; | 611 | result.taskId = det_result.taskId; |
612 | result.objId = det_result.objId; | 612 | result.objId = det_result.objId; |
613 | result.algor_type = algor_type; | 613 | result.algor_type = algor_type; |
614 | +#if 0 /*暂不保存报警时刻的抓拍图,有需要再启用*/ | ||
614 | // 原图 | 615 | // 原图 |
615 | vpc_img_info src_img_info = VPCUtil::vpc_devMem2vpcImg(src_img); | 616 | vpc_img_info src_img_info = VPCUtil::vpc_devMem2vpcImg(src_img); |
616 | result.origin_img_desc = src_img_info.pic_desc; | 617 | result.origin_img_desc = src_img_info.pic_desc; |
@@ -636,6 +637,7 @@ namespace ai_engine_module | @@ -636,6 +637,7 @@ namespace ai_engine_module | ||
636 | acldvppSetPicDescSize(vpcInputDesc_, nBufferSize); | 637 | acldvppSetPicDescSize(vpcInputDesc_, nBufferSize); |
637 | 638 | ||
638 | result.roi_img_desc = vpcInputDesc_; //需复制 | 639 | result.roi_img_desc = vpcInputDesc_; //需复制 |
640 | +#endif | ||
639 | } | 641 | } |
640 | id_to_result_.emplace(obj_key, std::move(result)); | 642 | id_to_result_.emplace(obj_key, std::move(result)); |
641 | } | 643 | } |
src/ai_engine_module/tricycle_manned_process.cpp
@@ -255,11 +255,15 @@ namespace ai_engine_module | @@ -255,11 +255,15 @@ namespace ai_engine_module | ||
255 | result.box = det_result.box; | 255 | result.box = det_result.box; |
256 | result.taskId = det_result.taskId; | 256 | result.taskId = det_result.taskId; |
257 | result.objId = det_result.objId; | 257 | result.objId = det_result.objId; |
258 | +#if 0 /*暂不保存报警时刻的抓拍图,有需要再启用*/ | ||
258 | // 原图 | 259 | // 原图 |
259 | vpc_img_info src_img_info = VPCUtil::vpc_devMem2vpcImg(src_img); | 260 | vpc_img_info src_img_info = VPCUtil::vpc_devMem2vpcImg(src_img); |
260 | result.origin_img_desc = src_img_info.pic_desc; | 261 | result.origin_img_desc = src_img_info.pic_desc; |
261 | // 抠图 | 262 | // 抠图 |
262 | result.roi_img_desc = flattened_vpc_imgs[n].pic_desc; | 263 | result.roi_img_desc = flattened_vpc_imgs[n].pic_desc; |
264 | +#else | ||
265 | + VPCUtil::vpc_img_release(flattened_vpc_imgs[n]); | ||
266 | +#endif | ||
263 | } | 267 | } |
264 | id_to_result_.emplace(obj_key, std::move(result)); | 268 | id_to_result_.emplace(obj_key, std::move(result)); |
265 | goto _continue; | 269 | goto _continue; |
src/ai_engine_module/truck_manned_process.cpp
@@ -478,11 +478,15 @@ namespace ai_engine_module | @@ -478,11 +478,15 @@ namespace ai_engine_module | ||
478 | result.box = det_result.box; | 478 | result.box = det_result.box; |
479 | result.taskId = det_result.taskId; | 479 | result.taskId = det_result.taskId; |
480 | result.objId = det_result.objId; | 480 | result.objId = det_result.objId; |
481 | +#if 0 /*暂不保存报警时刻的抓拍图,有需要再启用*/ | ||
481 | // 原图 | 482 | // 原图 |
482 | vpc_img_info src_img_info = VPCUtil::vpc_devMem2vpcImg(src_img); | 483 | vpc_img_info src_img_info = VPCUtil::vpc_devMem2vpcImg(src_img); |
483 | result.origin_img_desc = src_img_info.pic_desc; | 484 | result.origin_img_desc = src_img_info.pic_desc; |
484 | // 抠图 | 485 | // 抠图 |
485 | result.roi_img_desc = flattened_vpc_imgs[n].pic_desc; | 486 | result.roi_img_desc = flattened_vpc_imgs[n].pic_desc; |
487 | +#else | ||
488 | + VPCUtil::vpc_img_release(flattened_vpc_imgs[n]); | ||
489 | +#endif | ||
486 | } | 490 | } |
487 | id_to_result_.emplace(obj_key, std::move(result)); | 491 | id_to_result_.emplace(obj_key, std::move(result)); |
488 | goto _continue; | 492 | goto _continue; |
src/ai_platform/MultiSourceProcess.cpp
@@ -1727,7 +1727,7 @@ void CMultiSourceProcess::village_snapshot(vector<string>& vpt_interest_task_id, | @@ -1727,7 +1727,7 @@ void CMultiSourceProcess::village_snapshot(vector<string>& vpt_interest_task_id, | ||
1727 | std::string video_folder = "", result_folder = "", result_folder_little = ""; //要求各事件使用同一个视频保存地址,否则会被最后一个事件的地址覆盖 | 1727 | std::string video_folder = "", result_folder = "", result_folder_little = ""; //要求各事件使用同一个视频保存地址,否则会被最后一个事件的地址覆盖 |
1728 | auto task_other_params = m_task_param_manager->get_task_other_param(task_id); | 1728 | auto task_other_params = m_task_param_manager->get_task_other_param(task_id); |
1729 | std::vector<int> algorithm_types; | 1729 | std::vector<int> algorithm_types; |
1730 | - bool save_single_algor_pic = false; // 是否保存单算法的报警图片 | 1730 | + bool save_single_algor_pic = false; // 是否保存单算法的报警图片(若设置为true需先去掉算法内部注释!!!) |
1731 | 1731 | ||
1732 | if (task_param_ptr->nonmotor_vehicle_algors.find(algorithm_type_t::TRICYCLE_MANNED) != task_param_ptr->nonmotor_vehicle_algors.end()) { | 1732 | if (task_param_ptr->nonmotor_vehicle_algors.find(algorithm_type_t::TRICYCLE_MANNED) != task_param_ptr->nonmotor_vehicle_algors.end()) { |
1733 | const auto &algor_other_params = task_other_params->find(algorithm_type_t::TRICYCLE_MANNED); | 1733 | const auto &algor_other_params = task_other_params->find(algorithm_type_t::TRICYCLE_MANNED); |
src/demo/demo.cpp
@@ -1155,11 +1155,11 @@ void test_gpu(int gpuID){ | @@ -1155,11 +1155,11 @@ void test_gpu(int gpuID){ | ||
1155 | switch (ch) | 1155 | switch (ch) |
1156 | { | 1156 | { |
1157 | case 'a': | 1157 | case 'a': |
1158 | - createTask(handle, algor_vec3, 4, false); | ||
1159 | - createTask(handle, algor_vec3, 5, false); | ||
1160 | - createTask(handle, algor_vec3, 6, false); | ||
1161 | - createTask(handle, algor_vec3, 7, false); | ||
1162 | - createTask(handle, algor_vec3, 8, false); | 1158 | + createTask(handle, algor_vec2, 4, false); |
1159 | + createTask(handle, algor_vec2, 5, false); | ||
1160 | + createTask(handle, algor_vec2, 6, false); | ||
1161 | + createTask(handle, algor_vec2, 7, false); | ||
1162 | + createTask(handle, algor_vec2, 8, false); | ||
1163 | break; | 1163 | break; |
1164 | case 'c': | 1164 | case 'c': |
1165 | close_all_task(handle); | 1165 | close_all_task(handle); |