Changelogs » Albumentations

Albumentations

0.4.0

Table of Contents
* New transforms
* [ISONoise](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.ISONoise)
* [Solarize](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.Solarize)
* [Equilize](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.Equalize)
* [Posterize](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.Posterize)
* [ImageCompression](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.ImageCompression)
* [Downscale](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.Downscale)
* [RandomResizedCrop](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.RandomSizedCrop)
* [RandomGridShuffle](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.RandomGridShuffle)
* [CropNonEmptyMaskIfExists](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.CropNonEmptyMaskIfExists)
* ToTensorV2

* New features
* Added YOLO format to bounding boxes
* Deterministic / Replay mode
* Improvements
* Added `fill_value` to [Cutout](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.Cutout)
* Separate `fill_value` for image and mask targets
* Speedup in [RGBShift](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.RGBShift) transform
* Speedup in [HueSaturationValue](HueSaturationValue)
* Speedup in [RandomBrightnessContrast](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.RandomBrightnessContrast)
* Speedup in [RandomGamma](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.RandomGamma)
* Added support for images and masks with more than 3 channels
* Added key points support to [Crop](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.Crop), [CropNonEmptyMaskIfExists](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.CropNonEmptyMaskIfExists), [LongestMaxSize](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.LongestMaxSize), [RandomCropNearBBox](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.RandomCropNearBBox), [Resize](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.Resize), [SmallestMaxSize](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.SmallestMaxSize), and [Transpose](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.Transpose)
* Add per channel transform composition
* Bug Fixes
* Bugfix in [GaussNoise](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.GaussNoise)
* Bugfix in [RandomGamma](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.RandomGamma)
* Bugfix in [RandomSizedBBoxSafeCrop](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.RandomSizedBBoxSafeCrop)
* Documentation Updated
* Added page that lists pre-prints and papers that cite albumentations
* Added page that contains competitions in which top teams used albumentations

New transforms
[ISONoise](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.ISONoise)
https://github.com/albu/albumentations/commit/2e25667f8c39eba3e6be0e85719e5156422ee9a9
Target: image

