In eval_vpq.py, at step 2, gt/pred_segms initial assignments should be done using deep copy, isn't it?
Which means,
'''
Step 2. Concatenate the collected items -> tube-level.
vid_pan_gt = np.stack(vid_pan_gt) # [nf,H,W] # nf == nframe
vid_pan_pred = np.stack(vid_pan_pred) # [nf,H,W]
vid_gt_segms, vid_pred_segms = {}, {} # from json
for gt_segms, pred_segms in zip(gt_segms_list, pred_segms_list):
# aggregate into tube 'area'
for k in gt_segms.keys():
if not k in vid_gt_segms:
#vid_gt_segms[k] = gt_segms[k]
vid_gt_segms[k] = copy.deepcopy(gt_segms[k])
else:
vid_gt_segms[k]['area'] += gt_segms[k]['area']
for k in pred_segms.keys():
if not k in vid_pred_segms:
#vid_pred_segms[k] = pred_segms[k]
vid_pred_segms[k] = copy.deepcopy( pred_segms[k])
else:
vid_pred_segms[k]['area'] += pred_segms[k]['area']
'''
Otherwise, vid_gt/pre_segms[k]['area'] value will be accumulated along multiple frames.
In eval_vpq.py, at step 2, gt/pred_segms initial assignments should be done using deep copy, isn't it?
Which means,
'''
Step 2. Concatenate the collected items -> tube-level.
'''
Otherwise, vid_gt/pre_segms[k]['area'] value will be accumulated along multiple frames.