def get_inputs_field(mode, cfg): ''' Returns the inputs fields. Args: mode (str): the mode which is used cfg (dict): config dictionary ''' input_type = cfg['data']['input_type'] if input_type is None: inputs_field = None elif input_type == 'img_seq': if mode == 'train' and cfg['data']['img_augment']: resize_op = transforms.RandomResizedCrop(cfg['data']['img_size'], (0.75, 1.), (1., 1.)) else: resize_op = transforms.Resize((cfg['data']['img_size'])) transform = transforms.Compose([ resize_op, transforms.ToTensor(), ]) if mode == 'train': random_view = True else: random_view = False inputs_field = data.ImageSubseqField(cfg['data']['img_seq_folder'], transform, random_view=random_view) elif input_type == 'pcl_seq': connected_samples = cfg['data']['input_pointcloud_corresponding'] transform = transforms.Compose([ data.SubsamplePointcloudSeq(cfg['data']['input_pointcloud_n'], connected_samples=connected_samples), data.PointcloudNoise(cfg['data']['input_pointcloud_noise']) ]) inputs_field = data.PointCloudSubseqField( cfg['data']['pointcloud_seq_folder'], transform, seq_len=cfg['data']['length_sequence']) elif input_type == 'end_pointclouds': transform = data.SubsamplePointcloudSeq( cfg['data']['input_pointcloud_n'], connected_samples=cfg['data']['input_pointcloud_corresponding']) inputs_field = data.PointCloudSubseqField( cfg['data']['pointcloud_seq_folder'], only_end_points=True, seq_len=cfg['data']['length_sequence'], transform=transform) elif input_type == 'idx': inputs_field = data.IndexField() else: raise ValueError('Invalid input type (%s)' % input_type) return inputs_field
def get_data_fields(mode, cfg): ''' Returns the data fields. Args: mode (str): mode (train|val|test) cfg (yaml file): yaml config file ''' fields = {} # Define transform operation if mode == 'train': transform = data.SubsamplePointcloudSeq( cfg['data']['n_training_pcl_points'], connected_samples=True) else: transform = data.SubsamplePointcloudSeq( cfg['training']['n_eval_points'], random=False) # Define points field fields['points_mesh'] = data.PointCloudSubseqField( cfg['data']['pointcloud_seq_folder'], transform=transform, ) return fields
out_dir = cfg['training']['out_dir'] generation_dir = os.path.join(out_dir, cfg['generation']['generation_dir']) project_to_final_mesh = cfg['test']['project_to_final_mesh'] if not args.eval_input: out_file = os.path.join(generation_dir, 'eval_meshes_full.pkl') out_file_tmp = os.path.join(generation_dir, 'eval_meshes_full_tmp.pkl') out_file_class = os.path.join(generation_dir, 'eval_meshes.csv') out_file_class_tmp = os.path.join(generation_dir, 'eval_meshes_tmp.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 fields = { 'pointcloud_chamfer': data.PointCloudSubseqField(cfg['data']['pointcloud_seq_folder'], seq_len=cfg['data']['length_sequence']), 'idx': data.IndexField(), } if cfg['test']['eval_mesh_iou']: fields['points'] = data.PointsSubseqField( cfg['data']['points_iou_seq_folder'], all_steps=True, seq_len=cfg['data']['length_sequence']) print('Test split: ', cfg['data']['test_split']) dataset = data.HumansDataset( dataset_folder, fields, split=cfg['data']['test_split'],
out_dir = cfg['training']['out_dir'] generation_dir = os.path.join(out_dir, cfg['generation']['generation_dir']) project_to_final_mesh = cfg['test']['project_to_final_mesh'] if not args.eval_input: out_file = os.path.join(generation_dir, 'eval_meshes_full.pkl') out_file_tmp = os.path.join(generation_dir, 'eval_meshes_full_tmp.pkl') out_file_class = os.path.join(generation_dir, 'eval_meshes.csv') out_file_class_tmp = os.path.join(generation_dir, 'eval_meshes_tmp.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 fields = { 'pointcloud_chamfer': data.PointCloudSubseqField( cfg['data']['pointcloud_seq_folder'], seq_len=cfg['data']['length_sequence'], select_steps=cfg['data']['select_steps']), 'idx': data.IndexField(), } if cfg['test']['eval_mesh_iou']: fields['points'] = data.PointsSubseqField( cfg['data']['points_iou_seq_folder'], all_steps=True, seq_len=cfg['data']['length_sequence'], select_steps=cfg['data']['select_steps'], unpackbits=cfg['data']['points_unpackbits']) print('Test split: ', cfg['data']['test_split']) dataset = data.HumansDataset( dataset_folder, fields, split=cfg['data']['test_split'],