主要内容

pixelLabelImageDatastore

(待删除)用于语义分割网络的数据存储

pixelLabelImageDatastore将在将来的版本中删除。使用imageDatastore而且pixelLabelDatastore对象和结合函数来代替。

描述

使用pixelLabelImageDatastore使用深度学习创建一个用于训练语义分割网络的数据存储。

创建

描述

例子

pximds= pixelLabelImageDatastore (gTruth返回用于训练基于输入的语义分割网络的数据存储groundTruth对象或数组的groundTruth对象。使用输出pixelLabelImageDatastore对象的深度学习工具箱™功能trainNetwork(深度学习工具箱)训练卷积神经网络进行语义分割。

pximds= pixelLabelImageDatastore (洛桑国际管理发展学院pxds根据输入图像数据存储和像素标签数据存储对象返回一个数据存储。洛桑国际管理发展学院是一个ImageDatastore对象,该对象表示网络的训练输入。pxds是一个PixelLabelDatastore对象,它表示所需的网络输出。

pximds= pixelLabelImageDatastore (___名称,值还使用名称-值对来设置DispatchInBackground而且OutputSizeMode属性。对于2-D数据,还可以使用名称-值对指定ColorPreprocessingDataAugmentation,OutputSize增加属性。可以指定多个名称-值对。将每个属性名用引号括起来。

例如,pixelLabelImageDatastore (gTruth PatchesPerImage, 40)创建像素标签图像数据存储,该数据存储从中的每个ground truth对象随机生成40个补丁gTruth

输入参数

全部展开

地面真相数据,指定为agroundTruth对象的数组groundTruth对象。每一个groundTruth对象包含有关数据源、标签定义列表以及一组基本真实值标签的所有标记标签的信息。

图像的集合,指定为ImageDatastore对象。

像素标记图像的集合,指定为PixelLabelDatastore对象。对象中包含的每个图像的像素标记图像洛桑国际管理发展学院输入对象。

属性

全部展开

此属性是只读的。

用作地面实况图像源的图像文件名,指定为字符向量或字符向量的单元格数组。

此属性是只读的。

像素标签数据文件名用作地面真实值标签图像的源,指定为字符或字符单元格数组。

此属性是只读的。

类名,指定为字符向量的单元格数组。

二维数据的彩色通道预处理,指定为“没有”“gray2rgb”,或“rgb2gray”.当需要数据源创建的图像数据必须仅为彩色或灰度时,使用此属性,但训练集同时包含这两者。假设你需要训练一个期望彩色图像的网络,但你的一些训练图像是灰度的。集ColorPreprocessing“gray2rgb”复制输入图像集中灰度图像的颜色通道。使用“gray2rgb”选项创建——- - - - - -N-by-3输出图像。

ColorPreprocessing属性不支持3d数据。万博1manbetx若要执行3d数据的彩色通道预处理,请使用变换函数。

预处理应用于输入图像,指定为imageDataAugmenter(深度学习工具箱)对象或“没有”.当DataAugmentation“没有”时,不对输入图像进行预处理。训练数据可以在训练过程中实时增强。

DataAugmentation属性不支持3d数据。万博1manbetx要预处理3-D数据,请使用变换函数。

在训练、预测和分类期间,在后台发送观察结果,具体为真正的.要使用后台调度,必须拥有并行计算工具箱™。如果DispatchInBackground真正的然后你就有了并行计算工具箱pixelLabelImageDatastore异步读取补丁、添加噪声、队列补丁对。

每批中返回的观察数。缺省值为TheReadSize图像数据存储洛桑国际管理发展学院.你可以改变的值MiniBatchSize只有在创建数据存储之后。对于训练、预测或分类,使用MiniBatchSize属性中定义的小批处理大小trainingOptions(深度学习工具箱)

此属性是只读的。

去噪图像数据存储中的观测总数。观察的数量是一个训练周期的长度。

此属性是只读的。

输出图像的大小,指定为两个正整数的向量。第一个元素指定输出图像中的行数,第二个元素指定列数。当你指定OutputSize,图像大小可根据需要进行调整。默认情况下,此属性为空,这意味着不调整图像。

OutputSize属性不支持3d数据。万博1manbetx若要设置3d数据的输出大小,请使用变换函数。

方法用于调整输出图像的大小,指定为下列之一。此属性仅在设置时应用OutputSize到一个值以外[]

  • “调整”-缩放图像以适应输出大小。有关更多信息,请参见imresize

  • “centercrop”-从训练图像的中心取一个作物。作物的大小与输出大小相同。

  • “randcrop”-从训练图像中随机裁剪。随机裁剪的大小与输出大小相同。

数据类型:字符|字符串

对象的功能

结合 组合来自多个数据存储的数据
countEachLabel 计数出现像素或框标签
hasdata 确定是否有数据可以读取
partitionByIndex 分区pixelLabelImageDatastore根据指标
预览 预览数据存储中的数据子集
从数据存储中读取数据
readall 读取数据存储中的所有数据
readByIndex 读取索引中指定的数据pixelLabelImageDatastore
重置 将数据存储重置为初始状态
洗牌 返回打乱的数据存储版本
变换 变换数据存储

例子

全部折叠

加载训练数据。

dataSetDir = fullfile(toolboxdir(“愿景”),“visiondata”“triangleImages”);imageDir = fullfile(dataSetDir,“trainingImages”);labelDir = fullfile(dataSetDir,“trainingLabels”);

为映像创建映像数据存储。

imds = imageDatastore(imageDir);

创建一个pixelLabelDatastore对于ground truth像素标签。

classNames = [“三角形”“背景”];labelIDs = [255 0];pxds = pixelLabelDatastore(labelDir,classNames,labelIDs);

可视化训练图像和ground truth像素标签。

I = read(imds);C = read(pxds);I = imresize(I,5);L = imresize(uint8(C{1}),5);imshowpair (L,我“蒙太奇”

创建一个语义分割网络。该网络使用了基于下采样和上采样设计的简单语义分割网络。

numFilters = 64;filterSize = 3;numClasses = 2;layers = [imageInputLayer([32 32 1]) convolution2dLayer(filterSize,numFilters,“填充”,1) reluLayer() maxPooling2dLayer(2,“步”(2) convolution2dLayer filterSize numFilters,“填充”,1) reluLayer() transposedConv2dLayer(4,numFilters,“步”2,“种植”1);numClasses convolution2dLayer(1日);softmaxLayer() pixelClassificationLayer()];

设置培训选项。

opts = trainingOptions(“个”...“InitialLearnRate”1 e - 3,...“MaxEpochs”, 100,...“MiniBatchSize”, 64);

将图像和像素标签数据存储结合起来进行训练。

trainingData = combine(imds,pxds);

培训网络。

net = trainNetwork(trainingData,layers,opts);
单CPU训练。初始化输入数据规范化。|========================================================================================| | 时代| |迭代时间| Mini-batch | Mini-batch |基地学习  | | | | ( hh: mm: ss) | | |丧失准确性  | |========================================================================================| | 1 | 1 |就是58.11% | | 1.3458 | 0.0010 | | 17 | 50 | 00:00:12 | 97.30% | 0.0924 | 0.0010 | | 100 | | 00:00:24 | 98.09% | 0.0575 | 0.0010 | | 150 | | 00:00:37 | 98.56% | 0.0424 |0.0010 | 67 | 200 | | 00:00:49 | 98.48% | 0.0435 | 0.0010 | 84 | 250 | | 00:01:02 | 98.66% | 0.0363 | 0.0010 | 100 | 300 | | 00:01:14 | | 0.0310 | 0.0010 98.90%  | |========================================================================================| 培训完成:达到最终的迭代。

读取并显示测试图像。

testImage = imread(“triangleTest.jpg”);imshow (testImage)

分割测试图像并显示结果。

C = semanticseg(testImage,net);B = labeloverlay(testImage,C);imshow (B)

提示

  • pixelLabelDatastorepxdsimageDatastore洛桑国际管理发展学院按字典顺序存储位于文件夹中的文件。例如,如果您有十二个文件命名为“file1.jpg”“file2.jpg”,…,“file11.jpg”,“file12.jpg”,则文件的存储顺序为:

    “file1.jpg”“file10.jpg”“file11.jpg”“file12.jpg”“file2.jpg”“file3.jpg”...“file9.jpg”
    存储在单元格数组中的文件的读取顺序与存储顺序相同。

    如果文件的顺序在pxds而且洛桑国际管理发展学院是不一样的,那么你可能会遇到不匹配时,你读取地面真相图像和相应的标签数据使用pixelLabelImageDatastore.如果出现这种情况,则重命名像素标签文件,使它们具有正确的顺序。例如,重命名“file1.jpg”,…,“file9.jpg”“file01.jpg”、……“file09.jpg”

  • 提取语义分割数据groundTruth对象生成的贴标签机视频,使用pixelLabelTrainingData函数。

版本历史

在R2018a中引入

全部展开