pixelClassificationLayer

创建语义分割像素分类层

描述

的像素分类层提供用于每个图像像素或体素一个分类标签。

创建

描述

= pixelClassificationLayer创建语义图像分割网络的像素分类输出层。该层输出用于由CNN处理的每个图像像素或体素的分类标签。所述层训练过程中自动忽略不确定像素标签。

= pixelClassificationLayer(名称,值)返回使用名称,Value对参数设置可选的像素分类输出层ClassWeights名称通过使用名称 - 值对的特性。可以指定多个名称 - 值对。在引号中每个属性的名称。

例如,pixelClassificationLayer( '姓名', 'pixclass')创建具有名称的像素分类层'pixclass'

属性

展开全部

输出层的类,指定为分类矢量,字符串数组,字符向量的单元阵列,或'汽车'。如果'汽车',那么软件会自动在训练时间设置类。如果指定字符向量的字符串数组或单元阵列海峡,则软件将输出层的类分类(STR,STR)。默认值是'汽车'

数据类型:烧焦|明确的||细胞

类的权重,指定为'没有'或作为实数标量的向量。矢量对应的所述类别中的元素。如果您指定ClassWeights,那么你必须指定

使用类权重时,有在训练数据未被充分代表的类平衡类。

此属性是只读的。

该层的输出大小。该值是'汽车'在训练前,和被指定为在训练时间的数值。

此属性是只读的。

用于培训损失函数,指定为'crossentropyex'

层名称,指定为字符向量或字符串标量。要在一个层图形层,你必须指定一个非空的唯一图层名称。如果你训练的一系列网络层和名称设定为“”,那么软件的名称自动分配到训练时间的层。

数据类型:烧焦|

的层的输入端数量。该层只接受单个输入。

数据类型:

该层的输入名称。该层只接受单个输入。

数据类型:细胞

例子

全部收缩

预测每个像素的分类标签中的输入图像。

层= [imageInputLayer([32 32 3])convolution2dLayer(3,16,“跨越论”,2,'填充',1)reluLayer transposedConv2dLayer(3,1,“跨越论”,2,“裁剪”,1)softmaxLayer pixelClassificationLayer]
层= 6×1层阵列层:1 '' 图像输入32x32x3图像与 'zerocenter' 正常化2 '' 卷积16分3×3的卷积与步幅[2 2]和填充[1 1 1 1] 3 '' RELU RELU 4 '' 转置卷积1 3×3的卷积转置与步幅[2 2]和裁剪[1 1 1 1]的5“”使用SoftMax SOFTMAX 6“”像素分类层跨熵损失

使用逆类频率加权当一些类在训练数据中的人数不足平衡类。首先,计数结束使用pixelLabelImageDatastore训练数据类的频率。然后,设置在所述pixelClassificationLayer“ClassWeights”所计算的逆类的频率。

设置图像和像素标签数据的位置。

DATADIR =完整文件(toolboxdir('视力''visiondata');imDir =完整文件(DATADIR,'建造');pxDir =完整文件(DATADIR,'buildingPixelLabels');

利用地面实况图像创建像素标签图像数据存储IMDS和像素标记的图像在pxds

IMDS = imageDatastore(imDir);类名= [“天空”“草”“建造”“人行道”]。pixelLabelID = [1 2 3 4];pxds = pixelLabelDatastore(pxDir,类名,pixelLabelID);pximds = pixelLabelImageDatastore(IMDS,pxds);

在数据集制表类分布。

TBL = countEachLabel(pximds)
TBL =4×3表名称PixelCount ImagePixelCount ____________ __________ _______________ { '天空'} 3.1485e + 05 1.536e + 06 { '草'} 1.5979e + 05 1.536e + 06 { '建设'} 1.0312e + 06 1.536e + 06 { '人行道'}25313 9.216e + 05

计算逆频率类的权重。

totalNumberOfPixels =总和(tbl.PixelCount);频率= tbl.PixelCount / totalNumberOfPixels;inverseFrequency = 1./frequency
inverseFrequency =4×14.8632 9.5827 1.4848 60.4900

设置“ClassWeights”逆类的频率。

层= pixelClassificationLayer(...“类”,tbl.Name,'ClassWeights',inverseFrequency)
层= PixelClassificationLayer与属性:名称: '' 类:[天空草构建人行道] ClassWeights:[4X1双] OutputSize: '自动' 超参数LossFunction: 'crossentropyex'

扩展功能

GPU代码生成
生成使用GPU编码器™,NVIDIA®GPU的代码CUDA®。

介绍了在R2017b