一、数据增强
数据增强又称为数据增广,数据扩增,它是对训练集进行变换,使训练集更丰富,从而让模型更具泛化能力
二、transforms——裁剪
2.1 transforms.CenterCrop
transforms.CenterCrop(size)
功能: 从图像中心裁剪图片
- size: 所需裁剪图片尺寸
2.2 transforms.RandomCrop
功能: 从图片中随机裁剪出尺寸为size的图片
- size: 所需裁剪图片尺寸
- padding: 设置填充大小
当为a时,上下左右均填充a个像素
当为(a, b)时,上下填充b个像素,左右填充a个像素
当为(a, b, c, d)时,左,上,右,下分别填充a, b, c, d - pad-if-need: 若图像小于设定size ,则填充
- padding_mode: 填充模式,有4种模式
constant: 像素值由fill设定
edge: 像素值由图像边缘像素决定
reflect: 镜像填充,最后一个像素不镜像, eg: [1,2,3,4] → [3,2,1,2,3,4,3,2]
symmetric: 镜像填充,最后一个像素镜像, eg: [1.2.3.4] → [2,1,1,2,3,4,4,3] - fill: constant时,设置填充的像素值,即填充颜色
2.3 RandomResizedCrop
功能: 从图片中随机裁剪出尺寸为size的图片
- size: 所需裁剪图片尺寸
- scale: 随机裁剪面积比例,默认(0.08, 1)
- ratio: 随机长宽比,默认(3/4, 4/3)
- interpolation: 插值方法
PIL.Image.NEAREST
PIL.Image.BILINEAR
PIL.Image.BICUBIC
2.4 FiveCrop
功能: 在图像的上下左右以及中心裁剪出尺寸为size的5张图片
- size: 所需裁剪图片尺寸
2.5 TenCrop
功能: 先获得FiveCrop处理的5张图片,对这5张图片进行水平或者垂直镜像获得10张图片
- size: 所需裁剪图片尺寸
- vertical_flip: 是否垂直翻转
三、transforms——翻转和旋转
3.1 RandomHorizontalFlip
RandomHorizontalFlip(p=0.5)
功能: 依概率垂直(上下)翻转图片
- p: 翻转概率
3.2 RandomVerticalFlip
RandomVerticalFlip(p=0.5)
功能: 依概率水平(左右)翻转图片
- p: 翻转概率
3.3 RandomRotation
功能: 随机旋转图片
- degrees: 旋转角度
当为a时,在(-a, a)之间选择旋转角度
当为(a, b)时,在(a, b)之间随机选择一个旋转角度 - resample: 重采样方法
- expand: 是否扩大图片, 以保持原图信息
- center: 旋转点设置, 默认中心旋转