This transform mimics the noise that images will have if the ISO parameter of the camera is high. [Wiki](https://en.wikipedia.org/wiki/Image_noiseLow_and_high-ISO_noise_examples)

[Solarize](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.Solarize)
https://github.com/albu/albumentations/commit/e365b52df6c6535a1bf06733b607915231f2f9d4
Targets: image

[Solarize](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.Solarize) inverts all pixels above some threshold. It is an essential part of the work [AutoAugment: Learning Augmentation Policies from Data](https://arxiv.org/abs/1805.09501).

[Equilize](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.Equalize)
https://github.com/albu/albumentations/commit/9f71038c95c4124bdaf3ee13a9823225bb8d85da
Target: image

Equalizes image histogram.  It is an essential part of the work [AutoAugment: Learning Augmentation Policies from Data](https://arxiv.org/abs/1805.09501).

[Posterize](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.Posterize)
https://github.com/albu/albumentations/commit/ad95fa005fd5325deb73461bfb6e543fca342f45
Target: image

Reduce the number of bits for each pixel. It is an essential part of the work [AutoAugment: Learning Augmentation Policies from Data](https://arxiv.org/abs/1805.09501).

[ImageCompression](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.ImageCompression)
Target: image
https://github.com/albu/albumentations/commit/b6127864d45cfa5b5299578d309680baa0ce7aa3
Decrease Jpeg or WebP compression to the image.

[Downscale](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.Downscale)
https://github.com/albu/albumentations/commit/df831d6605140e7aa013deab6012d85af9854be3
Target: image

Decreases image quality by downscaling and upscaling back.

[RandomResizedCrop](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.RandomResizedCrop)
https://github.com/albu/albumentations/commit/4dbe41e8795c7b7d48e0cc4501efe8046e21765b
Targets: image, mask, bboxes, keypoints

Crop the given Image to the random size and aspect ratio. This transform is an essential part of many image classification pipelines. Very popular for ImageNet classification.

It has the same API as [RandomResizedCrop in torchvision](https://pytorch.org/docs/stable/torchvision/transforms.htmltorchvision.transforms.RandomResizedCrop).

[RandomGridShuffle](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.RandomGridShuffle)
https://github.com/albu/albumentations/commit/4cf6c36bc2332729d91e44f58f18f44b66db3c6f
Targets: image, mask

Partition an image into tiles. Shuffle them and merge back.

[CropNonEmptyMaskIfExists](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.CropNonEmptyMaskIfExists)

Targets: image, mask, bboxes, keypoints

Crop area with a mask if the mask is non-empty, else make a random crop.

ToTensorV2
https://github.com/albu/albumentations/commit/a5026800d84c6c1998f224b86dedbf3f005ae994
Targets: image, mask

Convert image and mask to `torch.Tensor`

New features
Added YOLO format to bounding boxes.
https://github.com/albu/albumentations/commit/d05db9e9aae6b7607c33c4cdce69be011c2f8802

The `Yolo` format of a bounding box has a format `[x, y, width, height],` where values normalized to the size of the image. Ex: ` [0.3, 0.1, 0.05, 0.07]`

Added Deterministic / Replay mode
https://github.com/albu/albumentations/commit/9942689f9846c59006c80718ee8db38e02ee2104

Augmentations pipeline has a lot of randomnesses, which is hard to debug. We added Determentsic / Replay mode in which you can track what parameters were applied to the input and use precisely the same transform to another input if necessary.

[Jupyter notebook with an example](https://github.com/albu/albumentations/blob/master/notebooks/replay.ipynb).

Added `fill_value` to the [Cutout](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.Cutout) transform.
https://github.com/albu/albumentations/commit/d85bab59eb8ccb0a2fec86750f94173e18e86395

Separated `fill_value` for images and masks
https://github.com/albu/albumentations/commit/2c1a1485f690b4e8ead50f5bb29d3838fbbc177d

One of the use cases is it to use `mask_value,` which is equal to the `ignore_index` of your loss. This will decrease the level of noise and may improve convergence.

Speedup in the [RGBShift](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.RGBShift)
https://github.com/albu/albumentations/commit/c3cc277f37b172bebf7177c779a7cf3cdf7120d3

3.2 times faster for uint8 images.

Speedup in [HueSaturationValue](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.HueSaturationValue)
https://github.com/albu/albumentations/commit/448761df9a008384cf914343f25e3cfb7c4d7551

2 times faster for uint8 images.

Speedup in [RandomBrightnessContrast](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.RandomBrightnessContrast)
https://github.com/albu/albumentations/commit/4e12c6ec3e55cf79cf242a09c5cdc813bcfc6401

2.7 times faster for uint8 images.

Speedup in [RandomGamma](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.RandomGamma)
https://github.com/albu/albumentations/commit/ac499d0365bfb2494cb535e82591fc3460d4595a

4 times faster for uint8 images.

Added support for images and masks with more than 3 channels
https://github.com/albu/albumentations/commit/c028a9557cc960da11720a0a505a19cdd4fe0b24

Added key points support
https://github.com/albu/albumentations/commit/30a3f3024dc34597307c466a6307e2e6d27e9d3e
Not all spatial tranforms jave keypoints support yet. In this release we added [Crop](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.Crop), [CropNonEmptyMaskIfExists](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.CropNonEmptyMaskIfExists), [LongestMaxSize](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.LongestMaxSize), [RandomCropNearBBox](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.RandomCropNearBBox), [Resize](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.Resize), [SmallestMaxSize](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.SmallestMaxSize), and [Transpose](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.Transpose).

Add per channel transform composition https://github.com/albu/albumentations/commit/7fb635c66acd5e6c3e9ca50a37a9496956644f36

Bug Fixes
* Bugfix in the [GaussNoise](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.GaussNoise)https://github.com/albu/albumentations/commit/1bc367f54be07fed0fc0ef39d718dc040b7927d4
* Bugfix in the [RandomGamma](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.RandomGamma) https://github.com/albu/albumentations/commit/389d31ab333a9681413ab3eddef8c2a41dfe73df
* Bugfix in the [RandomSizedBBoxSafeCrop](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.RandomCropNearBBox) https://github.com/albu/albumentations/commit/9db2a74bfcd1ed38a7b5430ff4f43c1a30346f6f


Documentation Updated
Added a page that lists pre-prints and papers that cite albumentations
We are delighted that albumentations are helpful to the academic community. We extended documentation with a  [page](https://github.com/albu/albumentations/blob/master/docs/citations.rst) that lists all papers and preprints that cite albumentations in their work. This page is automatically generated by parsing Google Scholar. At this moment, this number is 24.

Added a page that lists competitions in which top teams used albumentations.
We are delighted that albumentations help people to get top results in machine learning competitions at [Kaggle](https://www.kaggle.com/) and other platforms. We added a ["Hall of Fame"](https://github.com/albu/albumentations/blob/master/docs/hall_of_fame.rst) where people can share their achievements. This page is manually created. We encourage people to add more information about their results with pull requests, following the [contributing guide](https://github.com/albu/albumentations/blob/master/docs/contributing.rst).

People that made this release happen
albu Dipet creafz BloodAxe ternaus vfdev-5 arsenyinfo qubvel toshiks Jae-Hyuck BelBES alekseynp timeous jveitchmichaelis bfialkoff

0.3.0

Added serialization / deserialization

- Now we can define transformations in a python dictionary, `json`, `yaml` files and they will be deserialized and used in the code.
- Now we can define transformations in the code and serialize them in python dictionary, `json` and `yaml` files.

[**Jupyter notebook with an example**](https://github.com/albu/albumentations/blob/master/notebooks/serialization.ipynb)

Special thanks to creafz

Added new transformations

- [Lambda](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.Lambda)
- [GaussianBlur](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.GaussianBlur)
- [ChannelDropout](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.ChannelDropout)
- [CoarseDropout](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.CoarseDropout)
- [RandomSnow](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.RandomSnow)
- [RandomRain](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.RandomRain)
- [RandomFog](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.RandomFog)
- [RandomSunFlare](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.RandomSunFlare)
- [RandomShadow](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.RandomShadow)

Special thanks to vfdev-5 ternaus BloodAxe kirillbobyrev

Bugfixes and improvements

- Bugfix in [ToGray](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.RandomShadow)
- Bugfix in [ShiftScaleRotate](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.ShiftScaleRotate)
- Bugfix in [GaussNoise](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.GaussNoise)
- Added `fill_value` parameter to [CutOut](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.Cutout)
- SpeedUp in [RandomBrightnessContrast](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.RandomBrightnessContrast)

Special thanks to qubvel ternaus albu BloodAxe

0.2.0

Added support for the keypoint transformations to

* [CenterCrop](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.CenterCrop)
* [Flip](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.Flip)
* [HorizontalFlip](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.HorizontalFlip)
* [IAAAffine](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.imgaug.transforms.IAAAffine)
* [IAACropAndPad](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.imgaug.transforms.IAACropAndPad)
* [IAAFliplr](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.imgaug.transforms.IAAFliplr)
* [IAAFlipud](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.imgaug.transforms.IAAFlipud)
* [IAAPerspective](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.imgaug.transforms.IAAPerspective)
* [IAAPiecewiseAffine](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.imgaug.transforms.IAAPiecewiseAffine)
* [PadIfNeeded](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.PadIfNeeded)
* [RandomCrop](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.RandomCrop)
* [RandomRotate90](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.RandomRotate90)
* [RandomScale](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.RandomScale)
* [RandomSizedCrop](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.RandomSizedCrop)
* [Rotate](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.Rotate)
* [ShiftScaleRotate](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.ShiftScaleRotate)
* [VerticalFlip](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.VerticalFlip)

**[Notebook with an example](https://github.com/albu/albumentations/blob/master/notebooks/example_keypoints.ipynb)**

Special thanks to the Evegene Khvedchenya (BloodAxe) for the work.

Added an option to apply the same transformation to the more than one target of the same type.

The possible use case are image2image or stereo-image pipelines.

**[Notebook with an example](https://github.com/albu/albumentations/blob/master/notebooks/example_multi_target.ipynb)**

Special thanks to Alexander Buslaev (albu) for the work.

Added new transformations
* [RandomCropNearBBox](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.RandomCropNearBBox)
* [RandomSizedBBoxSafeCrop](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.RandomSizedBBoxSafeCrop)
* [SmallestMaxSize](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.SmallestMaxSize)

Speed up in
* [Normalize](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.Normalize)
* [Flip](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.Flip)
* [HorizontalFlip](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.HorizontalFlip)
* [VerticalFlip](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.VerticalFlip)
* [ElasticTransform](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.ElasticTransform)

Bug fixes
* Fix for Compose with multiprocessing DataLoaders.
* Fix in SmallestMaxSize for multiclass masks.
* Fix in [RandomBrightness](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.RandomBrightness)
* Fix in [RandomContrast](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.RandomContrast)

And many others.

Additional
* Performance benchmark was extended to the [Augmentor](https://github.com/mdbloice/Augmentor) and [Solt](https://github.com/MIPT-Oulu/solt) libraries.
* Added table to Readme that shows all implemented transformations with the set of possible targets: images, bounding boxes, masks, key points. (Special thanks to Alex Parinov creafz )
* The library can be installed in anaconda.

Contributors
BloodAxe albu creafz ternaus erikgaas marcocaccin libfun DBusAI alexobednikov StrikerRUS IlyaOvodov ZFTurbo Vcv85 georgymironov LinaShiryaeva vfdev-5 daisukelab cdicle

0.1.1

Bounding boxes support

Transformations that support bounding boxes

The main change in this release is the addition of the operations on bounding boxes to the
* [Flip](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.Flip)
* [VerticalFlip](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.VerticalFlip)
* [HorizontalFlip](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.HorizontalFlip)
* [Transpose](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.Transpose)
* [RandomRotate90](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.RandomRotate90)
* [LongestMaxSize](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.LongestMaxSize)
* [Resize](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.Resize)
* [RandomScale](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.RandomScale)
* [Crop](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.Crop)
* [RandomCrop](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.RandomCrop)
* [CenterCrop](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.CenterCrop)
* [RandomSizedCrop](https://albumentations.readthedocs.io/en/latest/api/augmentations.htmlalbumentations.augmentations.transforms.RandomSizedCrop)
* [IAAAffine](https://albumentations.readthedocs.io/en/latest/api/imgaug.htmlalbumentations.imgaug.transforms.IAAAffine)

Supported formats

Currently supported the following formats for the bounding boxes:
1. COCO: `[x_min, y_min, width, height]`, ex `[97, 12, 150, 200]`
2. Pascal VOC: `[x_min, y_min, x_max, y_max]`, ex `[97, 12, 247, 212]`

Bounding box filtering
It may happen that after the transformation a big part of the bounding box was cropped and it is needed to exclude such boxes.

We support such a bounding box filtering based on the:
* Bounding box area, measured in pixels.
* Visible box area, measured in percent.

Smaller changes
* Added support for 8-bit images.
* We changed all `np.random` occurrences to `random` due to the numpy behavior reported in https://github.com/pytorch/pytorch/issues/5059
* Multiple bugfixes.

Added notebooks with examples
* [How to migrate from torchvision to albumentations.](https://github.com/albu/albumentations/blob/master/notebooks/migrating_from_torchvision_to_albumentations.ipynb)
* [How to apply the transformation to the **classification** problems.](https://github.com/albu/albumentations/blob/master/notebooks/example.ipynb)
* [How to apply transformations to the **detection** problems.](https://github.com/albu/albumentations/blob/master/notebooks/example_bboxes.ipynb)
* [How to apply transformations to the **segmentation** problems.](https://github.com/albu/albumentations/blob/master/notebooks/example_kaggle_salt.ipynb)
* [How to apply transformations to the **non 8-bit** images](https://github.com/albu/albumentations/blob/master/notebooks/example_16_bit_tiff.ipynb)
* [All in one showcase](https://github.com/albu/albumentations/blob/master/notebooks/showcase.ipynb)