imgaug

**imgaug** is a **Python library for image augmentation in machine learning that provides a highly flexible, stochastic API for building complex augmentation pipelines** — enabling fine-grained control over augmentation parameters through stochastic expressions (rotate between -10° and +10° with truncated normal distribution), deterministic mode for applying identical transforms to images and their annotations (masks, bounding boxes, keypoints), and a rich set of 60+ augmentations with compositional operators (Sequential, SomeOf, OneOf) for building sophisticated augmentation strategies. **What Is imgaug?** - **Definition**: An open-source Python library (pip install imgaug) for augmenting images in machine learning experiments — providing a composable, stochastic pipeline for geometric, color, noise, weather, and artistic augmentations with support for bounding boxes, segmentation maps, heatmaps, and keypoints. - **Key Strength**: Stochastic parameters — instead of "rotate by exactly 10°", you specify "rotate by a value drawn from Normal(0, 5°) clipped to [-15°, 15°]", giving fine-grained control over the augmentation distribution. - **Status Note**: imgaug's development has slowed since ~2021. Albumentations is now the more actively maintained and faster alternative. However, imgaug's stochastic parameter API remains more flexible for complex augmentation distributions. **Core Usage** ```python import imgaug.augmenters as iaa seq = iaa.Sequential([ iaa.Fliplr(0.5), # 50% chance horizontal flip iaa.GaussianBlur(sigma=(0, 1.0)), # Blur with sigma 0-1 iaa.Affine( rotate=(-15, 15), # Rotate -15 to +15 degrees scale=(0.8, 1.2) # Scale 80% to 120% ), iaa.AdditiveGaussianNoise(scale=(0, 0.05*255)) ]) images_aug = seq(images=images) ``` **Composition Operators** | Operator | Behavior | Use Case | |----------|---------|----------| | **Sequential** | Apply all transforms in order | Standard pipeline | | **SomeOf((2, 4), [...])** | Randomly select 2-4 from the list | Variable augmentation strength | | **OneOf([...])** | Apply exactly one from the list | Mutually exclusive transforms | | **Sometimes(0.5, ...)** | Apply with 50% probability | Optional augmentations | **Stochastic Parameters (imgaug's Unique Feature)** ```python # Normal distribution for rotation iaa.Affine(rotate=iap.Normal(0, 5)) # Truncated normal (clipped to range) iaa.Affine(rotate=iap.TruncatedNormal(0, 5, low=-15, high=15)) # Different distributions for different parameters iaa.Affine( rotate=iap.Normal(0, 10), # Rotation: normal distribution scale=iap.Uniform(0.8, 1.2), # Scale: uniform distribution shear=iap.Laplace(0, 3) # Shear: Laplace distribution ) ``` **imgaug vs Albumentations** | Feature | imgaug | Albumentations | |---------|--------|---------------| | **Speed** | Moderate | 2-5× faster (OpenCV optimized) | | **Stochastic params** | Full distribution control | Basic probability only | | **Development** | Slowed (~2021) | Active development | | **Transform count** | 60+ | 70+ | | **Deterministic mode** | Built-in | Built-in | | **Box/mask support** | Good | Excellent (native) | | **PyTorch integration** | Manual | ToTensorV2 included | | **Community** | Moderate | Large (Kaggle standard) | **When to Use imgaug** | Use imgaug | Use Albumentations | |-----------|-------------------| | Need fine-grained stochastic parameter control | Need maximum speed | | Existing pipeline already uses imgaug | Starting a new project | | Complex augmentation distributions (truncated normal, Laplace) | Standard augmentation needs | | Research requiring precise control over augmentation statistics | Production deployment or competition | **imgaug is the flexible, research-oriented image augmentation library** — providing unmatched control over augmentation parameter distributions through stochastic expressions, with a rich compositional API for building complex pipelines, while Albumentations has become the faster and more actively maintained alternative for production and competition use cases.

Go deeper with CFSGPT

Get AI-powered deep-dives, save terms, and run advanced simulations — free account.

Create Free Account