fast image augmentation library and easy to use wrapper around other libraries
Clone or download
albu Merge pull request #125 from Vcv85/add_bbox_to_rotate
Add bbox functionality to Rotate and ShiftScaleRotate annotations
Latest commit 1e542ba Nov 16, 2018


Build Status Documentation Status

  • Great fast augmentations based on highly-optimized OpenCV library
  • Super simple yet powerful interface for different tasks like (segmentation, detection, etc.)
  • Easy to customize
  • Easy to add other frameworks

How to use

All in one showcase notebook - showcase.ipynb

Classification - example.ipynb

Object detection - example_bboxes.ipynb

Non-8-bit images - example_16_bit_tiff.ipynb

Image segmentation example_kaggle_salt.ipynb

Custom tasks such as autoencoders, more then three channel images - custom_targets

You can use this Google Colaboratory notebook to adjust image augmentation parameters and see the resulting images.






Alexander Buslaev

Alex Parinov

Vladimir I. Iglovikov

Evegene Khvedchenya


You can use pip to install albumentations:

pip install albumentations

If you want to get the latest version of the code before it is released on PyPI you can install the library from GitHub:

pip install -U git+


The full documentation is available at

Migrating from torchvision to albumentations

Migrating from torchvision to albumentations is simple - you just need to change a few lines of code. Albumentations has equivalents for common torchvision transforms as well as plenty of transforms that are not presented in torchvision. migrating_from_torchvision_to_albumentations.ipynb shows how one can migrate code from torchvision to albumentations.

Benchmarking results

To run the benchmark yourself follow the instructions in benchmark/

Results for running the benchmark on first 2000 images from the ImageNet validation set using an Intel Core i7-7800X CPU. The table shows how many images per second can be processed on a single core, higher is better.

(Pillow backend)
(Pillow-SIMD backend)
RandomCrop64 746838 - 98793 100889 -
PadToSize512 8270 - 759 823 -
HorizontalFlip 1319 938 6307 6495 1025
VerticalFlip 11362 5005 8545 8651 11108
Rotate 1084 786 123 210 37
ShiftScaleRotate 1993 1228 107 188 40
Brightness 896 841 426 567 199
ShiftHSV 219 144 57 73 -
ShiftRGB 725 900 - - 663
Gamma 1354 - 1724 1713 -
Grayscale 2603 330 1145 1544 -

Python and library versions: Python 3.6.6 | Anaconda, numpy 1.15.2, pillow 5.3.0, pillow-simd 5.2.0.post0, opencv-python, scikit-image 0.14.1, scipy 1.1.0.


  1. Clone the repository:
    git clone
    cd albumentations
  2. Install the library in development mode:
    pip install -e .[tests]
  3. Run tests:
  4. Run flake8 to perform PEP8 and PEP257 style checks and to check code for lint errors.

Building the documentation

  1. Go to docs/ directory
    cd docs
  2. Install required libraries
    pip install -r requirements.txt
  3. Build html files
    make html
  4. Open _build/html/index.html in browser.

Alternatively, you can start a web server that rebuilds the documentation automatically when a change is detected by running make livehtml


In some systems, in the multiple GPU regime PyTorch may deadlock the DataLoader if OpenCV was compiled with OpenCL optimizations. Adding the following two lines before the library import may help. For more details



If you find this library useful for your research, please consider citing:

    author = {A. Buslaev, A. Parinov, E. Khvedchenya, V.~I. Iglovikov and A.~A. Kalinin},
     title = "{Albumentations: fast and flexible image augmentations}",
   journal = {ArXiv e-prints},
    eprint = {1809.06839}, 
      year = 2018