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 | 1571 | vector<vector<vector<int>>> interest_traffic_region, interest_fence_region; |
1572 | 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 | 1579 | auto algor_map = m_task_param_manager->get_task_other_param(task_id); |
1580 | 1580 | |
1581 | 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 | 1590 | ) { |
1591 | 1591 | |
1592 | 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 | 1597 | interest_traffic_region.push_back(m_RoadSegTaskMap[task_id].traffic_region); |
1596 | 1598 | interest_labels.push_back(m_RoadSegTaskMap[task_id].labels); |
1597 | 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 | 1601 | } |
1600 | 1602 | m_RoadSegTaskMtx.unlock(); |
1601 | 1603 | |
1602 | - DeviceMemory* mem = vpt_interest_imgs[_idx]; | |
1604 | + | |
1603 | 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 | 1610 | sy_interest_imgs.push_back(img); |
1607 | 1611 | |
1608 | 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 | 1800 | algorithm_types.push_back((int)roadseg_algor.at(idx)); |
1797 | 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 | 1811 | if (save_single_algor_pic) { |
1803 | 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 | 1813 | save_snapshot_process(obj_key, roadseg_algor.at(idx), src_img, roi_img, 0, json_str); |
1805 | 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 | } | ... | ... |