深度学习中比较常用的是数据增强库是torchvision.transforms
今天发现了另一个增强库叫Albumentations
其开源、快速、简单且增强方式很多:图像增强库Albumentations使用总结
最重要的是可以同时增强图像及其掩码,边界框或关键点位置
话不多说先安装:
pip install albumentations
实验:图片来自息肉分割数据集
from PIL import Image
import matplotlib.pyplot as plt
import numpy as np
import cv2
import albumentations as A
img = Image.open('./tupian/image.jpg').convert('RGB')
img = np.uint8(img)
mask = Image.open('./tupian/mask.jpg').convert('L')
mask = np.uint8(mask)
mask = mask / 255.0
transform = A.Compose([A.ShiftScaleRotate(shift_limit=0.15, scale_limit=0.15,
rotate_limit=25, p=0.5, border_mode=0),
A.ColorJitter(),
A.HorizontalFlip(),
A.VerticalFlip()])
transformed = transform(image=img, mask=mask)
img_A = transformed['image']
mask_A = transformed['mask']
plt.figure()
plt.subplot(2,2,1),plt.imshow(img)
plt.axis('off'),plt.title('原图')
plt.subplot(2,2,2),plt.imshow(mask, 'gray')
plt.axis('off'),plt.title('原掩码')
plt.subplot(2,2,3),plt.imshow(img_A)
plt.axis('off'),plt.title('变换后原图')
plt.subplot(2,2,4),plt.imshow(mask_A, 'gray')
plt.axis('off'),plt.title('变换后掩码')
plt.show()
效果:
一秒钟可运行两次,每次运行都有新感觉: