Image Augmentation with torchvision.transforms.

torchvision.transforms提供了常用的图像变换方法,输入支持PIL图像或tensor图像。图像变换中存在一些随机性,使用下列语句设置随机数种子:

import torch
torch.manual_seed(17)

可以同时设置多种数据增强方法,通过Compose方法实现:

from torchvision import transforms
train_transform = transforms.Compose([,])

也可以设置使用增强方法的概率,通过RandomApply方法实现:

train_transform = transforms.RandomApply(
    torch.nn.ModuleList([,]), p=0.3)

torchvision.transforms提供的图像增强方法可以分为几何变换像素变换

1. 常用的几何变换:

常用的几何变换包括:

transforms.CenterCrop(size)

在图像中心进行裁剪。如果图像尺寸小于裁剪长度,则对图像填充$0$。主要参数如下:

transforms.FiveCrop(size)

裁剪图像的中心和四个角落,返回一个图像元组。主要参数如下:

transforms.TenCrop(size)

裁剪图像的中心和四个角落,再将它们水平翻转,返回一个图像元组。主要参数如下:

transforms.RandomCrop(size)

随机裁剪图像的一部分。主要参数如下:

transforms.RandomHorizontalFlip(p=0.5)

把图像水平翻转,可以指定概率$p$。

原始图像 增强图像

transforms.RandomVerticalFlip(p=0.5)

把图像垂直翻转,可以指定概率$p$。

原始图像 增强图像

transforms.RandomResizedCrop(size, scale=(0.08, 1.0), ratio=(0.75, 1.3333333333333333))

随机裁剪图像的一部分并缩放到指定尺寸。主要参数如下:

原始图像 增强图像

transforms.RandomRotation(degrees)

对图像进行随机旋转。主要参数如下:

原始图像 增强图像

transforms.RandomPerspective(distortion_scale=0.5, p=0.5)

对图像进行透视变换,可以指定概率$p$。主要参数如下:

原始图像 增强图像

transforms.RandomAffine(degrees)

以图像中心进行随机仿射变换。主要参数如下:

原始图像 旋转 平移 缩放 剪切

2. 常用的像素变换

常用的像素变换包括:

transforms.Grayscale(num_output_channels=1)

把图像转换为灰度图,可以指定输出通道数(通常为$1$或$3$)。

原始图像 增强图像

transforms.RandomGrayscale(p=0.1)

按一定概率把图像转换为灰度图,可以指定概率$p$。

transforms.RandomInvert(p=0.5)

反转像素值,可以指定概率$p$。

原始图像 增强图像

transforms.GaussianBlur(kernel_size, sigma=(0.1, 2.0))

使用高斯模糊进行图像平滑。主要参数如下:

原始图像 增强图像

transforms.RandomPosterize(bits, p=0.5)

通过减少每个颜色通道的位数对图像进行色调分离,可以指定概率$p$。颜色通道位数越多,则能表示的颜色数量越多。主要参数如下:

原始图像 增强图像

transforms.RandomSolarize(threshold, p=0.5)

通过反转高于阈值的像素值对图像进行曝光,可以指定概率$p$。主要参数如下:

原始图像 增强图像

transforms.RandomAdjustSharpness(sharpness_factor, p=0.5)

调整图像的锐化程度,可以指定概率$p$。主要参数如下:

原始图像 增强图像

transforms.RandomAutocontrast(p=0.5)

自动调整图像的对比度,可以指定概率$p$。

原始图像 增强图像

transforms.RandomEqualize(p=0.5)

直方图均衡化,可以指定概率$p$。

原始图像 增强图像

transforms.ColorJitter(brightness=0, contrast=0, saturation=0, hue=0)

随机改变图像的颜色参数。主要参数如下:

原始图像 亮度 对比度 饱和度 色调