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