跳转至

Pytorch和MONAI中的transforms

pytorch中的transforms

torchvision是pytorch的一个图形库,它服务于PyTorch深度学习框架的,主要用来构建计算机视觉模型。torchvision.transforms主要是用于常见的一些图形变换, 常见的图像变换有以下四类

裁剪

  • transforms.CenterCrop:中心裁剪
  • transforms.RandomCrop:随机裁剪
  • transforms.RandomResizedCrop:随机长宽比裁剪
  • transforms.FiveCrop:上下左右中心裁剪
  • transforms.TenCrop:上下左右中心裁剪后翻转

翻转和旋转

  • transforms.RandomHorizontalFlip(p=0.5):依概率p水平翻转
  • transforms.RandomVerticalFlip(p=0.5):依概率p垂直翻转
  • transforms.RandomRotation:随机旋转

图像变化

  • transforms.Normalize:标准化
  • transforms.ToTensor:转为tensor,并归一化至[0-1]
  • transforms.Pad:填充
  • transforms.ColorJitter:修改亮度、对比度和饱和度
  • transforms.Grayscale:转灰度图
  • transforms.LinearTransformation:线性变换
  • transforms.RandomAffine:仿射变换
  • transforms.RandomGrayscale:依概率p转为灰度图
  • transforms.ToPILImage:将数据转换为PILImage
  • transforms.Lambda:将lambda应用作为变换

对transforms的操作

  • transforms.RandomChoice:从给定的一系列transforms中选一个进行操作
  • transforms.RandomApply:给一个transform加上概率,依概率进行操作
  • transforms.RandomOrder:将transforms中的操作随机打乱

MONAI中的transforms

基础transforms接口

  • Transform:Transform 的抽象类,其他Transform的基类
  • MapTransform:假设要处理的数据是MutableMapping,例如dict
  • Randomizable:用于在本地处理随机状态的接口
  • RandomizableTransform:用于在本地处理随机状态的接口
  • Compose: 同Pytorch中的Compose
  • InvertibleTransform:此类存在以便可以实现反转方法。例如,这允许在训练和推理期间对图像进行裁剪、旋转、填充等,并在保存到文件以在外部查看器中进行比较之前恢复到其原始大小。
  • TraceableTransform:维护一堆应用的变换
  • BatchInverseTransform:对一批数据执行逆运算。如果您已经推断出一批图像并想要将它们全部反转,这将很有用
  • Decollated:整理一批数据
  • OneOf:OneOf 提供了从可调用列表中随机选择一个转换的能力,每个转换具有预定义的概率

Vanilla Transforms(怎么翻译?)

裁剪和填充

  • PadListDataCollat

强度

IO

NVIDIA 工具扩展 (NVTX)

后处理

字典transforms

transforms适配器

评论