第六讲,计算机视觉包torchvision和图像的数据增强方法

一,torchvision:计算机视觉工具包

  • torchvision.transforms:常用的图像预处理方法

  • torchvision.datasets:常用数据集的dataset实现

  • torchvision.model:常用的模型预训练

二,常用图像预处理方法,图像标准化

  • torchvision.Normalize:

    • mean:各通道的平均值
    • std:各通道的标准差
    • inplace:是否原地操作
    • out = (input -mean)/std
transforms.Normalize(norm_mean, norm_std)

三,图像数据增强方法

1.裁剪

transforms.CenterCrop(size):中心裁剪

  • size:中心裁剪图像尺寸
transforms.CenterCrop(512),     # 512

在这里插入图片描述

transforms.RandomCrop(size, padding, pad_if_need, pading_mode,fill):随机裁剪

  • 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:镜像填充,最后一个像素不镜像
    • symmetric:镜像填充,最后一个像素镜像
  • fill:设置填充颜色
transforms.RandomCrop(224, padding=64, padding_mode='reflect')

在这里插入图片描述

RandomResizedCrop(size, scale,ratio, interpolation):随机大小长宽裁剪

  • size:尺寸
  • scale:裁剪面积比,默认【0.8—1】
  • ratio:随机裁剪长宽比,默认【3/4—4/3】
  • interpolation:插值方法
    • PIL.Image.NEAREST:最近邻插值
    • PIL.Image.BILNEAR:双线性插值
    • PIL.Image.BICUBIC:***
transforms.RandomResizedCrop(size=224, scale=(0.5, 0.5))

在这里插入图片描述

FiveCrop/TenCrop:在图像的上下左右,裁剪出尺寸为size的5张图片/对上述5张图片在进行水平或者垂直镜像从而获得10张图片

  • size:尺寸
  • vertical_flip:是否垂直翻转,设置了就做垂直镜像,不设置就做水平镜像。

2.翻转

RamdomHorizortalFlip/RamdomVerticalFlip:依概率进行水平/上下翻转

  • p:概率值
transforms.RandomVerticalFlip(p=0.5)

在这里插入图片描述

3.旋转

RandomRotation:随机旋转

  • degress:旋转角度
    • a时:旋转角度【-a—a】
    • (a, b)时:旋转角度【a—b】
  • resample:重采样方法
  • expand:是否扩大图片,以保持原图信息
  • center:设置旋转中心
transforms.RandomRotation(30, center=(0, 0), expand=True)

在这里插入图片描述

4.填充

transforms.Pad:

  • padding:填充大小
    • a时:上下左右填充a个像素
    • (a, b)时:上下填充b, 左右填充a
    • (a, b, c, d)时:左a, 上b, 右c,下d
  • padding_mode:填充模式
    • constant:由fill指定填充颜色
    • edge:由图像边缘像素决定填充颜色
    • reflect:镜像填充,最后一个像素不镜像
    • symmetric:镜像填充,最后一个像素镜像
  • fill:设置填充颜色
transforms.Pad(padding=(8, 16, 32, 64), fill=(255, 0, 0), padding_mode='symmetric')

在这里插入图片描述

5.调整亮度,对比度,饱和度和色相

transforms.ColorJitter

  • brightness:设置亮度调整因子
    • a时:从【max(0, 1-a)—1+a】中选一个数
    • (a, b)时:从【a—b】中选一个数
  • contrast:设置对比度参数
    • a时:从【max(0, 1-a)—1+a】中选一个数
    • (a, b)时:从【a—b】中选一个数
  • saturation:饱和度参数
    • a时:从【max(0, 1-a)—1+a】中选一个数
    • (a, b)时:从【a—b】中选一个数
  • hue:色相参数
    • a时:【-a—a】中选一个,a大于等于0小于等于0.5
    • (a, b)时:【a—b】中选一个,a小于等于b小于等于0.5大于等于0
 transforms.ColorJitter(hue=0.3)

在这里插入图片描述

6.彩色图转换为灰度图

Grayscale/RandomGrayscale

  • num_output_channels:输出通道数,1–灰度,3–彩色
  • p:被转换为灰度图的概率
transforms.Grayscale(num_output_channels=3)

在这里插入图片描述

7.仿射变换,二维的线性变换,旋转,平移,缩放,错切,翻转

RandomAffine

  • degress:旋转角度
  • translate:平移区间设置,(a, b)–》宽, 高 —小于1
  • scale:缩放比例—》【0—1】
  • fill_color:填充颜色设置
  • sheer:错切角度,有水平与垂直
    • a时:在x轴上错切,角度在【-a—a】
    • (a, b)时:a为x轴错切角度设置,b为y轴错切角度设置
    • (a, b, c, d)时:x轴【a—b】,y轴【c—d】
  • resample:重采样方法
    • PIL.Image.NEAREST:最近邻插值
    • PIL.Image.BILNEAR:双线性插值
    • PIL.Image.BICUBIC:***
transforms.RandomAffine(degrees=0, shear=90, fillcolor=(255, 0, 0))

在这里插入图片描述

8.随机遮挡

RandomErasing

  • p:遮挡概率
  • scale:遮挡面积比例
  • ratio:遮挡区域长宽比
  • value:设置遮挡区域的像素值
transforms.ToTensor(),
transforms.RandomErasing(p=1, scale=(0.02, 0.33), ratio=(0.3, 3.3), value=(254/255, 0, 0))

在这里插入图片描述

9.图像增强方法的选择策略

transforms.RandomChoice([tran1, tran2, tran3]):从一组transforms中选择一个

transforms.RandomApply([tran1, tran2], p=0.5):依据一定概率对一组图像处理方法进行选择

transforms.RandomOrder([tran1,tran2]):对一组图像处理方法进行打乱顺序,然后安装打乱的顺序对图像进行处理

    # 1 RandomChoice
    transforms.RandomChoice([transforms.RandomVerticalFlip(p=1), transforms.RandomHorizontalFlip(p=1)]),

    # 2 RandomApply
    transforms.RandomApply([transforms.RandomAffine(degrees=0, shear=45, fillcolor=(255, 0, 0)),
                            transforms.Grayscale(num_output_channels=3)], p=0.5),
    # 3 RandomOrder
    transforms.RandomOrder([transforms.RandomRotation(15),
                            transforms.Pad(padding=32),
                            transforms.RandomAffine(degrees=0, translate=(0.01, 0.1), scale=(0.9, 1.1))]),
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值