このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
evaluateSemanticSegmentation
グラウンド トゥルースに対してセマンティック セグメンテーション データ セットを評価する
構文
説明
は、さまざまなメトリクスを計算し、セグメンテーション クラス ssm
= evaluateSemanticSegmentation(imageSetConfusion
,classNames
)classNames
をもつ混同行列 imageSetConfusion
からのセマンティック セグメンテーションの結果の品質を評価します。
[
は、さまざまなメトリクスを計算し、クラス ssm
,blockMetrics
] = evaluateSemanticSegmentation(blockSetConfusion
,classNames
)classNames
をもつ混同行列 blockSetConfusion
からのブロックベース セマンティック セグメンテーションの結果の品質を評価します。
[___] = evaluateSemanticSegmentation(___,
は、評価を制御するために、Name,Value
)Name,Value
の引数のペアを 1 つ以上使用してセマンティック セグメンテーション メトリクスを計算します。
例
セマンティック セグメンテーションの結果の評価
triangleImages
データセットには、グラウンド トゥルース ラベルの付いた 100 個のテスト イメージがあります。データセットの場所を定義します。
dataSetDir = fullfile(toolboxdir('vision'),'visiondata','triangleImages');
テスト イメージの場所を定義します。
testImagesDir = fullfile(dataSetDir,'testImages');
グラウンド トゥルース ラベルの場所を定義します。
testLabelsDir = fullfile(dataSetDir,'testLabels');
テスト イメージを保持する imageDatastore を作成します。
imds = imageDatastore(testImagesDir);
クラス名と関連するラベル ID を定義します。
classNames = ["triangle","background"]; labelIDs = [255 0];
テスト イメージのグラウンド トゥルース ピクセル ラベルを保持する pixelLabelDatastore を作成します。
pxdsTruth = pixelLabelDatastore(testLabelsDir,classNames,labelIDs);
triangleImages
の学習イメージで学習させられたセマンティック セグメンテーション ネットワークを読み込みます。
net = load('triangleSegmentationNetwork');
net = net.net;
テスト イメージでネットワークを実行します。予測されたラベルは、一時ディレクトリのディスクに書き込まれ、pixelLabelDatastore として返されます。
pxdsResults = semanticseg(imds,net,"WriteLocation",tempdir);
Running semantic segmentation network ------------------------------------- * Processed 100 images.
グラウンド トゥルースに対して予測結果を評価します。
metrics = evaluateSemanticSegmentation(pxdsResults,pxdsTruth);
Evaluating semantic segmentation results ---------------------------------------- * Selected metrics: global accuracy, class accuracy, IoU, weighted IoU, BF score. * Processed 100 images. * Finalizing... Done. * Data set metrics: GlobalAccuracy MeanAccuracy MeanIoU WeightedIoU MeanBFScore ______________ ____________ _______ ___________ ___________ 0.90624 0.95085 0.61588 0.87529 0.40652
semanticSegmentationMetrics
オブジェクトのプロパティを表示します。
metrics
metrics = semanticSegmentationMetrics with properties: ConfusionMatrix: [2x2 table] NormalizedConfusionMatrix: [2x2 table] DataSetMetrics: [1x5 table] ClassMetrics: [2x3 table] ImageMetrics: [100x5 table]
各クラスの分類の精度、Intersection over Union、および境界 F-1 スコアを表示します。これらの値は ClassMetrics
プロパティに保存されています。
metrics.ClassMetrics
ans=2×3 table
Accuracy IoU MeanBFScore
________ _______ ___________
triangle 1 0.33005 0.028664
background 0.9017 0.9017 0.78438
NormalizedConfusionMatrix
プロパティに保存されている正規化された混同行列を表示します。
metrics.ConfusionMatrix
ans=2×2 table
triangle background
________ __________
triangle 4730 0
background 9601 88069
入力引数
dsResults
— 予測されたピクセル ラベル
データストア | PixelLabelDatastore
オブジェクト | PixelLabelImageDatastore
| データストア オブジェクトの cell 配列
セマンティック セグメンテーションの結果として得られる予測されたピクセル ラベル。データストア、またはデータストア オブジェクトの cell 配列として指定します。dsResults
には、PixelLabelDatastore
や pixelLabelImageDatastore
など、categorical イメージを返す任意のデータストアを指定できます。read
(dsResults
) は categorical 配列、cell 配列または table を返さなければなりません。関数 read
が複数列の cell 配列または table を返す場合、2 番目の列には categorical 配列が含まれていなければなりません。
dsTruth
— グラウンド トゥルース ピクセル ラベル
PixelLabelDatastore
オブジェクト | PixelLabelDatastore
オブジェクトの cell 配列
グラウンド トゥルース ピクセル ラベル。データストア、またはデータストア オブジェクトの cell 配列として指定します。dsResults
には、PixelLabelDatastore
や pixelLabelImageDatastore
など、categorical イメージを返す任意のデータストアを指定できます。read
(dsTruth
) を使用した場合は、categorical 配列、cell 配列または table が返されなければなりません。関数 read
が複数列の cell 配列または table を返す場合、2 番目の列には categorical 配列が含まれていなければなりません。
imageSetConfusion
— セグメント化されたイメージの混同行列
table | cell 配列
セグメント化されたイメージのクラスの混同行列。次のいずれかとして指定します。ここで、F はデータ セット内のイメージの数です。
F 行で、
ConfusionMatrix
という名前の 1 つの変数をもつ table。table の各行には、対応するイメージの混同行列をもつ cell 配列が含まれます。F 行 1 列の cell 配列。cell 配列の各要素には、対応するイメージの混同行列が含まれます。
blockSetConfusion
— セグメント化されたブロックの混同行列
table
セグメント化されたブロックの混同行列。B 行 3 列の table として指定します。ここで、B はデータ セット内のすべてのイメージにおけるブロックの総数です。3 列は、変数 ImageNumber
、ConfusionMatrix
、および BlockInfo
です。ブロックベースの関数 apply
の呼び出しで関数 segmentationConfusionMatrix
を使用すると、正しい形式の table を取得できます。例については、ブロックベースのワークフローにおけるセグメンテーション メトリクスの計算を参照してください。
classNames
— クラス名
string の配列 | 文字ベクトルの cell 配列
クラス名。string の配列、または文字ベクトルの cell 配列として指定します。
例: ["sky" "grass" "building" "sidewalk"]
名前と値の引数
例: metrics = evaluateSemanticSegmentation(pxdsResults,pxdsTruth,'Metrics',"bfscore")
は、各クラス、各イメージ、およびデータセット全体の平均 BF スコアのみを計算します。
オプションの引数 Name,Value
のコンマ区切りペアを指定します。Name
は引数名で、Value
は対応する値です。Name
は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN
のように、複数の名前と値のペアの引数を、任意の順番で指定できます。
Metrics
— セグメンテーション メトリクス
"all"
(既定値) | string のベクトル
計算する semanticSegmentationMetrics
のセグメンテーション メトリクス。'Metrics'
と string のベクトルで構成されるコンマ区切りのペアで指定します。この引数は、DataSetMetrics
、ClassMetrics
、および ImageMetrics
table のどの変数を計算するかを指定します。ConfusionMatrix
および NormalizedConfusionMatrix
は、'Metric'
の値に関係なく計算されます。
値 | 説明 | 集計データセット メトリクス | イメージ メトリクス | クラス メトリクス |
---|---|---|---|---|
"all" | すべてのセマンティック セグメンテーション メトリクスを評価します。 関数への入力として混同行列 ( | すべての集計データセット メトリクス | すべてのイメージ メトリクス | すべてのクラス メトリクス |
"accuracy" | 精度は、各クラスに正しく識別されたピクセルの割合を示します。各クラスがどの程度正しくピクセルを識別するかを知る必要がある場合は、精度メトリクスを使用します。
クラス精度は、グローバル精度に似た簡単なメトリクスですが、誤解を招く可能性があります。たとえば、すべてのピクセルに "自動車" のラベルを付けると、"自動車" クラスに対して完全なスコアが与えられます (ただし、他のクラスのスコアは完全ではありません)。セグメンテーション結果をより完全に評価するには、クラス精度を IoU と合わせて使用します。 | MeanAccuracy | MeanAccuracy | Accuracy |
"bfscore" | Boundary F1 (BF) の輪郭マッチング スコアは、各クラスの予測境界が真の境界にどの程度一致しているかを示します。IoU メトリクスよりも人間の定性評価との相関性が高い傾向のあるメトリクスが必要な場合は、BF スコアを使用します。
詳細については、 関数への入力として混同行列 ( | MeanBFScore | MeanBFScore | MeanBFScore |
"global-accuracy" |
| GlobalAccuracy | GlobalAccuracy | なし |
"iou" | Intersection over Union (IoU、別名: Jaccard 類似度係数) は、最も一般的に使用されるメトリクスです。偽陽性にペナルティを課す統計的な精度測定値が必要な場合は、IoU メトリクスを使用します。
詳細については、 | MeanIoU | MeanIoU | IoU |
"weighted-iou" | そのクラスに含まれるピクセル数によって重み付けされた、各クラスの平均 IoU。イメージに不釣り合いなサイズのクラスがある場合、このメトリクスを使用して、集計画質スコアへの小さいクラスの誤差の影響を低減します。 | WeightedIoU | WeightedIoU | なし |
例: metrics = evaluateSemanticSegmentation(pxdsResults,pxdsTruth,'Metrics',["global-accuracy","iou"])
は、データセット、イメージ、およびクラスのグローバル精度と IoU メトリクスを計算します。
データ型: string
Verbose
— 評価の進行状況を表示するフラグ
1
(既定値) | 0
コマンド ウィンドウに評価の進行状況の情報を表示するかどうかのフラグ。'Verbose'
と、1
(true
) または 0
(false
) のいずれかで構成されるコンマ区切りのペアとして指定します。
表示される情報には、進行状況バー、経過時間、推定の残り時間、およびデータセット メトリクスが含まれます。
例: metrics = evaluateSemanticSegmentation(pxdsResults, pxdsTruth,'Verbose',0)
は、進行状況情報を表示せずに、セグメンテーション メトリクスを計算します。
データ型: logical
出力引数
ssm
— セマンティック セグメンテーション メトリクス
semanticSegmentationMetrics
オブジェクト
セマンティック セグメンテーション メトリクス。semanticSegmentationMetrics
オブジェクトとして返されます。
blockMetrics
— ブロックベースのセマンティック セグメンテーション メトリクス
F 行 1 列の cell 配列
ブロックベースのセマンティック セグメンテーション メトリクス。F 行 1 列の cell 配列として返されます。ここで、F は、データ セットのイメージの数です。cell 配列の各要素には、対応するイメージのすべてのブロックについて計算したすべてのメトリクスの情報が含まれます。これらは、table として書式化されます。
各 table は K(f) 行です。ここで、K(f) はデータ セットの f 番目のイメージにおけるブロックの数です。table には最大 5 つの変数があります。
table には常に変数
BlockInfo
が含まれています。この変数のこの table データは、ブロックに関する空間情報を提供する struct です。struct の 4 つのフィールドは、BlockStartWorld
、BlockEndWorld
、DataStartWorld
、およびDataEndWorld
です。これらのフィールドの詳細については、関数apply
の名前と値のペアの引数 IncludeBlockInfo を参照してください。table には、出力引数
ssm
の DataSetMetrics プロパティのメトリクスが含まれています。既定では、メトリクスはGlobalAccuracy
、MeanAccuracy
、MeanIoU
、およびWeightedIoU
です。ただし、ssm
を作成し、Metrics
の名前と値のペアの引数を使用して計算するメトリクスのサブセットを指定する場合、table には指定したメトリクスのみが含まれます。
参照
[1] Csurka, G., D. Larlus, and F. Perronnin. "What is a good evaluation measure for semantic segmentation?" Proceedings of the British Machine Vision Conference, 2013, pp. 32.1–32.11.
拡張機能
自動並列サポート
Parallel Computing Toolbox™ を使用して自動的に並列計算を実行することで、コードを高速化します。
並列実行するには、
'UseParallel'
をtrue
に設定するか、Computer Vision Toolbox™ の基本設定を使用して既定でこれを有効にします。詳細については、Parallel Computing Toolbox のサポートを参照してください。
並列処理は、入力データストアが
pixelLabelDatastore
またはpixelLabelImageDatastore
である場合にのみサポートされます。
バージョン履歴
参考
関数
semanticseg
|plotconfusion
(Deep Learning Toolbox) |jaccard
|bfscore
|segmentationConfusionMatrix
オブジェクト
トピック
- ブロックベースのワークフローにおけるセグメンテーション メトリクスの計算
- 深層学習を使用したセマンティック セグメンテーション入門
- MATLAB による深層学習 (Deep Learning Toolbox)
- 深層学習用のデータストア (Deep Learning Toolbox)
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)