主要内容

pixelClassificationLayer

创建像素分类层进行语义分割

描述

像素分类层为每个图像像素或体素提供分类标签。

创建

描述

例子

= pixelClassificationLayer为语义图像分割网络创建像素分类输出层。该层输出经过CNN处理的每个图像像素或体素的分类标签。该层在训练过程中自动忽略未定义的像素标签。

例子

= pixelClassificationLayer(名称,值)返回一个像素分类输出层,使用名称,值对参数设置可选ClassWeights,的名字属性,使用名称-值对。可以指定多个名称-值对。将每个属性名用引号括起来。

例如,pixelClassificationLayer('名称',' pixclass ')创建名称为的像素分类层“pixclass”

属性

全部展开

类的输出层,指定为分类向量、字符串数组、单元格字符向量数组或“汽车”.如果“汽车”,然后软件在训练时间自动设置课程。如果指定字符向量的字符串数组或单元格数组str,则软件将输出层的类设置为分类(str, str)

数据类型:字符|分类|字符串|细胞

类权重,指定为“没有”或者作为实标量的向量。向量的元素对应于中的类.如果你指定ClassWeights,那么你必须指定

当训练数据中存在代表性不足的类时,使用类加权来平衡类。

此属性是只读的。

层的输出大小。取值为“汽车”,并在训练时指定为数值。

此属性是只读的。

用于训练的损失函数,指定为“crossentropyex”

层名,指定为字符向量或字符串标量。为数组输入时,trainNetworkassembleNetworklayerGraph,dlnetwork函数自动为具有该名称的层分配名称

数据类型:字符|字符串

此属性是只读的。

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

数据类型:

此属性是只读的。

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

数据类型:细胞

例子

全部折叠

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

图层= [imageInputLayer([32 32 3])卷积2dlayer (3,16,“步”,2,“填充”,1) relullayer转置conv2dlayer (3,1,“步”,2,“种植”,1) softmaxLayer pixelClassificationLayer
2 "二维卷积16个3x3卷积,带步幅[2 2]和填充[1 1 1 1 1 1]3 " ReLU ReLU 4 "二维转置卷积1个3x3转置卷积,带步幅[2 2]和裁剪[1 1 1 1 1 1]5 " Softmax Softmax 6 "像素分类层交叉熵损失

当某些类在训练数据中代表性不足时,使用逆类频率加权来平衡类。首先,使用pixelLabelDatastore计算训练数据上的类频率。然后,在pixelClassificationLayer中设置“ClassWeights”为计算出的逆类频率。

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

dataDir = fullfile(toolboxdir(“愿景”),“visiondata”);imDir = fullfile(dataDir,“建筑”);pxDir = fullfile(dataDir,“buildingPixelLabels”);

创建一个像素标签图像数据存储使用地面真相图像洛桑国际管理发展学院像素标记的图像pxds

imds = imageDatastore(imDir);classNames = [“天空”“草”“建筑”“人行道”];pixelLabelID = [1 2 3 4];pxds = pixelLabelDatastore(pxDir,classNames,pixelLabelID);

表类分布在数据集。

tbl = countEachLabel(pxds)
台=4×3表名字PixelCount ImagePixelCount  ____________ __________ _______________ {' 天空}3.1485 1.536 e + e + 05 06{‘草’}1.5979 1.536 e + e + 05 06{“建筑”}1.0312 e + 06 1.536 e + 06{“人行道”}25313 9.216 e + 05

计算逆频率类权重。

totalNumberOfPixels = sum(tbl.PixelCount);频率= tbl。PixelCount / totalNumberOfPixels;inverseFrequency = 1./频率
inverseFrequency =4×14.8632 9.5827 1.4848 60.4900

将'ClassWeights'设置为逆类频率。

层= pixelClassificationLayer(...“类”资源描述。的名字,“ClassWeights”inverseFrequency)
层= PixelClassificationLayer与属性:名称:“类:[天空草建筑人行道]ClassWeights: [4x1 double] OutputSize: 'auto'超参数LossFunction: 'crossentropyex'

扩展功能

C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。

版本历史

在R2017b中引入

另请参阅

对象

功能

Baidu
map