主要内容

深度学习的预处理图像

要培训网络并对新数据进行预测,您的图像必须与网络的输入大小匹配。如果您需要调整图像的大小以匹配网络,则可以将数据重新归类或裁剪到所需的大小。

通过随机应用,可以有效地增加训练数据量增强到您的数据。增强还使您可以培训网络以不变的是图像数据中的扭曲。例如,您可以将随机旋转添加到输入图像,使得网络是不变的输入图像中的旋转的存在。一个AugmentedimageGedataStore.提供了一种方便的方法来应用有限的一组增强二维图像来解决分类问题。

对于更高级的预处理操作,对图像进行预处理以解决回归问题,或者对3d体积图像进行预处理,您可以从内置的数据存储开始。还可以根据自己的管道对图像进行预处理,方法是使用变换结合功能。

使用缩放和裁剪来调整图像的大小

您可以将图像数据存储为数字数组,imageageAtastore.对象或表格。一个imageageAtastore.使您可以从太大的图像集合中导入数据,以符合内存。您可以使用增强的图像数据存储或调整大小的4-D阵列进行培训,预测和分类。您只能使用调整大小的3-D阵列进行预测和分类。

有两种方法可以调整图像数据以匹配网络的输入大小。

  • 缩放是将图像的高度和宽度乘以一个缩放因子。如果比例因子在垂直和水平方向上不相同,则重新缩放会改变像素的空间范围和宽高比。

  • 裁剪提取图像的一个子区域,并保留每个像素的空间范围。你可以从图像的中心或随机位置裁剪图像。

调整选项大小 数据格式 调整功能大小 示例代码
重新扫视
  • 表示单个颜色或多光谱图像的3-D阵列

  • 三维数组表示灰度图像的堆栈

  • 表示图像堆栈的4-D阵列

imresize

IM = Imresize(I,OutputSize);

输出指定重新缩放图像的尺寸。

  • 表示图像堆栈的4-D阵列

  • imageageAtastore.

  • 表格

AugmentedimageGedataStore.

auimds = augmentedImageDatastore (outputSize,我);

输出指定重新缩放图像的尺寸。

裁剪
  • 表示单个颜色或多光谱图像的3-D阵列

im(图像处理工具箱)

IM = Imcrop(I,Rect);

矩形指定2-D裁剪窗口的大小和位置。

  • 三维数组表示灰度图像的堆栈

  • 4-D阵列表示颜色或多谱图像的堆叠

imcrop3.(图像处理工具箱)

IM = imcrop3(i,长方体);

长方体指定3-D裁剪窗口的大小和位置。

  • 表示图像堆栈的4-D阵列

  • imageageAtastore.

  • 表格

AugmentedimageGedataStore.

auimds = augmentedImageDatastore (outputSize,我,“OutputSizeMode”,m);

指定m作为'CenterCrop'从输入图像的中心裁剪。

指定m作为“randcrop”从输入图像的随机位置进行裁剪。

使用随机几何变换的培训增强图像

对于图像分类问题,您可以使用AugmentedimageGedataStore.使用大小调整、旋转、反射、剪切和平移转换的随机组合来增强图像。

该图显示了trainNetwork使用增强图像数据存储来转换每个时代的培训数据。当您使用数据增强时,每个图像的一个随机增强版本在训练时期使用。有关工作流程的示例,请参阅增强图像的列车网络

  1. 指定训练图像。

  2. 配置图像转换选项,例如旋转角度范围,以及是否通过创建旋转反射,通过创建一个ImagedataAugmenter.

    小费

    要预览应用于样本图像的转换,请使用增加功能。

  3. 创建一个AugmentedimageGedataStore.。指定培训图像,输出图像的大小,以及ImagedataAugmenter.。输出图像的大小必须与大小兼容imageInputlayer.网络。

  4. 训练网络,指定增强的图像数据存储作为数据源trainNetwork。对于训练的每次迭代,增强图像数据存储对训练数据的小批量图像应用转换的随机组合。

    当你使用增强图像数据存储作为训练图像的来源时,数据存储随机扰动每个epoch的训练数据,这样每个epoch使用稍微不同的数据集。每个epoch的训练图像的实际数量不会改变。转换后的图像不会存储在记忆中。

使用内置数据存储执行额外的图像处理操作

一些数据存储在读取一批数据时执行特定的和有限的图像预处理操作。表中列出了这些特定于应用程序的数据存储。您可以使用这些数据存储作为使用deep learning Toolbox™的深度学习应用程序的培训、验证和测试数据集的来源。所有这些数据存储都以支持的格式返回数据万博1manbetxtrainNetwork

数据存储 描述
AugmentedimageGedataStore. 应用随机仿射几何变换,包括调整大小、旋转、反射、剪切和平移,用于训练深度神经网络。例如,看到利用预先训练的网络进行迁移学习
PixellabelimagedAtastore.(电脑视觉工具箱) 将相同的仿射几何变换应用于图像和相应的地面真理标签,用于训练语义分段网络(需要计算机Vision Toolbox™)。例如,看到利用深度学习的语义分割
RandompatchExtractionDatastore.(图像处理工具箱) 从图像或像素标签图像中提取多对随机补丁(需要图像处理工具箱™)。你可以选择应用相同的随机仿射几何变换对补丁。例如,看到单幅图像超分辨率使用深度学习
denoisingimageageataTastore.(图像处理工具箱) 为培训去噪网络应用随机生成的高斯噪声(需要图像处理工具箱)。

使用组合和变换应用自定义图像处理管道

要执行更通用和复杂的图像预处理操作,而不是由应用程序特定的数据存储提供,可以使用变换结合功能。有关更多信息,请参阅深入学习的数据购物

用图像数据转换数据存储

变换函数创建数据存储的改变形式,称为底层数据存储,通过根据您定义的转换函数转换由底层数据存储读取的数据。

控件返回的格式的数据必须接受自定义转换函数底层数据存储的函数。的图像数据imageageAtastore.,格式取决于阅读财产 。

  • 阅读是1,转换函数必须接受整数数组。阵列的大小与图像中的图像类型一致imageageAtastore.。例如,灰度图像具有尺寸m——- - - - - -N,真彩色图像是有尺寸的m——- - - - - -N- × 3,还有一张多光谱图像C频道具有尺寸m——- - - - - -N——- - - - - -C

  • 阅读大于1,转换函数必须接受图像数据的单元格阵列。每个元素对应于批处理中的图像。

变换函数必须返回与网络输入大小匹配的数据。这变换功能不支持一对多观察映射。万博1manbetx

小费

变换函数支持预取,当底万博1manbetx层imageageAtastore.读取一批JPG或PNG图像文件。对于这些图像类型,请勿使用readFcn的观点imageageAtastore.要应用图像预处理,因为此选项通常显着较慢。如果您使用自定义读取功能,那么imageageAtastore.没有预取。

将数据存储与图像数据结合起来

结合函数串联从多个数据存储读取的数据,并在数据存储之间维护奇偶校验。

  • 将数据连接成两列表或两列单元格阵列,用于使用单个输入训练网络,例如图像到图像的回归网络。

  • 将数据连接到A(numInputs+1)用于培训具有多个输入的网络的科学单元格数组。

也可以看看

||||

相关例子

更多关于