コード例 #1
0
    def __init__(self,
                 root,
                 output_size,
                 dataset_file='meta.json',
                 clip_n=3,
                 max_obj_n=11):
        self.root = root
        self.clip_n = clip_n
        self.output_size = output_size
        self.max_obj_n = max_obj_n

        dataset_path = os.path.join(root, dataset_file)
        with open(dataset_path, 'r') as json_file:
            meta_data = json.load(json_file)

        self.dataset_list = list(meta_data['videos'])
        self.dataset_size = len(self.dataset_list)

        self.random_horizontal_flip = mytrans.RandomHorizontalFlip(0.3)
        self.color_jitter = TF.ColorJitter(0.1, 0.1, 0.1, 0.02)
        self.random_affine = mytrans.RandomAffine(degrees=15,
                                                  translate=(0.1, 0.1),
                                                  scale=(0.95, 1.05),
                                                  shear=10)
        self.random_resize_crop = mytrans.RandomResizedCrop(
            output_size, (0.3, 0.5), (0.95, 1.05))
        self.to_tensor = TF.ToTensor()
        self.to_onehot = mytrans.ToOnehot(max_obj_n, shuffle=True)
コード例 #2
0
    def __init__(self,
                 root,
                 output_size,
                 imset='2017/train.txt',
                 clip_n=3,
                 max_obj_n=11):
        self.root = root
        self.clip_n = clip_n
        self.output_size = output_size
        self.max_obj_n = max_obj_n

        dataset_path = os.path.join(root, 'ImageSets', imset)
        self.dataset_list = list()
        with open(os.path.join(dataset_path), 'r') as lines:
            for line in lines:
                dataset_name = line.strip()
                if len(dataset_name) > 0:
                    self.dataset_list.append(dataset_name)

        self.random_horizontal_flip = mytrans.RandomHorizontalFlip(0.3)
        self.color_jitter = TF.ColorJitter(0.1, 0.1, 0.1, 0.02)
        self.random_affine = mytrans.RandomAffine(degrees=15,
                                                  translate=(0.1, 0.1),
                                                  scale=(0.95, 1.05),
                                                  shear=10)
        self.random_resize_crop = mytrans.RandomResizedCrop(
            output_size, (0.8, 1), (0.95, 1.05))
        self.to_tensor = TF.ToTensor()
        self.to_onehot = mytrans.ToOnehot(max_obj_n, shuffle=True)
コード例 #3
0
    def __init__(self, root, dataset_file='videos.txt', max_obj_n=5):

        self.root = root
        self.dataset_list = list()

        with open(os.path.join(root, dataset_file), 'r') as lines:
            for line in lines:
                dataset_name = line.strip()
                if len(dataset_name) > 0:
                    self.dataset_list.append(dataset_name)

        self.to_tensor = TF.ToTensor()
        self.to_onehot = mytrans.ToOnehot(max_obj_n, shuffle=False)
コード例 #4
0
    def __init__(self,
                 root,
                 img_set='2017/val.txt',
                 max_obj_n=11,
                 single_obj=False):
        self.root = root
        self.single_obj = single_obj
        dataset_path = os.path.join(root, 'ImageSets', img_set)
        self.dataset_list = list()

        with open(os.path.join(dataset_path), 'r') as lines:
            for line in lines:
                dataset_name = line.strip()
                if len(dataset_name) > 0:
                    self.dataset_list.append(dataset_name)

        self.to_tensor = TF.ToTensor()
        self.to_onehot = mytrans.ToOnehot(max_obj_n, shuffle=False)
コード例 #5
0
    def __init__(self,
                 root,
                 dataset_file='meta.json',
                 output_size=(495, 880),
                 max_obj_n=11):
        self.root = root
        self.max_obj_n = max_obj_n
        self.out_h, self.out_w = output_size

        dataset_path = os.path.join(root, dataset_file)
        with open(dataset_path, 'r') as json_file:
            self.meta_data = json.load(json_file)

        self.dataset_list = list(self.meta_data['videos'])
        self.dataset_size = len(self.dataset_list)

        self.to_tensor = TF.ToTensor()
        self.to_onehot = mytrans.ToOnehot(max_obj_n, shuffle=False)
コード例 #6
0
    def __init__(self, img_dir, mask_dir):
        self.img_list = sorted(
            glob(os.path.join(img_dir, '*.jpg')) +
            glob(os.path.join(img_dir, '*.png')))
        self.mask_list = sorted(glob(os.path.join(mask_dir, '*.png')))

        first_mask = myutils.load_image_in_PIL(self.mask_list[0], 'P')
        first_frame = myutils.load_image_in_PIL(self.img_list[0])
        self.first_name = os.path.basename(self.img_list[0])[:-4]

        first_mask = np.array(first_mask, np.uint8)
        self.obj_n = first_mask.max() + 1
        self.img_list = self.img_list[1:]
        self.video_len = len(self.img_list)

        self.to_tensor = TF.ToTensor()
        self.to_onehot = mytrans.ToOnehot(self.obj_n, shuffle=False)

        first_mask, _ = self.to_onehot(first_mask)
        self.first_frame = self.to_tensor(first_frame)
        self.first_mask = first_mask[:self.obj_n]
コード例 #7
0
    def __init__(self, root, output_size, dataset_file='./assets/pretrain.txt', clip_n=3, max_obj_n=11):
        self.root = root
        self.clip_n = clip_n
        self.output_size = output_size
        self.max_obj_n = max_obj_n

        self.img_list = list()
        self.mask_list = list()

        dataset_list = list()
        with open(os.path.join(dataset_file), 'r') as lines:
            for line in lines:
                dataset_name = line.strip()

                img_dir = os.path.join(root, 'JPEGImages', dataset_name)
                mask_dir = os.path.join(root, 'Annotations', dataset_name)

                img_list = sorted(glob(os.path.join(img_dir, '*.jpg'))) + sorted(glob(os.path.join(img_dir, '*.png')))
                mask_list = sorted(glob(os.path.join(mask_dir, '*.png')))

                if len(img_list) > 0:
                    if len(img_list) == len(mask_list):
                        dataset_list.append(dataset_name)
                        self.img_list += img_list
                        self.mask_list += mask_list
                        print(f'\t{dataset_name}: {len(img_list)} imgs.')
                    else:
                        print(f'\tPreTrain dataset {dataset_name} has {len(img_list)} imgs and {len(mask_list)} annots. Not match! Skip.')
                else:
                    print(f'\tPreTrain dataset {dataset_name} doesn\'t exist. Skip.')

        print(myutils.gct(), f'{len(self.img_list)} imgs are used for PreTrain. They are from {dataset_list}.')

        self.random_horizontal_flip = mytrans.RandomHorizontalFlip(0.3)
        self.color_jitter = TF.ColorJitter(0.1, 0.1, 0.1, 0.03)
        self.random_affine = mytrans.RandomAffine(degrees=20, translate=(0.1, 0.1), scale=(0.9, 1.1), shear=10)
        self.random_resize_crop = mytrans.RandomResizedCrop(output_size, (0.8, 1))
        self.to_tensor = TF.ToTensor()
        self.to_onehot = mytrans.ToOnehot(max_obj_n, shuffle=True)