预处理图像深度学习
训练一个网络,使预测新数据,你的图片必须输入匹配网络的大小。如果你需要调整大小的图片匹配网络,然后您可以重新调节或农作物数据所需的大小。
可以有效地增加训练数据通过应用随机增加你的数据。增加还使您能够训练网络是扭曲图像数据不变。例如,您可以添加随机旋转输入图像,这样一个网络是存在旋转不变的输入图像。一个augmentedImageDatastore
提供了一种方便的方法来应用一组有限的对应二维图像分类问题。
对于更高级的预处理操作,回归问题的预处理图像,或预处理三维容积图像,你可以从一个内置的数据存储。你也可以进行预处理图像根据使用自己的管道变换
和结合
功能。
调整图像使用尺度改变和裁剪
你可以将图像数据存储为数字数组,一个ImageDatastore
对象,或一个表。一个ImageDatastore
使您能够批量导入数据从图像集合,装入内存太大。您可以使用一个增强图像数据存储或调整4 - d数组进行训练,预测和分类。您可以使用一个缩放三维数组预测和分类。
有两种方法可以调整图像数据来匹配输入网络的大小。
重新调节增加图像的高度和宽度的比例因子。如果比例因子不是相同的在垂直和水平方向上,然后重新调节改变像素的空间区段和长宽比。
种植提取物的次区域形象和保存每个像素的空间范围。你可以裁剪图像从中心或随机图像中的位置。
调整选项 | 数据格式 | 调整功能 | 示例代码 |
---|---|---|---|
重新调节 |
|
imresize |
我= imresize(我outputSize);
|
|
augmentedImageDatastore |
auimds = augmentedImageDatastore (outputSize,我);
|
|
裁剪 |
|
imcrop (图像处理工具箱) |
我= imcrop(我、矩形);
|
|
imcrop3 (图像处理工具箱) |
我= imcrop3(我、长方体);
|
|
|
augmentedImageDatastore |
auimds = augmentedImageDatastore (outputSize,我,“OutputSizeMode”,m);
指定 指定 |
增强图像训练随机几何转换
图像分类问题,您可以使用一个augmentedImageDatastore
增加图像的随机组合调整,旋转,反射,剪切,翻译转换。
图表显示了trainNetwork
使用一个增强图像数据存储为每个时代变换训练数据。当你使用数据,使用一个随机增强版本的每个图像在每个时代的训练。工作流程的一个示例,请参阅列车网络的增强图像。
指定训练图像。
配置图像转换选项,如旋转角度的范围以及是否应用随机反射,通过创建一个
imageDataAugmenter
。提示
预览转换应用于样本图像,使用
增加
函数。创建一个
augmentedImageDatastore
。指定训练图像,输出图像的大小,和imageDataAugmenter
。输出图像的大小必须兼容的大小imageInputLayer
的网络。训练网络,指定增强图像数据存储作为数据来源
trainNetwork
。为每个迭代的训练,增强图像数据存储的随机组合转换适用于图像的mini-batch训练数据。当您使用一个增强图像数据存储的训练图像数据存储训练数据随机扰乱对于每一个时代,这样每个时代使用稍微不同的数据集。训练图像的实际数量在每个时代不会改变。转换后的图像不存储在内存中。
使用内置的数据存储执行额外的图像处理操作
一些数据存储执行特定的和有限的图像预处理操作时读一批数据。这些特定于应用程序的数据存储在表中列出。您可以使用这些数据存储的培训、验证和测试数据集的深度学习使用深度学习工具箱™的应用程序。所有这些数据存储的格式返回数据的支持金宝apptrainNetwork
。
数据存储 | 描述 |
---|---|
augmentedImageDatastore |
应用随机仿射几何变换,包括缩放、旋转、反射、剪切、和翻译训练神经网络。例如,看到的学习使用Pretrained网络传输。 |
pixelLabelImageDatastore (计算机视觉工具箱) |
应用相同的仿射几何变换图像和相应的地面实况标签语义分割网络培训(需要计算机视觉工具箱™)。例如,看到的语义分割使用深度学习。 |
randomPatchExtractionDatastore (图像处理工具箱) |
从图像中提取多个双随机补丁或像素标签图像(需要图像处理工具箱™)。你选择可以应用相同的随机仿射几何转换成对的补丁。例如,看到的使用深度学习提高图像分辨率。 |
denoisingImageDatastore (图像处理工具箱) |
培训应用随机生成高斯噪声去噪网络(需要图像处理工具箱)。 |
应用自定义图像处理管道使用组合和变换
执行更普遍和复杂的图像预处理操作比提供的特定于应用程序的数据存储,您可以使用变换
和结合
功能。有关更多信息,请参见数据存储深度学习。
变换数据存储图像数据
的变换
函数创建数据存储的一个变种,称为一个底层数据存储底层数据存储,将读取的数据根据您定义的变换函数。
自定义转换函数必须接受返回的数据的格式读
底层数据存储的函数。在一个图像数据ImageDatastore
的格式取决于ReadSize
财产。
当
ReadSize
是1,转换函数必须接受一个整数数组中。数组的大小与图像的类型是一致的ImageDatastore
。例如,一个灰度图像尺寸米——- - - - - -n,真彩图像的尺寸米——- - - - - -n3、多光谱图像c渠道有尺寸米——- - - - - -n——- - - - - -c。当
ReadSize
大于1,转换函数必须接受一系列细胞的图像数据。每个元素对应于图像的批量。
的变换
函数必须返回数据相匹配的输入网络的大小。的变换
功能不支持一对多观察映射。金宝app
提示
的变换
当底层函数支持预取金宝appImageDatastore
读取一批JPG和PNG图像文件。对于这些类型的图像,不使用readFcn
的观点ImageDatastore
应用图像预处理,这个选项通常是明显慢。如果你使用一个定制的阅读功能ImageDatastore
不预取。
把数据存储和图像数据
的结合
功能连接的数据读取多个数据存储之间的数据存储和维护平价。
两列的表格或两列数据合并到一个单元阵列使用单个输入训练网络,如image-to-image回归网络。
连接数据(
numInputs
+ 1)列单元阵列与多个输入训练网络。
另请参阅
trainNetwork
|imresize
|变换
|结合
|ImageDatastore