要训练网络并对新数据进行预测,您的图像必须与网络的输入大小匹配。如果您需要调整图像的大小以匹配网络,那么您可以将数据缩放或裁剪到所需的大小。
您可以通过应用随机化有效增加培训数据量增加你的数据。增强还使您能够训练网络以对图像数据的畸变保持不变。例如,可以向输入图像添加随机旋转,这样网络就不会因输入图像的旋转而改变。一个augmentedImageDatastore
提供一种方便的方法来应用有限的增强到2-D图像以进行分类问题。
对于更高级的预处理操作,为回归问题或预处理3-D体积映像进行预处理图像,您可以从内置数据存储开始。您还可以根据自己的管道预处理图像转变
和结合
功能。
您可以将图像数据存储为数字数组ImageDatastore
对象或表。一个ImageDatastore
使您能够从太大而无法放入内存的图像集合批量导入数据。您可以使用增强的图像数据存储或调整大小的4-D数组进行训练、预测和分类。您可以使用调整大小的3-D数组仅用于预测和分类。
有两种方法可以调整图像数据的大小以匹配网络的输入大小。
缩放是将图像的高度和宽度乘以一个缩放因子。如果缩放因子在垂直和水平方向上不相同,那么缩放会改变像素的空间范围和宽高比。
裁剪提取图像的子区域并保留每个像素的空间范围。您可以从中心或从图像中的随机位置裁剪图像。
调整选项 | 数据格式 | 调整功能 | 示例代码 |
---|---|---|---|
重新调节 |
|
imresize. |
我= imresize(我outputSize);
|
|
augmentedImageDatastore |
auimds = augmentedimageageataStore(outputsize,i);
|
|
裁剪 |
|
imcrop (图像处理工具箱) |
我= imcrop(我、矩形);
|
|
imcrop3 (图像处理工具箱) |
我= imcrop3(我、长方体);
|
|
|
augmentedImageDatastore |
auimds = augmentedimagedataStore(输出,我,'outputsizeMode', m);
指定 指定 |
对于图像分类问题,可以使用augmentedImageDatastore
增加具有调整大小,旋转,反射,剪切和转换变换的随机组合的图像。
该图显示了如何Trainnetwork.
使用扩充的图像数据存储来转换每个纪元的训练数据。当您使用数据增强时,每个图像的随机增强版本将在训练的每个阶段使用。有关工作流的示例,请参见用增强图像列车网络.
指定培训图像。
配置图像转换选项,例如旋转角度范围,以及是否通过创建旋转反射,通过创建一个imageDataAugmenter
.
提示
要预览应用于样本图像的转换,请使用增加
函数。
创建一个augmentedImageDatastore
.指定训练图像、输出图像的大小和imageDataAugmenter
.输出图像的大小必须与图像的大小兼容imageInputLayer
的网络。
培训网络,将增强图像数据存储指定为数据源Trainnetwork.
.对于培训的每次迭代,增强图像数据存储在迷你批量数据中的图像中将随机组合应用于图像。
当您使用增强图像数据存储作为训练图像的来源时,数据存储随机仔细使用每个时代的训练数据,以便每个时代使用略微不同的数据集。每个时期的训练图像的实际数量不会改变。变换的图像未存储在内存中。
某些数据存储在读一批数据时执行特定和有限的图像预处理操作。这些特定于应用程序的数据存储列在表中列出。您可以将这些数据存储作为使用深度学习工具箱™的深度学习应用程序的培训,验证和测试数据集。所有这些数据存储都以支持的格式返回数据万博1manbetxTrainnetwork.
.
数据存储 | 描述 |
---|---|
augmentedImageDatastore |
涂抹随机仿射几何变换,包括调整大小,旋转,反射,剪切和翻译,用于训练深神经网络。例如,请参见使用净化网络转移学习. |
pixelLabelImageDatastore (计算机视觉工具箱) |
对图像应用相同的仿射几何变换和相应的地面真值标签来训练语义分割网络(需要Computer Vision Toolbox™)。例如,请参见基于深度学习的语义分割. |
RandompatchExtractionDatastore. (图像处理工具箱) |
从图像或像素标签图像中提取多对随机贴片(需要图像处理工具箱™)。您可选择将相同的随机仿射几何变换应用于成对的补丁。例如,请参见基于深度学习的单图像超分辨率. |
denoisingimageageataTastore. (图像处理工具箱) |
应用随机生成的高斯噪声来训练去噪网络(需要图像处理工具箱)。 |
要执行比特定于应用程序的数据存储提供的更通用和更复杂的图像预处理操作,可以使用转变
和结合
功能。有关更多信息,请参见用于深度学习的数据存储.
的转变
函数创建一个更改的数据存储形式,称为底层数据存储,通过根据您定义的转换函数转换底层数据存储读取的数据。
自定义转换函数必须以返回的格式接受数据读
底层数据存储的功能。用于图像数据ImageDatastore
,格式取决于ReadSize
财产。
什么时候ReadSize
为1时,转换函数必须接受整数数组。控件中的图像类型与数组的大小一致ImageDatastore
.例如,灰度图像具有尺寸米-经过-n,TrueColor图像具有尺寸米-经过-n-By-3和多光谱图像c渠道有尺寸米-经过-n-经过-c.
什么时候ReadSize
大于1时,转换函数必须接受图像数据的单元格数组。每个元素对应批处理中的一个图像。
的转变
功能必须返回与网络输入大小匹配的数据。的转变
函数不支持一对多的观测映射。万博1manbetx
提示
的转变
函数支持在底层时预万博1manbetx取ImageDatastore
读取一批JPG或PNG图像文件。对于这些图像类型,不要使用readfcn.
争论ImageDatastore
应用图像预处理,因为这个选项通常非常慢。如果您使用自定义读函数,那么ImageDatastore
不预取。
的结合
函数连接从多个数据存储读取的数据,并维护数据存储之间的奇偶校验。
将数据连接到双列表或两列小区阵列,用于具有单个输入的培训网络,例如图像到图像回归网络。
将数据连接到numinputs.
+1)列单元阵列用于训练具有多个输入的网络。
Trainnetwork.
|imresize.
|转变
|结合
|ImageDatastore