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)
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))
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)
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))