Spaces:
Running
Running
import albumentations as A | |
class DarkAug(object): | |
""" | |
Extreme dark augmentation aiming at Aachen Day-Night | |
""" | |
def __init__(self) -> None: | |
self.augmentor = A.Compose( | |
[ | |
A.RandomBrightnessContrast( | |
p=0.75, brightness_limit=(-0.6, 0.0), contrast_limit=(-0.5, 0.3) | |
), | |
A.Blur(p=0.1, blur_limit=(3, 9)), | |
A.MotionBlur(p=0.2, blur_limit=(3, 25)), | |
A.RandomGamma(p=0.1, gamma_limit=(15, 65)), | |
A.HueSaturationValue(p=0.1, val_shift_limit=(-100, -40)), | |
], | |
p=0.75, | |
) | |
def __call__(self, x): | |
return self.augmentor(image=x)["image"] | |
class MobileAug(object): | |
""" | |
Random augmentations aiming at images of mobile/handhold devices. | |
""" | |
def __init__(self): | |
self.augmentor = A.Compose( | |
[ | |
A.MotionBlur(p=0.25), | |
A.ColorJitter(p=0.5), | |
A.RandomRain(p=0.1), # random occlusion | |
A.RandomSunFlare(p=0.1), | |
A.JpegCompression(p=0.25), | |
A.ISONoise(p=0.25), | |
], | |
p=1.0, | |
) | |
def __call__(self, x): | |
return self.augmentor(image=x)["image"] | |
def build_augmentor(method=None, **kwargs): | |
if method is not None: | |
raise NotImplementedError( | |
"Using of augmentation functions are not supported yet!" | |
) | |
if method == "dark": | |
return DarkAug() | |
elif method == "mobile": | |
return MobileAug() | |
elif method is None: | |
return None | |
else: | |
raise ValueError(f"Invalid augmentation method: {method}") | |
if __name__ == "__main__": | |
augmentor = build_augmentor("FDA") | |