BasicSR
72 строки · 2.1 Кб
1import math2import os3import torchvision.utils4
5from basicsr.data import build_dataloader, build_dataset6
7
8def main(mode='folder'):9"""Test reds dataset.10
11Args:
12mode: There are two modes: 'lmdb', 'folder'.
13"""
14opt = {}15opt['dist'] = False16opt['phase'] = 'train'17
18opt['name'] = 'REDS'19opt['type'] = 'REDSDataset'20if mode == 'folder':21opt['dataroot_gt'] = 'datasets/REDS/train_sharp'22opt['dataroot_lq'] = 'datasets/REDS/train_sharp_bicubic'23opt['dataroot_flow'] = None24opt['meta_info_file'] = 'basicsr/data/meta_info/meta_info_REDS_GT.txt'25opt['io_backend'] = dict(type='disk')26elif mode == 'lmdb':27opt['dataroot_gt'] = 'datasets/REDS/train_sharp_with_val.lmdb'28opt['dataroot_lq'] = 'datasets/REDS/train_sharp_bicubic_with_val.lmdb'29opt['dataroot_flow'] = None30opt['meta_info_file'] = 'basicsr/data/meta_info/meta_info_REDS_GT.txt'31opt['io_backend'] = dict(type='lmdb')32
33opt['val_partition'] = 'REDS4'34opt['num_frame'] = 535opt['gt_size'] = 25636opt['interval_list'] = [1]37opt['random_reverse'] = True38opt['use_hflip'] = True39opt['use_rot'] = True40
41opt['num_worker_per_gpu'] = 142opt['batch_size_per_gpu'] = 1643opt['scale'] = 444
45opt['dataset_enlarge_ratio'] = 146
47os.makedirs('tmp', exist_ok=True)48
49dataset = build_dataset(opt)50data_loader = build_dataloader(dataset, opt, num_gpu=0, dist=opt['dist'], sampler=None)51
52nrow = int(math.sqrt(opt['batch_size_per_gpu']))53padding = 2 if opt['phase'] == 'train' else 054
55print('start...')56for i, data in enumerate(data_loader):57if i > 5:58break59print(i)60
61lq = data['lq']62gt = data['gt']63key = data['key']64print(key)65for j in range(opt['num_frame']):66torchvision.utils.save_image(67lq[:, j, :, :, :], f'tmp/lq_{i:03d}_frame{j}.png', nrow=nrow, padding=padding, normalize=False)68torchvision.utils.save_image(gt, f'tmp/gt_{i:03d}.png', nrow=nrow, padding=padding, normalize=False)69
70
71if __name__ == '__main__':72main()73