Albumentations

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Albumentations
Original authors
  • Alexander Buslaev
  • Vladimir I. Iglovikov
  • Alex Parinov
Initial releaseJune 2018; 8 years ago (2018-06)
Repositorygithub.com/albumentations-team/albumentations
Written in
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    Operating system
    Available inEnglish
    TypeLibrary for machine learning and deep learning
    LicenseMIT[1]
    Websitealbumentations.ai

    Lua error in mw.title.lua at line 392: bad argument #2 to 'title.new' (unrecognized namespace name 'Portal'). Albumentations is an open-source image augmentation library introduced in 2018 by researchers Alexander Buslaev, Vladimir Iglovikov, and Alex Parinov. The library provides a flexible and efficient framework for applying data augmentation techniques in computer vision workflows.[2] Additional core contributors include Eugene Khvedchenya and Mikhail Druzhinin.[3]

    Albumentations is built on top of the OpenCV library and provides optimized implementations of many image-processing operations. Its API enables composition of augmentation pipelines for tasks including image classification, object detection, semantic segmentation, instance segmentation, keypoint detection, and multi-target workflows.[4]

    Adoption

    [edit | edit source]

    Albumentations is widely used in academic research, industrial machine learning pipelines, and Kaggle competitions.[5]

    The project is an Affiliated Project of NumFOCUS, a non-profit organization supporting open-source scientific computing.[6]

    The Albumentations research paper has received more than 3000 citations according to Google Scholar.[7]

    The library has been used in solutions to computer vision challenges, including the Kaggle Deepfake Detection Challenge (DFDC).[8]


    Package analytics indicate more than 100 million cumulative installations.[9]

    Features

    [edit | edit source]

    Albumentations supports deterministic and randomized augmentation pipelines for a broad range of annotation types.

    2D image and annotation targets

    [edit | edit source]

    Supported 2D targets include:

    • Images in RGB, grayscale, and arbitrary multi-channel configurations[10]
    • Segmentation masks and dense label maps with any number of channels, including instance segmentation multi-mask workflows[11]
    • Bounding boxes in COCO, Pascal VOC, YOLO, and Albumentations formats[12]
    • Keypoints in multiple coordinate systems[13]

    Albumentations can synchronize transforms across many targets simultaneously, including:

    • multiple images,
    • multiple masks,
    • multiple bounding-box sets,
    • multiple keypoint sets.

    This enables workflows such as stereo vision, multi-view datasets, and multi-sensor fusion.

    A full compatibility matrix of transforms and supported targets is documented online.[14]

    Video and temporal data

    [edit | edit source]

    Albumentations supports consistent augmentation of video sequences by applying transforms with shared random parameters across frames.[15]

    Volumetric (3D) data

    [edit | edit source]

    Albumentations supports 3D augmentation for medical imaging and scientific computing, including:

    • 3D images with arbitrary channel counts,
    • 3D multi-class or multi-channel masks,
    • 3D keypoints.

    Volumetric transforms are available in the core library and through ecosystem extensions such as Albucore.[16][17]

    Fork and successor project

    [edit | edit source]

    In 2024–2025, the original Albumentations project entered maintenance mode. A successor project, AlbumentationsX, was created to extend functionality and continue active development.

    AlbumentationsX expands support for 2D, 3D, and video targets, introduces new transformations, and provides internal performance improvements while staying API-compatible with Albumentations.

    AlbumentationsX uses a dual licensing model: AGPL-3.0 or a commercial license.[18]

    A benchmarking repository comparing AlbumentationsX with other libraries is publicly available.[19]

    Example

    [edit | edit source]

    The following program applies the same augmentation pipeline to an image and its segmentation mask:

    import albumentations as A
    import cv2
    
    transform = A.Compose([
        A.RandomCrop(width=256, height=256),
        A.HorizontalFlip(p=0.5),
        A.RandomBrightnessContrast(p=0.2),
    ])
    
    image = cv2.imread("image.jpg")
    image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
    
    mask = cv2.imread("mask.png", cv2.IMREAD_GRAYSCALE)
    
    transformed = transform(image=image, mask=mask)
    aug_image = transformed["image"]
    aug_mask = transformed["mask"]
    

    References

    [edit | edit source]
    1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    5. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    6. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    7. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    8. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    9. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    10. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    11. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    12. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    13. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    14. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    15. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    16. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    17. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    18. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    19. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    [edit | edit source]