Commit d1221b3100c2a01d1744306ffacbb86ccb2077cf

Authored by Zhao Shuaihua
1 parent b17e0e69

优化显存占用,暂不缓存报警时刻的抓拍图

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);