Example #1
0
    def __glass_blur(self,img):
        transform = A.Compose([
            A.GlassBlur(sigma=2.0,max_delta=3),
            A.GlassBlur(sigma=4.0,max_delta=1),
            A.GlassBlur(sigma=1.0,max_delta=5),
        ])
        transformed         =   transform(image=img)
        transformed_image   =   transformed["image"]

        return transformed_image
Example #2
0
    def __init__(self, data_dir, is_train=True):
        self.paths = sorted(glob.glob(data_dir + '/*/*'))
        self.transform_train = A.Compose([
            A.Resize(height=1000, width=1000),
            A.RandomBrightnessContrast(brightness_limit=0.1,
                                       contrast_limit=0.1,
                                       p=0.5),
            A.RandomGamma(p=0.5),
            A.HorizontalFlip(p=0.5),
            A.OneOf([
                A.MotionBlur(blur_limit=3),
                A.GlassBlur(max_delta=3),
                A.GaussianBlur(blur_limit=3)
            ],
                    p=0.5),
            A.GaussNoise(p=0.5),
            A.Normalize(mean=(0.446, 0.469, 0.472),
                        std=(0.326, 0.330, 0.338),
                        max_pixel_value=255.0,
                        p=1.0),
            ToTensorV2(p=1.0),
        ])

        self.transform_valid = A.Compose([
            A.Resize(height=1000, width=1000),
            A.Normalize(mean=(0.446, 0.469, 0.472),
                        std=(0.326, 0.330, 0.338),
                        max_pixel_value=255.0,
                        p=1.0),
            ToTensorV2(p=1.0),
        ])
        if is_train:
            self.data_transforms = self.transform_train
        else:
            self.data_transforms = self.transform_valid
Example #3
0
def c_crop_g_blur(i_height=256, i_width=256, p=1.0):
    return albumentations.Compose([
        albumentations.CenterCrop(height=150, width=150, p=p),
        albumentations.Resize(i_height, i_width),
        albumentations.GlassBlur(p=p),
        albumentations.RandomContrast(p=p)
    ],
                                  p=p)
Example #4
0
 def __init__(self, resize, mean, std, **args):
     self.transform = A.Compose([
         A.Resize(resize, resize, p=1.0),
         A.ShiftScaleRotate(p = 0.5),
         A.IAAAffine(scale = [0.8, 1.2], rotate = [-10, 10], shear = 10, p = 0.5),
         A.GaussNoise(var_limit=(10.0, 50.0), mean=0, always_apply=False, p=0.5),
         A.GaussianBlur(blur_limit=(3, 7), sigma_limit=0, always_apply=False, p=0.5),
         A.OneOf([
             A.MedianBlur(blur_limit=7, always_apply=False, p=1.0),
             A.MotionBlur(blur_limit=7, always_apply=False, p=1.0),
         ], p = 0.5),
         A.OneOf([
             A.GlassBlur(sigma=0.7, max_delta=4, iterations=2, always_apply=False, mode='fast', p=1.0),
             A.Blur(blur_limit=7, always_apply=False, p=1.0),
         ], p = 0.5),
         A.Normalize(mean = mean, std = std, max_pixel_value = 255.0, p = 1.0),
         ToTensorV2(p = 1.0),
     ])
Example #5
0
def test_glass_blur_float_uint8_diff_less_than_two(val_uint8):

    x_uint8 = np.zeros((5, 5)).astype(np.uint8)
    x_uint8[2, 2] = val_uint8

    x_float32 = np.zeros((5, 5)).astype(np.float32)
    x_float32[2, 2] = val_uint8 / 255.0

    glassblur = A.GlassBlur(always_apply=True, max_delta=1)

    np.random.seed(0)
    blur_uint8 = glassblur(image=x_uint8)["image"]

    np.random.seed(0)
    blur_float32 = glassblur(image=x_float32)["image"]

    # Before comparison, rescale the blur_float32 to [0, 255]
    diff = np.abs(blur_uint8 - blur_float32 * 255)

    # The difference between the results of float32 and uint8 will be at most 2.
    assert np.all(diff <= 2.0)
