Commit 571e8ac81b9989bce65d7cff69d5e2f35cb1a7c5
1 parent
dd314366
完成轨迹定时抓拍
Showing
3 changed files
with
27 additions
and
21 deletions
src/ai_platform/MultiSourceProcess.cpp
... | ... | @@ -449,7 +449,7 @@ int CMultiSourceProcess::algorthim_vpt(vector<DeviceMemory*> vec_gpuMem){ |
449 | 449 | #else |
450 | 450 | algorithm_vehicle_relult(vec_vptMem, vptResult, deleteObjectID); |
451 | 451 | |
452 | - // send_locus_finished_msg(vpt_interest_task_id, deleteObjectID); | |
452 | + send_locus_finished_msg(vpt_interest_task_id, deleteObjectID); | |
453 | 453 | #endif |
454 | 454 | |
455 | 455 | if(vptResult.size() > 0){ |
... | ... | @@ -509,13 +509,18 @@ int CMultiSourceProcess::algorithm_vehicle_relult(vector<DeviceMemory*> vec_devM |
509 | 509 | strcpy(new_obj_ss_info.video_image_path, fpath_origin.c_str()); |
510 | 510 | strcpy(new_obj_ss_info.snapshot_image_path, fpath_roi.c_str()); |
511 | 511 | new_obj_ss_info.nFinished = 0; |
512 | - string json_str = "1111";//helpers::gen_json::gen_multi_obj_json(algorithm_type_t::VEHICLE_SNAPSHOT, new_obj_ss_info); | |
512 | + string json_str = helpers::gen_json::gen_multi_obj_json(algorithm_type_t::VEHICLE_SNAPSHOT, new_obj_ss_info); | |
513 | 513 | |
514 | 514 | ImgSaveInfo save_info; |
515 | 515 | save_info.file_path = fpath_roi; |
516 | 516 | save_info.img_info = vec_obj_info_list[i]; |
517 | 517 | save_info.json_str = json_str; |
518 | 518 | m_save_snapshot_reprocessing->reprocessing_process_wo_locus_async(save_info); |
519 | + | |
520 | + OBJ_KEY obj_key{task_id, obj.object_id}; | |
521 | + // 保存有轨迹的object记录,轨迹结束时需要发消息 | |
522 | + std::lock_guard<std::mutex> l(m_total_mutex); | |
523 | + m_total_snapshot_info_multi_object.insert(obj_key); | |
519 | 524 | } |
520 | 525 | |
521 | 526 | vec_obj_info_list.clear(); |
... | ... | @@ -535,23 +540,24 @@ void CMultiSourceProcess::send_locus_finished_msg(vector<string>& vpt_interest_t |
535 | 540 | OBJ_KEY obj_key = {task_id, j}; |
536 | 541 | |
537 | 542 | auto task_param_ptr = m_task_param_manager->get_task_algor_param(task_id); |
538 | - auto task_other_param_ptr = m_task_param_manager->get_task_other_param(task_id); | |
539 | 543 | |
540 | 544 | // 该路任务开启了抓拍功能 开始抓拍保存;若未开启抓拍,清空显存资源 |
541 | - // if (task_param_ptr->vehicle_algors.find(algorithm_type_t::VEHICLE_SNAPSHOT) != task_param_ptr->vehicle_algors.end()) { | |
542 | - // std::lock_guard<std::mutex> l(m_total_mutex); | |
543 | - // if (m_total_snapshot_info_multi_object.find(obj_key) != m_total_snapshot_info_multi_object.end()) { | |
544 | - // video_object_snapshot new_obj_ss_info; | |
545 | - // new_obj_ss_info.object_id = j; | |
546 | - // new_obj_ss_info.nFinished = 1; | |
547 | - // strcpy(new_obj_ss_info.task_id, task_id.c_str()); | |
548 | - // string json_str = helpers::gen_json::gen_multi_obj_json(algorithm_type_t::VEHICLE_SNAPSHOT, new_obj_ss_info); | |
549 | - // // 通知结束的轨迹 | |
550 | - // m_save_snapshot_reprocessing->reprocessing_finish_locus_async(obj_key,json_str); | |
551 | - | |
552 | - // m_total_snapshot_info_multi_object.erase(obj_key); | |
553 | - // } | |
554 | - // } | |
545 | + if (task_param_ptr->vehicle_algors.find(algorithm_type_t::VEHICLE_SNAPSHOT) != task_param_ptr->vehicle_algors.end()) { | |
546 | + std::lock_guard<std::mutex> l(m_total_mutex); | |
547 | + if (m_total_snapshot_info_multi_object.find(obj_key) != m_total_snapshot_info_multi_object.end()) { | |
548 | + video_object_snapshot new_obj_ss_info; | |
549 | + new_obj_ss_info.object_id = j; | |
550 | + new_obj_ss_info.nFinished = 1; | |
551 | + strcpy(new_obj_ss_info.task_id, task_id.c_str()); | |
552 | + string json_str = helpers::gen_json::gen_multi_obj_json(algorithm_type_t::VEHICLE_SNAPSHOT, new_obj_ss_info); | |
553 | + // 通知结束的轨迹 | |
554 | + ImgSaveInfo save_info; | |
555 | + save_info.json_str = json_str; | |
556 | + m_save_snapshot_reprocessing->reprocessing_process_wo_locus_async(save_info); | |
557 | + | |
558 | + m_total_snapshot_info_multi_object.erase(obj_key); | |
559 | + } | |
560 | + } | |
555 | 561 | } |
556 | 562 | } |
557 | 563 | } |
558 | 564 | \ No newline at end of file | ... | ... |
src/ai_platform/MultiSourceProcess.h
... | ... | @@ -12,7 +12,7 @@ |
12 | 12 | #include <list> |
13 | 13 | #include <vector> |
14 | 14 | #include <deque> |
15 | - | |
15 | +#include <set> | |
16 | 16 | |
17 | 17 | |
18 | 18 | using namespace std; |
... | ... | @@ -75,6 +75,9 @@ private: |
75 | 75 | |
76 | 76 | int m_batch_size{1}; |
77 | 77 | |
78 | + set<OBJ_KEY> m_total_snapshot_info_multi_object; | |
79 | + mutex m_total_mutex; | |
80 | + | |
78 | 81 | #ifdef POST_USE_RABBITMQ |
79 | 82 | mq::Manager *mq_manager_{nullptr}; |
80 | 83 | #endif | ... | ... |
src/reprocessing_module/save_snapshot_reprocessing.cpp
... | ... | @@ -67,9 +67,6 @@ void save_snapshot_reprocessing::set_callback(callback_t cb) { |
67 | 67 | |
68 | 68 | void save_snapshot_reprocessing::reprocessing_process_wo_locus_async(ImgSaveInfo saveInfo){ |
69 | 69 | |
70 | - // dvpp_img_release(saveInfo.img_info); | |
71 | - // return; | |
72 | - | |
73 | 70 | while(!bFinish){ |
74 | 71 | waitforsave_img_queue_mutex.lock(); |
75 | 72 | if(waitforsave_img_queue.size() > 100){ | ... | ... |