当前位置: 代码迷 >> 综合 >> Pytorch-TORCHVISION.TRANSFORMS(transforms模块)索引
  详细解决方案

Pytorch-TORCHVISION.TRANSFORMS(transforms模块)索引

热度:22   发布时间:2024-02-28 19:58:50.0

TORCHVISION.TRANSFORMS

  • 简介
  • 1、Transforms on PIL Image(对PIL图像进行处理)
    • 1-1:torchvision.transforms.CenterCrop(size)
    • 1-2:torchvision.transforms.ColorJitter(brightness=0, contrast=0, saturation=0, hue=0)
    • 1-3:torchvision.transforms.FiveCrop(size)
    • 1-4:torchvision.transforms.Grayscale(num_output_channels=1)
    • 1-5:torchvision.transforms.Pad(padding, fill=0, padding_mode='constant')
    • 1-5:torchvision.transforms.RandomAffine(degrees, translate=None, scale=None, shear=None, resample=False, fillcolor=0)
    • 1-6:torchvision.transforms.RandomApply(transforms, p=0.5)
    • 1-7:torchvision.transforms.RandomChoice(transforms)
    • 1-8:torchvision.transforms.RandomCrop(size, padding=None, pad_if_needed=False, fill=0, padding_mode='constant')
    • 1-9:torchvision.transforms.RandomGrayscale(p=0.1)
    • 1-10:torchvision.transforms.RandomHorizontalFlip(p=0.5)
    • 1-11torchvision.transforms.RandomOrder(transforms)
    • 1-12:torchvision.transforms.RandomPerspective(distortion_scale=0.5, p=0.5, interpolation=3, fill=0)
    • 1-13:torchvision.transforms.RandomResizedCrop(size, scale=(0.08, 1.0), ratio=(0.75, 1.3333333333333333), interpolation=2)
    • 1-14:torchvision.transforms.RandomRotation(degrees, resample=False, expand=False, center=None, fill=None)
    • 1-15:torchvision.transforms.RandomSizedCrop(*args, **kwargs)
    • 1-16:torchvision.transforms.RandomVerticalFlip(p=0.5)
    • 1-17:torchvision.transforms.Resize(size, interpolation=2)
    • 1-18:torchvision.transforms.TenCrop(size, vertical_flip=False)
  • 2、Transforms on torch.*Tensor(在torch张量上的变换)
    • 2-1:torchvision.transforms.LinearTransformation(transformation_matrix, mean_vector)
    • 2-2:torchvision.transforms.Normalize(mean, std, inplace=False)
    • 2-3:torchvision.transforms.RandomErasing(p=0.5, scale=(0.02, 0.33), ratio=(0.3, 3.3), value=0, inplace=False)
  • 3、Conversion Transforms(类型转换)
    • 3-1:torchvision.transforms.ToPILImage(mode=None)
    • 3-2:torchvision.transforms.ToTensor
  • 4、Generic Transforms(通用变换)
    • 4-1:torchvision.transforms.Lambda(lambd)
  • 5、Functional Transforms(函数变换)
    • 5-1:torchvision.transforms.functional.adjust_brightness(img: torch.Tensor, brightness_factor: float) → torch.Tensor
    • 5-2:torchvision.transforms.functional.adjust_contrast(img: torch.Tensor, contrast_factor: float) → torch.Tensor
    • 5-3:torchvision.transforms.functional.adjust_gamma(img, gamma, gain=1)
    • 5-4:torchvision.transforms.functional.adjust_hue(img: torch.Tensor, hue_factor: float) → torch.Tensor
    • 5-5:torchvision.transforms.functional.adjust_saturation(img: torch.Tensor, saturation_factor: float) → torch.Tensor
    • 5-6:torchvision.transforms.functional.affine(img, angle, translate, scale, shear, resample=0, fillcolor=None)
    • 5-7:torchvision.transforms.functional.center_crop(img, output_size)
    • 5-8:torchvision.transforms.functional.rotate(img, angle, resample=False, expand=False, center=None, fill=None)
    • 5-9:torchvision.transforms.functional.ten_crop(img, size, vertical_flip=False)
    • 5-9:torchvision.transforms.functional.to_grayscale(img, num_output_channels=1)
    • 5-10:torchvision.transforms.functional.to_pil_image(pic, mode=None)
    • 5-11:torchvision.transforms.functional.to_tensor(pic)
    • 5-12:torchvision.transforms.functional.vflip(img: torch.Tensor) → torch.Tensor

简介

本文进行简单的函数索引工作,详细细节可参考官方文档
TORCHVISION.TRANSFORMS

Transforms 是常见的图像变换。可以使用Compose将它们(变换设置)链接在一起。此外,还有torchvision.transforms.functional 。变换函数能够很好的控制图像变换的细粒度。如果你需要构建一个更复杂的transforms设计(例如分割任务)transforms.functional模块是非常有用的。

torchvision.transforms.Compose(transforms)
该函数将我们所有的变换设置包装在一起


