Releases: albumentations-team/albumentations
0.4.0
Table of Contents
-
New transforms
-
New features
- Added YOLO format to bounding boxes
- Deterministic / Replay mode
-
Improvements
- Added
fill_value
to Cutout - Separate
fill_value
for image and mask targets - Speedup in RGBShift transform
- Speedup in HueSaturationValue
- Speedup in RandomBrightnessContrast
- Speedup in RandomGamma
- Added support for images and masks with more than 3 channels
- Added key points support to Crop, CropNonEmptyMaskIfExists, LongestMaxSize, RandomCropNearBBox, Resize, SmallestMaxSize, and Transpose
- Add per channel transform composition
- Added
-
Bug Fixes
- Bugfix in GaussNoise
- Bugfix in RandomGamma
- Bugfix in 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
2e25667
Target: image
This transform mimics the noise that images will have if the ISO parameter of the camera is high. Wiki
Solarize
e365b52
Targets: image
Solarize inverts all pixels above some threshold. It is an essential part of the work AutoAugment: Learning Augmentation Policies from Data.
Equilize
9f71038
Target: image
Equalizes image histogram. It is an essential part of the work AutoAugment: Learning Augmentation Policies from Data.
Posterize
ad95fa0
Target: image
Reduce the number of bits for each pixel. It is an essential part of the work AutoAugment: Learning Augmentation Policies from Data.
ImageCompression
Target: image
b612786
Decrease Jpeg or WebP compression to the image.
Downscale
df831d6
Target: image
Decreases image quality by downscaling and upscaling back.
RandomResizedCrop
4dbe41e
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.
RandomGridShuffle
4cf6c36
Targets: image, mask
Partition an image into tiles. Shuffle them and merge back.
CropNonEmptyMaskIfExists
Targets: image, mask, bboxes, keypoints
Crop area with a mask if the mask is non-empty, else make a random crop.
ToTensorV2
a502680
Targets: image, mask
Convert image and mask to torch.Tensor
New features
Added YOLO format to bounding boxes.
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
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.
Added fill_value
to the Cutout transform.
Separated fill_value
for images and masks
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
3.2 times faster for uint8 images.
Speedup in HueSaturationValue
2 times faster for uint8 images.
Speedup in [RandomBrightnessContrast](https://albumentations.readthedocs.io/en/latest/api/augmentations.html#albumentations.augmentations.transforms.RandomBrightnessCont...
0.3.0 Release
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
andyaml
files.
Jupyter notebook with an example
Special thanks to @creafz
Added new transformations
- Lambda
- GaussianBlur
- ChannelDropout
- CoarseDropout
- RandomSnow
- RandomRain
- RandomFog
- RandomSunFlare
- RandomShadow
Special thanks to @vfdev-5 @ternaus @BloodAxe @kirillbobyrev
Bugfixes and improvements
- Bugfix in ToGray
- Bugfix in ShiftScaleRotate
- Bugfix in GaussNoise
- Added
fill_value
parameter to CutOut - SpeedUp in RandomBrightnessContrast
0.2.0 Release
Added support for the keypoint transformations to
- CenterCrop
- Flip
- HorizontalFlip
- IAAAffine
- IAACropAndPad
- IAAFliplr
- IAAFlipud
- IAAPerspective
- IAAPiecewiseAffine
- PadIfNeeded
- RandomCrop
- RandomRotate90
- RandomScale
- RandomSizedCrop
- Rotate
- ShiftScaleRotate
- VerticalFlip
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.
Special thanks to Alexander Buslaev (@albu) for the work.
Added new transformations
Speed up in
Bug fixes
- Fix for Compose with multiprocessing DataLoaders.
- Fix in SmallestMaxSize for multiclass masks.
- Fix in RandomBrightness
- Fix in RandomContrast
And many others.
Additional
- Performance benchmark was extended to the Augmentor and 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
Extended bounding boxes support. New transformations. New notebooks with examples. A lot of bugfixes.
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
- VerticalFlip
- HorizontalFlip
- Transpose
- RandomRotate90
- LongestMaxSize
- Resize
- RandomScale
- Crop
- RandomCrop
- CenterCrop
- RandomSizedCrop
- IAAAffine
Supported formats
Currently supported the following formats for the bounding boxes:
- COCO:
[x_min, y_min, width, height]
, ex[97, 12, 150, 200]
- 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 torandom
due to the numpy behavior reported in pytorch/pytorch#5059 - Multiple bugfixes.
Added notebooks with examples
- How to migrate from torchvision to albumentations.
- How to apply the transformation to the classification problems.
- How to apply transformations to the detection problems.
- How to apply transformations to the segmentation problems.
- How to apply transformations to the non 8-bit images
- All in one showcase