Ejemplo n.º 1
0
def create_apollo_info_file(data_path, save_path=None, relative_path=True):

    #找train.txt val.txt...,拿里面的ids来用
    imageset_folder = Path(__file__).resolve().parent / "ImageSets"
    train_img_ids = _read_imageset_file(str(imageset_folder / "train.txt"))
    val_img_ids = _read_imageset_file(str(imageset_folder / "val.txt"))
    test_img_ids = _read_imageset_file(str(imageset_folder / "test.txt"))

    print("Generate info. this may take several minutes.")

    #找存哪里
    if save_path is None:
        save_path = Path(data_path)
    else:
        save_path = Path(save_path)

    #用get_kitti_image_info把数据做成pkl
    kitti_infos_train = kitti.get_kitti_image_info(data_path,
                                                   training=True,
                                                   velodyne=True,
                                                   calib=True,
                                                   image_ids=train_img_ids,
                                                   relative_path=relative_path)

    #计算gt里的点数量
    _calculate_num_points_in_gt(data_path, kitti_infos_train, relative_path)

    #用刚刚写的存的点决定存哪里,把它存进去
    filename = save_path / 'kitti_infos_train.pkl'
    print(f"Kitti info train file is saved to {filename}")
    with open(filename, 'wb') as f:
        pickle.dump(kitti_infos_train, f)

    kitti_infos_val = kitti.get_kitti_image_info(data_path,
                                                 training=True,
                                                 velodyne=True,
                                                 calib=True,
                                                 image_ids=val_img_ids,
                                                 relative_path=relative_path)
    _calculate_num_points_in_gt(data_path, kitti_infos_val, relative_path)
    filename = save_path / 'kitti_infos_val.pkl'
    print(f"Kitti info val file is saved to {filename}")
    with open(filename, 'wb') as f:
        pickle.dump(kitti_infos_val, f)
    filename = save_path / 'kitti_infos_trainval.pkl'
    print(f"Kitti info trainval file is saved to {filename}")
    with open(filename, 'wb') as f:
        pickle.dump(kitti_infos_train + kitti_infos_val, f)

    kitti_infos_test = kitti.get_kitti_image_info(data_path,
                                                  training=False,
                                                  label_info=False,
                                                  velodyne=True,
                                                  calib=True,
                                                  image_ids=test_img_ids,
                                                  relative_path=relative_path)
    filename = save_path / 'kitti_infos_test.pkl'
    print(f"Kitti info test file is saved to {filename}")
    with open(filename, 'wb') as f:
        pickle.dump(kitti_infos_test, f)
Ejemplo n.º 2
0
def create_kitti_info_file0(data_path,
                           save_path=None,
                           create_trainval=False,
                           relative_path=True):
    train_img_ids = _read_imageset_file("./data/ImageSets/train0.txt")
    val_img_ids = _read_imageset_file("./data/ImageSets/val0.txt")
    #trainval_img_ids = _read_imageset_file("./data/ImageSets/trainval.txt")
    #test_img_ids = _read_imageset_file("./data/ImageSets/test.txt")
    #test_img_ids = _read_imageset_file("./data/ImageSets/test2.txt")

    print("Generate info. this may take several minutes.")
    if save_path is None:
        save_path = pathlib.Path(data_path)
    else:
        save_path = pathlib.Path(save_path)
    kitti_infos_train = kitti.get_kitti_image_info(
        data_path,
        training=True,
        velodyne=True,
        calib=True,
        image_ids=train_img_ids,
        relative_path=relative_path)
    _calculate_num_points_in_gt(data_path, kitti_infos_train, relative_path)
    filename = save_path / 'kitti_infos_train.pkl'
    print(f"Kitti info train file is saved to {filename}")
    with open(filename, 'wb') as f:
        pickle.dump(kitti_infos_train, f)
    kitti_infos_val = kitti.get_kitti_image_info(
        data_path,
        training=True,
        velodyne=True,
        calib=True,
        image_ids=val_img_ids,
        relative_path=relative_path)
    _calculate_num_points_in_gt(data_path, kitti_infos_val, relative_path)
    filename = save_path / 'kitti_infos_val.pkl'
    print(f"Kitti info val file is saved to {filename}")
    with open(filename, 'wb') as f:
        pickle.dump(kitti_infos_val, f)
    """
    if create_trainval:
        kitti_infos_trainval = kitti.get_kitti_image_info(
            data_path,
            training=True,
            velodyne=True,
            calib=True,
            image_ids=trainval_img_ids,
            relative_path=relative_path)
        filename = save_path / 'kitti_infos_trainval.pkl'
        print(f"Kitti info trainval file is saved to {filename}")
        with open(filename, 'wb') as f:
            pickle.dump(kitti_infos_trainval, f)
    """
    filename = save_path / 'kitti_infos_trainval.pkl'
    print(f"Kitti info trainval file is saved to {filename}")
    with open(filename, 'wb') as f:
        pickle.dump(kitti_infos_train + kitti_infos_val, f)
