def get_data_fields(mode, cfg): ''' Returns the data fields. Args: mode (str): the mode which is used cfg (dict): imported yaml config ''' points_transform = data.SubsamplePoints(cfg['data']['points_subsample']) with_transforms = cfg['model']['use_camera'] fields = {} fields['points'] = data.PointsField( cfg['data']['points_file'], points_transform, with_transforms=with_transforms, unpackbits=cfg['data']['points_unpackbits'], ) if mode in ('val', 'test'): points_iou_file = cfg['data']['points_iou_file'] voxels_file = cfg['data']['voxels_file'] if points_iou_file is not None: fields['points_iou'] = data.PointsField( points_iou_file, with_transforms=with_transforms, unpackbits=cfg['data']['points_unpackbits'], ) if voxels_file is not None: fields['voxels'] = data.VoxelsField(voxels_file) return fields
def get_data_fields(split, cfg, **kwargs): ''' Returns the data fields. Args: split (str): the split which should be used cfg (dict): loaded yaml config ''' with_transforms = cfg['data']['with_transforms'] fields = {} if split == 'train': fields['voxels'] = data.VoxelsField(cfg['data']['voxels_file']) elif split in ('val', 'test'): fields['points_iou'] = data.PointsField( cfg['data']['points_iou_file'], with_transforms=with_transforms, unpackbits=cfg['data']['points_unpackbits'], ) return fields
if args.generation_dir == "": generation_dir = os.path.join(out_dir, cfg['generation']['generation_dir']) else: generation_dir = os.path.join(out_dir, args.generation_dir) if not args.eval_input: out_file = os.path.join(generation_dir, 'eval_meshes_full.pkl') out_file_class = os.path.join(generation_dir, 'eval_meshes.csv') else: out_file = os.path.join(generation_dir, 'eval_input_full.pkl') out_file_class = os.path.join(generation_dir, 'eval_input.csv') # Dataset points_field = data.PointsField( cfg['data']['points_iou_file'], unpackbits=cfg['data']['points_unpackbits'], ) pointcloud_field = data.PointCloudField(cfg['data']['pointcloud_chamfer_file']) fields = { 'points_iou': points_field, 'pointcloud_chamfer': pointcloud_field, 'idx': data.IndexField(), } print('Test split: ', cfg['data']['test_split']) if args.da: dataset_folder = cfg['data']['uda_path'] categories_to_use = cfg['data']['uda_classes'] else: dataset_folder = cfg['data']['path']
if not args.eval_input: out_file = os.path.join(generation_dir, 'eval_meshes_full.pkl') out_file_class = os.path.join(generation_dir, 'eval_meshes.csv') else: out_file = os.path.join(generation_dir, 'eval_input_full.pkl') out_file_class = os.path.join(generation_dir, 'eval_input.csv') # Dataset if 'test_range' in cfg['data']: input_range = cfg['data']['test_range'] print('Test range:', input_range) else: input_range = None points_field = data.PointsField(cfg['data']['points_iou_file'], unpackbits=cfg['data']['points_unpackbits'], input_range=input_range) pointcloud_field = data.PointCloudField(cfg['data']['pointcloud_chamfer_file']) fields = { 'points_iou': points_field, 'pointcloud_chamfer': pointcloud_field, 'idx': data.IndexField(), } print('Test split: ', cfg['data']['test_split']) dataset_folder = cfg['data']['path'] dataset = data.Shapes3dDataset(dataset_folder, fields, cfg['data']['test_split'], categories=cfg['data']['classes'])
def get_data_fields(mode, cfg): ''' Returns the data fields. Args: mode (str): the mode which is used cfg (dict): imported yaml config ''' points_transform = data.SubsamplePoints(cfg['data']['points_subsample']) if cfg.get('sdf_generation', False): points_transform = None with_transforms = cfg['model']['use_camera'] fields = {} fields['points'] = data.PointsField( cfg['data']['points_file'], points_transform, with_transforms=with_transforms, unpackbits=cfg['data']['points_unpackbits'], ) if not cfg.get('sdf_generation', False) and cfg['trainer'].get( 'is_sdf', False): sdf_points_transform = data.SubsampleSDFPoints( cfg['data']['points_subsample']) fields['sdf_points'] = data.SDFPointsField( cfg['data']['sdf_points_file'], sdf_points_transform, with_transforms=with_transforms) pointcloud_transform = data.SubsamplePointcloud( cfg['data']['pointcloud_target_n']) if cfg.get('sdf_generation', False): pointcloud_transform = None fields['pointcloud'] = data.PointCloudField(cfg['data']['pointcloud_file'], pointcloud_transform, with_transforms=True) fields['angles'] = nsd_data.SphericalCoordinateField( cfg['data']['primitive_points_sample_n'], mode, is_normal_icosahedron=cfg['data'].get('is_normal_icosahedron', False), is_normal_uv_sphere=cfg['data'].get('is_normal_uv_sphere', False), icosahedron_subdiv=cfg['data'].get('icosahedron_subdiv', 2), icosahedron_uv_margin=cfg['data'].get('icosahedron_uv_margin', 1e-5), icosahedron_uv_margin_phi=cfg['data'].get('icosahedron_uv_margin_phi', 1e-5), uv_sphere_length=cfg['data'].get('uv_sphere_length', 20), normal_mesh_no_invert=cfg['data'].get('normal_mesh_no_invert', False)) if mode in ('val', 'test'): points_iou_file = cfg['data']['points_iou_file'] voxels_file = cfg['data']['voxels_file'] if points_iou_file is not None: fields['points_iou'] = data.PointsField( points_iou_file, with_transforms=with_transforms, unpackbits=cfg['data']['points_unpackbits'], ) if voxels_file is not None: fields['voxels'] = data.VoxelsField(voxels_file) return fields
def get_occ_data_fields(mode, cfg): ''' Returns the data fields. Args: mode (str): the mode which is used cfg (dict): imported yaml config ''' N = cfg['data']['points_subsample'] points_transform = data.SubsamplePoints(cfg['data']['points_subsample']) with_transforms = cfg['model']['use_camera'] if mode == 'train': if 'input_range' in cfg['data']: input_range = cfg['data']['input_range'] print('Input range:', input_range) else: input_range = None else: if 'test_range' in cfg['data']: input_range = cfg['data']['test_range'] print('Test range:', input_range) else: input_range = None fields = {} points_file = cfg['data']['points_file'] if points_file.endswith('.npz'): fields['points'] = data.PointsField( cfg['data']['points_file'], points_transform, with_transforms=with_transforms, unpackbits=cfg['data']['points_unpackbits'], input_range=input_range ) elif points_file.endswith('.h5'): fields['points'] = data.PointsH5Field( cfg['data']['points_file'], subsample_n=N, with_transforms=with_transforms, input_range=input_range ) else: raise NotImplementedError if mode in ('val', 'test'): points_iou_file = cfg['data']['points_iou_file'] voxels_file = cfg['data']['voxels_file'] if points_iou_file is not None: if points_iou_file.endswith('.npz'): fields['points_iou'] = data.PointsField( points_iou_file, with_transforms=with_transforms, unpackbits=cfg['data']['points_unpackbits'], input_range=input_range ) elif points_iou_file.endswith('.h5'): fields['points_iou'] = data.PointsH5Field( points_iou_file, with_transforms=with_transforms, input_range=input_range ) else: raise NotImplementedError if voxels_file is not None: fields['voxels'] = data.VoxelsField(voxels_file) return fields