コード例 #1
0
def run_mots_eval(result_dir, sequences, gt_folder, seqmap_filename):
    seqmap, max_frames = load_seqmap(seqmap_filename)
    print("Loading ground truth...")
    gt = load_gt_sequences(gt_folder, sequences)
    print("Loading results...")
    results = load_sequences(result_dir, sequences)
    print("Compute KITTI tracking eval with simplified matching and MOTSA")
    print("Evaluate class: Cars")
    results_cars = evaluate_class(gt, results, max_frames, 1)
    print("Evaluate class: Pedestrians")
    results_ped = evaluate_class(gt, results, max_frames, 2)
    print("Results for table (no *)")
    print("%.1f" % (results_cars.sMOTSA * 100.0),
          "%.1f" % (results_ped.sMOTSA * 100.0),
          "%.1f" % (results_cars.MOTSA * 100.0),
          "%.1f" % (results_ped.MOTSA * 100.0),
          "%.1f" % (results_cars.MOTSP * 100.0),
          "%.1f" % (results_ped.MOTSP * 100.0),
          results_cars.id_switches,
          results_ped.id_switches,
          sep="\t")
    print("Results for table (*)")
    print("%.1f" % (results_cars.sMOTSA_all_ids * 100.0),
          "%.1f" % (results_ped.sMOTSA_all_ids * 100.0),
          "%.1f" % (results_cars.MOTSA_all_ids * 100.0),
          "%.1f" % (results_ped.MOTSA_all_ids * 100.0),
          "%.1f" % (results_cars.MOTSP * 100.0),
          "%.1f" % (results_ped.MOTSP * 100.0),
          results_cars.id_switches_all,
          results_ped.id_switches_all,
          sep="\t")
コード例 #2
0
def visualize_sequences(sequences,
                        result_folder,
                        img_folder,
                        output_folder,
                        seqmap_filename,
                        draw_boxes=False,
                        create_video=True):
    seqmap, max_frames = load_seqmap(seqmap_filename)
    for seq_id in sequences:
        os.makedirs(output_folder + "/" + seq_id, exist_ok=True)
        print("Processing sequence", seq_id)
        tracks = load_sequences(result_folder, [seq_id])[seq_id]
        max_frames_seq = max_frames[seq_id]
        visualize_sequence(seq_id, tracks, max_frames_seq, img_folder,
                           output_folder, draw_boxes, create_video)
コード例 #3
0
    print(sequence)
    for frame in objects_per_frame.keys():
        for object in objects_per_frame.get(frame):
            if not object.track_id == 10000:
                track_id = (object.track_id % 1000)
                det = {'class': object.class_id}
                while tracks_gt.get_num_ids() <= track_id:
                    tracks_gt.add_empty_track()

                tracks_gt.add_to_track(frame, track_id, det, object.mask)


if __name__ == '__main__':
    config = Config('./configs/config_default')

    list_sequences, max_frames = load_seqmap(config.str('mots_seqmap_file'))
    for sequence in list_sequences:
        tracks_gt = TrackedSequence(max_frames[sequence] + 1)
        import_gt_file('./data/mots_gt/' + sequence + '.txt')

        raw_detections = import_detections(config, sequence)
        segmentations = import_segmentations(config, sequence)

        tracks_gt_seg = TrackedSequence(max_frames[sequence] + 1)

        while max_frames[sequence] + 1 > len(raw_detections):
            raw_detections.append([])

        while max_frames[sequence] + 1 > len(segmentations):
            segmentations.append([])
コード例 #4
0
                        dest='compute_poses',
                        type=bool,
                        default=True)
    parser.add_argument(
        '-compute_point_imgs',
        help='compute 3 channel point images using camera parameters',
        dest='compute_point_imgs',
        type=bool,
        default=True)
    args = parser.parse_args()
    config = Config(args.config)

    if args.compute_seg:
        refinement_net = refinement_net_init(config.str('segmentor_modelpath'))

    list_sequences, _ = load_seqmap(config.str('mots_seqmap_file'))

    for sequence in list_sequences:
        print(sequence)

        sequence_dir = config.dir('data_dir') + 'images/' + sequence + '/'

        calibration_params = CalibrationParameters(sequence_dir + sequence +
                                                   '.txt')

        if args.compute_seg:
            print('computing segmentations..')
            detections = import_detections(config, sequence)
            compute_segmentations(
                refinement_net, sequence_dir,
                config.dir('segmentations_savedir') + sequence + '/',