主要内容

imageDataAugmenter

配置图像数据增加

描述

图像数据增量配置一组图像增强预处理选项,如缩放、旋转和反射。

imageDataAugmenter使用一个augmentedImageDatastore生成批次的增强图像。有关更多信息,请参见增强图像训练随机几何转换

创建

描述

8月= imageDataAugmenter创建一个imageDataAugmenter对象的默认属性值符合恒等变换。

例子

8月= imageDataAugmenter (名称,值)配置一组图像增强选项使用名称-值对集合属性。您可以指定多个名称-值对。在报价附上每个属性的名字。

属性

全部展开

填补值用于定义界外点重采样时,指定为一个数值标量或数值向量。

  • 如果增强图像是单通道,那么FillValue必须是一个标量。

  • 如果增强图像多通道,那么FillValue可以是一个标量或矢量长度等于通道的输入图像的数量。例如,如果输入图像RGB图像,FillValue可以是一个向量的长度3。

灰度和彩色图像,默认值0。对于分类图片,默认值是一个“<定义>”标签和trainNetwork训练时忽略了像素。

例子:128年

随机反射在左右方向上,指定为一个逻辑标量。当RandXReflection真正的(1),每个图像反映水平的概率为50%。当RandXReflection(0),没有反映图像。

随机反射方向自上而下地,指定为一个逻辑标量。当RandYReflection真正的(1),每个图像垂直反射概率为50%。当RandYReflection(0),没有反映图像。

的旋转,度,应用于输入图像,指定为以下之一。

  • 2-element数值向量。第二个元素必须大于或等于第一个元素。旋转角是随机选择从一个连续均匀分布在指定的时间间隔。

  • 函数处理。函数必须接受任何输入参数和返回旋转角的数值标量。使用一个函数处理选择旋转角从一个不相交的时间间隔或使用非均匀概率分布。关于处理函数的更多信息,请参阅创建函数处理

默认情况下,增强图像不旋转。

例子:45 [-45]

范围的统一(各向同性)扩展应用到输入图像,指定为以下之一。

  • 2-element数值向量。第二个元素必须大于或等于第一个元素。规模因素是随机选择从一个连续均匀分布在指定的时间间隔。

  • 函数处理。函数必须接受任何输入参数和返回比例因子的数值标量。使用一个函数处理选择规模因素从一个不相交的时间间隔或使用非均匀概率分布。关于处理函数的更多信息,请参阅创建函数处理

默认情况下,没有按增强图像。

例子:(0.5 - 4)

水平扩展应用到输入图像,指定为以下之一。

  • 2-element数值向量。第二个元素必须大于或等于第一个元素。水平比例因子是随机选择从一个连续均匀分布在指定的时间间隔。

  • 函数处理。函数必须接受任何输入参数和返回水平比例因子数值标量。使用一个函数处理选择横向规模因素从一个不相交的时间间隔或使用非均匀概率分布。关于处理函数的更多信息,请参阅创建函数处理

默认情况下,在水平方向上没有按增强图像。

请注意

如果您指定RandScale,然后imageDataAugmenter忽略的价值RandXScale当缩放图片。

例子:(0.5 - 4)

垂直扩展应用到输入图像,指定为以下之一。

  • 2-element数值向量。第二个元素必须大于或等于第一个元素。垂直比例因子是随机选择从一个连续均匀分布在指定的时间间隔。

  • 函数处理。函数必须接受任何输入参数和返回垂直比例因子的数值标量。使用一个函数处理选择垂直刻度因素从一个不相交的时间间隔或使用非均匀概率分布。关于处理函数的更多信息,请参阅创建函数处理

默认情况下,增强图像在垂直方向扩展。

请注意

如果您指定RandScale,然后imageDataAugmenter忽略的价值RandYScale当缩放图片。

例子:(0.5 - 4)

范围的水平剪切应用到输入图像,指定为以下之一。剪切测量的角度,范围(-90、90)。

  • 2-element数值向量。第二个元素必须大于或等于第一个元素。水平剪切角是随机选择从一个连续均匀分布在指定的时间间隔。

  • 函数处理。函数必须接受任何输入参数和返回水平剪切角数值标量。使用一个函数处理选择水平剪切角从一个不相交的时间间隔或使用非均匀概率分布。关于处理函数的更多信息,请参阅创建函数处理

默认情况下,增强图像在水平方向不剪。

例子:45 [0]

垂直剪切范围应用于输入图像,指定为以下之一。剪切测量的角度,范围(-90、90)。

  • 2-element数值向量。第二个元素必须大于或等于第一个元素。垂直剪切角是随机选择从一个连续均匀分布在指定的时间间隔。

  • 函数处理。函数必须接受任何输入参数和返回垂直剪切角数值标量。使用一个函数处理选择垂直剪切角从一个不相交的时间间隔或使用非均匀概率分布。关于处理函数的更多信息,请参阅创建函数处理

默认情况下,增强图像不剪在垂直方向。

例子:45 [0]

范围的水平翻译应用到输入图像,指定为以下之一。翻译以像素的距离。

  • 2-element数值向量。第二个元素必须大于或等于第一个元素。翻译水平距离是随机选择从一个连续均匀分布在指定的时间间隔。

  • 函数处理。函数必须接受任何输入参数和返回的翻译水平距离作为数字标量。使用一个函数处理选择翻译水平距离不相交的时间间隔或使用非均匀概率分布。关于处理函数的更多信息,请参阅创建函数处理

