赞
踩
官方地址:github.com
API(文档)地址:Albumentations Documentation
Albumentations是一个基于OpenCV的数据增强库,支持多种计算机视觉任务,如分类、语义分割、实例分割、目标检测和位姿识别。
Albumentations具有以下特点:
方法一: pip 安装
pip install albumentations
方法二:源码库安装
pip install -U git+https://github.com/albu/albumentations
或
pip install -U git+https://github.com/albumentations-team/albumentations
方法三: conda安装
此方式需要先安装imgaug,然后再安装albumentations
- conda install -c conda-forge imgaug
-
- conda install albumentations -c albumentations
像素级变换仅更改输入图像,而mask、检测框和关键点保持不变。
空间级变换将同时更改输入图像、mask、检测框和关键点。
- import albumentations as A
- from PIL import Image
- import numpy as np
- from torchvision import transforms as t
- import matplotlib.pyplot as plt
-
- trans = A.Compose([
- A.HorizontalFlip(p=0.5),
- A.VerticalFlip(p=0.5),
- A.OneOf([
- A.IAAAditiveGaussianNoise(), # 将高斯噪声添加到输入图像
- A.GaussNoise(), # 将高斯噪声应用于输入图像
- ], p=0.2), # 应用选定变换的概率
- A.OneOf([
- A.RandomGamma(gamma_limit=(60, 120), p=0.9), # gamma变换
- A.RandomBrightnessContrast(brightness_limit=0.2, contrast_limit=0.2, p=0.9), # 随机选择图片的对比度和亮度
- A.CLAHE(clip_limit=4.0, tile_grid_size=(4, 4), p=0.9), # 一种对比度受限情况下的自适应直方图均衡化算法
- ])
- 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.2),
- A.ShiftScaleRotate(shift_limit=0.0625, scale_limit=0.2, rotate_limit=45, p=0.2),
- # 随机应用仿射变换:平移,缩放和旋转输入
- A.RandomBrightnessContrast(p=0.2), # 随机明亮对比度
- A.Normalize(mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225), max_pixel_value=255.0, p=1.0) # 归一化
- ])
-
- image = Image.open('xxx.png')
- img_arr = np.array(image) #
- resize = A.resize(img_arr, 256, 256) #
-
- trans_img = trans(image=img_arr) #对输入图像进行变换
-
- as_tensor = t.ToTensor()
-
- img_tensor = as_tensor(trans_img['image']) # 使用torchvision把做好了transforms的数据转化成tensor。
-
- plt.figure(figsize=(8,8))
- plt.subplot(121)
- plt.title('original image')
- plt.imshow(img_arr, cmap='gray')
- plt.subplot(122)
- plt.title('albumentations image')
- plt.imshow(trans_img['image'], cmap='gray')
注意:两个重要的函数——Compose和OneOf。Compose是把所有的变换放在一起,按顺序执行;OneOf可以选择性的执行包在它里面的变换。Compose组合下的变换是要挨着顺序做的,而OneOf组合里面的变换是系统自动选择其中一个来做,而这里的概率参数p是指选定后的变换被做的概率。
方法一:使用albumentations库中的函数ToTensorV2()。
方法二:使用torchvision把做好了transform的数据转换成tensor。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。