Esempio n. 1
0
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
Esempio n. 2
0
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
Esempio n. 3
0
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'],
Esempio n. 4
0
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'],