def create_kitti_info_file(data_path,
                           save_path=None,
                           create_trainval=False,
                           relative_path=True):
    dir_path = os.path.dirname(os.path.realpath(__file__))

    train_img_ids = _read_imageset_file(dir_path + "/data/ImageSets/train.txt")
    val_img_ids = _read_imageset_file(dir_path + "/data/ImageSets/val.txt")
    trainval_img_ids = _read_imageset_file(dir_path +
                                           "/data/ImageSets/trainval.txt")
    test_img_ids = _read_imageset_file(dir_path + "/data/ImageSets/test.txt")

    print("Generate info. this may take several minutes.")
    if save_path is None:
        save_path = pathlib.Path(data_path)
    else:
        save_path = pathlib.Path(save_path)
    kitti_infos_train = kitti.get_kitti_image_info(data_path,
                                                   training=True,
                                                   velodyne=True,
                                                   calib=True,
                                                   image_ids=train_img_ids,
                                                   relative_path=relative_path)
    _calculate_num_points_in_gt(data_path, kitti_infos_train, relative_path)
    filename = save_path / 'kitti_infos_train.pkl'
    print(f"Kitti info train file is saved to {filename}")
    with open(filename, 'wb') as f:
        pickle.dump(kitti_infos_train, f)
    kitti_infos_val = kitti.get_kitti_image_info(data_path,
                                                 training=True,
                                                 velodyne=True,
                                                 calib=True,
                                                 image_ids=val_img_ids,
                                                 relative_path=relative_path)
    _calculate_num_points_in_gt(data_path, kitti_infos_val, relative_path)
    filename = save_path / 'kitti_infos_val.pkl'
    print(f"Kitti info val file is saved to {filename}")
    with open(filename, 'wb') as f:
        pickle.dump(kitti_infos_val, f)
    filename = save_path / 'kitti_infos_trainval.pkl'
    print(f"Kitti info trainval file is saved to {filename}")
    with open(filename, 'wb') as f:
        pickle.dump(kitti_infos_train + kitti_infos_val, f)

    kitti_infos_test = kitti.get_kitti_image_info(data_path,
                                                  training=False,
                                                  label_info=False,
                                                  velodyne=True,
                                                  calib=True,
                                                  image_ids=test_img_ids,
                                                  relative_path=relative_path)
    filename = save_path / 'kitti_infos_test.pkl'
    print(f"Kitti info test file is saved to {filename}")
    #print(kitti_infos_test)
    with open(filename, 'wb') as f:
        pickle.dump(kitti_infos_test, f)
