diff --git a/src/ai_platform/MultiSourceProcess.cpp b/src/ai_platform/MultiSourceProcess.cpp index d97a68a..fdc9281 100755 --- a/src/ai_platform/MultiSourceProcess.cpp +++ b/src/ai_platform/MultiSourceProcess.cpp @@ -1571,11 +1571,11 @@ void CMultiSourceProcess::algorithm_roadseg_correlation_process(vector& vector>> interest_traffic_region, interest_fence_region; vector> interest_labels, interest_fence_labels; - int _idx = 0; - for (auto _task_id_iter = vpt_interest_task_id.begin(); _task_id_iter != vpt_interest_task_id.end(); - ++_task_id_iter, ++_idx) // loop task_id; + for(int i = 0; i < vpt_interest_imgs.size(); i++) { - auto task_id = *_task_id_iter; + DeviceMemory* mem = vpt_interest_imgs[i]; + + auto task_id = mem->getId(); auto algor_map = m_task_param_manager->get_task_other_param(task_id); if (algor_map->find(algorithm_type_t::PERSON_IN_VEHICLELANE) != algor_map->end() || @@ -1590,8 +1590,10 @@ void CMultiSourceProcess::algorithm_roadseg_correlation_process(vector& ) { m_RoadSegTaskMtx.lock(); - if (!m_RoadSegTaskMap[task_id].isseg) continue; - else { + if (!m_RoadSegTaskMap[task_id].isseg) { + m_RoadSegTaskMtx.unlock(); + continue; + } else { interest_traffic_region.push_back(m_RoadSegTaskMap[task_id].traffic_region); interest_labels.push_back(m_RoadSegTaskMap[task_id].labels); interest_fence_region.push_back(m_RoadSegTaskMap[task_id].fence_region); @@ -1599,15 +1601,17 @@ void CMultiSourceProcess::algorithm_roadseg_correlation_process(vector& } m_RoadSegTaskMtx.unlock(); - DeviceMemory* mem = vpt_interest_imgs[_idx]; + sy_img img; - img.w_ = mem->getWidth(); img.h_ = mem->getHeight(); - img.c_ = mem->getChannel(); img.data_ = mem->getMem(); + img.w_ = mem->getWidth(); + img.h_ = mem->getHeight(); + img.c_ = mem->getChannel(); + img.data_ = mem->getMem(); sy_interest_imgs.push_back(img); interest_task_id.emplace_back(task_id); - interest_imgs.emplace_back(vpt_interest_imgs[_idx]); - interest_vpt_result.emplace_back(vptResult[_idx]); + interest_imgs.emplace_back(vpt_interest_imgs[i]); + interest_vpt_result.emplace_back(vptResult[i]); } } @@ -1796,14 +1800,20 @@ void CMultiSourceProcess::village_snapshot(vector& vpt_interest_task_id, algorithm_types.push_back((int)roadseg_algor.at(idx)); video_folder = basic_param->video_folder; result_folder = basic_param->result_folder; result_folder_little = basic_param->result_folder_little; // 原图及抠图 - vpc_img_info src_img; src_img.pic_desc = result->origin_img_desc; src_img.task_id = obj_key.video_id; - vpc_img_info roi_img; roi_img.pic_desc = result->roi_img_desc; roi_img.task_id = obj_key.video_id; roi_img.object_id = obj_key.obj_id; + vpc_img_info src_img; + src_img.pic_desc = result->origin_img_desc; + src_img.task_id = obj_key.video_id; + vpc_img_info roi_img; + roi_img.pic_desc = result->roi_img_desc; + roi_img.task_id = obj_key.video_id; + roi_img.object_id = obj_key.obj_id; if (save_single_algor_pic) { auto json_str = helpers::gen_json::gen_manned_json(obj_key.video_id, obj_key.obj_id, result->box, roadseg_algor.at(idx)); save_snapshot_process(obj_key, roadseg_algor.at(idx), src_img, roi_img, 0, json_str); } else { - VPCUtil::vpc_img_release(src_img); VPCUtil::vpc_img_release(roi_img); + VPCUtil::vpc_img_release(src_img); + VPCUtil::vpc_img_release(roi_img); } }