📊 MindSpore 常用视觉变换类总结表

Mindspore中变换有两种, 一种是类, 先创建一个变换类, 然后调用该类实现变换, 以类为基础的变化都是放在

mindspore.dataset.vision

下的; 另一种是Functional, 直接调用函数进行变换, functional变换是放在

import mindspore.dataset.vision as transforms

下的. 实际上这个差不多的, 因此后续不做区分

类名 参数及含义 作用
Resize(size) size: 目标图像大小,如 (256, 256) 将图像缩放为指定尺寸
CenterCrop(size) size: 裁剪目标大小 从图像中心裁剪出指定大小区域
RandomCrop(size) size: 裁剪目标大小 随机裁剪图像的一部分
RandomResizedCrop(size, scale=(0.08, 1.0), ratio=(3./4., 4./3.)) size: 输出大小;scale: 缩放范围;ratio: 宽高比范围 随机缩放并裁剪图像,常用于 ImageNet 数据增强
Decode() 无参数 解码 JPEG 图像文件
Normalize(mean, std) mean: 各通道均值;std: 各通道标准差 对图像进行标准化处理(如 ImageNet 的 [0.485, 0.456, 0.406])
HWC2CHW() 无参数 将图像格式从 HWC(Height-Width-Channel)转为 CHW(Channel-Height-Width),适配模型输入
ToTensor() 无参数 将图像转换为 Tensor,并归一化到 [0, 1] 区间
RandomHorizontalFlip(prob=0.5) prob: 水平翻转概率 以一定概率水平翻转图像
RandomVerticalFlip(prob=0.5) prob: 垂直翻转概率 以一定概率垂直翻转图像
RandomColorAdjust(brightness=0, contrast=0, saturation=0, hue=0) brightness: 亮度调整范围;contrast: 对比度调整范围;saturation: 饱和度调整范围;hue: 色调调整范围 随机调整图像颜色属性,提升泛化能力
TypeCast(dtype) dtype: 目标数据类型(如 mstype.float32 转换图像的数据类型
RandomCropDecodeResize(size, scale=(0.08, 1.0), ratio=(3./4., 4./3.)) size: 输出大小;scaleratio: 同上 在解码时随机裁剪并缩放图像,适用于 JPEG 文件,Ascend 加速优化
RandomLighting(alpha=1.0) alpha: PCA 投影噪声强度 添加光照变化模拟,提升模型鲁棒性
RandomHorizontalFlipWithBBox() 无参数 水平翻转图像的同时同步翻转边界框(用于目标检测)
ResizeWithBBox(size) size: 目标大小 缩放图像并同步缩放边界框坐标(用于目标检测)
RandomSampleCropWithBBox() 无参数 随机裁剪图像并更新边界框坐标(用于目标检测)

🧠 使用建议(Tips)

ViT, ImageNet:

mean = [0.485 * 255, 0.456 * 255, 0.406 * 255]
std = [0.229 * 255, 0.224 * 255, 0.225 * 255]
trans_train = [
    transforms.RandomCropDecodeResize(size=224,
                                      scale=(0.08, 1.0),
                                      ratio=(0.75, 1.333)),
    transforms.RandomHorizontalFlip(prob=0.5),
    transforms.Normalize(mean=mean, std=std),
    transforms.HWC2CHW()
]
trans_val = [
    transforms.Decode(),
    transforms.Resize(224 + 32),
    transforms.CenterCrop(224),
    transforms.Normalize(mean=mean, std=std),
    transforms.HWC2CHW()
]

Resnet+ Cifa10:

trans = []
if usage == "train":
    trans += [
        vision.RandomCrop((32, 32), (4, 4, 4, 4)),
        vision.RandomHorizontalFlip(prob=0.5)
    ]

trans += [
    vision.Resize(resize),
    vision.Rescale(1.0 / 255.0, 0.0),
    vision.Normalize([0.4914, 0.4822, 0.4465], [0.2023, 0.1994, 0.2010]),
    vision.HWC2CHW()
]

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