Esempio n. 1
0
    def transform_tr(self, sample):
        composed_transforms = transforms.Compose([
            tr.RandomHorizontalFlip(),
            tr.RandomScaleCrop(base_size=self.args.image_size, crop_size=self.args.crop_size),
            tr.RandomGaussianBlur(),
            tr.Normalize(mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225)),
            tr.ToTensor()])

        return composed_transforms(sample)
    def transform_tr(self, sample):
        composed_transforms = transforms.Compose([
            tr.RandomHorizontalFlip(),
            tr.RandomVerticalFlip(),
            tr.RandomScaleCrop(base_size=self.args.base_size,
                               crop_size=self.args.crop_size,
                               fill=255),
            tr.RandomRotate(),
            tr.RandomGaussianBlur(),
            tr.RandomNoise(),
            # mean and std calculated by calculateMeanStd.py
            tr.Normalize(mean=(0.656963, 0.621670, 0.550278),
                         std=(0.300198, 0.303201, 0.334976)),
            tr.ToTensor()
        ])

        return composed_transforms(sample)
    def __init__(self,
                 args,
                 split,
                 inputRes,
                 augment=False,
                 transform=None,
                 target_transform=None):
        self._year = args.year
        self._phase = split
        self.transform = transform
        self.target_transform = target_transform
        self.inputRes = inputRes
        self.augment = augment
        self.augment_transform = None
        self._single_object = False

        assert args.year == "2017" or args.year == "2016"

        if augment:
            self.augment_transform = transforms.Compose([
                tr.RandomHorizontalFlip(),
                tr.ScaleNRotate(rots=(-args.rotation, args.rotation),
                                scales=(.75, 1.25))
            ])

        self.imagefiles = []
        self.maskfiles = []
        self.flowfiles = []
        self.edgefiles = []
        self.hedfiles = []

        if split == 'train':
            self.load_davis(args)
            self.load_youtubevos(args)
        else:
            self.load_davis(args)
Esempio n. 4
0
    def __init__(self, args, split, inputRes, augment=False,
                 transform=None, target_transform=None):
        self._year = args.year
        self._phase = split
        self.transform = transform
        self.target_transform = target_transform
        self.inputRes = inputRes
        self.augment = augment
        self.augment_transform = None
        self._single_object = False

        assert args.year == "2017" or args.year == "2016"

        if augment:
            self.augment_transform = transforms.Compose([
                tr.RandomHorizontalFlip(),
                tr.ScaleNRotate(rots=(-args.rotation, args.rotation),
                                scales=(.75, 1.25))])

        self._db_sequences = db_read_sequences(args.year, self._phase)

        # Check lmdb existance. If not proceed with standard dataloader.
        lmdb_env_seq_dir = osp.join(cfg.PATH.DATA, 'lmdb_seq')
        lmdb_env_annot_dir = osp.join(cfg.PATH.DATA, 'lmdb_annot')

        if osp.isdir(lmdb_env_seq_dir) and osp.isdir(lmdb_env_annot_dir):
            lmdb_env_seq = lmdb.open(lmdb_env_seq_dir)
            lmdb_env_annot = lmdb.open(lmdb_env_annot_dir)
        else:
            lmdb_env_seq = None
            lmdb_env_annot = None
            print('LMDB not found. This could affect the data loading time. It is recommended to use LMDB.')

        self.sequences = [Sequence(self._phase, s.name, lmdb_env=lmdb_env_seq) for s in self._db_sequences]
        self._db_sequences = db_read_sequences(args.year, self._phase)

        # Load annotations
        self.annotations = [Annotation(self._phase,s.name, self._single_object, lmdb_env=lmdb_env_annot) for s in self._db_sequences]
        self._db_sequences = db_read_sequences(args.year, self._phase)

        # Load Videos
        self.videos = []
        for seq, s in zip(self.sequences, self._db_sequences):
            if s['set'] == self._phase:
                self.videos.append(s['name'])

        self.imagefiles = []
        self.maskfiles = []
        self.flowfiles = []
        self.edgefiles = []

        for _video in self.videos:
            imagefiles = sorted(glob.glob(os.path.join(cfg.PATH.SEQUENCES, _video, '*.jpg')))
            maskfiles = sorted(glob.glob(os.path.join(cfg.PATH.ANNOTATIONS, _video, '*.png')))
            flowfiles = sorted(glob.glob(os.path.join(cfg.PATH.FLOW, _video, '*.png')))
            edgefiles = sorted(glob.glob(os.path.join(cfg.PATH.ANNOTATIONS_EDGE, _video, '*.png')))

            self.imagefiles.extend(imagefiles[:-1])
            self.maskfiles.extend(maskfiles[:-1])
            self.flowfiles.extend(flowfiles)
            self.edgefiles.extend(edgefiles[:-1])

        print('images: ', len(self.imagefiles))
        print('masks: ', len(self.maskfiles))

        assert(len(self.imagefiles) == len(self.maskfiles) == len(self.flowfiles) == len(self.edgefiles))
