Albumentation使用指南
Albumentation使用指南
import最好放在最前面否则可能会和其他模块冲突,import之后如果包OMP的错误就加两行
import os
os.environ['KMP_DUPLICATE_LIB_OK'] = 'TRUE'
资源
官方example
官方demo
使用
import albumentations as A from PIL import Image import cv2 as cv import numpy as np from data import get_dir, get_data, get_regr_tagtrans = A.Compose([A.HorizontalFlip(p = 0.5),# A.Transpose(),A.OneOf([A.IAAAdditiveGaussianNoise(),A.GaussNoise(),], p=0.3),A.OneOf([A.MotionBlur(p=0.2),A.MedianBlur(blur_limit=3, p=0.1),A.Blur(blur_limit=3, p=0.1),], p=0.5),A.ShiftScaleRotate(shift_limit=0.0625, scale_limit=0.2, rotate_limit=45, p=0.2),A.OneOf([A.OpticalDistortion(p=0.3),A.GridDistortion(p=0.1),A.IAAPiecewiseAffine(p=0.3),], p=0.5),A.OneOf([A.CLAHE(clip_limit=2),A.IAASharpen(),A.IAAEmboss(),A.RandomBrightnessContrast(),], p=0.5),A.HueSaturationValue(p=0.3),]) src_data = get_data(f'D:/face_five', n_class = 5) image = src_data[0][0] img = trans(image = image)['image']cv.imshow("da", img) cv.waitKey(0)A.OneOf是从列表里选一个相当于transforms里的randomCoice
A.Compose与transforms里的一样
简单增样:
随机调整亮度:
RandomBrightness(limit=2, p=0.5)limit最大时现在的两倍,p是调整的概率
随机旋转:
Rotate(limit=89, p=0.5)
色度偏移:
RGBShift(r_shift_limit=133, g_shift_limit=146, b_shift_limit=26, p=0.5)三原色在原本基础上增加或减小
伽马变换:
RandomGamma(gamma_limit=148, p=0.5)色域的非线性变换
垂直翻转:
VerticalFlip(p=0.5)水平翻转:
HorizontalFlip(p=0.5)
随机90度旋转:
RandomRotate90(p = 0.5)旋转平移缩放:
ShiftScaleRotate(shift_limit=0.8, scale_limit=1, rotate_limit=118, p=0.5)rotate_limit:旋转角度限制
scale_limit:缩放尺寸限制,(0到2)
shift_limit:平移限制(0 到1)
周围空缺部分均镜面填补
转灰度图:
trans_test = A.ToGray()
中心裁剪:
CenterCrop(height=480, width=480, p=0.5)HSV偏移:
HueSaturationValue(hue_shift_limit=20, sat_shift_limit=20, val_shift_limit=27, p=0.5)hue:色度
sat:饱和度
val:亮度
随机对比度:
RandomContrast(limit=2.3, p=0.5)limit:0到3, 1为正常值
高级增样:
图片压缩:
JpegCompression(quality_lower=80, quality_upper=100, p=0.5)quality_lower&quality_upper设置压缩百分比的上下限
质量压缩:
模糊处理:
box模糊:
trans_test = A.Blur(blur_limit=7, p=1)blur_limit:最大的核尺寸,核尺寸的最小值是3,blur_limit默认为7
中值模糊:
A.MedianBlur(blur_limit=3, p=0.1)blur_limit:同上(但只能是奇数)
动态模糊:
A.MotionBlur(p=0.2)blur_limit同上
高斯模糊:
blur_limit(奇数)
trans_test = A.GaussianBlur(blur_limit=7, p=1)
棱镜模糊:
trans_test = A.GlassBlur(sigma=0.7, max_delta=4)sigma:高斯核的标准差
max_delta:像素交换的最大距离
变形:
弹性变形:
文本图像分析最好的变形
ElasticTransform(alpha=155, sigma=210, alpha_affine=157, p=0.5)
光学变形:
OpticalDistortion(distort_limit=0.25, shift_limit=0.2, p=0.5)distort_limit四周镜像填充宽度(图片大小不变)
shift_limit
栅格变形:
trans_test = A.GridDistortion(num_steps=5, distort_limit=0.3, p=1)num_steps:一条边有几个格子
distort_limit:变形范围
自适应直方图均衡化:
trans_test = A.CLAHE(clip_limit=4.0, tile_grid_size=(8, 8))
挖小洞:
trans_test = A.Cutout(num_holes=8, max_h_size=8, max_w_size=8)num_holes:小洞的数量
max_h_size:最大高度
max_w_size:最大宽度
特效:
加雪花:
trans_test = A.RandomSnow(p = 1)
加雨滴:
trans_test = A.RandomRain(p = 1)
加雾:
trans_test = A.RandomFog(p = 1)加阳光:
trans_test = A.RandomSunFlare(p = 1)加阴影:
trans_test = A.RandomShadow(p = 1)
添加噪声:
添加传感器噪声:
trans_test = A.ISONoise(p = 1)
高斯噪声:
trans_test = A.IAAAdditiveGaussianNoise(p = 1)多层偏移噪声:
trans_test = A.MultiplicativeNoise(p = 1)
IAA:
浮雕:
trans_test = A.IAAEmboss(p = 1)
超像素:
trans_test = A.IAASuperpixels(p = 1)
锐化:
trans_test = A.IAASharpen(p = 1)透视变换:
trans_test = A.IAAPerspective(p = 1)
pytorch:
albumentation有两种转换张量, ToTensor和ToTensorV2
from albumentations.pytorch import ToTensorV2, ToTensorA.ToTensorV2(p=1.0),A.ToTensor()ToTensor就是最普通的最大值归一化并且转化为chw
ToTensor就是把图片转成张量适合跟在A.Normalize后面
不定期更新。。
总结
以上是生活随笔为你收集整理的Albumentation使用指南的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 程序员数学(15)--分式
- 下一篇: Citrix ADC中SNIP的三种配置