torchvision视觉库---------Pytorch

0、制作网格图像(多张图组成一张网格)
    # tensor:图像数据,BatchSize图片数*C通道数*H高*W宽
    # nrow:行数(列数自动计算)
    # padding:图像间距(像素单位)
    # normalize:是否将像素值标准化,默认False(默认数据[0,255]),但如果数据[0,1]可设置为True
    # range:标准化范围(在意的像素值区间:若像素值[-1000,2000],设置[-600,600],则小于-600的设置为-600,大于600的设置为600)
    # scale_each:是否单张图维度标准化
    # pad_value:padding的像素值
    torchvision.utils.make_grid(tensor,nrow=8,padding=2,normalize=False,range=None,scale_each=False,pad_value=0)

一、常用图像预处理方法
# torchvision.transforms

# 接受一个参数,返回一个处理后的参数
train_transform(img)
train_transform = transforms.Compose([
    transforms.Resize((32,32)), # 缩放
    transforms.RandomCrop(32, padding=4), # 裁剪,属于数据(扩增)增强,在训练时使用、测试时不用
    transforms.ToTensor(), # 图片转为张量,同时归一化像素值从[0,255]到[0,1]
    transforms.Normalize(norm_mean,norm_std),
])


1.1 裁剪
    1.1.1 从图片随机位置裁剪
        # 举例:默认填充黑色0
        transforms.RandomCrop(100,padding=3)
        
        transforms.RandomCrop(size,padding=None,
            pad_if_need=False,padding_mode='constant',fill=0)
        size:裁剪尺寸
        padding:填充大小
        '''当为a时,上下左右均填充a个像素
        当为(a,b)时,上下填b个像素,左右填a
        当为(a,b,c,d)时,左、上、右、下分别填充a、b、c、d'''
        pad_if_need:若图片小于设定size,则填充后裁剪
        padding_mode:填充模式
        '''
        constant:像素值由fill设定
        edge:由图片边缘像素值决定
        reflect:镜像填充,最后一个像素不镜像
                eg:对[1,2,3,4]填充:[3,2, 1,2,3,4, 3,2]
        symmetric:镜像填充,最后一个像素镜像
                eg:对[1,2,3,4]填充:[2,1, 1,2,3,4, 4,3]
        '''
        fill:constant时,设置填充的像素值,(R,G,B)或(Gray)
        
    
    1.1.2 从图片中心裁剪图片,裁剪100*100
        transforms.CenterCrop(100)

    1.1.3 随机大小、长宽比裁剪
        transforms.RandomResizedCrop(size,
            scale=(0.08,1.0),ratio=(3/4,4/3),
            interpolation)
        # 参数介绍
        size:裁剪尺寸(必要参数)
        scale:随机裁剪面积比例,默认随机取 0.08 到 1.0之间
        ratio:随机长宽比,默认随机取 3/4到 4/3之间
            # 若裁剪后尺寸小于size,则要插值
        interpolation:插值方法(非必要参数)
    
    1.1.4 在上下左右及中间裁剪尺寸为size的五张图
        transforms.FiveCrop(size)
    1.1.5 对这五张图进行水平或垂直镜像获得10张图
        # vertical_flip:是否垂直翻转
        transforms.TenCrop(size,vertical_flip=false)
        
1.2 翻转
    1.2.1 水平翻转
    # 翻转概率p
    transforms.RandomHorizontalFlip(p=0.5)
    1.2.2 垂直翻转
    transforms.RandomVerticalFlip(p=0.5)
    
1.3 旋转
    1.3.1 随机旋转
    # resample:重采样方法,采用默认即可
    # expand:是否扩大图片以保证原图信息
    # center:旋转点设置,默认None为中心旋转,(0,0)表示左上角旋转
    # degrees
    ##当为a时,在(-a,a)之间选择旋转角度
    ##当为(a,b)时,在(a,b)之间选择旋转角度
    transforms.RandomRotation(degrees,resample=False,expand=False,center=None)
  
1.4 对图片边缘进行填充
    # 参数参考1.1.1
    transforms.Pad(padding,fill=0,padding_mode='constant')

1.5 调整亮度、对比度、饱和度色相
    # 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.ColorJitter(brightness=0,contrast=0,saturation=0,hue=0)

1.6 转为灰度图
    # num_output_channels:只能设1或3,表示输出的通道数
    transforms.Grayscale(num_output_channels)
1.7 依概率将图片转换为灰度图
    # p:图像被转换为灰度值的概率
    transforms.RandomGrayscale(num_output_channels,p=0.1)

1.8 仿射变换(旋转、平移、缩放、翻转)
    # degrees:旋转角度设置(必要参数)
    # translate:平移区间设置,如(a,b),a设置宽、b设置高
    # scale:范围(0,1),缩放比例(以面积为单位)
    # shear:错切角度设置,有水平错切和垂直错切
    '''
    若为a,则仅在x轴错切,错切角度在(-a,a)之间
    若为(a,b),则a设置x轴角度,b设置y角度
    若为(a,b,c,d),则a,b设置x轴角度;c,d设置y角度
    '''
    # fillcolor:填充的颜色设置,默认黑色0
    transforms.RandomAffine(degrees,translate=None,scale=None,shear=None,resample=False,fillcolor=0)

1.9 随机遮挡
    # p:执行此操作的概率
    # scale:遮挡区域的面积
    # ration:遮挡区域的长宽比
    # value:设置遮挡区域的像素值,如(R,G,B)或(Gray)
    transforms.RandomErasing(p=0.5,scale=(0.02,0.33),ratio=(0.3,3.3),value=0,inplace=False)

2.0 随机选择变换
    2.0.1 从一系列transforms方法中随机挑选一个
        transforms.RandomChoice([transforms1,transforms2,transforms3])
    2.0.2 依据概率执行transforms操作(执行/不执行)
        transforms.RandomApply(p=0.5,[transforms1,transforms2,transforms3])
    2.0.3 打乱transforms操作顺序
        transforms.RandomOrder([transforms1,transforms2,transforms3])


2.1 椒盐噪声
    # 白点称为盐噪声,黑点称为椒噪声
    # 信噪比:衡量噪声的比例,图像中为图像像素的占比,越小对应噪声越大(像素越少)

'''
数据中心化
数据标准化
缩放Resize
噪声添加
线性变换
'''

二、常用的模型预训练:AlexNet/VGG/ResNet/GoogLeNet等
# torchvision.model


三、常用数据集的dataset实现:MNIST/CIFAR-10/ImageNet等
# torchvision.datasets

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值