Albumentations

Latest version: v1.4.21

Safety actively analyzes 682382 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 6 of 7

1.0.0

Breaking changes
- [`imgaug`](https://github.com/aleju/imgaug) dependency is now optional, and by default, Albumentations won't install it. This change was necessary to prevent simultaneous install of both `opencv-python-headless` and `opencv-python` (you can read more about the problem in [this issue](https://github.com/aleju/imgaug/issues/737)). If you still need `imgaug` as a dependency, you can use the `pip install -U albumentations[imgaug]` command to install Albumentations with `imgaug`.
- Deprecated augmentation `ToTensor` that converts NumPy arrays to PyTorch tensors is completely removed from Albumentations. You will get a `RuntimeError` exception if you try to use it. Please switch to [`ToTensorV2`](https://albumentations.ai/docs/api_reference/pytorch/transforms/#albumentations.pytorch.transforms.ToTensorV2) in your pipelines.

New augmentations
- [`A.RandomToneCurve`](https://albumentations.ai/docs/api_reference/augmentations/transforms/#albumentations.augmentations.transforms.RandomToneCurve). See a [notebook](https://nbviewer.jupyter.org/github/aaroswings/RandomToneCurveTests/blob/main/RandomToneCurveTests.ipynb) for examples of this augmentation (#839 by aaroswings)
- [`SafeRotate`](https://albumentations.ai/docs/api_reference/augmentations/geometric/rotate/#albumentations.augmentations.geometric.rotate.SafeRotate). Safely Rotate Images Without Cropping (888 by deleomike)
- [`SomeOf`](https://albumentations.ai/docs/api_reference/core/composition/#albumentations.core.composition.SomeOf) transform that applies N augmentations from a list. Generalizing of [`OneOf`](https://albumentations.ai/docs/api_reference/core/composition/#albumentations.core.composition.OneOf) (889 by henrique)
- We are deprecating imgaug transforms and providing Albumentations' implementations for them.
(786 by KiriLev, 787 by KiriLev, 790, 843, 844, 849, 885, 892)

By default, Albumentations doesn't require `imgaug` as a dependency. But if you need `imgaug`, you can install it along with Albumentations by running `pip install -U albumentations[imgaug]`.

Here is a table of deprecated `imgaug` augmentations and respective augmentations from Albumentations that you should use instead:

| Old deprecated augmentation | New augmentation |
|-----------------------------|------------------|
| [IAACropAndPad](https://albumentations.ai/docs/api_reference/imgaug/transforms/#albumentations.imgaug.transforms.IAACropAndPad) | [CropAndPad](https://albumentations.ai/docs/api_reference/augmentations/crops/transforms/#albumentations.augmentations.crops.transforms.CropAndPad) |
| IAAFliplr | [HorizontalFlip](https://albumentations.ai/docs/api_reference/augmentations/transforms/#albumentations.augmentations.transforms.HorizontalFlip) |
| IAAFlipud | [VerticalFlip](https://albumentations.ai/docs/api_reference/augmentations/transforms/#albumentations.augmentations.transforms.VerticalFlip) |
| [IAAEmboss](https://albumentations.ai/docs/api_reference/imgaug/transforms/#albumentations.imgaug.transforms.IAAEmboss) | [Emboss](https://albumentations.ai/docs/api_reference/augmentations/transforms/#albumentations.augmentations.transforms.Emboss) |
| [IAASharpen](https://albumentations.ai/docs/api_reference/imgaug/transforms/#albumentations.imgaug.transforms.IAASharpen) | [Sharpen](https://albumentations.ai/docs/api_reference/augmentations/transforms/#albumentations.augmentations.transforms.Sharpen) |
| [IAAAdditiveGaussianNoise](https://albumentations.ai/docs/api_reference/imgaug/transforms/#albumentations.imgaug.transforms.IAAAdditiveGaussianNoise) | [GaussNoise](https://albumentations.ai/docs/api_reference/augmentations/transforms/#albumentations.augmentations.transforms.GaussNoise) |
| [IAAPerspective](https://albumentations.ai/docs/api_reference/imgaug/transforms/#albumentations.imgaug.transforms.IAAPerspective) | [Perspective](https://albumentations.ai/docs/api_reference/augmentations/geometric/transforms/#albumentations.augmentations.geometric.transforms.Perspective) |
| [IAASuperpixels](https://albumentations.ai/docs/api_reference/imgaug/transforms/#albumentations.imgaug.transforms.IAASuperpixels) | [Superpixels](https://albumentations.ai/docs/api_reference/augmentations/transforms/#albumentations.augmentations.transforms.Superpixels) |
| [IAAAffine](https://albumentations.ai/docs/api_reference/imgaug/transforms/#albumentations.imgaug.transforms.IAAAffine) | [Affine](https://albumentations.ai/docs/api_reference/augmentations/geometric/transforms/#albumentations.augmentations.geometric.transforms.Affine) |
| [IAAPiecewiseAffine](https://albumentations.ai/docs/api_reference/imgaug/transforms/#albumentations.imgaug.transforms.IAAPiecewiseAffine) | [PiecewiseAffine](https://albumentations.ai/docs/api_reference/augmentations/geometric/transforms/#albumentations.augmentations.geometric.transforms.PiecewiseAffine) |

Major changes

- Serialization logic is updated. Previously, Albumentations used the full classpath to identify an augmentation (e.g. `albumentations.augmentations.transforms.RandomCrop`). With the updated logic, Albumentations will use only the class name for augmentations defined in the library (e.g., `RandomCrop`). For custom augmentations created by users and not distributed with Albumentations, the library will continue to use the full classpath to avoid name collisions (e.g., when a user creates a custom augmentation named RandomCrop and uses it in a pipeline).

This new logic will allow us to refactor the code without breaking serialized augmentation pipelines created using previous versions of Albumentations. This change will also reduce the size of YAML and JSON files with serialized data.

The new serialization logic is backward compatible. You can load serialized augmentation pipelines created in previous versions of Albumentations because Albumentations supports the old format.

Bugfixes
- Fixed a bug that prevented [`A.ReplayCompose`](https://albumentations.ai/docs/examples/replay/) to work with bounding boxes and keypoints correctly. (#748)
- [`A.GlassBlur`](https://albumentations.ai/docs/api_reference/augmentations/transforms/#albumentations.augmentations.transforms.GlassBlur) now correctly works with float32 inputs (826)
- [`MultiplicativeNoise`](https://albumentations.ai/docs/api_reference/augmentations/transforms/#albumentations.augmentations.transforms.MultiplicativeNoise) now correctly works with gray images with shape `[h, w, 1]`. (793)

Minor changes
- Code for geometric transforms moved to a standalone module [`albumentations.augmentations.geometric`](https://github.com/albumentations-team/albumentations/tree/master/albumentations/augmentations/geometric). (#784)
- Code for crop transforms moved to a standalone module [`albumentations.augmentations.crops`](https://github.com/albumentations-team/albumentations/tree/master/albumentations/augmentations/crops). (#791)
- CI now runs tests under Python 3.9 as well (830)
- Linters and code formatters for CI and pre-commit hooks are updated to the latest versions (831)
- Logic in `setup.py` that detects existing installations of OpenCV now also looks for `opencv-contrib-python` and `opencv-contrib-python-headless` (837 by agchang-cgl)

0.5.2

Minor changes
- [ToTensorV2](https://albumentations.ai/docs/api_reference/pytorch/transforms/#albumentations.pytorch.transforms.ToTensorV2) now automatically expands grayscale images with the shape `[H, W]` to the shape `[H, W, 1]`. PR 604 by Ingwar.
- [CropNonEmptyMaskIfExists ](https://albumentations.ai/docs/api_reference/augmentations/transforms/#albumentations.augmentations.transforms.CropNonEmptyMaskIfExists) now also works with multiple masks that are provided by the `masks` argument to the transform function. Previously this augmentation worked only with a single mask provided by the `mask` argument. PR 761

0.5.1

Breaking changes
- API for [`A.FDA`](https://albumentations.ai/docs/api_reference/augmentations/domain_adaptation/#albumentations.augmentations.domain_adaptation.FDA) is changed to resemble API of [`A.HistogramMatching`](https://albumentations.ai/docs/api_reference/augmentations/domain_adaptation/#albumentations.augmentations.domain_adaptation.HistogramMatching). Now, both transformations expect to receive a list of reference images, a function to read those image, and additional augmentation parameters. (734)
- [`A.HistogramMatching`](https://albumentations.ai/docs/api_reference/augmentations/domain_adaptation/#albumentations.augmentations.domain_adaptation.HistogramMatching) now uses`read_rgb_image` as a default `read_fn`. This function reads an image from the disk as an RGB NumPy array. Previously, the default `read_fn` was `cv2.imread` which read an image as a BGR NumPy array. (734)

New transformations
- [`A.Sequential`](https://albumentations.ai/docs/api_reference/core/composition/#albumentations.core.composition.Sequential) transform that can apply augmentations in a sequence. This transform is not intended to be a replacement for `A.Compose`. Instead, it should be used inside `A.Compose` the same way `A.OneOf` or `A.OneOrOther`. For instance, you can combine `A.OneOf` with `A.Sequential` to create an augmentation pipeline containing multiple sequences of augmentations and apply one randomly chosen sequence to input data. (735)

Minor changes
- [`A.ShiftScaleRotate`](https://albumentations.ai/docs/api_reference/augmentations/transforms/#albumentations.augmentations.transforms.ShiftScaleRotate) now has two additional optional parameters: `shift_limit_x` and `shift_limit_y`. If either of those parameters (or both of them) is set `A.ShiftScaleRotate` will use the set values to shift images on the respective axis. (735)
- [`A.ToTensorV2`](https://albumentations.ai/docs/api_reference/pytorch/transforms/#albumentations.pytorch.transforms.ToTensorV2) now supports an additional argument `transpose_mask` (`False` by default). If the argument is set to `True` and an input mask has 3 dimensions, `A.ToTensorV2` will transpose dimensions of a mask tensor in addition to transposing dimensions of an image tensor. (735)

Bugfixes
- [`A.FDA`](https://albumentations.ai/docs/api_reference/augmentations/domain_adaptation/#albumentations.augmentations.domain_adaptation.FDA) now correctly uses coordinates of the center of an image. (730)
- Fixed problems with grayscale images for [`A.HistogramMatching`](https://albumentations.ai/docs/api_reference/augmentations/domain_adaptation/#albumentations.augmentations.domain_adaptation.HistogramMatching). (734)
- Fixed a bug that led to an exception when `A.load()` was called to deserialize a pipeline that contained `A.ToTensor` or `A.ToTensorV2`, but those transforms were not imported in the code before the call. (735)

0.5.0

Breaking changes
- Albumentations now explicitly checks that all inputs to augmentations are named arguments and raise an exception otherwise. So if an augmentation receives input like aug(image) instead of aug(image=image), Albumentations will raise an exception. (560)
- Dropped support of Python 3.5 (709)
- Keypoints and bboxes are checked for visibility after each transform (566)

New transformations
- [`A.FDA`](https://albumentations.ai/docs/api_reference/augmentations/domain_adaptation/#albumentations.augmentations.domain_adaptation.FDA) transform for Fourier-based domain adaptation. (685)
- [`A.HistogramMatching`](https://albumentations.ai/docs/api_reference/augmentations/domain_adaptation/#albumentations.augmentations.domain_adaptation.HistogramMatching) transform that applies histogram matching. (708)
- [`A.ColorJitter`](https://albumentations.ai/docs/api_reference/augmentations/transforms/#albumentations.augmentations.transforms.ColorJitter) transform that behaves similarly to `ColorJitter` from torchvision (though there are some minor differences due to different internal logic for working with HSV colorspace in Pillow, which is used in torchvision and OpenCV, which is used in Albumentations). (705)

Minor changes
- [`A.PadIfNeeded`](https://albumentations.ai/docs/api_reference/augmentations/transforms/#albumentations.augmentations.transforms.PadIfNeeded) now accepts additional `pad_width_divisor`, `pad_height_divisor` (`None` by default) to ensure image has width & height that is dividable by given values. (700)
- Added support to apply [`A.CoarseDropout`](https://albumentations.ai/docs/api_reference/augmentations/transforms/#albumentations.augmentations.transforms.CoarseDropout) to masks via `mask_fill_value`. (699)
- [`A.GaussianBlur`](https://albumentations.ai/docs/api_reference/augmentations/transforms/#albumentations.augmentations.transforms.GaussianBlur) now supports the sigma parameter that sets standard deviation for Gaussian kernel. (674, 673) .

Bugfixes
- Fixed bugs in [`A.HueSaturationValue`](https://albumentations.ai/docs/api_reference/augmentations/transforms/#albumentations.augmentations.transforms.HueSaturationValue) for float dtype. (696, 710)
- Fixed incorrect rounding error on bboxes in `YOLO` format. (688)

0.4.6

Improvements
- Change the ImgAug dependency version from “imgaug>=0.2.5,<0.2.7” to “imgaug>=0.4.0". Now Albumentations won’t downgrade your existing ImgAug installation to the old version. PR 658.
- Do not try to resize an image if it already has the required height and width. That eliminates the redundant call to the OpenCV function that requires additional copying of the input data. PR 639.
`ReplayCompose` is now serializable. PR 623 by [IlyaOvodov](https://github.com/IlyaOvodov)
- Documentation fixes and updates.

Bug Fixes
- Fix a bug that causes some keypoints and bounding boxes to lie outside the visible part of the augmented image if an augmentation pipeline contained augmentations that increase the height and width of an image (such as `PadIfNeeded`). That happened because Albumentations checked which bounding boxes and keypoints lie outside the image only after applying all augmentations. Now Albumentations will check and remove keypoints and bounding boxes that lie outside the image after each augmentation. If, for some reason, you need the old behavior, pass `check_each_transform=False` in your `KeypointParams` or `BboxParams`. Issue 565 and PR 566.
- Fix a bug that causes an exception when Albumentations received images with the number of color channels that are even but are not multiples of 4 (such as 6, 10, etc.). PR 638.
- Fix the off-by-one error in applying steps for GridDistortion. Commit 9c225a99a379594098dbea2a077fd22da684ade9
- Fix bugs that prevent serialization of `ImageCompression` and `GaussNoise`. PR 569
- Fix a bug that causes errors with some values for `label_fields` in `BboxParams`. PR 504 by [IlyaOvodov](https://github.com/IlyaOvodov)
- Fix a bug that prevents HueSaturationValue for working with grayscale images. PR 500.

0.4.0

Table of Contents
* New transforms
* [ISONoise](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.ISONoise)
* [Solarize](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.Solarize)
* [Equilize](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.Equalize)
* [Posterize](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.Posterize)
* [ImageCompression](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.ImageCompression)
* [Downscale](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.Downscale)
* [RandomResizedCrop](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.RandomSizedCrop)
* [RandomGridShuffle](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.RandomGridShuffle)
* [CropNonEmptyMaskIfExists](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.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.html#albumentations.augmentations.transforms.Cutout)
* Separate `fill_value` for image and mask targets
* Speedup in [RGBShift](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.RGBShift) transform
* Speedup in [HueSaturationValue](HueSaturationValue)
* Speedup in [RandomBrightnessContrast](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.RandomBrightnessContrast)
* Speedup in [RandomGamma](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.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.html#albumentations.augmentations.transforms.Crop), [CropNonEmptyMaskIfExists](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.CropNonEmptyMaskIfExists), [LongestMaxSize](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.LongestMaxSize), [RandomCropNearBBox](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.RandomCropNearBBox), [Resize](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.Resize), [SmallestMaxSize](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.SmallestMaxSize), and [Transpose](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.Transpose)
* Add per channel transform composition
* Bug Fixes
* Bugfix in [GaussNoise](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.GaussNoise)
* Bugfix in [RandomGamma](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.RandomGamma)
* Bugfix in [RandomSizedBBoxSafeCrop](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.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.html#albumentations.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_noise#Low_and_high-ISO_noise_examples)

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

[Solarize](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.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.html#albumentations.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.html#albumentations.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.html#albumentations.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.html#albumentations.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.html#albumentations.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.html#torchvision.transforms.RandomResizedCrop).

[RandomGridShuffle](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.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.html#albumentations.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.html#albumentations.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.html#albumentations.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.html#albumentations.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.html#albumentations.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.html#albumentations.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.html#albumentations.augmentations.transforms.Crop), [CropNonEmptyMaskIfExists](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.CropNonEmptyMaskIfExists), [LongestMaxSize](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.LongestMaxSize), [RandomCropNearBBox](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.RandomCropNearBBox), [Resize](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.Resize), [SmallestMaxSize](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.SmallestMaxSize), and [Transpose](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.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.html#albumentations.augmentations.transforms.GaussNoise)https://github.com/albu/albumentations/commit/1bc367f54be07fed0fc0ef39d718dc040b7927d4
* Bugfix in the [RandomGamma](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.RandomGamma) https://github.com/albu/albumentations/commit/389d31ab333a9681413ab3eddef8c2a41dfe73df
* Bugfix in the [RandomSizedBBoxSafeCrop](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.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

Page 6 of 7

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.