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.html#albumentations.augmentations.transforms.Flip)
* [VerticalFlip](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.VerticalFlip)
* [HorizontalFlip](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.HorizontalFlip)
* [Transpose](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.Transpose)
* [RandomRotate90](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.RandomRotate90)
* [LongestMaxSize](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.LongestMaxSize)
* [Resize](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.Resize)
* [RandomScale](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.RandomScale)
* [Crop](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.Crop)
* [RandomCrop](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.RandomCrop)
* [CenterCrop](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.CenterCrop)
* [RandomSizedCrop](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.RandomSizedCrop)
* [IAAAffine](https://albumentations.readthedocs.io/en/latest/api/imgaug.html#albumentations.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)