图像增广
图像增广(image augmentation)技术通过对训练图像做一系列随机改变,来产生相似但又不同的训练样本,从而扩大训练数据集的规模。
其优点在于通过随机改变训练样本可以降低模型对某些属性的依赖,从而提高模型的泛化能力。
例如:
- 对图像进行不同方式的裁剪,使感兴趣的物体出现在不同位置,从而减轻模型对物体出现位置的依赖性。
- 可以调整亮度、色彩等因素来降低模型对色彩的敏感度。
常用增广方法
我们这里使用torchvision对图像进行处理,torchvision内置了一些图像处理API。
torchvision.transforms
下内置各种图像处理方法,调用并输入图像就可以得到处理后的Image
对象。
基本调用方法为:
import torchvision
from PIL import Image
img = Image.open('./cat3.jpg')
img = torchvision.transforms.RandomHorizontalFlip()(img)
我们这里写一个函数方便测试:
def deal_single_img(path, deal_function):
d2l.set_figsize()
img2 = Image.open(path)
origin_type = type(img2)
d2l.plt.imshow(img2)
plt.show()
img2 = deal_function(img