Ejemplo n.º 4
0
def create_kitti_info_file(data_path,
                           save_path=None,
                           create_trainval=False,
                           relative_path=True):

    train_img_ids = list(range(0, 4533))
    val_img_ids = list(range(0, 750))
    trainval_img_ids = list(range(0, 7480))  # only kitti
    test_img_ids = list(range(0, 7517))  # only kitti

    print("Generate info. this may take several minutes.")
    if save_path is None:
        save_path = pathlib.Path(data_path)
    else:
        save_path = pathlib.Path(save_path)

    # get all the annos from the file
    kitti_infos_train = kitti.get_kitti_image_info(data_path,
                                                   training=True,
                                                   velodyne=True,
                                                   calib=True,
                                                   image_ids=train_img_ids,
                                                   relative_path=relative_path)

    # calculate the number of points in the pointcloud which fall into each gt box
    _calculate_num_points_in_gt(data_path, kitti_infos_train, relative_path)

    # ------------------------------------------------------------------------------------------------------
    #  save pc infos
    # ------------------------------------------------------------------------------------------------------

    filename = save_path / 'kitti_infos_train.pkl'
    print(f"Kitti info train file is saved to {filename}")
    with open(filename, 'wb') as f:
        pickle.dump(kitti_infos_train, f, 2)

    # do the same for training set
    kitti_infos_val = kitti.get_kitti_image_info(data_path,
                                                 training=False,
                                                 velodyne=True,
                                                 calib=True,
                                                 image_ids=val_img_ids,
                                                 relative_path=relative_path)
    _calculate_num_points_in_gt(data_path, kitti_infos_val, relative_path)
    filename = save_path / 'kitti_infos_val.pkl'
    print(f"Kitti info val file is saved to {filename}")
    with open(filename, 'wb') as f:
        pickle.dump(kitti_infos_val, f, 2)

    # ------------------------------------------------------------------------------------------------------
    # old KITTI stuff
    # ------------------------------------------------------------------------------------------------------
    """
Ejemplo n.º 5
0
def create_kitti_info_file_tracking(data_path,
                                    sequence,
                                    save_path=None,
                                    relative_path=True):

    train_img_ids = sorted(
        int(p.stem) for p in ((Path(data_path) / "training" / "velodyne" /
                               sequence).glob("*")))

    print("Generate info. this may take several minutes.")
    if save_path is None:
        save_path = Path(data_path)
    else:
        save_path = Path(save_path)
    kitti_infos_train = kitti.get_kitti_image_info(
        data_path,
        training=True,
        label_info=
        False,  # TODO(brendan): Not handling reading labels for tracking right now.
        velodyne=True,
        calib=True,
        image_ids=train_img_ids,
        relative_path=relative_path,
        sequence=sequence)

    # TODO(brendan): seems to just adjust annos, which I'm not setting for tracking right now.
    # _calculate_num_points_in_gt(data_path, kitti_infos_train, relative_path)
    filename = save_path / f'kitti_infos_train{sequence}.pkl'
    print(f"Kitti info train file is saved to {filename}")
    with open(filename, 'wb') as f:
        pickle.dump(kitti_infos_train, f)
Ejemplo n.º 6
0
def create_kitti_tracking_info_file(data_path, save_path=None, relative_path=True):
    imageset_folder = Path(__file__).resolve().parent / "ImageSets"
    train_img_ids = _read_tracking_imageset_file(str(imageset_folder / "tracking_training_info_v4.txt"))
    val_img_ids = _read_tracking_imageset_file(str(imageset_folder / "tracking_val_info_v4.txt"))
    # NO test set from kitti tracking
    # test_img_ids = _read_imageset_file(str(imageset_folder / "test_tracking.txt"))
    print("Number of kitti tracking training data:{}".format(len(train_img_ids)))
    print("Number of kitti tracking val data:{}".format(len(val_img_ids)))

    print("Generate info. this may take several minutes.")
    if save_path is None:
        save_path = Path(data_path)
    else:
        save_path = Path(save_path)
    kitti_infos_train = kitti.get_kitti_image_info(
        data_path,
        training=True,
        tracking=True,
        velodyne=True,
        calib=True,
        num_worker=8, # debug only
        image_ids=train_img_ids,
        relative_path=relative_path)
    _calculate_num_points_in_gt(data_path, kitti_infos_train, relative_path)
    filename = save_path / 'kitti_infos_train.pkl'
    print(f"Kitti info train file is saved to {filename}")
    with open(filename, 'wb') as f:
        pickle.dump(kitti_infos_train, f)
    kitti_infos_val = kitti.get_kitti_image_info(
        data_path,
        training=True,
        tracking=True,
        velodyne=True,
        calib=True,
        image_ids=val_img_ids,
        relative_path=relative_path)
    _calculate_num_points_in_gt(data_path, kitti_infos_val, relative_path)
    filename = save_path / 'kitti_infos_val.pkl'
    print(f"Kitti info val file is saved to {filename}")
    with open(filename, 'wb') as f:
        pickle.dump(kitti_infos_val, f)
    filename = save_path / 'kitti_infos_trainval.pkl'
    print(f"Kitti info trainval file is saved to {filename}")
    with open(filename, 'wb') as f:
        pickle.dump(kitti_infos_train + kitti_infos_val, f)
Ejemplo n.º 7
0
 def initialize(self):
     image_infos = get_kitti_image_info(self.data_path,
                                        training=True,
                                        label_info=False,
                                        calib=True,
                                        image_ids=[self.calib_idx])
     self.calib_info = image_infos[0]
     self._build()
     self._restore()
Ejemplo n.º 8
0
def create_kitti_info_file_only_test(data_path,
                                     save_path=None,
                                     create_trainval=False,
                                     relative_path=True):
    test_img_ids = _read_imageset_file("./data/ImageSets/test.txt")

    print("Generate info. this may take several minutes.")
    if save_path is None:
        save_path = pathlib.Path(data_path)
    else:
        save_path = pathlib.Path(save_path)
    kitti_infos_test = kitti.get_kitti_image_info(data_path,
                                                  training=False,
                                                  label_info=False,
                                                  velodyne=True,
                                                  calib=True,
                                                  image_ids=test_img_ids,
                                                  relative_path=relative_path)
    filename = save_path / 'kitti_infos_test.pkl'
    print(f"Kitti info test file is saved to {filename}")
    with open(filename, 'wb') as f:
        pickle.dump(kitti_infos_test, f)
Ejemplo n.º 9
0
def create_kitti_info_file(data_path,
                           save_path=None,
                           create_trainval=False,
                           relative_path=True,
                           scene_num=None):
    # train_img_ids = _read_imageset_file("./data/ImageSets/train.txt")
    # val_img_ids = _read_imageset_file("./data/ImageSets/val.txt")
    # trainval_img_ids = _read_imageset_file("./data/ImageSets/trainval.txt")
    # scene_num ="0104"
    if scene_num is not None:
        test_img_ids = _read_imageset_file(
            "/home/spalab/jhyoo/dataset/KITTI_raw/2011_09_26_drive_" +
            scene_num + "_sync/testing/test.txt")
    else:
        import pdb
        pdb.set_trace()
        temp = 1
    print("Generate info. this may take several minutes.")
    if save_path is None:
        save_path = pathlib.Path(data_path)
    else:
        save_path = pathlib.Path(save_path)
    # kitti_infos_train = kitti.get_kitti_image_info(
    #     data_path,
    #     training=True,
    #     velodyne=True,
    #     calib=True,
    #     image_ids=train_img_ids,
    #     relative_path=relative_path)
    # _calculate_num_points_in_gt(data_path, kitti_infos_train, relative_path)
    # filename = save_path / 'kitti_infos_train.pkl'
    # print(f"Kitti info train file is saved to {filename}")
    # with open(filename, 'wb') as f:
    #     pickle.dump(kitti_infos_train, f)
    # kitti_infos_val = kitti.get_kitti_image_info(
    #     data_path,
    #     training=True,
    #     velodyne=True,
    #     calib=True,
    #     image_ids=val_img_ids,
    #     relative_path=relative_path)
    # _calculate_num_points_in_gt(data_path, kitti_infos_val, relative_path)
    # filename = save_path / 'kitti_infos_val.pkl'
    # print(f"Kitti info val file is saved to {filename}")
    # with open(filename, 'wb') as f:
    #     pickle.dump(kitti_infos_val, f)
    # """
    # if create_trainval:
    #     kitti_infos_trainval = kitti.get_kitti_image_info(
    #         data_path,
    #         training=True,
    #         velodyne=True,
    #         calib=True,
    #         image_ids=trainval_img_ids,
    #         relative_path=relative_path)
    #     filename = save_path / 'kitti_infos_trainval.pkl'
    #     print(f"Kitti info trainval file is saved to {filename}")
    #     with open(filename, 'wb') as f:
    #         pickle.dump(kitti_infos_trainval, f)
    # """
    # filename = save_path / 'kitti_infos_trainval.pkl'
    # print(f"Kitti info trainval file is saved to {filename}")
    # with open(filename, 'wb') as f:
    #     pickle.dump(kitti_infos_train + kitti_infos_val, f)

    kitti_infos_test = kitti.get_kitti_image_info(data_path,
                                                  training=False,
                                                  label_info=False,
                                                  velodyne=True,
                                                  calib=True,
                                                  image_ids=test_img_ids,
                                                  relative_path=relative_path)
    f_name = 'kitti_infos_test_' + scene_num + '.pkl'
    filename = save_path / f_name
    print(f"Kitti info test file is saved to {filename}")
    with open(filename, 'wb') as f:
        pickle.dump(kitti_infos_test, f)
