Commit 29366d9865aa646b497812488c8e7cefef5005af
1 parent
2dad3188
修正 isseg 判断导致卡死的问题
Showing
1 changed file
with
24 additions
and
14 deletions
src/ai_platform/MultiSourceProcess.cpp
@@ -1571,11 +1571,11 @@ void CMultiSourceProcess::algorithm_roadseg_correlation_process(vector<string>& | @@ -1571,11 +1571,11 @@ void CMultiSourceProcess::algorithm_roadseg_correlation_process(vector<string>& | ||
1571 | vector<vector<vector<int>>> interest_traffic_region, interest_fence_region; | 1571 | vector<vector<vector<int>>> interest_traffic_region, interest_fence_region; |
1572 | vector<vector<int>> interest_labels, interest_fence_labels; | 1572 | vector<vector<int>> interest_labels, interest_fence_labels; |
1573 | 1573 | ||
1574 | - int _idx = 0; | ||
1575 | - for (auto _task_id_iter = vpt_interest_task_id.begin(); _task_id_iter != vpt_interest_task_id.end(); | ||
1576 | - ++_task_id_iter, ++_idx) // loop task_id; | 1574 | + for(int i = 0; i < vpt_interest_imgs.size(); i++) |
1577 | { | 1575 | { |
1578 | - auto task_id = *_task_id_iter; | 1576 | + DeviceMemory* mem = vpt_interest_imgs[i]; |
1577 | + | ||
1578 | + auto task_id = mem->getId(); | ||
1579 | auto algor_map = m_task_param_manager->get_task_other_param(task_id); | 1579 | auto algor_map = m_task_param_manager->get_task_other_param(task_id); |
1580 | 1580 | ||
1581 | if (algor_map->find(algorithm_type_t::PERSON_IN_VEHICLELANE) != algor_map->end() || | 1581 | if (algor_map->find(algorithm_type_t::PERSON_IN_VEHICLELANE) != algor_map->end() || |
@@ -1590,8 +1590,10 @@ void CMultiSourceProcess::algorithm_roadseg_correlation_process(vector<string>& | @@ -1590,8 +1590,10 @@ void CMultiSourceProcess::algorithm_roadseg_correlation_process(vector<string>& | ||
1590 | ) { | 1590 | ) { |
1591 | 1591 | ||
1592 | m_RoadSegTaskMtx.lock(); | 1592 | m_RoadSegTaskMtx.lock(); |
1593 | - if (!m_RoadSegTaskMap[task_id].isseg) continue; | ||
1594 | - else { | 1593 | + if (!m_RoadSegTaskMap[task_id].isseg) { |
1594 | + m_RoadSegTaskMtx.unlock(); | ||
1595 | + continue; | ||
1596 | + } else { | ||
1595 | interest_traffic_region.push_back(m_RoadSegTaskMap[task_id].traffic_region); | 1597 | interest_traffic_region.push_back(m_RoadSegTaskMap[task_id].traffic_region); |
1596 | interest_labels.push_back(m_RoadSegTaskMap[task_id].labels); | 1598 | interest_labels.push_back(m_RoadSegTaskMap[task_id].labels); |
1597 | interest_fence_region.push_back(m_RoadSegTaskMap[task_id].fence_region); | 1599 | interest_fence_region.push_back(m_RoadSegTaskMap[task_id].fence_region); |
@@ -1599,15 +1601,17 @@ void CMultiSourceProcess::algorithm_roadseg_correlation_process(vector<string>& | @@ -1599,15 +1601,17 @@ void CMultiSourceProcess::algorithm_roadseg_correlation_process(vector<string>& | ||
1599 | } | 1601 | } |
1600 | m_RoadSegTaskMtx.unlock(); | 1602 | m_RoadSegTaskMtx.unlock(); |
1601 | 1603 | ||
1602 | - DeviceMemory* mem = vpt_interest_imgs[_idx]; | 1604 | + |
1603 | sy_img img; | 1605 | sy_img img; |
1604 | - img.w_ = mem->getWidth(); img.h_ = mem->getHeight(); | ||
1605 | - img.c_ = mem->getChannel(); img.data_ = mem->getMem(); | 1606 | + img.w_ = mem->getWidth(); |
1607 | + img.h_ = mem->getHeight(); | ||
1608 | + img.c_ = mem->getChannel(); | ||
1609 | + img.data_ = mem->getMem(); | ||
1606 | sy_interest_imgs.push_back(img); | 1610 | sy_interest_imgs.push_back(img); |
1607 | 1611 | ||
1608 | interest_task_id.emplace_back(task_id); | 1612 | interest_task_id.emplace_back(task_id); |
1609 | - interest_imgs.emplace_back(vpt_interest_imgs[_idx]); | ||
1610 | - interest_vpt_result.emplace_back(vptResult[_idx]); | 1613 | + interest_imgs.emplace_back(vpt_interest_imgs[i]); |
1614 | + interest_vpt_result.emplace_back(vptResult[i]); | ||
1611 | } | 1615 | } |
1612 | } | 1616 | } |
1613 | 1617 | ||
@@ -1796,14 +1800,20 @@ void CMultiSourceProcess::village_snapshot(vector<string>& vpt_interest_task_id, | @@ -1796,14 +1800,20 @@ void CMultiSourceProcess::village_snapshot(vector<string>& vpt_interest_task_id, | ||
1796 | algorithm_types.push_back((int)roadseg_algor.at(idx)); | 1800 | algorithm_types.push_back((int)roadseg_algor.at(idx)); |
1797 | video_folder = basic_param->video_folder; result_folder = basic_param->result_folder; result_folder_little = basic_param->result_folder_little; | 1801 | video_folder = basic_param->video_folder; result_folder = basic_param->result_folder; result_folder_little = basic_param->result_folder_little; |
1798 | // 原图及抠图 | 1802 | // 原图及抠图 |
1799 | - vpc_img_info src_img; src_img.pic_desc = result->origin_img_desc; src_img.task_id = obj_key.video_id; | ||
1800 | - 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; | 1803 | + vpc_img_info src_img; |
1804 | + src_img.pic_desc = result->origin_img_desc; | ||
1805 | + src_img.task_id = obj_key.video_id; | ||
1806 | + vpc_img_info roi_img; | ||
1807 | + roi_img.pic_desc = result->roi_img_desc; | ||
1808 | + roi_img.task_id = obj_key.video_id; | ||
1809 | + roi_img.object_id = obj_key.obj_id; | ||
1801 | 1810 | ||
1802 | if (save_single_algor_pic) { | 1811 | if (save_single_algor_pic) { |
1803 | auto json_str = helpers::gen_json::gen_manned_json(obj_key.video_id, obj_key.obj_id, result->box, roadseg_algor.at(idx)); | 1812 | auto json_str = helpers::gen_json::gen_manned_json(obj_key.video_id, obj_key.obj_id, result->box, roadseg_algor.at(idx)); |
1804 | save_snapshot_process(obj_key, roadseg_algor.at(idx), src_img, roi_img, 0, json_str); | 1813 | save_snapshot_process(obj_key, roadseg_algor.at(idx), src_img, roi_img, 0, json_str); |
1805 | } else { | 1814 | } else { |
1806 | - VPCUtil::vpc_img_release(src_img); VPCUtil::vpc_img_release(roi_img); | 1815 | + VPCUtil::vpc_img_release(src_img); |
1816 | + VPCUtil::vpc_img_release(roi_img); | ||
1807 | } | 1817 | } |
1808 | 1818 | ||
1809 | } | 1819 | } |