mindspore.dataset.vision
此模块用于图像数据增强,其中有一部分增强是基于C++ OpenCV实现的,具有较好的性能,而另一部分是基于Python Pillow实现的。
API样例中常用的导入模块如下:
import mindspore.dataset as ds
import mindspore.dataset.vision as vision
import mindspore.dataset.vision.utils as utils
注意:旧的API导入方式已经过时且会逐步废弃,因此推荐使用上面的方式,但目前仍可按以下方式导入:
import mindspore.dataset.vision.c_transforms as c_vision
import mindspore.dataset.vision.py_transforms as py_vision
from mindspore.dataset.transforms import c_transforms
更多详情请参考 视觉数据变换 。
常用数据处理术语说明如下:
TensorOperation,所有C++实现的数据处理操作的基类。
PyTensorOperation,所有Python实现的数据处理操作的基类。
数据增强算子可以放入数据处理Pipeline中执行,也可以Eager模式执行:
Pipeline模式一般用于处理数据集,示例可参考 数据处理Pipeline介绍。
Eager模式一般用于零散样本,图像预处理举例如下:
import numpy as np import mindspore.dataset.vision as vision from PIL import Image,ImageFont,ImageDraw # 画圆形 img = Image.new("RGB", (300, 300), (255, 255, 255)) draw = ImageDraw.Draw(img) draw.ellipse(((0, 0), (100, 100)), fill=(255, 0, 0), outline=(255, 0, 0), width=5) img.save("./1.jpg") with open("./1.jpg", "rb") as f: data = f.read() data_decoded = vision.Decode()(data) data_croped = vision.RandomCrop(size=(250, 250))(data_decoded) data_resized = vision.Resize(size=(224, 224))(data_croped) data_normalized = vision.Normalize(mean=[0.485 * 255, 0.456 * 255, 0.406 * 255], std=[0.229 * 255, 0.224 * 255, 0.225 * 255])(data_resized) data_hwc2chw = vision.HWC2CHW()(data_normalized) print("data: {}, shape: {}".format(data_hwc2chw, data_hwc2chw.shape), flush=True)
变换
Apply gamma correction on input image. |
|
Apply AutoAugment data augmentation method based on AutoAugment: Learning Augmentation Strategies from Data. |
|
在输入图像上应用自动对比度。 |
|
对图像的随机标注边界框区域,应用给定的图像变换处理。 |
|
对输入图像应用中心区域裁剪。 |
|
更改图像的色彩空间。 |
|
在输入图像上裁剪出指定区域。 |
|
对输入批次的图像和标注应用剪切混合转换。 |
|
从输入图像数组中随机裁剪出给定数量的正方形区域。 |
|
将输入的压缩图像解码为RGB格式。 |
|
对输入图像进行直方图均衡化。 |
|
在输入PIL图像的中心与四个角处分别裁剪指定尺寸大小的子图。 |
|
使用指定的高斯核对输入图像进行模糊处理。 |
|
将输入PIL图像转换为灰度图。 |
|
水平翻转输入图像。 |
|
将输入的HSV格式numpy.ndarray图像转换为RGB格式。 |
|
将输入图像的shape从 <H, W, C> 转换为 <C, H, W>。 |
|
在 RGB 模式下对输入图像应用像素反转。 |
|
使用指定的变换方阵和均值向量对输入numpy.ndarray图像进行线性变换。 |
|
随机混合一批输入的numpy.ndarray图像及其标签。 |
|
对输入批次的图像和标注应用混合转换。 |
|
根据均值和标准差对输入图像进行归一化。 |
|
根据均值和标准差对输入图像进行归一化,然后填充一个全零的额外通道。 |
|
填充图像。 |
|
Pad the image to a fixed size. |
|
Randomly adjust the sharpness of the input image with a given probability. |
|
对输入图像应用随机仿射变换。 |
|
Automatically adjust the contrast of the image with a given probability. |
|
随机调整输入图像的颜色。 |
|
随机调整输入图像的亮度、对比度、饱和度和色调。 |
|
对输入图像进行随机区域的裁剪。 |
|
"裁剪"、"解码"和"调整尺寸大小"的组合处理。 |
|
在输入图像的随机位置进行裁剪并相应地调整边界框。 |
|
Apply histogram equalization on the input image with a given probability. |
|
按照指定的概率擦除输入numpy.ndarray图像上随机矩形区域内的像素。 |
|
按照指定的概率将输入PIL图像转换为灰度图。 |
|
对输入图像按给定的概率进行水平随机翻转。 |
|
对输入图像按给定的概率进行水平随机翻转并相应地调整边界框。 |
|
Randomly invert the colors of image with a given probability. |
|
Add AlexNet-style PCA-based noise to an image. |
|
按照指定的概率对输入PIL图像进行透视变换。 |
|
随机减少输入图像每个颜色通道的位数。 |
|
对输入图像进行随机裁剪,并使用指定的 |
|
对输入图像进行随机裁剪且随机调整纵横比,并将处理后的图像调整为指定的尺寸大小,并相应地调整边界框。 |
|
对输入图像使用随机选择的 |
|
对输入图像使用随机选择的 |
|
在指定的角度范围内,随机旋转输入图像。 |
|
从策略列表中随机选择一个子策略以应用于输入图像。 |
|
在固定或随机的范围调整输入图像的锐度。 |
|
从给定阈值范围内随机选择一个子范围,对位于给定子范围内的像素,将其像素值设置为(255 - 原本像素值)。 |
|
以给定的概率对输入图像在垂直方向进行随机翻转。 |
|
以给定的概率对输入图像和边界框在垂直方向进行随机翻转。 |
|
基于给定的缩放和平移因子调整图像的像素大小。 |
|
对输入图像使用给定的 |
|
将输入图像调整为给定的尺寸大小并相应地调整边界框的大小。 |
|
将输入的RGB格式numpy.ndarray图像转换为HSV格式。 |
|
将输入图像旋转指定的度数。 |
|
在水平和垂直方向上将Tensor切片为多个块。 |
|
在输入PIL图像的中心与四个角处分别裁剪指定尺寸大小的子图,并将其翻转图一并返回。 |
|
将输入PIL图像转换为numpy.ndarray图像。 |
|
将已解码的numpy.ndarray图像转换为PIL图像。 |
|
将输入PIL图像或numpy.ndarray图像转换为指定类型的numpy.ndarray图像,图像的像素值范围将从[0, 255]放缩为[0.0, 1.0],shape将从(H, W, C)调整为(C, H, W)。 |
|
将输入转换为指定的MindSpore数据类型或NumPy数据类型。 |
|
从指定序列中均匀采样一批数据处理操作,并按顺序随机执行,即采样出的操作也可能不被执行。 |
|
对输入图像进行垂直翻转。 |
工具
AutoAugment policy for different datasets. |
|
边界填充方式枚举类。 |
|
图像色彩空间转换模式枚举类。 |
|
图像批处理输出格式枚举类。 |
|
图像插值方式枚举类。 |
|
Tensor切片方式枚举类。 |
|
Get the number of input image channels. |
|
Get the size of input image as [height, width]. |