Esempio n. 5
0
joint_transform = joint_transforms.Compose([
    joint_transforms.ImageResize(520),
    joint_transforms.RandomCrop(473),
    joint_transforms.RandomHorizontallyFlip(),
    joint_transforms.RandomRotate(10)
])
img_transform = transforms.Compose([
    transforms.ToTensor(),
    transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
])

target_transform = transforms.ToTensor()

davis_transforms = transforms.Compose([
    tr.RandomHorizontalFlip(),
    tr.ScaleNRotate(rots=(-30, 30), scales=(.75, 1.25)),
    tr.ToTensor()]
)



# train_set = ImageFolder(msra10k_path, joint_transform, img_transform, target_transform)
if args['train_loader'] == 'video_sequence':
    train_set = VideoSequenceFolder(video_seq_path, video_seq_gt_path, imgs_file, joint_transform, img_transform, target_transform)
else:
    # train_set = DAVIS2016(db_root_dir='/home/ty/data/davis', train=True, transform=None)
    train_set = DAVIS_Single(db_image_dir='/home/ty/data/Pre-train', train=True, transform=None)
    # train_set = VideoImageFolder(video_train_path, imgs_file, joint_transform, img_transform, target_transform)

train_loader = DataLoader(train_set, batch_size=args['train_batch_size'], num_workers=4, shuffle=True)
Esempio n. 6
0
    def __init__(self,
                 args,
                 transform=None,
                 target_transform=None,
                 augment=False,
                 split='train',
                 inputRes=None):

        self._phase = split
        self._single_object = args.single_object
        self._length_clip = args.length_clip
        self.transform = transform
        self.target_transform = target_transform
        self.split = split
        self.inputRes = inputRes
        self.max_seq_len = args.gt_maxseqlen
        self.dataset = args.dataset
        self.flip = augment

        if augment:
            self.augment_transform = transforms.Compose([
                tr.RandomHorizontalFlip(),
                tr.ScaleNRotate(rots=(-args.rotation, args.rotation),
                                scales=(.75, 1.25))
            ])
        else:
            self.augment_transform = None

        if self._phase == phase.TRAIN.value:
            self._db_sequences = db_read_sequences_train()
        elif self._phase == phase.VAL.value:
            self._db_sequences = db_read_sequences_val()
        elif self._phase == phase.TRAINVAL.value:
            self._db_sequences = db_read_sequences_trainval()
        else:  #self._phase == 'test':
            self._db_sequences = db_read_sequences_test()

        # Check lmdb existance. If not proceed with standard dataloader.
        lmdb_env_seq_dir = osp.join(cfg.PATH.DATA, 'lmdb_seq')
        lmdb_env_annot_dir = osp.join(cfg.PATH.DATA, 'lmdb_annot')

        if osp.isdir(lmdb_env_seq_dir) and osp.isdir(lmdb_env_annot_dir):
            lmdb_env_seq = lmdb.open(lmdb_env_seq_dir)
            lmdb_env_annot = lmdb.open(lmdb_env_annot_dir)
        else:
            lmdb_env_seq = None
            lmdb_env_annot = None
            print(
                'LMDB not found. This could affect the data loading time. It is recommended to use LMDB.'
            )

        # Load sequences
        self.sequences = [
            Sequence(self._phase, s, lmdb_env=lmdb_env_seq)
            for s in self._db_sequences
        ]

        # Load annotations
        self.annotations = [
            Annotation(self._phase,
                       s,
                       self._single_object,
                       lmdb_env=lmdb_env_annot) for s in self._db_sequences
        ]

        # Load sequences
        self.videos = []
        for seq, s in zip(self.sequences, self._db_sequences):
            self.videos.append(s)

        self.imagefiles = []
        self.maskfiles = []

        for _video in self.videos:
            imagefiles = sorted(
                glob.glob(
                    os.path.join(cfg.PATH.SEQUENCES_TRAIN, _video, '*.jpg')))
            maskfiles = sorted(
                glob.glob(
                    os.path.join(cfg.PATH.ANNOTATIONS_TRAIN, _video, '*.png')))

            self.imagefiles.extend(imagefiles)
            self.maskfiles.extend(maskfiles)
        print('images: ', len(self.imagefiles))
        print('masks: ', len(self.maskfiles))