一、数据增强
1、增加一个已有数据集,使得有更多的多样性,比如加入不同的背景噪音、改变图片的颜色和形状。
2、增强数据是在线生成的
3、增强类型:
(1)翻转
(2)切割
(3)颜色
(4)锐化、加斑点
二、总结
1、数据增广通过变形数据来获取多样性,从而使得模型泛化性更好
2、常见图片增广包括翻转、切割、变色
3、就是把数据集换了而已
4、为了在预测过程中得到确切的结果,我们通常对训练样本只进行图像增广,而在预测过程中不使用带随机操作的图像增广。
5、深度学习框架提供了许多不同的图像增广方法,这些方法可以被同时应用。
三、代码
1、增广方法aug
def apply(img, aug, num_rows=2, num_cols=4, scale=1.5): Y = [aug(img) for _ in range(num_rows * num_cols)] d2l.show_images(Y, num_rows, num_cols, scale=scale)
2、翻转
apply(img, torchvision.transforms.RandomHorizontalFlip()) apply(img, torchvision.transforms.RandomVerticalFlip())
3、裁剪
#面积为原始面积10%到100%的区域,宽高比从0.5~2之间随机取值 shape_aug = torchvision.transforms.RandomResizedCrop( (200, 200), scale=(0.1, 1), ratio=(0.5, 2)) apply(img, shape_aug)
4、亮度
apply(img, torchvision.transforms.ColorJitter( brightness=0.5, contrast=0, saturation=0, hue=0))
5、色调
apply(img, torchvision.transforms.ColorJitter( brightness=0, contrast=0, saturation=0, hue=0.5))
亮度(brightness
)、对比度(contrast
)、饱和度(saturation
)和色调(hue
)
6、混合
augs = torchvision.transforms.Compose([ torchvision.transforms.RandomHorizontalFlip(), color_aug, shape_aug]) apply(img, augs)