torchvision.transforms:常用的图像预处理方法:
数据中心化。数据标准化:均值为0,标准差为1。缩放。裁剪。旋转。翻转。填充。噪声添加。灰度变换。线性变换。仿射变换。亮度、饱和度、对比度变换。
transforms运行机制如图:
transforms.Normalize。功能:按channel对图像进行标准化(均值变为0,标准差变为1),output = (input-mean)/std
标准化可极大加速模型的收敛
transforms 图像增强
对训练集进行变换,使训练集更加丰富,从而增加模型的泛化能力。(5年高考,3年模拟)
1、裁剪
transforms.CenterCrop(size)
transforms.RandomCrop(size,padding=None,pad_if_needed=False,fill=0,padding_mode='constant')
transforms.RandomResizedCrop(size,scale=(0.08,1.0),ratio=(3/4,4/3),interpolation)
transforms.FiveCrop(size)
transforms.TenCrop(size,vertical_flip=False)
2、翻转,旋转
transforms.RandomHorizontalFlip(p=0.5)
transforms.RandomVerticalFlip(p=0.5)
transforms.RandomRotation(degrees,resample=False,expand=False,center=None)
3、图像变换
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,0.3),value=0,inplace=False)
transfoms.Lambda(lambda input: expression)
transforms.Resize
transforms.Totensor
transforms.Normalize
4、transforms的选择操作
transforms.RandomChoice([transforms1, transforms2, transforms3])
transforms.RandomApply([transforms1, transforms2, transforms3], p=0.5)
transforms.RandomOrder([transforms1, transforms2, transforms3])
详细参数可见:https://blog.csdn.net/u011995719/article/details/85107009
自定义transforms方法,注意1:仅接收一个参数,返回一个参数,注意2:上下游的输入输出。
椒盐噪声:又称为脉冲噪声,是一个随机出现的白点或者黑点,白点称为盐噪声,黑点称为椒噪声
信噪比:是衡量噪声的比例,在图像中为图像像素的占比,0,1之间)。
数据增强策略,(原则:让训练集与测试集更接近)
空间位置:平移
色彩:灰度图,色彩抖动
形状:仿射变换
上下文场景:遮挡,填充