pytorch: 数据增广(Data Augmentation)

常用的数据增广方法:

  1. 比例缩放
  2. 位置截取
  3. 翻转
  4. 旋转
  5. 亮度、对比度和色调的变化

读取原图:

import torchvision.transforms as transforms
from PIL import Image

img = Image.open('cat.jpg')
img.show()
print('img:',img.size)

输出为:
img: (500, 313)

pytorch: 数据增广(Data Augmentation)_第1张图片

1、比例缩放

img1 = transforms.Resize(112)(img)  # 短边缩放成112,长边按比例缩放
img2 = transforms.Resize((112, 112))(img)  # 强行缩放成手动设置的比例
img1.show()
img2.show()
print('img1:', img1.size)
print('img2:', img2.size)

输出为:
img1: (178, 112)
img2: (112, 112)
pytorch: 数据增广(Data Augmentation)_第2张图片
pytorch: 数据增广(Data Augmentation)_第3张图片

2、位置截取

rand_img = transforms.RandomCrop(112)(img)  # 随机裁剪112*112
rand_img.show()
print('rand_img:', rand_img.size)
center_img = transforms.CenterCrop(112)(img)  # 以原图中心为中心,裁剪112*112
center_img.show()
print("center_img:", center_img.size)

输出为:
rand_img: (112, 112)
center_img: (112, 112)
pytorch: 数据增广(Data Augmentation)_第4张图片
pytorch: 数据增广(Data Augmentation)_第5张图片

3、翻转

hor_img = transforms.RandomHorizontalFlip(p=1)(img)  # 随机水平翻转, p为概率
hor_img.show()
ver_img = transforms.RandomVerticalFlip(p=1)(img)  # 随机垂直翻转,p为概率
ver_img.show()

输出为:
pytorch: 数据增广(Data Augmentation)_第6张图片
pytorch: 数据增广(Data Augmentation)_第7张图片

4、旋转

ot_img = transforms.RandomRotation(15)(img)  # 随机在(-15, 15)度旋转
rot_img.show()
print("rot_img:", rot_img.size)

输出为:
rot_img: (500, 313)
pytorch: 数据增广(Data Augmentation)_第8张图片

5、亮度、对比度和色调的变化

bright_img = transforms.ColorJitter(brightness=1)(img)  # 随机从0~2之间的亮度变化
bright_img.show()
contrast_img = transforms.ColorJitter(contrast=1)(img)  # 随机从0~2之间的对比度
contrast_img.show()
hue_img = transforms.ColorJitter(hue=0.5)(img)  # 随机从-0.5~0.5之间的色调
hue_img.show()
saturation_img = transforms.ColorJitter(saturation=0.5)(img)
saturation_img.show()
color_img = transforms.ColorJitter(brightness=1,contrast=1,hue=0.5,saturation=0.5)(img)
color_img.show()

输出为:
pytorch: 数据增广(Data Augmentation)_第9张图片
pytorch: 数据增广(Data Augmentation)_第10张图片
pytorch: 数据增广(Data Augmentation)_第11张图片
pytorch: 数据增广(Data Augmentation)_第12张图片
pytorch: 数据增广(Data Augmentation)_第13张图片

你可能感兴趣的:(pytorch,深度学习,pytorch)