机器学习笔记 - Albumentations库实现的图像增强功能一览
一、Albumentations库简介
Albumentations库致力于用更少的数据做更多的事情。
Albumentations 是一种计算机视觉工具,可以提高深度卷积神经网络的性能。该库广泛用于工业、深度学习研究、机器学习竞赛和开源项目。
Albumentations 是一个用于快速灵活的图像增强的 Python 库。Albumentations 有效地实现了丰富多样的图像变换操作,这些操作针对性能进行了优化,同时为不同的计算机视觉任务(包括对象分类、分割和检测)提供了简洁而强大的图像增强接口。
Albumentations 支持不同的计算机视觉任务,例如分类、语义分割、实例分割、对象检测和姿势估计。
Albumentations 可以很好地处理来自不同领域的数据:照片、医学图像、卫星图像、制造和工业应用、生成对抗网络。
Albumentations 可以与各种深度学习框架一起使用,例如PyTorch和Keras。该库是PyTorch 生态系统的一部分。 MMDetection 和YOLOv5 使用了 Albumentations。
Albumentations: fast and flexible image augmentationshttps://albumentations.ai/
二、可进行哪些图像增强
1、模糊/高级模糊
模糊:使用随机大小的内核模糊输入图像。
高级模糊:使用具有随机选择参数的广义正态滤波器模糊输入图像。此变换还在卷积之前将乘性噪声添加到生成的内核。
2、CLAHE
Contrast Limited Adaptive Histogram Equalization。
将对比度受限的自适应直方图均衡应用于输入图像。
3、CenterCrop
裁剪输入的中心部分。
4、图像通道相关操作
在输入图像中随机丢弃通道。
随机重新排列输入 RGB 图像的通道。
5、CoarseDropout
删除图像中的一些子区域
6、随机改变图像的亮度、对比度和饱和度
随机改变图像的亮度、对比度和饱和度。 与来自 torchvision 的 ColorJitter 相比,这种变换给出了一些不同的结果,因为 Pillow(在 torchvision 中使用)和 OpenCV(在 Albumentations 中使用)通过不同的公式将图像转换为 HSV 格式。 另一个区别 - Pillow 使用 uint8 溢出,Albumentations 使用值饱和。
7、裁剪
从图像中裁剪部分区域。
8、散焦变换
应用散焦变换。 参考论文 https://arxiv.org/abs/1903.12261。
9、降采样
通过对图像的缩放后放大,降低图像质量。
10、弹性变换
基于,https://gist.github.com/ernestum/601cdf56d2b424757de5
11、Emboss
将浮雕效果应用于原图像
12、均衡图像直方图
将均衡直方图应用于原图像
13、FancyPCA 增强 RGB 图像
使用 Krizhevsky 的论文“ImageNet Classification with Deep Convolutional Neural Networks”中的 FancyPCA 增强 RGB 图像
14、翻转
水平、垂直或水平和垂直翻转输入。
15、高斯噪声
将高斯噪声应用于输入图像。
16、高斯模糊
使用具有随机内核大小的高斯滤波器模糊输入图像。
17、毛玻璃效果
将玻璃噪声应用于输入图像。
18、Grid Distortion
19、ISONoise
应用相机传感器噪声。
20、图像压缩
减少图像的 Jpeg、WebP 压缩。
21、反转图像
通过从 255 中减去像素值来反转输入图像。
22、运动模糊
使用随机大小的内核将运动模糊应用于输入图像。
23、中值滤波
使用具有随机孔径线性大小的中值滤波器模糊输入图像。
24、乘性噪声
将图像乘以随机数或数字数组。
25、光学畸变
未完