主要内容

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

输入参数

全部展开

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

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

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

属性

全部展开

此属性是只读的。

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

此属性是只读的。

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

此属性是只读的。

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

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

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

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

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

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

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

此属性是只读的。

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

此属性是只读的。

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

OutputSize属性对于3d数据不支持。方法可设置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”);

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

imd = imageDatastore (imageDir);

创建一个pixelLabelDatastore对于地面真值像素标签。

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

可视化训练图像和地面真相像素标签。

我=读(imd);C =阅读(pxds);I = imresize (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日);pixelClassificationLayer softmaxLayer () ()];

设置培训选项。

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

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

pxds trainingData =结合(imd);

培训网络。

网= trainNetwork (trainingData层,选择);
单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,净);B = labeloverlay (testImage C);imshow (B)

提示

  • pixelLabelDatastorepxdsimageDatastore洛桑国际管理发展学院按字典顺序存储位于文件夹中的文件。例如,如果有12个命名为“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

全部展开

Baidu
map