Main Content

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

countEachLabel

各クラスのピクセル ラベル数をカウント

    説明

    counts = countEachLabel(bimds) は、ブロック化イメージ データストア bimds のすべてのブロックにおける各ピクセル ラベルの出現数をカウントします。

    counts = countEachLabel(___,Name,Value) は追加パラメーターを指定します。

    bimds が categorical データを含む場合、countEachLabel は、最初のブロック化されたイメージの InitialValue プロパティに指定されているカテゴリからクラス名を取得します。この場合、'Classes' パラメーターおよび 'PixelLabelIDs' パラメーターの値は指定しないでください。bimds が数値データを含む場合は 'Classes' パラメーターおよび 'PixelLabelIDs' パラメーターの値を指定しなければなりません。

    すべて折りたたむ

    サンプル ラベル イメージからブロック化されたイメージを作成します。

    label_bim = blockedImage('yellowlily-segmented.png', 'BlockSize', [512 512]);

    ブロック化されたイメージからブロック化イメージ データストアを作成します。

    lbimds = blockedImageDatastore(label_bim);

    ブロック化イメージ データストアに含まれるラベルの数をカウントします。ラベル 0 および 3 はいずれも 'Background' にマッピングされます。

    countEachLabel(lbimds, ...
          "Classes", ["Background", "Flower", "Leaf", "Background"],...
          "PixelLabelIDs", [0, 1, 2, 3])
    ans=3×3 table
            Name        PixelCount    BlockPixelCount
        ____________    __________    _______________
    
        "Background"    2.3706e+06      3.1457e+06   
        "Flower"        4.3349e+05      1.5729e+06   
        "Leaf"          3.4159e+05      2.0972e+06   
    
    

    入力引数

    すべて折りたたむ

    ブロック化イメージ データストア。blockedImageDatastore オブジェクトとして指定します。

    名前と値のペアの引数

    オプションの引数 Name,Value のコンマ区切りペアを指定します。Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を、任意の順番で指定できます。

    例: countEachLabel(lbimds, ... "Classes",["Background","Flower","Leaf","Background"],... "PixelLabelIDs",[0,1,2,3])

    クラス名。string 配列または char ベクトルの cell 配列として指定します。

    例: "Classes",["Background","Flower","Leaf"]

    データ型: char | string | cell

    各ラベルの値。'Classes' と同じ長さの数値配列として指定します。このパラメーターにより、数値がラベル クラスにマッピングされます。

    例: "PixelLabelIDs",[0,1,2,3]

    データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

    新規または既存の並列プールの使用。logical スカラーの true または false で指定します。アクティブな並列プールがない場合、countEachLabel は既定の並列設定に基づき、新しいプールを開きます。この構文には Parallel Computing Toolbox™ が必要です。

    データ型: logical

    出力引数

    すべて折りたたむ

    ブロック化イメージ データストアのすべてのブロックにおける各ピクセル ラベルの出現数をカウント。3 つの変数を含むテーブルとして返されます。

    ピクセル数の変数説明
    Nameピクセル ラベルのクラス名
    PixelCountすべてのブロックにおける所定のクラスのピクセル数
    ImagePixelCount所定のクラスのインスタンスをもつブロックに含まれている合計ピクセル数

    ヒント

    countEachLabel によって返されたラベル情報を使用して、クラス バランス調整のために、クラスの重み付けを計算できます。たとえば、tbl に含まれる、ラベル付けされたピクセル データ情報の場合、次のようになります。

    • 一様なクラス バランス調整は、それぞれの事前確率が一様になるよう、各クラスに重み付けをします。

      numClasses = height(tbl)
      prior = 1/numClasses;
      classWeights = prior./tbl.PixelCount

    • 逆頻度バランス調整は、少数しか存在しないクラスの重みが大きくなるよう、各クラスに重み付けをします。

      totalNumberOfPixels = sum(tbl.PixelCount)
      frequency = tbl.PixelCount / totalNumberOfPixels;
      classWeights = 1./frequency

    • 中央頻度バランス調整は、中央頻度を使用して、各クラスに重み付けをします。各クラス c の重みは median(imageFreq)/imageBlockFreq(c) と定義されます。ここで、 imageBlockFreq(c) は、所定のクラスのピクセル数を、所定のクラス c のインスタンスをもつイメージ ブロックに含まれている合計ピクセル数で割ったものです。

      imageBlockFreq = tbl.PixelCount ./ tbl.BlockPixelCount
      classWeights = median(imageBlockFreq) ./ imageBlockFreq
      

    計算されたクラスの重みは pixelClassificationLayer (Computer Vision Toolbox) に渡せます。

    参考

    | | (Computer Vision Toolbox)

    R2021a で導入