Example #1
0
    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))