参数:transforms (list of Transform objects) #对变换序列进行组合
例子:
import torch
import torchvision
import torchvision.transforms as transforms
transforms.Compose([transforms.CenterCrop(10),transforms.ToTensor(),])

1、Transforms on PIL Image(对PIL图像进行处理)

PIL非常适合于图像归档以及图像的批处理任务。你可以使用PIL创建缩略图,转换图像格式,打印图像等等

1-1:torchvision.transforms.CenterCrop(size)

作用:对给定的PIL图像以中心位置为基准进行裁剪
参数:size(sequence or int)-期望图像裁剪的尺寸,sequence->(h,w)可以设置裁剪的尺寸的高和宽,如果只设置一个int数的话,就得到一个正方形的输出。

transforms.Compose([transforms.CenterCrop(10),])transforms.Compose([transforms.CenterCrop((125,257)),])

1-2:torchvision.transforms.ColorJitter(brightness=0, contrast=0, saturation=0, hue=0)

作用:随机改变图像的亮度、对比度和饱和度
参数:

  • brightness (float or tuple of python:float (min, max)) – 亮度调节的阈值. 从[max(0,1-brightness),1 +brightness]或给定的[min,max]中均匀选择亮度系数。应为非负数。
  • contrast (float or tuple of python:float (min, max)) – 对比度调节的阈值从[max(0,1-contrast),1+contrast] 或给定的[min,max]中均匀的调节对比度。应该为非负数。
  • saturation (float or tuple of python:float (min, max)) – 饱和度的调节阈值. 如果是float数值就在[max(0,1-saturation),1+saturation]中均匀的调节饱和度,或是从给定的范围中选择。应该为非负数。
  • hue (float or tuple of python:float (min, max)) – 调节色调,从[-hue,hue]或给定的[min,max]中均匀选择hue_factor。hue的范围应该满足: <=hue<= 0.5 或 -0.5 <=min<=max<= 0.5

1-3:torchvision.transforms.FiveCrop(size)

作用:以图像的四个角位置和中心位置五个点为基准进行裁剪,该函数会输出一个数量为5的图像组
参数:size (sequence or int)-期待裁剪后图像的尺寸
注意:在训练时,一般用randomResize,在测试时用FiveCrop

1-4:torchvision.transforms.Grayscale(num_output_channels=1)

作用:将图像转换为灰度图像
参数:num_output_channels (int)–期待输出图像的通道数(1或者3)

1-5:torchvision.transforms.Pad(padding, fill=0, padding_mode=‘constant’)

对给定的PIL图像进行padding填充
参数:

  • padding (int or tuple) 在每个边框上填充。如果提供一个整型数,则用于填充所有边框。如果提供了长度为2的元组,那么它分别是左/右和顶/底部的填充。如果提供了一个长度为4的元组,那么它就是分别用于左边框、上边框、右边框和底边框的填充。
  • fill (int or tuple) 像素填充值用于恒定填充。默认值为0。如果一个元组的长度为3,则分别用于填充R,G,B通道。仅当padding_mode为常数时使用此值。
    padding_mode (str) 填充类型。应为:常数,边缘,反射或对称。默认为常数。

1-5:torchvision.transforms.RandomAffine(degrees, translate=None, scale=None, shear=None, resample=False, fillcolor=0)

作用:保持中心不变的图像的随机仿射变换
参数:

  • degrees (sequence or float or int) – 旋转的度数
    -translate (tuple, optional) – 平移
  • scale (tuple, optional) – 缩放
  • shear (sequence or float or int, optional) – 错切
  • resample ({PIL.Image.NEAREST, PIL.Image.BILINEAR, PIL.Image.BICUBIC}, optional) –图像重采样
  • fillcolor (tuple or int) – 输出图像中变换外部区域的可选填充颜色(用于RGB图像的元组,用于灰度的int)

1-6:torchvision.transforms.RandomApply(transforms, p=0.5)

作用:以给定的概率随机应用一系列转换
参数:transforms (list or tuple) – 变换序列
p (float) – 概率

1-7:torchvision.transforms.RandomChoice(transforms)

作用:从列表中随机挑选一个变换
参数:transforms-变换列表

1-8:torchvision.transforms.RandomCrop(size, padding=None, pad_if_needed=False, fill=0, padding_mode=‘constant’)

作用:在随机位置裁剪给定的PIL图像

1-9:torchvision.transforms.RandomGrayscale(p=0.1)

作用:
将图像以p的概率随机转换为灰度(默认值为0.1)。

1-10:torchvision.transforms.RandomHorizontalFlip(p=0.5)

作用:根据给定的概率随机水平饭庄图像

1-11torchvision.transforms.RandomOrder(transforms)

作用:以随机序列应用转换列表

1-12:torchvision.transforms.RandomPerspective(distortion_scale=0.5, p=0.5, interpolation=3, fill=0)

作用:以给定的概率随机执行给定的PIL图像的透视变换

