欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

Albumentation使用指南

发布时间:2023/12/18 53 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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使用指南的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。