Commit 767bb02f849492065240c0cc08e2b3cf2c7c5675

Authored by Hu Chunming
1 parent 97743cec

修正跟踪

vehicle_structure_platform.git0708-3080-trt-face/src/VPT/VPTProcess.cpp
... ... @@ -251,39 +251,31 @@ int VPTProcess::process(sy_img * batch_img, int batchsize, vector<unsigned long
251 251 }
252 252 }
253 253  
254   - for (int i = 0; i < batchsize; i++){
255   - TaskTracker& task_tracker = taskTrackers[i];
  254 + for (int i = 0; i < batchsize; i++) {
  255 + TaskTracker& task_tracker = tools->taskTrackers[i];
256 256 if (!task_tracker.tracker.GetState()) {
257 257 continue;
258 258 }
259 259  
260   - if (task_tracker.lastFrameIndex <= 0) {
261   - // 第一帧,只做带检测框的跟踪
262   - int objCount = task_tracker.tracker.update(task_tracker.ratioWidth, task_tracker.ratioHeight, true, detectResult[i], result[i].obj, deleteObjectID[i]);
263   - result[i].objCount = objCount;
264   - } else {
  260 + if (task_tracker.lastFrameIndex > 0) {
  261 + // 非第一帧
265 262 int update_times = vec_frameIndex[i] - task_tracker.lastFrameIndex - 1;
266 263 if (update_times < 0) {
267 264 cout << "FrameIndex error !! lastFrameIndex= " << task_tracker.lastFrameIndex << " cur_frameindex = " << vec_frameIndex[i] << endl;
268 265 }
269   - // cout << "lastFrameIndex= " << task_tracker.lastFrameIndex << " cur_frameindex = " << vec_frameIndex[detectIndex] << endl;
270   - // cout << "update_times = " << update_times << endl;
271 266  
272 267 for (int j = 0; j < update_times; j++) { // 无检测框跟踪
273   - //cout << "taskTrackers size: " << task_tracker.size() << " batchsize:" << detectResult.size() << " update_times: "<< update_times << endl;
274   - task_tracker.lastUnUsedResult.objCount = task_tracker.tracker.update(task_tracker.ratioWidth, task_tracker.ratioHeight, false, task_tracker.lastDetectResult, task_tracker.lastUnUsedResult.obj, task_tracker.lastDeleteObjectID);
  268 + VPT_Result unresult;
  269 + unresult.objCount = task_tracker.tracker.update(task_tracker.ratioWidth, task_tracker.ratioHeight, false, task_tracker.lastDetectResult, unresult.obj, task_tracker.lastDeleteObjectID);
  270 + check_VPT_Result(unresult);
  271 + unUsedResult[i].push_back(unresult);
275 272 }
276   -
277   - //有检测框输入的跟踪
278   - int objCount = task_tracker.tracker.update(task_tracker.ratioWidth, task_tracker.ratioHeight, true, detectResult[i], result[i].obj, deleteObjectID[i]);
279   - result[i].objCount = objCount;
280 273 }
  274 + result[i].objCount = task_tracker.tracker.update(task_tracker.ratioWidth, task_tracker.ratioHeight, true, detectResult[i], result[i].obj, deleteObjectID[i]);
281 275  
282 276 check_VPT_Result(result[i]);
283 277  
284 278 task_tracker.lastDetectResult = detectResult[i];
285   - task_tracker.lastUnUsedResult.objCount = result[i].objCount;
286   - memcpy(task_tracker.lastUnUsedResult.obj, result[i].obj, sizeof(VPT_ObjInfo) * MAX_OBJ_COUNT);
287 279 task_tracker.lastDeleteObjectID = deleteObjectID[i];
288 280  
289 281 // 记录帧序号
... ...
vehicle_structure_platform.git0708-3080-trt-face/src/VPT/VPTProcess.h
... ... @@ -25,7 +25,6 @@ struct TaskTracker
25 25 unsigned int lastFrameIndex;
26 26  
27 27 vector< vector <float>> lastDetectResult;
28   - VPT_Result lastUnUsedResult;
29 28 vector<int> lastDeleteObjectID;
30 29 };
31 30  
... ...
vehicle_structure_platform.git0708-3080-trt-face/src/VPT/snapshot_analysis/snapshot_helper.cpp
... ... @@ -1257,7 +1257,7 @@ void snapshot_helper::VehicleRecog_Process(sy_img * batch_img, int batchsize, vr
1257 1257  
1258 1258 if (index_head != 0)
1259 1259 {
1260   - LOG_DEBUG("index_head : {}", index_head);
  1260 + // LOG_DEBUG("index_head : {}", index_head);
1261 1261 vehicle_recog_result *vrresult = new vehicle_recog_result[index_head]{};
1262 1262 m_vehicle_recognition.process(batch_vehicle_head, index_head, vrresult);
1263 1263  
... ...