主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

pixelClassificationLayer

セマンティックセグメンテーションのピクセル分類層の作成

説明

ピクセル分類層は,各イメージピクセルまたはボクセルのカテゴリカルラベルを提供します。

作成

説明

= pixelClassificationLayerは,セマンティックイメージセグメンテーションネットワークのピクセル分類出力層を作成します。この層は,CNNによって処理される各イメージピクセルまたはボクセルのカテゴリカルラベルを出力します。学習中,層は未定義のピクセルのラベルを自動的に無視します。

= pixelClassificationLayer(名称,值)は,名前と値のペアを使用してオプションのClassWeights,および的名字プロパティを设定するために,名前と値のペアの引数を使用してピクセル分类出力层を返します。复数の名前と値のペアを指定できます。各プロパティ名を引用符で囲みます。

たとえば,pixelClassificationLayer( '姓名', 'pixclass')は,“pixclass”という名前のピクセル分类层を作成します。

プロパティ

すべて展开する

出力層のクラス。直言ベクトル,弦配列,文字ベクトルの细胞配列,または“汽车”として指定します。“汽车”の場合,学習時にクラスが自動的に設定されます。字符串配列または文字ベクトルの cell 配列strを指定すると,出力層のクラスが分类(str, str)に設定されます。既定値は“汽车”です。

データ型:字符|分类|字符串|细胞

クラスの重み。“没有”または実数スカラーのベクトルで指定します。ベクトルの要素はのクラスに対応します。ClassWeightsを指定する场合,を指定しなければなりません。

少数しか存在しないクラスが学習データに含まれる場合,クラスの重み付けを使用して,クラスのバランスを調整します。

このプロパティは読み取り専用です。

层の出力サイズ。学习前の値は“汽车”で,学習時の値は数値で指定します。

このプロパティは読み取り専用です。

学习に使用する损失关数。“crossentropyex”で指定します。

層の名前。文字ベクトルまたは字符串スカラーとして指定します。層グラフに層を含めるには,空ではない一意の層の名前を指定しなければなりません。この層が含まれる系列ネットワークに学習させて的名字に設定すると,学習時に層に名前が自動的に割り当てられます。

データ型:字符|字符串

層の入力の数。この層は単一の入力のみを受け入れます。

データ型:

層の入力名。この層は単一の入力のみを受け入れます。

データ型:细胞

すべて折りたたむ

入力イメージ内のすべてのピクセルのカテゴリカルラベルを予测します。

层= [imageInputLayer([32 32 3])convolution2dLayer(3,16,“步”,2,“填充”, 1) reluLayer transposedConv2dLayer(3、1“步”,2,“种植”,1) softmaxLayer pixelClassificationLayer
图层数组:1”的形象输入32 x32x3图像zerocenter正常化2”卷积16 3 x3的隆起与步幅[2 2]和填充[1 1 1 1]3”ReLU ReLU 4”转置1 3 x3转置运算和卷积大步[2 2]和裁剪[1 1 1 1]5”Softmax Softmax 6”像素分类层叉损失

一部のクラスが学习データに少数しか存在しない场合,逆クラス频度重み付けを使用して,クラスのバランスを调整します。最初に,pixelLabelImageDatastoreを使用して学习データ全体のクラスの频度をカウントします。次に,pixelClassificationLayerの 'ClassWeights' を,计算された逆クラス频度に设定します。

イメージとピクセルラベルデータの位置を设定します。

DATADIR =完整文件(toolboxdir(“愿景”),“visiondata”);imDir = fullfile (dataDir,“建筑”);pxDir = fullfile (dataDir,“buildingPixelLabels”);

洛桑国际管理发展学院のグラウンドトゥルースイメージとpxdsのピクセルラベル付きイメージを使用して,ピクセルラベルイメージデータストアを作成します。

imd = imageDatastore (imDir);一会= [“天空”“草”“建筑”“人行道”];pixelLabelID = [1 2 3 4];一会,pxds = pixelLabelDatastore (pxDir pixelLabelID);pxds pximds = pixelLabelImageDatastore (imd);

データセット内のクラスの分布を表にします。

TBL = countEachLabel(pximds)
台=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 =总和(tbl.PixelCount);频率= tbl.PixelCount / totalNumberOfPixels;inverseFrequency = 1./frequency
inverseFrequency =4×14.8632 9.5827 1.4848 60.4900

“ClassWeights”を逆クラス頻度に設定します。

层= pixelClassificationLayer (...“类”,tbl.Name,“ClassWeights”inverseFrequency)
class = PixelClassificationLayer with properties: Name: " class: [sky grass building sidewalk] ClassWeights: [4x1 double] OutputSize: 'auto' Hyperparameters LossFunction: 'crossentropyex'

拡张机能

R2017bで导入