Example #6
0
    def __call__(self, data):
        rgb, thermal, depth, audio, label, id = data

        #depth = depth.astype(np.float32)
        albumentations_transform_pixel = {
            'Blur': albumentations.Blur(),
            'MedianBlur': albumentations.MedianBlur(),
            'MotionBlur': albumentations.MotionBlur(),
            'GaussNoise': albumentations.GaussNoise(),
            'GaussianBlur': albumentations.GaussianBlur(),
            'GlassBlur': albumentations.GlassBlur(),
            'IAAAdditiveGaussianNoise':
            albumentations.IAAAdditiveGaussianNoise(),
        }
        transform = np.random.choice(
            ['None'] + list(albumentations_transform_pixel.keys()))

        if transform in albumentations_transform_pixel:
            aug = albumentations.Compose(
                [albumentations_transform_pixel[transform]],
                bbox_params={
                    'format': 'pascal_voc',
                    'label_fields': ['labels']
                })
            try:
                annots = np.array(annots).astype(np.float32)
                aug_result = aug(image=depth,
                                 bboxes=annots[:, :4],
                                 labels=annots[:, 4])
                depth = aug_result['image']
            except Exception as e:
                print(
                    f"transform={transform} aug_result['bboxes']={aug_result['bboxes']}            aug_result['labels']={aug_result['labels']}"
                )
                raise Exception(e)

        return rgb, thermal, depth, audio, label, id

# parse_yolo_label('/media/sc/unitek/data/lishui_lights/23262brightness0.txt')

category_id_to_name = {0: 'red', 1: "green"}

# 定义变换
transform = A.Compose(
    [
        # A.RandomCrop(),
        # A.HorizontalFlip(p=0.5),
        A.RandomBrightnessContrast(p=0.6),
        # A.RandomRotate90(),
        A.Rotate(limit=25, p=0.2),  # 限制旋转角度为25度
        A.GaussNoise(),
        A.GlassBlur(),
        A.RandomGamma(),
        # A.RandomRain(p=0.1),
        # A.RandomSunFlare(p=0.1),
        # A.CenterCrop(height=50,width=50) #从图像中间裁剪出h*w的区域
    ],
    bbox_params=A.BboxParams(format='yolo', label_fields=['category_ids']))


# 对某个目录下的图像开始增强
def process(dir):
    files = os.listdir(dir)
    for file in files:
        suffix = '.png'
        if file.endswith(suffix) and 'trans' not in file:
            origin_img_name = "{}/{}".format(dir, file)
