def build_dataset(dataset_config, data_dir, grid_size=[480, 360, 32], demo_label_dir=None): if demo_label_dir == '': imageset = "demo" else: imageset = "val" label_mapping = dataset_config["label_mapping"] SemKITTI_demo = get_pc_model_class('SemKITTI_demo') demo_pt_dataset = SemKITTI_demo(data_dir, imageset=imageset, return_ref=True, label_mapping=label_mapping, demo_label_path=demo_label_dir) demo_dataset = get_model_class(dataset_config['dataset_type'])( demo_pt_dataset, grid_size=grid_size, fixed_volume_space=dataset_config['fixed_volume_space'], max_volume_space=dataset_config['max_volume_space'], min_volume_space=dataset_config['min_volume_space'], ignore_label=dataset_config["ignore_label"], ) demo_dataset_loader = torch.utils.data.DataLoader( dataset=demo_dataset, batch_size=1, collate_fn=collate_fn_BEV, shuffle=False, num_workers=4) return demo_dataset_loader
def build(dataset_config, train_dataloader_config, val_dataloader_config, grid_size=[480, 360, 32]): data_path = train_dataloader_config["data_path"] train_imageset = train_dataloader_config["imageset"] val_imageset = val_dataloader_config["imageset"] train_ref = train_dataloader_config["return_ref"] val_ref = val_dataloader_config["return_ref"] label_mapping = dataset_config["label_mapping"] SemKITTI = get_pc_model_class(dataset_config['pc_dataset_type']) nusc=None if "nusc" in dataset_config['pc_dataset_type']: from nuscenes import NuScenes nusc = NuScenes(version='v1.0-trainval', dataroot=data_path, verbose=True) train_pt_dataset = SemKITTI(data_path, imageset=train_imageset, return_ref=train_ref, label_mapping=label_mapping, nusc=nusc) val_pt_dataset = SemKITTI(data_path, imageset=val_imageset, return_ref=val_ref, label_mapping=label_mapping, nusc=nusc) train_dataset = get_model_class(dataset_config['dataset_type'])( train_pt_dataset, grid_size=grid_size, flip_aug=True, fixed_volume_space=dataset_config['fixed_volume_space'], max_volume_space=dataset_config['max_volume_space'], min_volume_space=dataset_config['min_volume_space'], ignore_label=dataset_config["ignore_label"], rotate_aug=True, scale_aug=True, transform_aug=True ) val_dataset = get_model_class(dataset_config['dataset_type'])( val_pt_dataset, grid_size=grid_size, fixed_volume_space=dataset_config['fixed_volume_space'], max_volume_space=dataset_config['max_volume_space'], min_volume_space=dataset_config['min_volume_space'], ignore_label=dataset_config["ignore_label"], ) train_dataset_loader = torch.utils.data.DataLoader(dataset=train_dataset, batch_size=train_dataloader_config["batch_size"], collate_fn=collate_fn_BEV, shuffle=train_dataloader_config["shuffle"], num_workers=train_dataloader_config["num_workers"]) val_dataset_loader = torch.utils.data.DataLoader(dataset=val_dataset, batch_size=val_dataloader_config["batch_size"], collate_fn=collate_fn_BEV, shuffle=val_dataloader_config["shuffle"], num_workers=val_dataloader_config["num_workers"]) return train_dataset_loader, val_dataset_loader
def build(dataset_config, train_dataloader_config, val_dataloader_config, grid_size=[480, 360, 32]): data_path = train_dataloader_config["data_path"] train_imageset = train_dataloader_config["imageset"] val_imageset = val_dataloader_config["imageset"] train_ref = train_dataloader_config["return_ref"] val_ref = val_dataloader_config["return_ref"] label_mapping = dataset_config["label_mapping"] SemKITTI = get_pc_model_class(dataset_config['pc_dataset_type']) train_pt_dataset = SemKITTI(data_path + '/sequences/', imageset=train_imageset, return_ref=train_ref, label_mapping=label_mapping) val_pt_dataset = SemKITTI(data_path + '/sequences/', imageset=val_imageset, return_ref=val_ref, label_mapping=label_mapping) train_dataset = get_model_class(dataset_config['dataset_type'])( train_pt_dataset, grid_size=grid_size, flip_aug=True, fixed_volume_space=dataset_config['fixed_volume_space'], max_volume_space=dataset_config['max_volume_space'], min_volume_space=dataset_config['min_volume_space'], ignore_label=dataset_config["ignore_label"], rotate_aug=True, scale_aug=True, transform_aug=True) val_dataset = get_model_class(dataset_config['dataset_type'])( val_pt_dataset, grid_size=grid_size, fixed_volume_space=dataset_config['fixed_volume_space'], max_volume_space=dataset_config['max_volume_space'], min_volume_space=dataset_config['min_volume_space'], ignore_label=dataset_config["ignore_label"], ) train_dataset_loader = torch.utils.data.DataLoader( dataset=train_dataset, batch_size=train_dataloader_config["batch_size"], collate_fn=collate_fn_BEV, shuffle=train_dataloader_config["shuffle"], num_workers=train_dataloader_config["num_workers"]) val_dataset_loader = torch.utils.data.DataLoader( dataset=val_dataset, batch_size=val_dataloader_config["batch_size"], collate_fn=collate_fn_BEV, shuffle=val_dataloader_config["shuffle"], num_workers=val_dataloader_config["num_workers"]) return train_dataset_loader, val_dataset_loader
def build(dataset_config, train_dataloader_config, val_dataloader_config, grid_size=[480, 360, 32]): data_path = train_dataloader_config["data_path"] train_imageset = train_dataloader_config["imageset"] val_imageset = val_dataloader_config["imageset"] train_ref = train_dataloader_config["return_ref"] val_ref = val_dataloader_config["return_ref"] label_mapping = dataset_config["label_mapping"] SemKITTI = get_pc_model_class(dataset_config['pc_dataset_type']) nusc = None if "nusc" in dataset_config['pc_dataset_type']: from nuscenes import NuScenes nusc = NuScenes(version='v1.0-trainval', dataroot=data_path, verbose=True) # nusc = NuScenes(version='v1.0-mini', dataroot=data_path, verbose=True) # print("list_lidarseg_categories:") # nusc.list_lidarseg_categories(sort_by='count') # print("lidarseg_idx2name_mapping:") # nusc.lidarseg_idx2name_mapping # print("lidarseg_name2idx_mapping:") # nusc.lidarseg_name2idx_mapping # my_sample = nusc.sample[87] # print("get_sample_lidarseg_stats:") # nusc.get_sample_lidarseg_stats(my_sample['token'], sort_by='count') train_pt_dataset = SemKITTI(data_path, imageset=train_imageset, return_ref=train_ref, label_mapping=label_mapping, nusc=nusc) val_pt_dataset = SemKITTI(data_path, imageset=val_imageset, return_ref=val_ref, label_mapping=label_mapping, nusc=nusc) train_dataset = get_model_class(dataset_config['dataset_type'])( train_pt_dataset, grid_size=grid_size, flip_aug=True, fixed_volume_space=dataset_config['fixed_volume_space'], max_volume_space=dataset_config['max_volume_space'], min_volume_space=dataset_config['min_volume_space'], ignore_label=dataset_config["ignore_label"], rotate_aug=True, scale_aug=True, transform_aug=True) val_dataset = get_model_class(dataset_config['dataset_type'])( val_pt_dataset, grid_size=grid_size, fixed_volume_space=dataset_config['fixed_volume_space'], max_volume_space=dataset_config['max_volume_space'], min_volume_space=dataset_config['min_volume_space'], ignore_label=dataset_config["ignore_label"], ) train_dataset_loader = torch.utils.data.DataLoader( dataset=train_dataset, batch_size=train_dataloader_config["batch_size"], collate_fn=collate_fn_BEV, shuffle=train_dataloader_config["shuffle"], num_workers=train_dataloader_config["num_workers"]) val_dataset_loader = torch.utils.data.DataLoader( dataset=val_dataset, batch_size=val_dataloader_config["batch_size"], collate_fn=collate_fn_BEV, shuffle=val_dataloader_config["shuffle"], num_workers=val_dataloader_config["num_workers"]) return train_dataset_loader, val_dataset_loader