主要内容

RandompatchExtractionDatastore.

用于从图像或像素标签图像中提取随机2-D或3-D随机补丁的数据存储

描述

一种RandompatchExtractionDatastore.从两个基于图像的数据存储中提取相应的随机定位斑块。例如,输入数据存储可以是两个图像数据存储,其包含用于训练图像到图像回归网络的网络输入和期望的网络响应,或用于训练语义分割网络的地面真理图像和像素标签数据。

此对象要求您有深入的学习工具箱™。

笔记

当你使用的时候RandompatchExtractionDatastore.作为训练数据的来源,数据存储区从每个epoch从每个图像中提取多个随机补丁,以便每个时代使用略微不同的数据集。每个时代的培训补丁的实际数量是繁殖图像的数量乘以patchesperimage.。图像修补程序不存储在内存中。

创建

描述

例子

patchds = randompatchExtractionDataStore(DS1DS2.补丁创建一个数据存储区,提取大小的随机定位的斑块补丁从数据存储中的输入数据DS1和数据存储中的响应数据DS2.

patchds = randompatchExtractionDataStore(DS1DS2.补丁名称,价值使用名称值对设置patchesperimage.dataaugmentation., 和DisparctinBackground.特性。您可以指定多个名称值对。将每个属性名称括在引号中。

例如,RandompatchExtractionDataStore(IMDS1,IMDS2,50,'PatchesPerimage',40)创建一个数据存储区,随机生成从图像数据存储中的每个图像生成40个大小50×50像素的补丁IMDS1IMDS2

输入参数

展开全部

输入数据包含到网络的训练输入,指定为一个imageageAtastore.PixellabeldAtastore.(电脑视觉工具箱), 或者变换adatastore.

指定A.PixellabeldAtastore.需要计算机Vision Toolbox™。

笔记

imageageAtastore.允许使用预取的JPG或PNG图像文件批量读取。如果使用自定义函数来读取图像,则不会发生预取。

表示所需网络响应的响应数据,指定为一个imageageAtastore.PixellabeldAtastore.(电脑视觉工具箱), 或者变换adatastore.。如果您指定了一个变换adatastore.,然后底层数据存储必须是一个imageageAtastore.或者PixellabeldAtastore.

指定A.PixellabeldAtastore.需要计算机视觉工具箱。

笔记

imageageAtastore.允许使用预取的JPG或PNG图像文件批量读取。如果使用自定义函数来读取图像,则不会发生预取。

特性

展开全部

此属性是只读的。

补丁大小,指定为以下之一。

  • 用于2-D斑块的正整数的2元素矢量。补丁有表格[R.C] 在哪里R.指定行数和C指定补丁中的列数。

  • 3-D斑块的正整数的3元素矢量。补丁有表格[R.CP.] 在哪里R.指定行数,C指定列的数量,以及P.指定补丁中的平面数。

每个图像的随机补丁数量,指定为正整数。

预处理应用于输入图像,指定为一个ImagedataAugmenter.(深度学习工具箱)对象或者'没有任何'。什么时候dataaugmentation.'没有任何',没有预处理应用于输入图像。

增加随机变换的数据,例如调整大小,旋转和反射,以帮助阻止网络过度接收和记忆训练数据的确切细节。这RandompatchExtractionDatastore.将相同的随机转换应用于每对中的两个补丁。数据存储在培训时实时增强数据。

dataaugmentation.3-D数据不支持属性。金宝app要预处理3-D数据,请使用转换功能。

在培训,预测或分类期间,在背景中调度观测,指定为错误的或者真的。要使用后台调度,必须具有并行计算工具箱™。

每批返回的观察数。您可以更改值小匹匹匹匹配只有创建数据存储后。用于培训,预测和分类,小匹匹匹匹配属性设置为迷你批处理尺寸培训选项(深度学习工具箱)

此属性是只读的。

总观察数RandompatchExtractionDatastore.。观察数是一个训练时代的长度。

对象功能

结合 将数据与多个数据存储组合
哈迪塔 确定数据是否可用读取
numpartitions 数据存储区分区数量
划分 分区数据存储
PartitionByIndex. 划分RandompatchExtractionDatastore.根据索引
预习 在数据存储区中预览数据子集
读取数据RandompatchExtractionDatastore.
读物 阅读数据存储中的所有数据
readbyex. 读取由索引指定的数据RandompatchExtractionDatastore.
重启 将数据存储重置为初始状态
洗牌 数据存储中的Shuffle数据
转换 转换数据存储
是可分派的 确定数据存储是否已分配
isShufflable. 确定数据存储是否会破坏

例子

全部收缩

创建包含培训图像的图像数据存储。此示例中的数据存储包含JPEG彩色图像。

imagedir = fullfile(toolboxdir('图片'),'imdata');imds1 = imagedataStore(Imagedir,'fileextensions''.jpg');

创建一个转换图像的第二个数据存储IMDS1通过应用高斯模糊。

IMDS2 =变换(IMDS1,@(x)imgaussfilt(x,2));

创建一个ImagedataAugmenter.这通过范围[0,90]度的随机角度旋转图像,并随机地水平反射图像数据。

upmmenter = imagedataAugmenter('randroatation',[0 90],'randxreflection',真的)
Augmenter = ImagedataAugmenter具有属性:FileValue:0 RANDXREFLECTECT:1 RANDYREFLECTION:0 RANDROTATION:[0 90] RANDSCALE:[1] RANDXSCALE:[1] RANCYSCALE:[1] RANDXSHEAR:[0] RANDXSHEAR:[0] RANDYSHEAR:[0] RANDYSHEAR:[0] RANDYSHEAR:[0] RANDYSHEAR:[0]] randXtranslation:[0] RandyTranslation:[0 0]

创建一个RandompatchExtractionDatastore.从未处理的训练图像和相应的平滑响应图像中提取大小100-100的随机斑块的对象。通过设置来指定增强选项dataaugmentation.财产。

PATCHDS = RANDOMPHATCHEXTRACTNDATASTORE(IMDS1,IMDS2,[100 100],......'dataaugmentation',增强者)
PATCHDS = RANDOMPHATCHEXTRACTIONDATASTORATERS属性:PACKESPERIMAGE:128 PatchSize:[100 100] DataAugmentation:[1×1 ImagedataAugmenter] Minibatchsize:128 NumOBservations:[] Displatchinbackground:0

预览一组增强图像修补程序和相应的平滑图像修补程序。

minibatch = preview(patchds);输入= minibatch.inputimage;响应= minibatch.ResponseImage;测试= CAT(2,输入,响应);蒙太奇(测试','尺寸',[8 2])标题('输入(左)和响应(右)'

创建包含培训图像的图像数据存储。

datadir = fullfile(toolboxdir('想象'),'VisionData''triangleimages');imageageR = fullfile(datadir,'培训码');IMDS = IMAGEDATASTORE(IMAGEDIR);

定义类名称及其关联的标签ID。然后,创建包含用于训练图像的地面真相像素标签的像素标签数据存储。

ClassNames = [“三角形”“背景”];labelids = [255 0];labeldir = fullfile(Datadir,'训练标签');pxds = pixellabeldataStore(Labeldir,ClassNames,LabelIds);

创建随机补丁提取数据存储,以从图像和对应的像素标签中提取大小32乘32像素的随机斑块。设置可选patchesperimage.属性从每个图像和像素标签对中提取512个随机补丁。

PATCHDS = RANDOMPHATCHEXTRACTIONDATASTORE(IMDS,PXDS,32,......'patchesperimage',512);

创建一个用于语义分割的网络。

图层= [imageInputlayer([32 32 1])卷积2dlayer(3,64,'填充',1)rululayer()maxpooling2dlayer(2,'走吧',2)卷积2dlayer(3,64,'填充',1)Rubulayer()转置Conv2dlayer(4,64,'走吧'2,'裁剪',1)Convolution2Dlayer(1,2)SoftMaxLayer()PixelClassificationLayer()]
图层= 10x1层阵列,带有层数:1''图像输入32x32x1图像,具有'zerocenter'归一化2''卷积64 3x3卷积与步幅[1 1]和padding [1 1 1 1] 3''Relu Relu 4''Max汇集2x2 max汇集步进[2 2]和填充[0 0 0 0] 5'卷积64 3x3卷绕卷发[1 1]和填充[1 1 1 1] 6''Relu Relu 7''转置卷积644×4带有步幅的转换卷积[2 2]和输出裁剪[1 1] 8''卷积2 1x1卷曲与步幅[1 1]和填充[0 0 0 0] 9''softmax softmax 10''像素分类层交叉 -熵损失

设置培训选项。减少培训时间,设置maxepochs.到5。

选项=培训选项('sgdm'......'italllearnrate',1e-3,......'maxepochs',5,......'verbose',错误的);

训练网络。

net = trainnetwork(patchds,图层,选项);

尖端

  • RandompatchExtractionDatastore.期望输出来自在输入数据存储上的操作返回相同大小的阵列。

  • 如果输入数据存储是一个imageageAtastore.,然后是它的值标签财产被忽视RandompatchExtractionDatastore.

  • 可视化a中的2-d数据RandompatchExtractionDatastore.,你可以使用预习函数,返回表中的数据子集。通过使用通过使用相同图形的所有补丁可视化剪辑功能。例如,此代码显示来自a的图像修补程序的预览RandompatchExtractionDatastore.包皮

    minibatch = preview(patchds);蒙太奇(Minibatch.Inputimage)

在R2018B中介绍