概述
#博学谷IT学习技术支持#
PyTorch中的transforms图像增强方法
- 一、数据增强(Data Augmentation)
- 1.1 中心裁剪
- 1.2 随机裁剪
- 1.3 随机重新设置大小裁剪
- 1.4 左上角、右上角、左下角、右下角、中心进行裁剪出5张size大小的图片
- 1.5 左上角、右上角、左下角、右下角、中心进行裁剪出5张size大小的图片并进行镜像
- 1.7 水平翻转
- 1.8 垂直翻转
- 1.8 随机旋转图片
- 1.9
- 二、图像变换
- 2.1 填充图像边缘
- 2.2 调整亮度、对比度、饱和度和色相
- 2.3 转换为灰度图
- 2.4 随机仿射
- 2.5 随机遮挡
- 2.6 自定义lambda方法
- 三、方法操作
- 3.1 随机选择
- 3.2 随机应用/执行
- 3.3 随机排序/打乱顺序
- 四、自定义transforms
一、数据增强(Data Augmentation)
数据增强又称为数据增广,数据扩增,它是对训练集进行变换,使训练集更丰富,从而让模型更具泛化能力。
1.1 中心裁剪
transforms.CenterCrop
功能:从中心裁剪图片
size:所需裁剪图片尺寸
1.2 随机裁剪
transforms.RandomCrop
功能:从图片中随机裁剪初尺寸为size的图片
size:所需裁剪图片尺寸
padding:设置填充大小,当为 int时, 例如padding=a时,图片上下左右均填充a个像素;当为tupple时,(a, b),则左右填充a个像素,上下填充b个像素;(a, b, c, d), 则左填充a个像素,下填充b个像素,右填充c个像素, 上填充d个像素。
pad_if_needed=False(默认), 若图像小于设定的size,则填充。当超出尺寸时,必须打开,不然会报错。
padding_mode:填充模式,有4种,
1、constant:像素由fill设定。
2、edge:像素由图像边沿像素决定。
3、reflect:像素填充,最后一个像素不镜像, 例如: [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]
file:constant时,设置填充的像素值.RGB值,类型为tupple
1.3 随机重新设置大小裁剪
transforms.RandomResizeCrop
功能:随机大小、长宽比裁剪图片
size:所需裁剪图片尺寸。
scale:随机裁剪面积比例,默认(0.08, 1)
ratio:随机长宽比,默认(3/4, 4/3)
interpolation:插值方法。有三种,PIL.Image.NEAREST(最近邻)、PIL.Image.BILNEAR(双切线插值)、PIL.Image.BICUBIC(双三次插值)
1.4 左上角、右上角、左下角、右下角、中心进行裁剪出5张size大小的图片
transforms.FiveCrop
功能:在图像的上下左右以及中心裁剪初尺寸为size的5张图片。
size:所需裁剪图片尺寸
1.5 左上角、右上角、左下角、右下角、中心进行裁剪出5张size大小的图片并进行镜像
transforms.TenCrop
功能:在图像的上下左右以及中心裁剪初尺寸为size的5张图片。TenCrop对这5张图片进行水平或者垂直镜像获得10张图片
size:所需裁剪图片尺寸
vertical_flip:是否垂直翻转
1.7 水平翻转
transforms.HorizontalFlip(p=1)
功能:对图像依概率P进行水平(左右)翻转
1.8 垂直翻转
transforms.RandomVerticalFlip
功能:对图像依概率P进行垂直(上下)翻转
1.8 随机旋转图片
transforms.RandomRotation
功能:随机旋转图片
degrees:旋转角度,当为a时,在(-a, a)之间选择旋转角度。当为(a, b)时,在(a, b)之间选择旋转角度.
resample:重采样方法
expand:是否扩大图片,以保存图片原有信息
center:旋转中心,(0, 0)为左上角。具体根据屏幕的坐标,(0, 0)为左上角。默认为图片中心
1.9
二、图像变换
2.1 填充图像边缘
transforms.Pad
功能:对图像边缘进行填充
padding:设置填充大小
当为a时,上下左右均填充a个像素;
当为(a, b)时上下填充b个像素,左右填充a个像素;
当为(a, b, c, d)时,左、上、右、下分别填充a、b、c、d
padding_mode:填充模式,有4种,constant、edge(图像边缘值填充)、reflect和symmetric
fill:constant时,设置填充的像素值,(R, G, B) or (Gray)
2.2 调整亮度、对比度、饱和度和色相
transforms.ColorJitter
功能:调整亮度、对比度、饱和度和色相
brightness:亮度调整因子
当为a时,从[max(0, 1-a), 1+a]种随机选择;
当为(a, b)时,从[a, b]中随机选择
constant:对比度参数,同brightness
saturation:饱和度参数,同brightness
hue:色相参数,当为a时,从[-a, a]中选择参数,注:0 <= a <= 0.5
当为(a, b)时,从[a, b]中选择参数,注:-0.5 <= a <= b <= 0.5
2.3 转换为灰度图
transforms.Grayscale
功能:依概率将图片转换为灰度图
num_output_channels:输出通道数,只能设置1或者3
p:概率值,图像被转换为灰度图的概率
2.4 随机仿射
transforms.Affine
功能:对图像进行仿射变换,仿射变换是二维的线性变换,由五种基本原子变换构成,分别是 旋转、平移、缩放、错切、 和 翻转
degrees: 旋转角度设置
translate :平移区间设置如(a, b), a设置宽(width), b设置高(height) 。图像在宽维度的平移区间为 -img_width * a < dx < img_width * a
scale :缩放比例(以面积为单位)
file_color :填充颜色设置
share:错切角度设置,有水平错切和垂直错切,若为a,则仅在x轴错切,错切角度为(-a, a)之间;若为(a, b), 则a设置x轴角度,b设置y的角度
若为(a, b, c, d), 则a,b设置x轴角度,c, d设置y角度
resample:重采样方式有NEAREST、BILINEAR、BICUBIC
2.5 随机遮挡
transorms.RandomErasing
功能:对图像进行随机遮挡
p:概率值
scale:遮挡区域的面积
ratio:遮挡区域长宽比
value:设置遮挡区域的像素值, (R, G, B) or (Gray), value为字符串(不一定非要’random’)时,随机填充像素值。
2.6 自定义lambda方法
transforms.Lambda
功能:用户自定义lambda方法
lamda:lambda匿名函数
例如:lambda [arg1 [, arg2, …, ]]: expression
三、方法操作
3.1 随机选择
transforms.RandomChoice
功能:从一系列transforms方法种随机挑选一个
3.2 随机应用/执行
transforms.RandomApply
功能:依概率执行一组transforms操作
3.3 随机排序/打乱顺序
transforms.RandomOrder
功能:对一组transforms操作打乱顺序
四、自定义transforms
注意: 自定义transforms要素:
1、仅接收一个参数,返回一个参数
2、注意上下游的输出与输入
最后
以上就是大方荷花为你收集整理的PyTorch中的transforms图像增强方法一、数据增强(Data Augmentation)二、图像变换三、方法操作四、自定义transforms的全部内容,希望文章能够帮你解决PyTorch中的transforms图像增强方法一、数据增强(Data Augmentation)二、图像变换三、方法操作四、自定义transforms所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复