1-13:torchvision.transforms.RandomResizedCrop(size, scale=(0.08, 1.0), ratio=(0.75, 1.3333333333333333), interpolation=2)

作用:将给定的PIL图像裁剪为随机大小和纵横比

1-14:torchvision.transforms.RandomRotation(degrees, resample=False, expand=False, center=None, fill=None)

作用:按角度旋转图像

1-15:torchvision.transforms.RandomSizedCrop(*args, **kwargs)

作用:不建议使用此转换,而推荐使用RandomResizedCrop

1-16:torchvision.transforms.RandomVerticalFlip(p=0.5)

作用:以给定的概率垂直翻转给定的PIL图像。

1-17:torchvision.transforms.Resize(size, interpolation=2)

作用:将输入的PIL图像调整为给定尺寸。

1-18:torchvision.transforms.TenCrop(size, vertical_flip=False)

作用:将给定的PIL图像裁剪为四个角,并在中央裁剪并加上翻转的版本(默认情况下使用水平翻转)

2、Transforms on torch.*Tensor(在torch张量上的变换)

2-1:torchvision.transforms.LinearTransformation(transformation_matrix, mean_vector)

作用:一般用到白化矩阵上

2-2:torchvision.transforms.Normalize(mean, std, inplace=False)

用均值和标准差对张量图像进行归一化。

2-3:torchvision.transforms.RandomErasing(p=0.5, scale=(0.02, 0.33), ratio=(0.3, 3.3), value=0, inplace=False)

随机选择图像中的矩形区域并删除其像素

3、Conversion Transforms(类型转换)

3-1:torchvision.transforms.ToPILImage(mode=None)

将tensor或ndarray转换为PIL图像。

3-2:torchvision.transforms.ToTensor

作用:将一个 PIL Image 或 numpy.ndarray 转换为张量。
将[0,255]范围内的 PIL Image 或 numpy.ndarray (h x w x c)转换为Tensor。如果 PIL 图像属于其中一个模式(l,LA,p,i,f,RGB,YCbCr,RGBA,CMYK,1) ,或者 numpy.ndarray 具有 dtype = np.uint8,则 torch.FloatTensor(h x w x c)在[0.0,1.0]范围内。

4、Generic Transforms(通用变换)

4-1:torchvision.transforms.Lambda(lambd)

作用:使用lambd作为转换器

5、Functional Transforms(函数变换)

functional transforms 能够自定义自己的转换类。参数,转换序列等都可以自定义。
Example:

import torchvision.transforms.functional as TF
import randomclass MyRotationTransform:"""Rotate by one of the given angles."""def __init__(self, angles):self.angles = anglesdef __call__(self, x):angle = random.choice(self.angles)return TF.rotate(x, angle)rotation_transform = MyRotationTransform(angles=[-30, -15, 0, 15, 30])

5-1:torchvision.transforms.functional.adjust_brightness(img: torch.Tensor, brightness_factor: float) → torch.Tensor

作用:调节图像的亮度

5-2:torchvision.transforms.functional.adjust_contrast(img: torch.Tensor, contrast_factor: float) → torch.Tensor

作用:调节图像的对比度

5-3:torchvision.transforms.functional.adjust_gamma(img, gamma, gain=1)

作用:在一张图片上执行伽玛校正操作。

5-4:torchvision.transforms.functional.adjust_hue(img: torch.Tensor, hue_factor: float) → torch.Tensor

作用:调节图像的色调

5-5:torchvision.transforms.functional.adjust_saturation(img: torch.Tensor, saturation_factor: float) → torch.Tensor

作用:调节图像的饱和度

5-6:torchvision.transforms.functional.affine(img, angle, translate, scale, shear, resample=0, fillcolor=None)

作用:将仿射变换应用于使图像中心不变的图像

5-7:torchvision.transforms.functional.center_crop(img, output_size)

作用:裁剪给定的 PIL 图像并将其调整为所需的大小。
特别是在RandomResizedCrop中使用。

5-8:torchvision.transforms.functional.rotate(img, angle, resample=False, expand=False, center=None, fill=None)

作用:按角度旋转图像

5-9:torchvision.transforms.functional.ten_crop(img, size, vertical_flip=False)

作用:从给定的PIL图像生成十张裁剪的图像。将给定的PIL图像裁剪为四个角,并在中央裁剪并加上翻转后的版本(默认情况下使用水平翻转)

5-9:torchvision.transforms.functional.to_grayscale(img, num_output_channels=1)

作用:将图像转换为图像的灰度版本。

5-10:torchvision.transforms.functional.to_pil_image(pic, mode=None)

作用:将张量或多维数组转换成为PIL图像

5-11:torchvision.transforms.functional.to_tensor(pic)

作用:将PIL图像或numpy.ndarray转换为张量。

5-12:torchvision.transforms.functional.vflip(img: torch.Tensor) → torch.Tensor

作用:垂直翻转图像

参考链接:官方英文文档