图像增强库Albumentations使用总结
目录
Spatial-level transforms(空间层次转换)
ShiftScaleRotate 随机平移,缩放和旋转输入。
RandomGridShuffle把图像切成网格单元随机排列。
HueSaturationValue随机更改图像的颜色,饱和度和值。
GaussianBlur 使用随机核大小的高斯滤波器对图像进行模糊处理
ChannelShuffle随机重新排列输入RGB图像的通道。
摘要
albumentations包是一种针对数据增强专门写的API,里面基本包含大量的数据增强手段,其特点:
1、Albumentations支持所有常见的计算机视觉任务,如分类、语义分割、实例分割、目标检测和姿态估计。
2、该库提供了一个简单统一的API,用于处理所有数据类型:图像(rbg图像、灰度图像、多光谱图像)、分割掩码、边界框和关键点。
3、该库包含70多种不同的增强功能,可以从现有数据中生成新的训练样本。
4、Albumentations快。我们对每个新版本进行基准测试,以确保增强功能提供最大的速度。
5、它与流行的深度学习框架(如PyTorch和TensorFlow)一起工作。顺便说一下,Albumentations是PyTorch生态系统的一部分。
6、由专家写的。作者既有生产计算机视觉系统的工作经验,也有参与竞争性机器学习的经验。许多核心团队成员是Kaggle Masters和Grandmasters。
7、该库广泛应用于工业、深度学习研究、机器学习竞赛和开源项目。
Albumentations 的 pip 安装
pip install albumentations
基准测试结果
测试使用ImageNet验证集的前2000张图像在Intel Xeon Gold 6140 CPU运行基准测试的结果。所有输出都被转换为带有np的连续NumPy数组。uint8数据类型。表格显示了在单个核上每秒可以处理的图像数量;高越好。
albumentations 0.5.0 |
imgaug 0.4.0 |
torchvision (Pillow-SIMD backend) 0.7.0 |
keras 2.4.3 |
augmentor 0.2.8 |
solt 0.1.9 |
|
---|---|---|---|---|---|---|
HorizontalFlip | 9909 | 2821 | 2267 | 873 | 2301 | 6223 |
VerticalFlip | 4374 | 2218 | 1952 | 4339 | 1968 | 3562 |
Rotate | 371 | 296 | 163 | 27 | 60 | 345 |
ShiftScaleRotate | 635 | 437 | 147 | 28 | - | - |
Brightness | 2751 | 1178 | 419 | 229 | 418 | 2300 |
Contrast | 2756 | 1213 | 352 | - | 348 | 2305 |
BrightnessContrast | 2738 | 699 | 195 | - | 193 | 1179 |
ShiftRGB | 2757 | 1176 | - | 348 | - | - |
ShiftHSV | 597 | 284 | 58 | - | - | 137 |
Gamma | 2844 | - | 382 | - | - | 946 |
Grayscale | 5159 | 428 | 709 | - | 1064 | 1273 |
RandomCrop64 | 175886 | 3018 | 52103 | - | 41774 | 20732 |
PadToSize512 | 3418 | - | 574 | - | - | 2874 |
Resize512 | 1003 | 634 | 1036 | - | 1016 | 977 |
RandomSizedCrop_64_512 | 3191 | 939 | 1594 | - | 1529 | 2563 |
Posterize | 2778 | - | - | - | - | - |
Solarize | 2762 | - | - | - | - | - |
Equalize | 644 | 413 | - | - | 735 | - |
Multiply | 2727 | 1248 | - | - | - | - |
MultiplyElementwise | 118 | 209 | - | - | - | - |
ColorJitter | 368 | 78 | 57 | - | - | - |
Python and library versions: Python 3.8.6 (default, Oct 13 2020, 20:37:26) [GCC 8.3.0], numpy 1.19.2, pillow-simd 7.0.0.post3, opencv-python 4.4.0.44, scikit-image 0.17.2, scipy 1.5.2.
Spatial-level transforms(空间层次转换)
空间级转换将同时改变输入图像和附加目标,如掩模、边界框和关键点。下表显示了每个转换支持哪些附加目标。
Transform | Image | Masks | BBoxes | Keypoints |
---|---|---|---|---|
✓ | ✓ | ✓ | ✓ | |
✓ | ✓ | ✓ | ✓ | |
✓ | ✓ | |||
✓ | ✓ | ✓ | ✓ | |
✓ | ✓ | ✓ | ✓ | |
✓ | ✓ | ✓ | ✓ | |
✓ | ✓ | |||
✓ | ✓ | ✓ | ✓ | |
✓ | ✓ | |||
✓ | ✓ | |||
✓ | ✓ | ✓ | ✓ | |
✓ | ✓ | ✓ | ✓ | |
✓ | ✓ | ✓ | ✓ | |
✓ | ✓ | ✓ | ✓ | |
✓ | ✓ | ✓ | ✓ | |
✓ | ✓ | |||
✓ | ✓ | ✓ | ✓ | |
✓ | ✓ | |||
✓ | ✓ | ✓ | ✓ | |
✓ | ✓ | ✓ | ✓ | |
✓ | ✓ | ✓ | ✓ | |
✓ | ✓ | ✓ | ✓ | |
✓ | ✓ | |||
✓ | ✓ | ✓ | ✓ | |
✓ | ✓ | ✓ | ✓ | |
✓ | ✓ | ✓ | ✓ | |
✓ | ✓ | ✓ | ||
✓ | ✓ | ✓ | ✓ | |
✓ | ✓ | ✓ | ✓ | |
✓ | ✓ | ✓ | ✓ | |
✓ | ✓ | ✓ | ✓ | |
✓ | ✓ | ✓ | ✓ | |
✓ | ✓ | ✓ | ✓ | |
✓ | ✓ | ✓ | ✓ | |
✓ | ✓ | ✓ | ✓ |
支持的列表
简单的使用案例
原始图像:
运行结果:
详细使用案例
-
VerticalFlip 围绕X轴垂直翻转输入。
-
Blur模糊输入图像
-
HorizontalFlip 围绕y轴水平翻转输入
运行结果:
-
Flip水平,垂直或水平和垂直翻转输入。
运行结果有一定的随机性,如下图:
-
Transpose, 通过交换行和列来转置输入。
运行结果:
-
RandomCrop 随机裁剪
运行结果:
-
RandomGamma 随机灰度系数
运行结果:
-
RandomRotate90 将输入随机旋转90度,N次
运行结果:
-
ShiftScaleRotate 随机平移,缩放和旋转输入。
运行结果:
-
CenterCrop 裁剪图像的中心部分
-
GridDistortion网格失真
运行结果:
-
ElasticTransform 弹性变换
-
运行结果:
-
RandomGridShuffle把图像切成网格单元随机排列。
-
运行结果:
-
HueSaturationValue随机更改图像的颜色,饱和度和值。
运行结果:
-
PadIfNeeded 填充图像
运行结果:
-
RGBShift,对图像RGB的每个通道随机移动值。
-
GaussianBlur 使用随机核大小的高斯滤波器对图像进行模糊处理
运行结果:
-
CLAHE自适应直方图均衡
运行结果:
-
ChannelShuffle随机重新排列输入RGB图像的通道。
运行结果:
-
InvertImg反色
-
Cutout 随机擦除
运行结果:
-
RandomFog随机雾化
运行结果:
-
GridDropout网格擦除
运行结果:
- 点赞
- 收藏
- 关注作者
评论(0)