Example #8
0
    def get_images(self, imgpath):
        # Pick random clone, crypt or fufi
        u01 = np.random.uniform()
        if u01 < self.cpfr_frac[0]:
            img, mask = self.all_svs_opened[imgpath].fetch_clone(
                prop_displ=0.45)
        elif u01 < np.sum(self.cpfr_frac[0:2]):
            img, mask = self.all_svs_opened[imgpath].fetch_partial(
                prop_displ=0.45)
        elif u01 < np.sum(self.cpfr_frac[0:3]):
            img, mask = self.all_svs_opened[imgpath].fetch_fufi(
                prop_displ=0.45)
        else:
            img, mask = self.all_svs_opened[imgpath].fetch_rndmtile()

        if self.dilate_masks == True:
            n_dil = int(5 / self.um_per_pixel)  # if mpp is one or less than 1
            # dilate if desired
            for i in range(mask.shape[2]):
                mask[:, :, i] = cv2.morphologyEx(mask[:, :, i].copy(),
                                                 cv2.MORPH_DILATE,
                                                 st_3,
                                                 iterations=n_dil)

        if self.aug == True:
            composition = A.Compose([
                A.HorizontalFlip(),
                A.VerticalFlip(),
                A.Rotate(border_mode=cv2.BORDER_CONSTANT),
                A.OneOf([
                    A.ElasticTransform(alpha=1000,
                                       sigma=30,
                                       alpha_affine=30,
                                       border_mode=cv2.BORDER_CONSTANT,
                                       p=1),
                    A.GridDistortion(border_mode=cv2.BORDER_CONSTANT, p=1),
                ],
                        p=0.5),
                A.CLAHE(p=0.2),
                A.HueSaturationValue(hue_shift_limit=12,
                                     sat_shift_limit=12,
                                     val_shift_limit=12,
                                     p=0.3),
                A.RandomBrightnessContrast(p=0.3),
                A.Posterize(p=0.1, num_bits=4),
                A.OneOf([
                    A.JpegCompression(p=1),
                    A.MedianBlur(p=1),
                    A.Blur(p=1),
                    A.GlassBlur(p=1, max_delta=2, sigma=0.4),
                    A.IAASharpen(p=1)
                ],
                        p=0.3)
            ],
                                    p=1)
            transformed = composition(image=img, mask=mask)
            img, mask = transformed['image'], transformed['mask']
        mask_list = [mask[:, :, ii] for ii in range(mask.shape[2])]

        if self.stride_bool:
            mask_list = [cv2.pyrDown(mask_ii.copy()) for mask_ii in mask_list]

        mask_list = [
            cv2.threshold(mask_ii, 120, 255, cv2.THRESH_BINARY)[1]
            for mask_ii in mask_list
        ]

        ## convert to floating point space, normalize and mask non-used clones
        img = img.astype(np.float32) / 255
        mask_list = [mask_ii.astype(np.float32) / 255 for mask_ii in mask_list]
        if self.normalize:
            img = (img - self.norm_mean) / self.norm_std

        return img, np.stack(mask_list, axis=2)
Example #9
0
def augmentation_train():
    train_transform = [
        albu.HorizontalFlip(p=0.5),
        albu.VerticalFlip(p=0.5),
        albu.OneOf([
            albu.InvertImg(p=0.5),
            albu.RandomBrightnessContrast(brightness_limit=(-0.5, 0.3),
                                          contrast_limit=(-0.5, 0.3),
                                          brightness_by_max=False,
                                          p=0.5),
            albu.RandomGamma(gamma_limit=(50, 120), p=.5),
            albu.RandomToneCurve(scale=0.4, p=.5),
            albu.HueSaturationValue(hue_shift_limit=20,
                                    sat_shift_limit=20,
                                    val_shift_limit=20,
                                    p=.5),
            albu.ChannelShuffle(p=.5),
            albu.RGBShift(
                r_shift_limit=20, g_shift_limit=20, b_shift_limit=20, p=.5),
        ],
                   p=0.5),
        albu.OneOf([
            albu.RandomFog(
                fog_coef_lower=0.1, fog_coef_upper=.4, alpha_coef=0.06, p=0.5),
            albu.MotionBlur(blur_limit=7, p=0.5),
            albu.MedianBlur(blur_limit=7, p=0.5),
            albu.GlassBlur(sigma=0.5, max_delta=2, p=0.5),
            albu.Sharpen(alpha=(0.1, 0.3), lightness=(0.7, 1.1), p=0.5)
        ],
                   p=0.5),
        albu.OneOf([
            albu.GaussNoise(var_limit=0.03, mean=0, p=0.5),
            albu.MultiplicativeNoise(multiplier=(0.98, 1.02), p=0.5),
            albu.ISONoise(
                color_shift=(0.01, 0.02), intensity=(0.1, 0.3), p=0.5),
        ],
                   p=0.3),
        albu.OneOf([
            albu.ElasticTransform(border_mode=cv2.BORDER_CONSTANT,
                                  interpolation=cv2.INTER_CUBIC,
                                  alpha=1,
                                  sigma=50,
                                  alpha_affine=50,
                                  p=0.5),
            albu.GridDistortion(border_mode=cv2.BORDER_CONSTANT,
                                interpolation=cv2.INTER_CUBIC,
                                distort_limit=(-0.3, 0.3),
                                num_steps=5,
                                p=0.5),
            albu.OpticalDistortion(border_mode=cv2.BORDER_CONSTANT,
                                   interpolation=cv2.INTER_CUBIC,
                                   distort_limit=(-.05, .05),
                                   shift_limit=(-0.05, 0.05),
                                   p=0.5),
            albu.ShiftScaleRotate(border_mode=cv2.BORDER_CONSTANT,
                                  interpolation=cv2.INTER_CUBIC,
                                  shift_limit=(0.05, 0.02),
                                  scale_limit=(-.1, 0),
                                  rotate_limit=2,
                                  p=0.5),
        ],
                   p=0.5),
    ]
    return albu.Compose(train_transform)