Ejemplo n.º 10
0
def create_kitti_info_file(data_path,
                           save_path=None,
                           create_trainval=False,
                           relative_path=True):
    train_img_ids = _read_imageset_file("./data/ImageSets/train.txt")
    val_img_ids = _read_imageset_file("./data/ImageSets/val.txt")
    trainval_img_ids = _read_imageset_file("./data/ImageSets/trainval.txt")
    test_img_ids = _read_imageset_file("./data/ImageSets/test.txt")

    print("Generate info. this may take several minutes.")
    if save_path is None:
        save_path = pathlib.Path(data_path)
    else:
        save_path = pathlib.Path(save_path)

    try:
        kitti_infos_train = kitti.get_kitti_image_info(
            data_path,
            training=True,
            velodyne=True,
            calib=True,
            image_ids=train_img_ids,
            relative_path=relative_path)
    except Exception as e:
        print('Got exception: {}'.format(e))

    kitti_infos_train = [i for i in kitti_infos_train if i is not None]
    print('Found all {} valid train infos.'.format(len(kitti_infos_train)))

    _calculate_num_points_in_gt(data_path, kitti_infos_train, relative_path)
    filename = save_path / 'kitti_infos_train.pkl'
    print(f"Kitti info train file is saved to {filename}")
    with open(filename, 'wb') as f:
        pickle.dump(kitti_infos_train, f)

    kitti_infos_val = kitti.get_kitti_image_info(data_path,
                                                 training=True,
                                                 velodyne=True,
                                                 calib=True,
                                                 image_ids=val_img_ids,
                                                 relative_path=relative_path)
    kitti_infos_val = [i for i in kitti_infos_val if i is not None]
    print('Found all {} valid test infos.'.format(len(kitti_infos_val)))
    _calculate_num_points_in_gt(data_path, kitti_infos_val, relative_path)

    filename = save_path / 'kitti_infos_val.pkl'
    print(f"Kitti info val file is saved to {filename}")
    with open(filename, 'wb') as f:
        pickle.dump(kitti_infos_val, f)
    """
    if create_trainval:
        kitti_infos_trainval = kitti.get_kitti_image_info(
            data_path,
            training=True,
            velodyne=True,
            calib=True,
            image_ids=trainval_img_ids,
            relative_path=relative_path)
        filename = save_path / 'kitti_infos_trainval.pkl'
        print(f"Kitti info trainval file is saved to {filename}")
        with open(filename, 'wb') as f:
            pickle.dump(kitti_infos_trainval, f)
    """
    filename = save_path / 'kitti_infos_trainval.pkl'
    print(f"Kitti info trainval file is saved to {filename}")
    with open(filename, 'wb') as f:
        pickle.dump(kitti_infos_train + kitti_infos_val, f)

    kitti_infos_test = kitti.get_kitti_image_info(data_path,
                                                  training=False,
                                                  label_info=False,
                                                  velodyne=True,
                                                  calib=True,
                                                  image_ids=test_img_ids,
                                                  relative_path=relative_path)
    kitti_infos_test = [i for i in kitti_infos_test if i is not None]
    print('Found all {} valid test infos.'.format(len(kitti_infos_test)))

    filename = save_path / 'kitti_infos_test.pkl'
    print(f"Kitti info test file is saved to {filename}")
    with open(filename, 'wb') as f:
        pickle.dump(kitti_infos_test, f)
