Main Content

dicePixelClassificationLayer

(削除予定) 一般化 Dice 損失を使用したセマンティック セグメンテーションのピクセル分類層の作成

R2019b 以降

DicePixelClassificationLayer オブジェクトは将来のリリースで削除される予定です。関数 trainnet (Deep Learning Toolbox) を使用し、関数 generalizedDice を使用して損失を指定します。詳細については、互換性の考慮事項を参照してください。

説明

Dice ピクセル分類層は、一般化 Dice 損失を使用して、各イメージ ピクセルまたはボクセルのカテゴリカル ラベルを提供します。

この層は、一般化 Dice 損失を使用して、セマンティック セグメンテーションの問題におけるクラスの不平衡の問題を緩和します。一般化 Dice 損失では、期待される領域の逆サイズでクラスを重み付けすることにより、各クラスが損失にもたらす貢献を制御します。

作成

説明

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

layer = dicePixelClassificationLayer(Name,Value) は、オプションの Classes プロパティと Name プロパティを設定するための名前と値の引数を使用して Dice ピクセル分類出力層を返します。複数の名前と値の引数を指定できます。

たとえば、dicePixelClassificationLayer("Name","pixclass") は、"pixclass" という名前の Dice ピクセル分類層を作成します。

プロパティ

すべて展開する

出力層のクラス。categorical ベクトル、string 配列、文字ベクトルの cell 配列、または "auto" として指定します。Classes"auto" の場合、学習時にクラスが自動的に設定されます。string 配列または文字ベクトルの cell 配列 str を指定すると、出力層のクラスが categorical(str,str) に設定されます。

データ型: char | categorical | string | cell

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

層の出力サイズ。学習前の値は 'auto' で、学習時の値は数値で指定します。

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

学習に使用する損失関数。'generalizedDiceLoss' として指定します。

層の名前。文字ベクトルまたは string スカラーとして指定します。Layer 配列入力の場合、関数 trainnet (Deep Learning Toolbox) および関数 dlnetwork (Deep Learning Toolbox) は、名前が "" の層に自動的に名前を割り当てます。

DicePixelClassificationLayer オブジェクトは、このプロパティを文字ベクトルとして格納します。

データ型: char | string

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

層への入力の数。1 として返されます。この層は単一の入力のみを受け入れます。

データ型: double

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

入力名。{'in'} として返されます。この層は単一の入力のみを受け入れます。

データ型: cell

すべて折りたたむ

一般化 Dice 損失関数を使用して、入力イメージ内のすべてのピクセルのカテゴリカル ラベルを予測します。

layers = [
      imageInputLayer([480 640 3])
      convolution2dLayer(3,16,'Stride',2,'Padding',1)
      reluLayer
      transposedConv2dLayer(2,4,'Stride',2)
      softmaxLayer
      dicePixelClassificationLayer
      ]  
layers = 
  6x1 Layer array with layers:

     1   ''   Image Input                       480x640x3 images with 'zerocenter' normalization
     2   ''   2-D Convolution                   16 3x3 convolutions with stride [2  2] and padding [1  1  1  1]
     3   ''   ReLU                              ReLU
     4   ''   2-D Transposed Convolution        4 2x2 transposed convolutions with stride [2  2] and cropping [0  0  0  0]
     5   ''   Softmax                           softmax
     6   ''   Dice Pixel Classification Layer   Generalized Dice loss 

詳細

すべて展開する

参照

[1] Crum, William R., Oscar Camara, and Derek LG Hill. "Generalized overlap measures for evaluation and validation in medical image analysis." IEEE Transactions on Medical Imaging. 25.11, 2006, pp. 1451–1461.

[2] Sudre, Carole H., et al. "Generalised Dice overlap as a deep learning loss function for highly unbalanced segmentations." Deep Learning in Medical Image Analysis and Multimodal Learning for Clinical Decision Support. Springer, Cham, 2017, pp. 240–248.

[3] Milletari, Fausto, Nassir Navab, and Seyed-Ahmad Ahmadi. "V-Net: Fully Convolutional Neural Networks for Volumetric Medical Image Segmentation". Fourth International Conference on 3D Vision (3DV). Stanford, CA, 2016: pp. 565–571.

拡張機能

バージョン履歴

R2019b で導入

すべて折りたたむ

R2024a: dicePixelClassificationLayer は削除予定

dicePixelClassificationLayer オブジェクトは将来のリリースで削除される予定です。コードを更新するには、次の手順に従います。

  • ネットワークを dlnetwork (Deep Learning Toolbox) オブジェクトとして定義します。addLayers (Deep Learning Toolbox)connectLayers (Deep Learning Toolbox) などの関数を使用してネットワークを構築できます。ネットワークに出力層を含めないでください。

  • 関数 generalizedDice を使用するカスタム損失関数を定義します。以下は、Dice ピクセル分類に適したサンプル損失関数です。

    function loss = modelLoss(Y,T)
      z = generalizedDice(Y,T); 
      loss = 1 - mean(z,"all"); 
    end
  • 関数 trainnet (Deep Learning Toolbox) とカスタム損失関数を使用してネットワークに学習させます。たとえば、次のコードは、学習データ images とカスタム損失関数 modelLoss を使用して、dlnetwork ネットワーク net に学習させます。

    netTrained = trainnet(images,net,@modelLoss,options);