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 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 2121 void CMultiSourceProcess::face_locus_finished(const OBJ_KEY obj_key) {
... ...