Augmentor: An Image Augmentation Library for Machine Learning

Summary

Augmentor is an image augmentation library for machine learning. It provides a stochastic, pipeline-based API for the generation of image data by effectively allowing new image data to be sampled at runtime according to a user-defined set of operations and parameters. Common operations include arbitrary rotations, mirroring, shearing, skewing, and random crops, as well as less frequently implemented operations such as randomised elastic distortions or random erasing (Simard et al. 2003; Zhong et al. 2017).

The pipeline approach means that images are passed through a user-defined set of operations sequentially, where each operation is applied stochastically according to a probability parameter that is also defined by the user.

The goal of the package, therefore, is to:

  • Provide a platform and framework independent image augmentation library for machine learning with a convenient API
  • Provide a library that is extensible, by allowing for custom operations to be added easily, even at runtime
  • Provide less commonly implemented operations, such as the aforementioned elastic distortions
  • Enable fine level control of parameters of the augmentation procedure

The software is available in Python (Marcus D Bloice 2017) and Julia (Stocker 2017) versions, the latter being optimised for speed (Marcus D. Bloice, Stocker, and Holzinger 2017). The authors would also like the thank all those who have contributed to the project, a list of whom can be found on the contributors page of the GitHub repository: https://github.com/mdbloice/Augmentor/graphs/contributors.

References

Bloice, Marcus D. 2017. “Augmentor: Image Augmentation Library in Python for Machine Learning.” https://github.com/mdbloice/Augmentor.

Bloice, Marcus D., Christof Stocker, and Andreas Holzinger. 2017. “Augmentor: An Image Augmentation Library for Machine Learning.” arXiv Preprint arXiv:1708.04680.

Simard, Patrice Y, David Steinkraus, John C Platt, and others. 2003. “Best Practices for Convolutional Neural Networks Applied to Visual Document Analysis.” In ICDAR, 3:958–62.

Stocker, Christof. 2017. “Augmentor.jl: A Fast Image Augmentation Library in Julia for Machine Learning.” https://github.com/evizero/Augmentor.jl.

Zhong, Zhun, Liang Zheng, Guoliang Kang, Shaozi Li, and Yi Yang. 2017. “Random Erasing Data Augmentation.” arXiv Preprint arXiv:1708.04896.