Esempio n. 1
0
    def __init__(self, opt):
        super(LRHRSeg_BG_Dataset, self).__init__(opt, keys_ds=['LR', 'HR'])
        self.znorm = opt.get(
            'znorm',
            False)  # Alternative: images are z-normalized to the [-1,1] range
        # self.opt = opt
        # self.paths_LR = None
        # self.paths_HR = None
        self.paths_HR_bg = None  # HR images for background scenes
        self.LR_env = None
        self.HR_env = None
        self.HR_env_bg = None  # environment for lmdb

        # get images paths (and optional environments for lmdb) from dataroots
        self.paths_LR, self.paths_HR = get_dataroots_paths(
            opt, strict=False, keys_ds=self.keys_ds)

        # read backgrounds image list from lmdb or image files
        self.paths_HR_bg = util.get_image_paths(opt['data_type'],
                                                opt['dataroot_HR_bg'])

        if self.opt.get('data_type') == 'lmdb':
            self.LR_env = util._init_lmdb(
                opt.get('dataroot_' + self.keys_ds[0]))
            self.HR_env = util._init_lmdb(
                opt.get('dataroot_' + self.keys_ds[1]))
            self.HR_env_bg = util._init_lmdb(opt.get('dataroot_HR_bg'))

        assert len(self.paths_HR) == len(self.paths_HR_bg)

        self.random_scale_list = [1, 0.9, 0.8, 0.7, 0.6, 0.5]
        self.ratio = 10  # 10 OST data samples and 1 DIV2K general data samples(background)
Esempio n. 2
0
    def __init__(self, opt):
        """Initialize this dataset class.
        Parameters:
            opt (Option dictionary): stores all the experiment flags
        """
        super(AlignedDataset, self).__init__(opt, keys_ds=['LR', 'HR'])
        self.vars = self.opt.get('outputs', 'LRHR')  #'AB'
        self.ds_kernels = get_ds_kernels(self.opt)
        self.noise_patches = get_noise_patches(self.opt)
        set_transforms(self.opt.get('img_loader', 'cv2'))

        # get images paths (and optional environments for lmdb) from dataroots
        dir_AB = self.opt.get('dataroot', None) or self.opt.get(
            'dataroot_AB', None)
        if dir_AB:
            self.AB_env = None  # environment for lmdb
            self.AB_paths = get_single_dataroot_path(self.opt, dir_AB)
            if self.opt.get('data_type') == 'lmdb':
                self.AB_env = _init_lmdb(dir_AB)
        else:
            self.A_paths, self.B_paths = get_dataroots_paths(
                self.opt, strict=False, keys_ds=self.keys_ds)
            self.AB_paths = None
            self.A_env, self.B_env = None, None  # environment for lmdb

            if self.opt.get('data_type') == 'lmdb':
                self.A_env = _init_lmdb(
                    self.opt.get(f'dataroot_{self.keys_ds[0]}'))
                self.B_env = _init_lmdb(
                    self.opt.get(f'dataroot_{self.keys_ds[1]}'))

        # get reusable totensor params
        self.totensor_params = get_totensor_params(self.opt)
Esempio n. 3
0
    def __init__(self, opt):
        """Initialize this dataset class.
        Parameters:
            opt (Option dictionary): stores all the experiment flags
        """
        super(UnalignedDataset, self).__init__(opt, keys_ds=['A', 'B'])
        self.vars = self.opt.get('outputs', 'AB')
        self.A_env, self.B_env = None, None  # environment for lmdb
        self.noise_patches = get_noise_patches(self.opt)
        self.idx_case = 'serial' if self.opt.get('serial_batches',
                                                 None) else 'random'
        set_transforms(self.opt.get('img_loader', 'cv2'))

        # get images paths (and optional environments for lmdb) from dataroots
        dir_A = self.opt.get(f'dataroot_{self.keys_ds[0]}'
                             )  # create a path '/path/to/data/trainA'
        self.A_paths = get_single_dataroot_path(
            self.opt, dir_A)  # load images from '/path/to/data/trainA'
        dir_B = self.opt.get(f'dataroot_{self.keys_ds[1]}'
                             )  # create a path '/path/to/data/trainB'
        self.B_paths = get_single_dataroot_path(
            self.opt, dir_B)  # load images from '/path/to/data/trainB'

        if self.opt.get('data_type') == 'lmdb':
            self.A_env = _init_lmdb(dir_A)
            self.B_env = _init_lmdb(dir_B)

        assert self.A_paths, f'Error: image path {dir_A} empty.'
        assert self.B_paths, f'Error: image path {dir_B} empty.'

        self.A_size = len(self.A_paths)  # get the size of dataset A
        self.B_size = len(self.B_paths)  # get the size of dataset B

        # TODO: fix with change color space, etc
        # BtoA = self.opt.get('direction') == 'BtoA'
        # # get the number of channels of input image
        # input_nc = self.opt.get('output_nc') if BtoA else self.opt.get('input_nc')
        # # get the number of channels of output image
        # output_nc = self.opt.get('input_nc') if BtoA else self.opt.get('output_nc')

        # get reusable totensor params
        self.totensor_params = get_totensor_params(self.opt)
Esempio n. 4
0
    def __init__(self, opt):
        """Initialize this dataset class.
        Parameters:
            opt (Option dictionary): stores all the experiment flags
        """
        super(SingleDataset, self).__init__(opt, keys_ds=['LR', 'HR'])
        self.vars = self.opt.get('outputs', 'LR')  #'A'
        self.A_env = None  # environment for lmdb
        set_transforms(self.opt.get('img_loader', 'cv2'))

        # get images paths (and optional environments for lmdb) from dataroots
        dir_A = self.opt.get(f'dataroot_{self.keys_ds[0]}')
        self.A_paths = get_single_dataroot_path(self.opt, dir_A)
        if self.opt.get('data_type') == 'lmdb':
            self.A_env = _init_lmdb(dir_A)

        # get reusable totensor transform
        totensor_params = get_totensor_params(self.opt)
        self.tensor_transform = get_totensor(self.opt,
                                             params=totensor_params,
                                             toTensor=True,
                                             grayscale=False)

        assert self.A_paths, f'Error: image path {dir_A} empty.'