常用数据处理方法
torchvision.transforms:常用的图像预处理方法 数据中心化 数据标准化 缩放 裁剪 旋转 翻转 填充 噪声添加 灰度变换 线性变换 仿射变换 亮度、饱和度及对比度变换
- RandomCrop
功能:依据给定的size随机裁剪 参数: size(sequence or int) 若为sequence,则为(h,w),若为int,则(size,size) padding-(sequence or int, optional),此参数是设置填充多少个pixel 当为int时,图像上下左右均填充int个,例如padding=4 ,则上下左右均填充4个pixel,若输入图像尺寸为3232,则变为4040. 当为sequence时,若有2个数,则第一个数表示左右填充多少,第二个数表示上下的。当有4个数时,则为左,上,右,下 - transforms.Normalize
transforms.Normalize(mean,
std,
inplace=False)
功能:逐channel的对图像进行标准化 output = (input - mean)/std mean:各通道的均值 std: 各通道的标准差 inplace:是否原地操作 Normalize的目的:加速模型收敛 3. transforms.RandomResizedCrop
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:插值方法 3. transforms.RandomHorizontalFlip§ 功能:依概率水平翻转 p;翻转概率 4. transforms.RandomVerticalFlip 功能:依概率垂直翻转图片 p:翻转概率 5. transforms.RandomRotation
transforms.RandomRotation(degrees,
resample=False,
expand=False,
center=None)
功能:随机旋转图片 degrees:旋转角度 当为a时,在(-a,a)之间选择旋转角度 当为(a,b)时,在(a,b)之间选择旋转角度 resample:重采样方法 expand:是否扩大图片,以保持原图信息 6. transforms.Pad
transforms.Pad(padding,
fill=0,
padding_mode='constant')
功能:对图片边缘进行填充 padding:设置填充大小 当为a时,上下左右均填充a个像素 当为(a,b)时,上下填充b个像素,左右填充a个像素 当为(a,b,c,d)时,左,上,右,下分别填充a,b,c,d padding_mode:填充模式,有四种模式,constant,edge,reflect和symmetric fill:constant时,设置填充的像素值,(R,G,B)or(Gray) 7. transforms.ColorJitter
transforms.ColorJitter(brightness=0,
contrast=0,
saturation=0,
hue=0)
功能:调整亮度、对比度、饱和度和色相 brightness:亮度调整因子 当为a时,从[max(0,1-a),1+a]中随机选择 当为(a,b)时,从[a,b]中选择 contrast:对比度参数,同brightness saturation:饱和度参数,同brightness hue:色相参数,当为a时,从[-a,a]中选择参数,注:0<=a<=0.5 当为(a,b)时,从[a,b]中选择参数,注:-0.5<=a<=b<=0.5
- transforms.RandomErasing
transforms.RandomErasing(p=0.5,
scale=(0.02,0.33),
ratio=(0.3,3.3),
value=0,
inplace=False)
功能:对图像进行随机遮挡 p:概率值,执行该操作的概率 scale:遮挡区域的面积 ratio:遮挡区域的长宽比 value:设置遮挡区域的像素值,(R,G,B)or (Gray) 9. 自定义transforms 1仅接受一个参数,返回一个参数 2注意上下游的输出与输入
class YourTransforms(object):
def __init__(self,...)
pass
def __call__(self,img)
...
return img
|