from_train = True if test_train == 'train' else False data = MOT16(filter_info={'nms':0.4,'confidence':-1.0}) seq_info = data.sequence_info[seq_name] tracker = Tracker(seq_info['im_width'], seq_info['im_height'], w_app=0, max_miss=8, min_length=10, min_track_quality=0.6, min_score_kin=0.1, dist_thresh=1.0, process_noise1=30, process_noise2=10, observation_noise=30) for f in range(seq_info['frames'][0], seq_info['frames'][1]): img, dets = data.retrieveSequence(seq_name, f, from_train) cv2.putText(img, '{}/{}'.format(f, seq_info['frames'][1]), (10,50), cv2.FONT_HERSHEY_COMPLEX, 1.0, (0,0,255), 2) detections = {} patches = {} for i, d in enumerate( dets, 1 ): patches[i] = getPatch(img, d, seq_info) detections[i] = (d[2], d[3], d[4], d[5], d[6]) tracker.doTracking(f, detections, patches, app_scores=None, canvas=None) for t in tracker.Tracking: last_index = len(tracker.Tracking[t]['trajectory'])-1 showlen = min(10, last_index+1) colorid = cv2.applyColorMap( np.array([(t * 50) % 256], dtype=np.uint8 ), cv2.COLORMAP_HSV ) colors = (int(colorid[0,0,0]), int(colorid[0,0,1]), int(colorid[0,0,2])) p1 = tracker.Tracking[t]['trajectory'][last_index] cv2.rectangle(img, (int(p1[1]), int(p1[2])), (int(p1[1]+p1[3]), int(p1[2]+p1[4])), colors, 2) p1x = int(round(p1[1] + p1[3]/2)) p1y = int(round(p1[2] + p1[4]/2)) cv2.putText(img, str(t), (p1x, p1y), cv2.FONT_HERSHEY_COMPLEX, 0.7, colors, 2) for l in range(1, showlen): p1 = tracker.Tracking[t]['trajectory'][last_index-(l-1)] p2 = tracker.Tracking[t]['trajectory'][last_index-(l)] p1x = int(round(p1[1] + p1[3]/2))