今天读到了图像增广
这是书中它的解释:
图像增广(image augmentation)技术通过对训练图像做一系列随机改变,来产生相似但又不同的训练样本,从而扩大训练数据集的规模。图像增广的另一种解释是,随机改变训练样本可以降低模型对某些属性的依赖,从而提高模型的泛化能力。例如,我们可以对图像进行不同方式的裁剪,使感兴趣的物体出现在不同位置,从而减轻模型对物体出现位置的依赖性。我们也可以调整亮度、色彩等因素来降低模型对色彩的敏感度。
这是它所需要导入的包:
%matplotlib inline
import time
import torch
from torch import nn, optim
from torch.utils.data import Dataset, DataLoader
import torchvision
from PIL import Image
import sys
sys.path.append("..")
import d2lzh_pytorch as d2l
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
那常用的图像增广方法总结有以下几种:
1、翻转和剪裁:
左右翻转图像通常不改变物体的类别。它是最早也是最广泛使用的一种图像增广方法。可以通过torchvision.transforms
模块创建RandomHorizontalFlip
实例来实现一半概率的图像水平(左右)翻转。
2、变换颜色
我们可以从4个方面改变图像的颜色:亮度(brightness
)、对比度(contrast
)、饱和度(saturation
)和色调(hue
)。
3、叠加多个图像增广方法
实际应用中我们会将多个图像增广方法叠加使用。我们可以通过Compose
实例将上面定义的多个图像增广方法叠加起来,再应用到每张图像之上。