默认情况下,没有翻译在水平方向上增强图像。

例子:5 [5]

一系列垂直翻译应用到输入图像,指定为以下之一。翻译以像素的距离。

  • 2-element数值向量。第二个元素必须大于或等于第一个元素。垂直平移距离是随机选择从一个连续均匀分布在指定的时间间隔。

  • 函数处理。函数必须接受任何输入参数和返回垂直平移距离作为数字标量。使用一个函数处理翻译选择垂直距离不相交的时间间隔或使用非均匀概率分布。关于处理函数的更多信息,请参阅创建函数处理

默认情况下,没有翻译在垂直方向增强图像。

例子:5 [5]

对象的功能

增加 将相同的随机转换应用到多个图像

例子

全部折叠

创建一个图像数据增量训练前进行预处理的图像。这个随机角度增量旋转图像的范围内(0 360)度和尺寸图像随机规模因素的范围(0.5,1)。

增量= imageDataAugmenter (“RandRotation”360年[0],“RandScale”(0.5 - 1))
增量= imageDataAugmenter属性:FillValue: 0 RandXReflection: 0 RandYReflection: 0 RandRotation: 360年[0]RandScale: [0.5000 - 1] RandXScale: [1] RandYScale: [1] RandXShear: [0 0] RandYShear: [0 0] RandXTranslation: [0 0] RandYTranslation: [0 0]

创建一个使用图像数据增量增强图像数据存储。增强的图像数据存储也需要样本数据,标签,和一个输出图像的大小。

[XTrain, YTrain] = digitTrain4DArrayData;图象尺寸= [56 56 1];auimds = augmentedImageDatastore(图象尺寸、XTrain YTrain,“DataAugmentation”增量)
auimds = augmentedImageDatastore属性:NumObservations: 5000 MiniBatchSize: 128 DataAugmentation: [1 x1 imageDataAugmenter] ColorPreprocessing:“没有一个”OutputSize: 56 [56] OutputSizeMode:“调整”DispatchInBackground: 0

预览随机转换应用到前八图像在图像数据存储。

minibatch =预览(auimds);imshow (imtile (minibatch.input));

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的形象。

预览不同随机转换应用到相同的一组图像。

minibatch =预览(auimds);imshow (imtile (minibatch.input));

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的形象。

火车一个卷积神经网络使用增强图像数据。数据增加有助于防止网络过度拟合和记忆的训练图像的细节。

加载示例数据,包括手写的数字合成图像。

[XTrain, YTrain] = digitTrain4DArrayData;

digitTrain4DArrayData加载数字4 d阵列数据训练集。XTrain是一个28 -通过- 28 - 1 -到- 5000数组,地点:

  • 28是图像的高度和宽度。

  • 1是通道的数量。

  • 5000年是手写数字的合成图像的数量。

YTrain是一个分类向量包含标签为每个观察。

拨出1000的图片用于网络验证。

idx = randperm(大小(XTrain, 4), 1000);XValidation = XTrain (:,:,:, idx);XTrain (::,:, idx) = [];YValidation = YTrain (idx);YTrain (idx) = [];

创建一个imageDataAugmenter对象指定预处理图像增强的选项,如缩放、旋转、翻译、和反思。随机翻译三水平和垂直像素图像,和旋转图像角20度。

imageAugmenter = imageDataAugmenter (“RandRotation”(-20年,20),“RandXTranslation”3 [3],“RandYTranslation”3 [3])
imageAugmenter = imageDataAugmenter属性:FillValue: 0 RandXReflection: 0 RandYReflection: 0 RandRotation: 20 [-20] RandScale: [1] RandXScale: [1] RandYScale: [1] RandXShear: [0 0] RandYShear: [0 0] RandXTranslation: 3 [3] RandYTranslation: [3 3]

创建一个augmentedImageDatastore对象用于网络训练和指定的图像输出大小。在培训过程中,数据存储进行图像增强和调整图片的大小。数据存储增强图像不保存任何图像到内存中。trainNetwork更新网络参数,然后丢弃的增强图像。

图象尺寸= [28 28 1];augimds = augmentedImageDatastore(图象尺寸、XTrain YTrain,“DataAugmentation”,imageAugmenter);

指定卷积神经网络架构。

层= [imageInputLayer(图象尺寸)convolution2dLayer (3 8“填充”,“相同”)batchNormalizationLayer reluLayer maxPooling2dLayer (2“步”2)convolution2dLayer(16日“填充”,“相同”)batchNormalizationLayer reluLayer maxPooling2dLayer (2“步”32岁的,2)convolution2dLayer (3“填充”,“相同”)batchNormalizationLayer reluLayer fullyConnectedLayer (10) softmaxLayer classificationLayer];

指定培训选项随机梯度下降的势头。

选择= trainingOptions (“个”,“MaxEpochs”15岁的“洗牌”,“every-epoch”,“阴谋”,“训练进步”,“详细”假的,“ValidationData”,{XValidation, YValidation});

培训网络。因为验证图像不增强,验证精度高于训练精度。

网= trainNetwork (augimds层,选择);

提示

  • 预览转换应用于样本图像,使用增加函数。

  • 执行图像增强在培训,创建一个augmentedImageDatastore并指定使用预处理选项“DataAugmentation”名称-值对的imageDataAugmenter。增强的图像数据存储自动随机转换适用于训练数据。

版本历史

介绍了R2017b