def get_presize_combine_transforms_V4(): transforms_presize = A.Compose([ transforms.PadIfNeeded(600, 800), geometric.Perspective( scale=[0, .1], pad_mode=cv2.BORDER_REFLECT, interpolation=cv2.INTER_AREA, p = .3), transforms.Flip(), geometric.ShiftScaleRotate(interpolation=cv2.INTER_LANCZOS4, p = 0.95, scale_limit=0.0), crops.RandomResizedCrop( TARGET_SIZE, TARGET_SIZE, scale=(config['rrc_scale_min'], config['rrc_scale_max']), ratio=(.70, 1.4), interpolation=cv2.INTER_CUBIC, p=1.0), transforms.Transpose() #rotate.Rotate(interpolation=cv2.INTER_LANCZOS4, p = 0.99), ]) transforms_postsize = A.Compose([ #imgaug.IAAPiecewiseAffine(), transforms.CoarseDropout(), transforms.CLAHE(p=.1), transforms.RandomToneCurve(scale=.1, p=0.2), transforms.RandomBrightnessContrast( brightness_limit=.1, contrast_limit=0.4, p=.8), transforms.HueSaturationValue( hue_shift_limit=20, sat_shift_limit=50, val_shift_limit=0, p=0.5), transforms.Equalize(p=0.05), transforms.FancyPCA(p=0.05), transforms.RandomGridShuffle(p=0.1), A.OneOf([ transforms.MotionBlur(blur_limit=(3, 9)), transforms.GaussianBlur(), transforms.MedianBlur() ], p=0.1), transforms.ISONoise(p=.2), transforms.GaussNoise(var_limit=127., p=.3), A.OneOf([ transforms.GridDistortion(interpolation=cv2.INTER_AREA, distort_limit=[0.7, 0.7], p=0.5), transforms.OpticalDistortion(interpolation=cv2.INTER_AREA, p=.3), ], p=.3), geometric.ElasticTransform(alpha=4, sigma=4, alpha_affine=4, interpolation=cv2.INTER_AREA, p=0.3), transforms.CoarseDropout(), transforms.Normalize(), ToTensorV2() ]) return transforms_presize, transforms_postsize
def get_presize_combine_tune_transforms(): transforms_presize = A.Compose([ transforms.Transpose(), transforms.Flip(), #transforms.PadIfNeeded(600, 800), crops.RandomResizedCrop( TARGET_SIZE, TARGET_SIZE, scale=(.75, 1), interpolation=cv2.INTER_CUBIC, p=1.0), rotate.Rotate(interpolation=cv2.INTER_LANCZOS4, p = 0.99), ]) transforms_postsize = A.Compose([ transforms.CoarseDropout(), # transforms.CLAHE(p=.1), transforms.RandomToneCurve(scale=.1), transforms.RandomBrightnessContrast( brightness_limit=.1, contrast_limit=0.2, p=.7), transforms.HueSaturationValue( hue_shift_limit=20, sat_shift_limit=60, val_shift_limit=0, p=0.6), #transforms.Equalize(p=0.1), #transforms.FancyPCA(p=0.05), #transforms.RandomGridShuffle(p=0.1), #A.OneOf([ # transforms.MotionBlur(blur_limit=(3, 9)), # transforms.GaussianBlur(), # transforms.MedianBlur() # ], p=0.2), transforms.ISONoise(p=.3), transforms.GaussNoise(var_limit=255., p=.3), #A.OneOf([ # transforms.GridDistortion(interpolation=cv2.INTER_AREA, distort_limit=[0.7, 0.7], p=0.5), # transforms.OpticalDistortion(interpolation=cv2.INTER_AREA, p=.3), # ], p=.3), geometric.ElasticTransform(alpha=4, sigma=100, alpha_affine=100, interpolation=cv2.INTER_AREA, p=0.3), transforms.CoarseDropout(), transforms.Normalize(), ToTensorV2() ]) return transforms_presize, transforms_postsize
def CoarseDropout(max_holes=1, max_height=30, max_width=30, fill_value=0, p=0.5): return transforms.CoarseDropout(max_holes=max_holes, max_height=max_height, max_width=max_width, fill_value=fill_value, p=p)
def get_train_transforms(): return A.Compose([ transforms.PadIfNeeded(600, 800), geometric.ShiftScaleRotate(interpolation=cv2.INTER_LANCZOS4, p = 0.99, scale_limit=0.8), geometric.Perspective(pad_mode=cv2.BORDER_REFLECT,interpolation=cv2.INTER_AREA), crops.RandomResizedCrop( TARGET_SIZE, TARGET_SIZE, scale=(config['rrc_scale_min'], config['rrc_scale_max']), interpolation=cv2.INTER_CUBIC, p=1.0), transforms.Transpose(), transforms.Flip(), transforms.CoarseDropout(), transforms.CLAHE(p=.1), transforms.RandomToneCurve(scale=.1), transforms.RandomBrightnessContrast( brightness_limit=.1, contrast_limit=0.3, p=.7), transforms.HueSaturationValue( hue_shift_limit=20, sat_shift_limit=60, val_shift_limit=0, p=0.6), transforms.RandomGridShuffle(p=0.1), A.OneOf([ transforms.MotionBlur(blur_limit=(3, 9)), transforms.GaussianBlur(), transforms.MedianBlur() ], p=0.2), transforms.ISONoise(p=.3), transforms.GaussNoise(var_limit=255., p=.3), A.OneOf([ transforms.GridDistortion(interpolation=cv2.INTER_AREA, distort_limit=[0.7, 0.7], p=0.5), transforms.OpticalDistortion(interpolation=cv2.INTER_AREA, p=.3), ], p=.3), geometric.ElasticTransform(alpha=4, sigma=100, alpha_affine=100, interpolation=cv2.INTER_AREA, p=0.3), transforms.CoarseDropout(), transforms.Normalize(), ToTensorV2() ])
def train_dataloader(self): augmentations = Compose( [ A.RandomResizedCrop( height=self.hparams.sz, width=self.hparams.sz, scale=(0.7, 1.0), ), # AdvancedHairAugmentation(), A.GridDistortion(), A.RandomBrightnessContrast(), A.ShiftScaleRotate(), A.Flip(p=0.5), A.CoarseDropout( max_height=int(self.hparams.sz / 10), max_width=int(self.hparams.sz / 10), ), # A.HueSaturationValue(), A.Normalize( mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225], max_pixel_value=255, ), ToTensorV2(), ] ) train_ds = MelanomaDataset( df=self.train_df, images_path=self.train_images_path, augmentations=augmentations, train_or_valid=True, ) return DataLoader( train_ds, # sampler=sampler, batch_size=self.hparams.bs, shuffle=True, num_workers=os.cpu_count(), pin_memory=True, )
def get_tta_transforms(): return Compose([ A.RandomResizedCrop( height=hparams.sz, width=hparams.sz, scale=(0.7, 1.0), ), # AdvancedHairAugmentation(), A.GridDistortion(), A.RandomBrightnessContrast(), A.ShiftScaleRotate(), A.Flip(p=0.5), A.CoarseDropout( max_height=int(hparams.sz / 10), max_width=int(hparams.sz / 10), ), # A.HueSaturationValue(), A.Normalize( mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225], max_pixel_value=255, ), ToTensorV2(), ])
def create_transform(self, args, is_train): """ Convert numpy array into Tensor if dataset is for validation. Apply data augmentation method to train dataset while cv or test if args.use_aug is 1. is_train: boolean flg that dataset is for validation in cv or test return: Compose of albumentations """ if is_train and args.use_aug == 1: transform = A.Compose([ trans.Normalize(mean=self.cifar_10_mean, std=self.cifar_10_std, max_pixel_value=1.0), trans.HorizontalFlip(p=0.5), trans.ShiftScaleRotate(shift_limit=0, scale_limit=0.25, rotate_limit=30, p=1), trans.CoarseDropout(max_holes=1, min_holes=1, min_width=12, min_height=12, max_height=12, max_width=12, p=0.5), ToTensorV2() ]) else: transform = A.Compose([ trans.Normalize(mean=self.cifar_10_mean, std=self.cifar_10_std, max_pixel_value=1.0), ToTensorV2() ]) return transform