Pytorch Transforms操作汇总
-
- 数据增强(Data Augmentation)
- torchvision计算机视觉工具包
- torchvision.transforms :常用的图像预处理方法
- 1.图像裁切(Crop)
- 2.图片翻转、旋转(Flip, Rotation)
- 3.图像变换
-
- transforms.Normalize (mean, std, inplace=False)
- transforms.Resize(size, interpolation=2)
- transforms.ToTensor()
- transforms.Pad(padding, fill=0, padding_mode=‘constant’)
- transforms.ColorJitter(brightness=0, contrast=0, saturation=0, hue=0 )
- transforms.RandomGrayscale ( num_ output_ channels, p=0.1)
- transforms.Grayscale(num_ output_ channels)
- transforms.RandomAffine(degrees, translate=None, scale=None, shear=None, resample=False, fillcolor=0)
- transforms.RandomErasing(p=0.5, scale=(0.02, 0.33), ratio=(0.3, 3.3), value=0, inplace=False)
- transforms.Lambda( lambd)
- 4.Transforms的操作
- 5.自定义Transforms
数据增强(Data Augmentation)
数据增强又称为数据增广,数据扩增,它是对训练集进行变换,使训练集更
丰富,从而让模型更具泛化能力,在pytorch中我们使用transforms这一工具包对图像数据进行增强
torchvision计算机视觉工具包
-
该工具包主要包含以下三种常用的类
torchvision.transforms :常用的图像预处理方法
torchvision.datasets :常用数据集的dataset实现,MNIST, CIFAR-10, ImageNet等
torchvision.model :常用的模型预训练,AlexNet, VGG, ResNet, GoogLeNet等 -
本文主要对第一种类torchvision.transforms进行介绍
torchvision.transforms :常用的图像预处理方法
数据中心化
数据标准化
缩放
裁剪
旋转
翻转
填充
噪声添加
灰度变换
线性变换
仿射变换
亮度、饱和度及对比度变换
下面介绍几种常用的transforms方法,以后遇到会再补充
transforms.Compose (transforms)
功能:将多个变换方式逐步实现。
例:transforms.Compose(transforms.ToTensor(), transforms.Normalize())
1.图像裁切(Crop)
transforms.RandomCrop(size, padding=None, pad_if_needed=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 :镜像填充,最后一个像素镜像,eg : [1,2,3,4] → [2,1,1,2,3,4,4,3] - fill constant时, 设置填充的像素值
transforms.CenterCrop(size)
功能:从图像中心裁剪图片
- size:所需裁剪图片尺寸
transforms.RandomResizedCrop(size, scale=(0.08, 1.0), ratio=(3/4, 4/3), interpolation)
功能:随机大小、长宽比裁剪图片
- size:所需裁剪图片尺寸
- scale:随机裁剪面积比例,默认(0.08,1)
- ratio:随机长宽比,默认(3/4, 4/3)
- interpolation:插值方法
PIL. Image. NEAREST
PIL. Image. BILINEAR
PIL. /mage. BICUBIC
transforms.FiveCrop(size)
功能:在图像的上下左右以及中心裁剪出尺寸为size的5张图片
- size:所需裁剪图片尺寸
transforms.TenCrop(size,vertical_ flip=False)
功能:在图像的上下左右以及中心裁剪出尺寸为size的5张图片,TenCrop对这5张图片进行水平或者垂直镜像获得10张图片
- size:所需裁剪图片尺寸
- vertical_ flip: 是否垂直翻转