- example.ipynb. Defining a simple augmentation pipeline for image augmentation.
- example_16_bit_tiff.ipynb. Working with non-8-bit images.
- example_bboxes.ipynb. Using Albumentations to augment bounding boxes for object detection tasks.
- example_bboxes2.ipynb. How to use Albumentations for detection tasks if you need to keep all bounding boxes.
- example_kaggle_salt.ipynb. Using Albumentations for a semantic segmentation task.
- example_keypoints.ipynb. Using Albumentations to augment keypoints.
- example_multi_target.ipynb. Applying the same augmentation with the same parameters to multiple images, masks, bounding boxes, or keypoints.
- example_weather_transforms.ipynb. Weather augmentations in Albumentations.
- migrating_from_torchvision_to_albumentations.ipynb. Migrating from torchvision to Albumentations.
- replay.ipynb. Debugging an augmentation pipeline with ReplayCompose.
- serialization.ipynb. How to save and load parameters of an augmentation pipeline.
- showcase.ipynb. Showcase. Cool augmentation examples on diverse set of images from various real-world tasks.
- tensorflow-example.ipynb. Using Albumentations with Tensorflow.
- pytorch_classification.ipynb. PyTorch and Albumentations for image classification.
- pytorch_semantic_segmentation.ipynb. PyTorch and Albumentations for semantic segmentation.
For detailed examples see notebooks.
from albumentations import (
HorizontalFlip, IAAPerspective, ShiftScaleRotate, CLAHE, RandomRotate90,
Transpose, ShiftScaleRotate, Blur, OpticalDistortion, GridDistortion, HueSaturationValue,
IAAAdditiveGaussianNoise, GaussNoise, MotionBlur, MedianBlur, IAAPiecewiseAffine,
IAASharpen, IAAEmboss, RandomBrightnessContrast, Flip, OneOf, Compose
)
import numpy as np
def strong_aug(p=0.5):
return Compose([
RandomRotate90(),
Flip(),
Transpose(),
OneOf([
IAAAdditiveGaussianNoise(),
GaussNoise(),
], p=0.2),
OneOf([
MotionBlur(p=0.2),
MedianBlur(blur_limit=3, p=0.1),
Blur(blur_limit=3, p=0.1),
], p=0.2),
ShiftScaleRotate(shift_limit=0.0625, scale_limit=0.2, rotate_limit=45, p=0.2),
OneOf([
OpticalDistortion(p=0.3),
GridDistortion(p=0.1),
IAAPiecewiseAffine(p=0.3),
], p=0.2),
OneOf([
CLAHE(clip_limit=2),
IAASharpen(),
IAAEmboss(),
RandomBrightnessContrast(),
], p=0.3),
HueSaturationValue(p=0.3),
], p=p)
image = np.ones((300, 300, 3), dtype=np.uint8)
mask = np.ones((300, 300), dtype=np.uint8)
whatever_data = "my name"
augmentation = strong_aug(p=0.9)
data = {"image": image, "mask": mask, "whatever_data": whatever_data, "additional": "hello"}
augmented = augmentation(**data)
image, mask, whatever_data, additional = augmented["image"], augmented["mask"], augmented["whatever_data"], augmented["additional"]
- Original image
MultiplicativeNoise(multiplier=0.5, p=1)
MultiplicativeNoise(multiplier=1.5, p=1)
MultiplicativeNoise(multiplier=[0.5, 1.5], per_channel=True, p=1)
MultiplicativeNoise(multiplier=[0.5, 1.5], elementwise=True, p=1)
MultiplicativeNoise(multiplier=[0.5, 1.5], elementwise=True, per_channel=True, p=1)
- Original image
ToSepia(p=1)
- Original image
JpegCompression(quality_lower=99, quality_upper=100, p=1)
JpegCompression(quality_lower=59, quality_upper=60, p=1)
JpegCompression(quality_lower=39, quality_upper=40, p=1)
JpegCompression(quality_lower=19, quality_upper=20, p=1)
JpegCompression(quality_lower=0, quality_upper=1, p=1)
- Original image
ChannelDropout(channel_drop_range=(1, 1), fill_value=0, p=1)
ChannelDropout(channel_drop_range=(1, 1), fill_value=0, p=1)
ChannelDropout(channel_drop_range=(1, 1), fill_value=0, p=1)
ChannelDropout(channel_drop_range=(1, 1), fill_value=0, p=1)
ChannelDropout(channel_drop_range=(1, 1), fill_value=0, p=1)
ChannelDropout(channel_drop_range=(2, 2), fill_value=0, p=1)
ChannelDropout(channel_drop_range=(2, 2), fill_value=0, p=1)
ChannelDropout(channel_drop_range=(2, 2), fill_value=0, p=1)
- Original image
ChannelShuffle(p=1)
ChannelShuffle(p=1)
ChannelShuffle(p=1)
- Original image
Cutout(num_holes=8, max_h_size=8, max_w_size=8, fill_value=0, p=1)
Cutout(num_holes=10, max_h_size=20, max_w_size=20, fill_value=0, p=1)
Cutout(num_holes=30, max_h_size=30, max_w_size=30, fill_value=64, p=1)
Cutout(num_holes=50, max_h_size=40, max_w_size=40, fill_value=128, p=1)
Cutout(num_holes=100, max_h_size=50, max_w_size=50, fill_value=255, p=1)
- Original image
ToGray(p=1)
- Original image
InvertImg(p=1)
- Original image
VerticalFlip(p=1)
- Original image
HorizontalFlip(p=1)
- Original image
Flip(p=1)
Flip(p=1)
Flip(p=1)
- Original image
RandomGridShuffle(grid=(3, 3), p=1)
RandomGridShuffle(grid=(5, 5), p=1)
RandomGridShuffle(grid=(7, 7), p=1)
- Original image
Blur(blur_limit=(7, 7), p=1)
Blur(blur_limit=(15, 15), p=1)
Blur(blur_limit=(50, 50), p=1)
Blur(blur_limit=(100, 100), p=1)
Blur(blur_limit=(300, 300), p=1)