Example #10
0
def get_augmentation(version):
    if version == "v1":
        return {
            "train":
            A.Compose([
                A.Flip(p=0.5),
                A.Rotate(p=0.5),
                A.Resize(height=256, width=256, p=1.0),
                A.Normalize(mean=(0.623, 0.520, 0.650),
                            std=(0.278, 0.305, 0.274),
                            max_pixel_value=255.0,
                            p=1.0)
            ]),
            "valid":
            A.Compose([
                A.Resize(height=256, width=256, p=1.0),
                A.Normalize(mean=(0.623, 0.520, 0.650),
                            std=(0.278, 0.305, 0.274),
                            max_pixel_value=255.0,
                            p=1.0)
            ]),
        }

    elif version == "v2":
        return {
            "train":
            A.Compose([
                A.Flip(p=0.5),
                A.Rotate(p=0.5),
                A.OneOf([
                    A.RandomCrop(height=256, width=256, p=1),
                    A.RandomCrop(height=384, width=384, p=1),
                    A.RandomCrop(height=512, width=512, p=1),
                    A.RandomCrop(height=640, width=640, p=1),
                ],
                        p=0.5),
                A.Resize(height=256, width=256, p=1.0),
                A.Normalize(mean=(0.623, 0.520, 0.650),
                            std=(0.278, 0.305, 0.274),
                            max_pixel_value=255.0,
                            p=1.0)
            ]),
            "valid":
            A.Compose([
                A.Resize(height=256, width=256, p=1.0),
                A.Normalize(mean=(0.623, 0.520, 0.650),
                            std=(0.278, 0.305, 0.274),
                            max_pixel_value=255.0,
                            p=1.0)
            ]),
        }

    elif version == "v3":
        return {
            "train":
            A.Compose([
                A.RandomCrop(height=1024, width=1024, p=1),
                A.Flip(p=0.5),
                A.Rotate(p=0.5),
                A.Resize(height=256, width=256, p=1.0),
                A.Normalize(mean=(0.623, 0.520, 0.650),
                            std=(0.278, 0.305, 0.274),
                            max_pixel_value=255.0,
                            p=1.0)
            ]),
            "valid":
            A.Compose([
                A.Resize(height=256, width=256, p=1.0),
                A.Normalize(mean=(0.623, 0.520, 0.650),
                            std=(0.278, 0.305, 0.274),
                            max_pixel_value=255.0,
                            p=1.0)
            ]),
        }

    elif version == "v4":
        # for 3x-scaled dataset | 256x256
        return {
            "train":
            A.Compose([
                A.RandomCrop(height=512, width=512, p=1),
                A.Flip(p=0.5),
                A.Rotate(p=0.5),
                A.Resize(height=256, width=256, p=1.0),
                A.Normalize(mean=(0.623, 0.520, 0.650),
                            std=(0.278, 0.305, 0.274),
                            max_pixel_value=255.0,
                            p=1.0)
            ]),
            "valid":
            A.Compose([
                A.Resize(height=256, width=256, p=1.0),
                A.Normalize(mean=(0.623, 0.520, 0.650),
                            std=(0.278, 0.305, 0.274),
                            max_pixel_value=255.0,
                            p=1.0)
            ]),
        }

    elif version == "v5":
        # for 3x-scaled dataset | 512x512
        return {
            "train":
            A.Compose([
                A.RandomCrop(height=512, width=512, p=1),
                A.Flip(p=0.5),
                A.Rotate(p=0.5),
                A.Normalize(mean=(0.623, 0.520, 0.650),
                            std=(0.278, 0.305, 0.274),
                            max_pixel_value=255.0,
                            p=1.0)
            ]),
            "valid":
            A.Compose([
                A.Normalize(mean=(0.623, 0.520, 0.650),
                            std=(0.278, 0.305, 0.274),
                            max_pixel_value=255.0,
                            p=1.0)
            ]),
        }

    elif version == "v6":
        # for 3x-scaled dataset | 512x512
        return {
            "train":
            A.Compose([
                A.Flip(p=0.5),
                A.Rotate(p=0.5),
                A.HueSaturationValue(hue_shift_limit=20,
                                     sat_shift_limit=30,
                                     val_shift_limit=20,
                                     always_apply=False,
                                     p=0.25),
                A.RandomBrightness(limit=0.4, always_apply=False, p=0.25),
                A.RandomContrast(limit=0.2, always_apply=False, p=0.25),
                A.RandomShadow(shadow_roi=(0, 0, 1, 1),
                               num_shadows_lower=1,
                               num_shadows_upper=50,
                               shadow_dimension=5,
                               always_apply=False,
                               p=0.25),
                A.Normalize(mean=(0.623, 0.520, 0.650),
                            std=(0.278, 0.305, 0.274),
                            max_pixel_value=255.0,
                            p=1.0)
            ]),
            "valid":
            A.Compose([
                A.Normalize(mean=(0.623, 0.520, 0.650),
                            std=(0.278, 0.305, 0.274),
                            max_pixel_value=255.0,
                            p=1.0)
            ]),
        }

    elif version == "v7":
        # for 3x-scaled dataset | 512x512
        return {
            "train":
            A.Compose([
                A.Flip(p=0.5),
                A.Rotate(p=0.5),
                A.RandomCrop(height=768, width=768, p=1),
                A.Resize(height=256, width=256, p=1.0),
                A.HueSaturationValue(hue_shift_limit=20,
                                     sat_shift_limit=30,
                                     val_shift_limit=20,
                                     always_apply=False,
                                     p=0.25),
                A.RandomBrightness(limit=0.4, always_apply=False, p=0.25),
                A.RandomContrast(limit=0.2, always_apply=False, p=0.25),
                A.RandomShadow(shadow_roi=(0, 0, 1, 1),
                               num_shadows_lower=1,
                               num_shadows_upper=50,
                               shadow_dimension=5,
                               always_apply=False,
                               p=0.25),
                A.Normalize(mean=(0.623, 0.520, 0.650),
                            std=(0.278, 0.305, 0.274),
                            max_pixel_value=255.0,
                            p=1.0)
            ]),
            "valid":
            A.Compose([
                A.Resize(height=256, width=256, p=1.0),
                A.Normalize(mean=(0.623, 0.520, 0.650),
                            std=(0.278, 0.305, 0.274),
                            max_pixel_value=255.0,
                            p=1.0)
            ]),
        }

    elif version == "v8":
        # for 3x-scaled dataset | 512x512
        return {
            "train":
            A.Compose([
                A.Rotate(p=0.5),
                A.RandomCrop(height=512, width=512, p=1),
                A.Flip(p=0.5),

                # color
                A.HueSaturationValue(hue_shift_limit=20,
                                     sat_shift_limit=30,
                                     val_shift_limit=20,
                                     always_apply=False,
                                     p=0.25),
                A.RandomBrightness(limit=0.4, always_apply=False, p=0.25),
                A.RandomContrast(limit=0.2, always_apply=False, p=0.25),
                A.RandomShadow(shadow_roi=(0, 0, 1, 1),
                               num_shadows_lower=1,
                               num_shadows_upper=50,
                               shadow_dimension=5,
                               always_apply=False,
                               p=0.25),

                # transform
                A.ElasticTransform(p=1, alpha=120, sigma=6, alpha_affine=0.25),
                A.GridDistortion(p=0.25),
                A.OpticalDistortion(distort_limit=2, shift_limit=0.5, p=0.25),
                A.Normalize(mean=(0.623, 0.520, 0.650),
                            std=(0.278, 0.305, 0.274),
                            max_pixel_value=255.0,
                            p=1.0)
            ]),
            "valid":
            A.Compose([
                A.Normalize(mean=(0.623, 0.520, 0.650),
                            std=(0.278, 0.305, 0.274),
                            max_pixel_value=255.0,
                            p=1.0)
            ]),
        }

    elif version == "v9":
        # for 3x-scaled dataset | 512x512
        return {
            "train":
            A.Compose([
                A.Flip(p=0.5),
                A.Rotate(p=0.5),
                A.HueSaturationValue(hue_shift_limit=20,
                                     sat_shift_limit=30,
                                     val_shift_limit=20,
                                     always_apply=False,
                                     p=0.25),
                A.RandomBrightness(limit=0.4, always_apply=False, p=0.25),
                A.RandomContrast(limit=0.2, always_apply=False, p=0.25),
                A.RandomShadow(shadow_roi=(0, 0, 1, 1),
                               num_shadows_lower=1,
                               num_shadows_upper=50,
                               shadow_dimension=5,
                               always_apply=False,
                               p=0.25),

                # transform
                A.OneOf([
                    A.ElasticTransform(
                        alpha=120, sigma=6, alpha_affine=0.25, p=0.25),
                    A.GridDistortion(p=0.25),
                    A.OpticalDistortion(
                        distort_limit=2, shift_limit=0.5, p=0.25)
                ],
                        p=0.75),
                A.Normalize(mean=(0.623, 0.520, 0.650),
                            std=(0.278, 0.305, 0.274),
                            max_pixel_value=255.0,
                            p=1.0)
            ]),
            "valid":
            A.Compose([
                A.Normalize(mean=(0.623, 0.520, 0.650),
                            std=(0.278, 0.305, 0.274),
                            max_pixel_value=255.0,
                            p=1.0)
            ]),
        }

    elif version == "v10":
        # for 3x-scaled dataset | 512x512
        return {
            "train":
            A.Compose([
                A.Flip(p=0.5),
                A.Rotate(p=0.5),

                # size
                A.OneOf([
                    A.CropNonEmptyMaskIfExists(height=128, width=128, p=1.0),
                    A.CropNonEmptyMaskIfExists(height=256, width=256, p=1.0),
                    A.CropNonEmptyMaskIfExists(height=384, width=384, p=1.0)
                ],
                        p=0.25),
                A.PadIfNeeded(min_height=512,
                              min_width=512,
                              border_mode=4,
                              p=1),

                # array shuffle
                A.OneOf([A.MaskDropout(p=1),
                         A.RandomGridShuffle(p=1)], p=0.5),

                # quality
                A.Downscale(scale_min=0.25,
                            scale_max=0.75,
                            interpolation=0,
                            always_apply=False,
                            p=0.5),
                A.GaussNoise(p=0.5),
                A.OneOf([
                    A.GlassBlur(p=1),
                    A.GaussianBlur(p=1),
                ], p=0.5),

                # colors
                A.HueSaturationValue(hue_shift_limit=20,
                                     sat_shift_limit=30,
                                     val_shift_limit=20,
                                     always_apply=False,
                                     p=0.5),
                A.RandomBrightness(limit=0.4, always_apply=False, p=0.5),
                A.RandomContrast(limit=0.2, always_apply=False, p=0.5),
                A.RandomShadow(shadow_roi=(0, 0, 1, 1),
                               num_shadows_lower=1,
                               num_shadows_upper=50,
                               shadow_dimension=5,
                               always_apply=False,
                               p=0.5),
                A.CLAHE(p=0.5),
                A.Equalize(p=0.5),
                A.ChannelShuffle(p=0.5),

                # transform
                A.OneOf([
                    A.ElasticTransform(
                        alpha=120, sigma=6, alpha_affine=0.25, p=1),
                    A.GridDistortion(p=1),
                    A.OpticalDistortion(distort_limit=2, shift_limit=0.5, p=1)
                ],
                        p=0.5),
                A.Normalize(mean=(0.623, 0.520, 0.650),
                            std=(0.278, 0.305, 0.274),
                            max_pixel_value=255.0,
                            p=1.0)
            ]),
            "valid":
            A.Compose([
                A.Normalize(mean=(0.623, 0.520, 0.650),
                            std=(0.278, 0.305, 0.274),
                            max_pixel_value=255.0,
                            p=1.0)
            ]),
        }

    elif version == "v11":
        # custom normalization (see other/img_normalization.py)
        return {
            "train":
            A.Compose([
                A.Normalize(mean=(0.623, 0.520, 0.650),
                            std=(0.278, 0.305, 0.274),
                            max_pixel_value=255.0,
                            p=1.0)
            ]),
            "valid":
            A.Compose([
                A.Normalize(mean=(0.623, 0.520, 0.650),
                            std=(0.278, 0.305, 0.274),
                            max_pixel_value=255.0,
                            p=1.0)
            ]),
        }

    elif version == "v12":
        # for 3x-scaled dataset | 512x512
        return {
            "train":
            A.Compose([
                A.Flip(p=0.5),
                A.Rotate(p=0.5),

                # size / quality
                A.OneOf([
                    A.CropNonEmptyMaskIfExists(height=128, width=128, p=1.0),
                    A.CropNonEmptyMaskIfExists(height=256, width=256, p=1.0),
                    A.CropNonEmptyMaskIfExists(height=384, width=384, p=1.0),
                    A.Downscale(scale_min=0.25,
                                scale_max=0.75,
                                interpolation=0,
                                always_apply=False,
                                p=1.0),
                ],
                        p=0.25),
                A.PadIfNeeded(min_height=512,
                              min_width=512,
                              border_mode=4,
                              p=1),

                # array shuffle
                A.OneOf([A.MaskDropout(p=1),
                         A.RandomGridShuffle(p=1)], p=0.15),

                # noise
                A.OneOf([
                    A.GaussNoise(p=1),
                    A.GlassBlur(p=1),
                    A.GaussianBlur(p=1),
                ],
                        p=0.15),

                # colors
                A.HueSaturationValue(hue_shift_limit=20,
                                     sat_shift_limit=30,
                                     val_shift_limit=20,
                                     always_apply=False,
                                     p=0.15),
                A.RandomBrightness(limit=0.4, always_apply=False, p=0.15),
                A.RandomContrast(limit=0.2, always_apply=False, p=0.15),
                A.RandomShadow(shadow_roi=(0, 0, 1, 1),
                               num_shadows_lower=1,
                               num_shadows_upper=50,
                               shadow_dimension=5,
                               always_apply=False,
                               p=0.15),
                A.OneOf([
                    A.CLAHE(p=1),
                    A.Equalize(p=1),
                    A.ChannelShuffle(p=1),
                ],
                        p=0.15),

                # transform
                A.OneOf([
                    A.ElasticTransform(
                        alpha=120, sigma=6, alpha_affine=0.25, p=1),
                    A.GridDistortion(p=1),
                    A.OpticalDistortion(distort_limit=2, shift_limit=0.5, p=1)
                ],
                        p=0.15),
                A.Normalize(mean=(0.623, 0.520, 0.650),
                            std=(0.278, 0.305, 0.274),
                            max_pixel_value=255.0,
                            p=1.0)
            ]),
            "valid":
            A.Compose([
                A.Normalize(mean=(0.623, 0.520, 0.650),
                            std=(0.278, 0.305, 0.274),
                            max_pixel_value=255.0,
                            p=1.0)
            ]),
        }

    else:
        raise Exception(f"Augmentation version '{version}' is UNKNOWN!")
Example #11
0
def defend_GB(img, sigma=0.9, max_delta = 1, iterations = 1):
    aug = albumentations.GlassBlur(sigma=sigma,max_delta=max_delta,iterations=iterations,p=1)
    augmented = aug(image=(img*255).astype(np.uint8))
    auged = augmented['image']/255
    return auged