Commit 497868ee45e6a27b7a3b2902e0349fa72782049b
1 parent
68c93490
修正调结果问题: tracker应该要用引用
Showing
3 changed files
with
28 additions
and
47 deletions
vehicle_structure_platform.git0708-3080-trt-face/src/VPT/MutliSourceVideoProcess.cpp
@@ -998,11 +998,6 @@ void CMutliSourceVideoProcess::algorthim_process() | @@ -998,11 +998,6 @@ void CMutliSourceVideoProcess::algorthim_process() | ||
998 | cudaFree(tasks[task_id].task_algorithm_data.frame); | 998 | cudaFree(tasks[task_id].task_algorithm_data.frame); |
999 | tasks[task_id].task_algorithm_data.frame = nullptr; | 999 | tasks[task_id].task_algorithm_data.frame = nullptr; |
1000 | } | 1000 | } |
1001 | - | ||
1002 | - | ||
1003 | - for (int i = 0; i < deleteObjectID.size(); i++) | ||
1004 | - vector<int>().swap(deleteObjectID[i]); | ||
1005 | - vector<vector<int>>().swap(deleteObjectID); | ||
1006 | 1001 | ||
1007 | m_snaphot_helper.object_attri_analysis(); | 1002 | m_snaphot_helper.object_attri_analysis(); |
1008 | cudaError_t cudaStatus = cudaGetLastError(); | 1003 | cudaError_t cudaStatus = cudaGetLastError(); |
vehicle_structure_platform.git0708-3080-trt-face/src/VPT/VPTProcess.cpp
@@ -93,12 +93,11 @@ void VPTProcess::config_fpn_param(ctools_init_params& param, int batch_size) { | @@ -93,12 +93,11 @@ void VPTProcess::config_fpn_param(ctools_init_params& param, int batch_size) { | ||
93 | 93 | ||
94 | void VPTProcess::config_yolo_param(ctools_init_params& param, int batch_size) { | 94 | void VPTProcess::config_yolo_param(ctools_init_params& param, int batch_size) { |
95 | 95 | ||
96 | - param.model_type_ = MODEL_YOLOV5; // debug by zsh | ||
97 | - | 96 | + param.model_type_ = MODEL_YOLOV5; |
98 | param.weight_file_ = NULL; | 97 | param.weight_file_ = NULL; |
99 | param.net_file_ = NULL; | 98 | param.net_file_ = NULL; |
100 | 99 | ||
101 | - param.data_process_str_ = | 100 | + param.data_process_str_ = |
102 | //"CopyData_CPU2GPU_U8;" | 101 | //"CopyData_CPU2GPU_U8;" |
103 | "TypeConvert_U8_F32;" | 102 | "TypeConvert_U8_F32;" |
104 | "ResizeMaxMidPad_F32_F32,test_size,640,test_max_size,640,max_height,640,max_width,640," | 103 | "ResizeMaxMidPad_F32_F32,test_size,640,test_max_size,640,max_height,640,max_width,640," |
@@ -107,7 +106,7 @@ void VPTProcess::config_yolo_param(ctools_init_params& param, int batch_size) { | @@ -107,7 +106,7 @@ void VPTProcess::config_yolo_param(ctools_init_params& param, int batch_size) { | ||
107 | "BGR2RGB_F32_F32;" | 106 | "BGR2RGB_F32_F32;" |
108 | "NHWC2NCHW_F32" | 107 | "NHWC2NCHW_F32" |
109 | ; | 108 | ; |
110 | - param.need_im_info_ = 0; | 109 | + param.need_im_info_ = 0; |
111 | 110 | ||
112 | if (param.engine_type_ == ENGINE_MCAFFE2) | 111 | if (param.engine_type_ == ENGINE_MCAFFE2) |
113 | { | 112 | { |
@@ -135,10 +134,9 @@ void VPTProcess::config_yolo_param(ctools_init_params& param, int batch_size) { | @@ -135,10 +134,9 @@ void VPTProcess::config_yolo_param(ctools_init_params& param, int batch_size) { | ||
135 | "output_names output", | 134 | "output_names output", |
136 | batch_size, g_data_mode.c_str(), g_is_create_calibrator, g_is_onnx_model); | 135 | batch_size, g_data_mode.c_str(), g_is_create_calibrator, g_is_onnx_model); |
137 | 136 | ||
138 | - param.tensorrt_calibrator_array_len_ = ga_trt_yolo_vpt_calibrator_len;// | ||
139 | - param.tensorrt_calibrator_array_ = (unsigned char*)ga_trt_yolo_vpt_calibrator;// debug by zsh | 137 | + param.tensorrt_calibrator_array_len_ = ga_trt_yolo_vpt_calibrator_len; |
138 | + param.tensorrt_calibrator_array_ = (unsigned char*)ga_trt_yolo_vpt_calibrator; | ||
140 | 139 | ||
141 | - // param.tensorrt_plugin_factory_ptr_ = &(tensorrt_plugin_factory); | ||
142 | } | 140 | } |
143 | } | 141 | } |
144 | 142 | ||
@@ -254,7 +252,7 @@ int VPTProcess::process(sy_img * batch_img, int batchsize, vector<unsigned long | @@ -254,7 +252,7 @@ int VPTProcess::process(sy_img * batch_img, int batchsize, vector<unsigned long | ||
254 | } | 252 | } |
255 | 253 | ||
256 | for (int i = 0; i < batchsize; i++){ | 254 | for (int i = 0; i < batchsize; i++){ |
257 | - TaskTracker task_tracker = taskTrackers[i]; | 255 | + TaskTracker& task_tracker = taskTrackers[i]; |
258 | if (!task_tracker.tracker.GetState()) { | 256 | if (!task_tracker.tracker.GetState()) { |
259 | continue; | 257 | continue; |
260 | } | 258 | } |
@@ -263,35 +261,24 @@ int VPTProcess::process(sy_img * batch_img, int batchsize, vector<unsigned long | @@ -263,35 +261,24 @@ int VPTProcess::process(sy_img * batch_img, int batchsize, vector<unsigned long | ||
263 | // 第一帧,只做带检测框的跟踪 | 261 | // 第一帧,只做带检测框的跟踪 |
264 | int objCount = task_tracker.tracker.update(task_tracker.ratioWidth, task_tracker.ratioHeight, true, detectResult[i], result[i].obj, deleteObjectID[i]); | 262 | int objCount = task_tracker.tracker.update(task_tracker.ratioWidth, task_tracker.ratioHeight, true, detectResult[i], result[i].obj, deleteObjectID[i]); |
265 | result[i].objCount = objCount; | 263 | result[i].objCount = objCount; |
264 | + } else { | ||
265 | + int update_times = vec_frameIndex[i] - task_tracker.lastFrameIndex - 1; | ||
266 | + if (update_times < 0) { | ||
267 | + cout << "FrameIndex error !! lastFrameIndex= " << task_tracker.lastFrameIndex << " cur_frameindex = " << vec_frameIndex[i] << endl; | ||
268 | + } | ||
269 | + // cout << "lastFrameIndex= " << task_tracker.lastFrameIndex << " cur_frameindex = " << vec_frameIndex[detectIndex] << endl; | ||
270 | + // cout << "update_times = " << update_times << endl; | ||
266 | 271 | ||
267 | - check_VPT_Result(result[i]); | ||
268 | - | ||
269 | - task_tracker.lastFrameIndex = vec_frameIndex[i]; | ||
270 | - task_tracker.lastDetectResult = detectResult[i]; | ||
271 | - task_tracker.lastUnUsedResult.objCount = result[i].objCount; | ||
272 | - memcpy(task_tracker.lastUnUsedResult.obj, result[i].obj, sizeof(VPT_ObjInfo) * MAX_OBJ_COUNT); | ||
273 | - task_tracker.lastDeleteObjectID = deleteObjectID[i]; | ||
274 | - continue; | ||
275 | - } | 272 | + 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); | ||
275 | + } | ||
276 | 276 | ||
277 | - int update_times = vec_frameIndex[i] - task_tracker.lastFrameIndex - 1; | ||
278 | - if (update_times < 0) | ||
279 | - { | ||
280 | - cout << "FrameIndex error !! lastFrameIndex= "<< task_tracker.lastFrameIndex <<" cur_frameindex = " << vec_frameIndex[i] << endl; | ||
281 | - } | ||
282 | - // cout << "lastFrameIndex= " << task_tracker.lastFrameIndex << " cur_frameindex = " << vec_frameIndex[detectIndex] << endl; | ||
283 | - // cout << "update_times = " << update_times << endl; | ||
284 | - | ||
285 | - for (int j = 0; j < update_times; j++) | ||
286 | - { // 无检测框跟踪 | ||
287 | - //cout << "taskTrackers size: " << task_tracker.size() << " batchsize:" << detectResult.size() << " update_times: "<< update_times << endl; | ||
288 | - 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); | 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; | ||
289 | } | 280 | } |
290 | 281 | ||
291 | - //有检测框输入的跟踪 | ||
292 | - int objCount = task_tracker.tracker.update(task_tracker.ratioWidth, task_tracker.ratioHeight, true, detectResult[i], result[i].obj, deleteObjectID[i]); | ||
293 | - result[i].objCount = objCount; | ||
294 | - | ||
295 | check_VPT_Result(result[i]); | 282 | check_VPT_Result(result[i]); |
296 | 283 | ||
297 | task_tracker.lastDetectResult = detectResult[i]; | 284 | task_tracker.lastDetectResult = detectResult[i]; |
@@ -299,10 +286,9 @@ int VPTProcess::process(sy_img * batch_img, int batchsize, vector<unsigned long | @@ -299,10 +286,9 @@ int VPTProcess::process(sy_img * batch_img, int batchsize, vector<unsigned long | ||
299 | memcpy(task_tracker.lastUnUsedResult.obj, result[i].obj, sizeof(VPT_ObjInfo) * MAX_OBJ_COUNT); | 286 | memcpy(task_tracker.lastUnUsedResult.obj, result[i].obj, sizeof(VPT_ObjInfo) * MAX_OBJ_COUNT); |
300 | task_tracker.lastDeleteObjectID = deleteObjectID[i]; | 287 | task_tracker.lastDeleteObjectID = deleteObjectID[i]; |
301 | 288 | ||
302 | - // 记录帧序号 | 289 | + // 记录帧序号 |
303 | task_tracker.lastFrameIndex = vec_frameIndex[i]; | 290 | task_tracker.lastFrameIndex = vec_frameIndex[i]; |
304 | } | 291 | } |
305 | - | ||
306 | } | 292 | } |
307 | 293 | ||
308 | void VPTProcess::release() { | 294 | void VPTProcess::release() { |
vehicle_structure_platform.git0708-3080-trt-face/src/VPT/snapshot_analysis/snapshot_helper.cpp
@@ -2119,9 +2119,9 @@ CropInfo snapshot_helper::cacheSnapShotInfo(OBJ_KEY newObj, VPT_ObjInfo obj, Tas | @@ -2119,9 +2119,9 @@ CropInfo snapshot_helper::cacheSnapShotInfo(OBJ_KEY newObj, VPT_ObjInfo obj, Tas | ||
2119 | cur_height = HCP_HEIGHT; | 2119 | cur_height = HCP_HEIGHT; |
2120 | 2120 | ||
2121 | // if(5 == newObj.videoID) | 2121 | // if(5 == newObj.videoID) |
2122 | - { | ||
2123 | - LOG_DEBUG("task_id:{} obj_id:{} index = {}", newObj.videoID, newObj.objID, snapShotInfo[newObj].index.index ); | ||
2124 | - } | 2122 | + // { |
2123 | + // LOG_DEBUG("task_id:{} obj_id:{} index = {}", newObj.videoID, newObj.objID, snapShotInfo[newObj].index.index ); | ||
2124 | + // } | ||
2125 | } | 2125 | } |
2126 | else if (8 == snapShotInfo[newObj].index.index || (snapShotInfo[newObj].index.index >= 4 && snapShotInfo[newObj].index.index <= 6)) | 2126 | else if (8 == snapShotInfo[newObj].index.index || (snapShotInfo[newObj].index.index >= 4 && snapShotInfo[newObj].index.index <= 6)) |
2127 | { | 2127 | { |
@@ -2240,10 +2240,10 @@ CropInfo snapshot_helper::cacheSnapShotInfo(OBJ_KEY newObj, VPT_ObjInfo obj, Tas | @@ -2240,10 +2240,10 @@ CropInfo snapshot_helper::cacheSnapShotInfo(OBJ_KEY newObj, VPT_ObjInfo obj, Tas | ||
2240 | else if (1 == snapShotInfo[newObj].index.index || 2 == snapShotInfo[newObj].index.index) | 2240 | else if (1 == snapShotInfo[newObj].index.index || 2 == snapShotInfo[newObj].index.index) |
2241 | { | 2241 | { |
2242 | // if(5 == newObj.videoID) | 2242 | // if(5 == newObj.videoID) |
2243 | - { | ||
2244 | - LOG_DEBUG("else , task_id:{} obj_id:{} index = {}", newObj.videoID, newObj.objID, snapShotInfo[newObj].index.index); | ||
2245 | - } | ||
2246 | - if (snapShotInfo[newObj].snapShotLittle.width != HCP_WIDTH || snapShotInfo[newObj].snapShotLittle.height != HCP_HEIGHT) | 2243 | + // { |
2244 | + // LOG_DEBUG("else , task_id:{} obj_id:{} index = {}", newObj.videoID, newObj.objID, snapShotInfo[newObj].index.index); | ||
2245 | + // } | ||
2246 | + // if (snapShotInfo[newObj].snapShotLittle.width != HCP_WIDTH || snapShotInfo[newObj].snapShotLittle.height != HCP_HEIGHT) | ||
2247 | { | 2247 | { |
2248 | cudaFree(snapShotInfo[newObj].snapShotLittle.frame); //释放显存 | 2248 | cudaFree(snapShotInfo[newObj].snapShotLittle.frame); //释放显存 |
2249 | cudaMalloc((void**)&snapShotInfo[newObj].snapShotLittle.frame, 3 * HCP_WIDTH * HCP_HEIGHT * sizeof(unsigned char)); | 2249 | cudaMalloc((void**)&snapShotInfo[newObj].snapShotLittle.frame, 3 * HCP_WIDTH * HCP_HEIGHT * sizeof(unsigned char)); |