Commit 4e7bae0f60d6f5f3a6eb6475ce44aead93cfea80

Authored by Hu Chunming
1 parent 1680c040

代码优化

src/ai_platform/MultiSourceProcess.cpp
@@ -2081,40 +2081,41 @@ void CMultiSourceProcess::algorthim_face_detect(vector<DeviceMemory*> vec_gpuMem @@ -2081,40 +2081,41 @@ void CMultiSourceProcess::algorthim_face_detect(vector<DeviceMemory*> vec_gpuMem
2081 vec_vptMem.push_back(mem); 2081 vec_vptMem.push_back(mem);
2082 } 2082 }
2083 2083
2084 - if (!interest_imgs.empty()) { 2084 + if (interest_imgs.empty()) {
  2085 + return;
  2086 + }
2085 2087
2086 - unsigned image_size = interest_imgs.size(); 2088 + unsigned image_size = interest_imgs.size();
2087 2089
2088 - // 人脸检测、跟踪  
2089 - std::vector<onelevel_det_result> facedet_result(image_size);  
2090 - std::vector<std::vector<int>> face_deleteObjectID(image_size); 2090 + // 人脸检测、跟踪
  2091 + std::vector<onelevel_det_result> facedet_result(image_size);
  2092 + std::vector<std::vector<int>> face_deleteObjectID(image_size);
2091 2093
2092 - int ret = m_face_det_ai_engine.ai_engine_process_batch(interest_task_list, interest_imgs.data(), facedet_result, face_deleteObjectID);  
2093 - if(ret <= 0){  
2094 - LOG_ERROR("face detect error!!!");  
2095 - return;  
2096 - } 2094 + int ret = m_face_det_ai_engine.ai_engine_process_batch(interest_task_list, interest_imgs.data(), facedet_result, face_deleteObjectID);
  2095 + if(ret <= 0){
  2096 + LOG_ERROR("face detect error!!!");
  2097 + return;
  2098 + }
2097 2099
2098 - // 跟踪结果送入快照更新  
2099 - m_snapshot_reprocessing->update_face_bestsnapshot(vec_vptMem, facedet_result, face_deleteObjectID);  
2100 -  
2101 - // 保存已结束轨迹的目标  
2102 - auto task_iter_face = interest_task_list.begin(); //debug by zsh  
2103 - for (int i = 0; i < face_deleteObjectID.size(); i++) {  
2104 - for (int j = 0; j < face_deleteObjectID[i].size(); ++j) {  
2105 - OBJ_KEY deleteObj = {*task_iter_face, face_deleteObjectID[i][j]};  
2106 - LOG_TRACE("{}: {}",*task_iter_face,face_deleteObjectID[i][j]);  
2107 - face_locus_finished(deleteObj);  
2108 - }  
2109 - ++task_iter_face;  
2110 - } 2100 + // 跟踪结果送入快照更新
  2101 + m_snapshot_reprocessing->update_face_bestsnapshot(vec_vptMem, facedet_result, face_deleteObjectID);
2111 2102
2112 - for (int i = 0; i < face_deleteObjectID.size(); ++i){  
2113 - std::vector<int>().swap(face_deleteObjectID[i]);  
2114 - }  
2115 - std::vector<std::vector<int>>().swap(face_deleteObjectID);  
2116 - std::vector<onelevel_det_result>().swap(facedet_result); 2103 + // 保存已结束轨迹的目标
  2104 + auto task_iter_face = interest_task_list.begin(); //debug by zsh
  2105 + for (int i = 0; i < face_deleteObjectID.size(); i++) {
  2106 + for (int j = 0; j < face_deleteObjectID[i].size(); ++j) {
  2107 + OBJ_KEY deleteObj = {*task_iter_face, face_deleteObjectID[i][j]};
  2108 + LOG_TRACE("{}: {}",*task_iter_face,face_deleteObjectID[i][j]);
  2109 + face_locus_finished(deleteObj);
  2110 + }
  2111 + ++task_iter_face;
  2112 + }
  2113 +
  2114 + for (int i = 0; i < face_deleteObjectID.size(); ++i){
  2115 + std::vector<int>().swap(face_deleteObjectID[i]);
2117 } 2116 }
  2117 + std::vector<std::vector<int>>().swap(face_deleteObjectID);
  2118 + std::vector<onelevel_det_result>().swap(facedet_result);
2118 } 2119 }
2119 2120
2120 void CMultiSourceProcess::face_locus_finished(const OBJ_KEY obj_key) { 2121 void CMultiSourceProcess::face_locus_finished(const OBJ_KEY obj_key) {