PyTorch笔记9--transforms数据增强(二)

transforms--图像变换

1.pad

transforms.Pad(#对图片边缘进行填充
    padding, 
    #设置填充大小
    #当为a时,上下左右均填充a个像素
    #当为(a, b)时,上下填充b个像素,左右填充a个像素
    #当为(a, b, c, d)时,左,上,右,下分别填充a, b, c, d
    padding_mode='constant',#填充模式,有4种模式,constant、edge、reflect和symmetric
    fill=0#constant时,设置填充的像素值,(R, G, B) or (Gray)
)

2.ColorJitter

transforms.ColorJitter(#调整亮度、对比度、饱和度和色相
    brightness=0, 
    #亮度调整因子
    #当为a时,从[max(0, 1-a), 1+a]中随机选择
    #当为(a, b)时,从[a, b]中
    contrast=0, #对比度参数,同brightness
    saturation=0, #饱和度参数,同brightness
    hue=0
    #色相参数
    #当为a时,从[-a, a]中选择参数,注: 0<= a <= 0.5
    #当为(a, b)时,从[a, b]中选择参数,注:-0.5 <= a <= b <= 0.5
)

3.RandomGrayscale和Grayscale

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


Grayscale(
    num_output_channels
)

4.RandomAffine

RandomAffine(
#对图像进行仿射变换,仿射变换是二维的线性变换,由五种基本原子变换构成,分别是旋转、平移、缩放、错切和翻转
    degrees, #旋转角度设置
    translate=None, 
#平移区间设置,如(a, b), a设置宽(width),b设置高(height)图像在宽维度平移的区间为 -img_width * a < dx < img_width * a
    scale=None, #缩放比例(以面积为单位)
    shear=None, 
    resample=False, 
    fillcolor=0#填充颜色设置
)

5.RandomErasing

RandomErasing(#对图像进行随机遮挡
p=0.5, #概率值,执行该操作的概率
scale=(0.02, 0.33), #遮挡区域的面积
ratio=(0.3, 3.3), #遮挡区域长宽比
value=0, #设置遮挡区域的像素值,(R, G, B) or (Gray)
inplace=False
)

参考文献:《 Random Erasing Data Augmentation

6.transforms.Lambda

transforms.Lambda(#用户自定义lambda方法
    lambd
    #lambda匿名函数
    #lambda [arg1 [,arg2, … , argn]] : expression
)

eg:

transforms.TenCrop(
    200, 
    vertical_flip=True
),


transforms.Lambda(
lambda crops: torch.stack([transforms.Totensor()(crop) for crop in crops])
),

transfroms--transforms方法操作

1. transforms.RandomChoice

transforms.RandomChoice(#从一系列transforms方法中随机挑选一个
    [transforms1, transforms2, transforms3]
)

2. transforms.RandomApply

transforms.RandomApply(#依据概率执行一组transforms操作
    [transforms1, transforms2, transforms3], 
    p=0.5
)

3. transforms.RandomOrder

transforms.RandomOrder(#对一组transforms操作打乱顺序
[transforms1, transforms2, transforms3]
)

自定义transforms方法

椒盐噪声 :

        椒盐噪声又称为脉冲噪声,是一种随机出现的白点或者黑点, 白点称为盐噪声, 黑色为椒噪声

信噪比(Signal-Noise Rate, SNR):

        是衡量噪声的比例,图像中为图像像素的占比

class AddPepperNoise(object):
    def __init__(self, snr, p):
        self.snr = snr
        self.p = p
    def __call__(self, img):
        ```
        添加椒盐噪声具体实现过程
        ```
        return img
class Compose(object):
    def __call__(self, img):
        for t in self.transforms:
            img = t(img)
        return img

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值