Ejemplo n.º 11
0
def create_kitti_info_file(data_path,
                           save_path=None,
                           create_trainval=False,
                           relative_path=True):

    # Read all the lines in the already stored names of image files
    train_img_ids = _read_imageset_file("./data/ImageSets/train.txt")
    val_img_ids = _read_imageset_file("./data/ImageSets/val.txt")
    # trainval_img_ids = _read_imageset_file("./data/ImageSets/trainval.txt") # FIXME: Not sure what is trainval, simply a sum of train and val sets?
    test_img_ids = _read_imageset_file("./data/ImageSets/test.txt")

    print("Generate info. this may take several minutes.")
    if save_path is None:
        save_path = pathlib.Path(data_path)
    else:
        save_path = pathlib.Path(save_path)

    # Store train data info
    kitti_infos_train = kitti.get_kitti_image_info(
        data_path,
        training=True,
        velodyne=True,
        calib=True,
        image_ids=train_img_ids,
        relative_path=relative_path
    )  # NOTE: Get all useful info about each image such as TF, calibration, path to file, image shape
    _calculate_num_points_in_gt(
        data_path, kitti_infos_train, relative_path
    )  # Add num of points in ground-truth using call by reference approach
    filename = save_path / 'kitti_infos_train.pkl'
    print(f"Kitti info train file is saved to {filename}")
    with open(filename, 'wb') as f:
        pickle.dump(kitti_infos_train, f)

    # Store val data info
    kitti_infos_val = kitti.get_kitti_image_info(data_path,
                                                 training=True,
                                                 velodyne=True,
                                                 calib=True,
                                                 image_ids=val_img_ids,
                                                 relative_path=relative_path)
    _calculate_num_points_in_gt(data_path, kitti_infos_val, relative_path)
    filename = save_path / 'kitti_infos_val.pkl'
    print(f"Kitti info val file is saved to {filename}")
    with open(filename, 'wb') as f:
        pickle.dump(kitti_infos_val, f)
    """
	if create_trainval:
		kitti_infos_trainval = kitti.get_kitti_image_info(
			data_path,
			training=True,
			velodyne=True,
			calib=True,
			image_ids=trainval_img_ids,
			relative_path=relative_path)
		filename = save_path / 'kitti_infos_trainval.pkl'
		print(f"Kitti info trainval file is saved to {filename}")
		with open(filename, 'wb') as f:
			pickle.dump(kitti_infos_trainval, f)
	"""
    filename = save_path / 'kitti_infos_trainval.pkl'
    print(f"Kitti info trainval file is saved to {filename}")
    with open(filename, 'wb') as f:
        pickle.dump(kitti_infos_train + kitti_infos_val, f)

    # Store test data info
    kitti_infos_test = kitti.get_kitti_image_info(data_path,
                                                  training=False,
                                                  label_info=False,
                                                  velodyne=True,
                                                  calib=True,
                                                  image_ids=test_img_ids,
                                                  relative_path=relative_path)
    filename = save_path / 'kitti_infos_test.pkl'
    print(f"Kitti info test file is saved to {filename}")
    with open(filename, 'wb') as f:
        pickle.dump(kitti_infos_test, f)