オブジェクト検出精度の計算 (Compute Accuracy For Object Detection) (Image Analyst)

Image Analyst ライセンスで利用できます。

サマリー

[ディープ ラーニングを使用したオブジェクトの検出 (Detect Objects Using Deep Learning)] ツールから検出されたオブジェクトをグラウンド トゥルース データと比較することで、ディープ ラーニング モデルの精度を計算します。

オブジェクト検出精度の計算 (Compute Accuracy For Object Detection) の詳細

使用法

  • このツールは、[ディープ ラーニングを使用したオブジェクトの検出 (Detect Objects Using Deep Learning)] ツールの出力の精度に関する情報を含むテーブルを生成します。

    このテーブルには、検出されたデータの各クラスの精度メトリクスと、すべてのクラスの行 (全体的な精度) が含まれています。 テーブルには、次のフィールドが含まれます。

    • Precision- 予測の総数に対する真陽性の数の比率。
    • Recall- 陽性の予測値の総数に対する真陽性の数の比率。
    • F1_Score- Precision と Recall の加重平均。 値の範囲は 0 ~ 1 で、1 は精度が最も高いことを意味します。
    • AP- AP (Average Precision) 指標。指定した IoU (Intersection over Union) 値における 0 ~ 1 の間のすべての Recall 値における Precision の平均値を表します。
    • True_Positive- モデルが生成した真陽性の数。
    • False_Positive- モデルが生成した偽陽性の数。
    • False_Negative- モデルが生成した偽陰性の数。

    出力テーブルおよび精度レポートに表示される指標の詳細については、「オブジェクト検出精度の計算 (Compute Accuracy For Object Detection) の詳細」をご参照ください。

  • 入力地上参照データには、ポリゴンが含まれている必要があります。 オブジェクトの位置を示すポイントまたはライン データがある場合は、このツールを実行する前に [バッファー (Buffer)] ツールを使用してポリゴン フィーチャクラスを生成します。

  • IoU (Intersection over Union) 比率は、予測された結果が真陽性か偽陽性かを判断する閾値として使用されます。 IoU 比率は、予測されたオブジェクトの周囲の境界四角形と地上参照データの周囲の境界四角形との間のオーバーラップの量を表します。

    IoU 比率は、境界四角形 (1) のオーバラップを境界四角形の結合 (2) で割った値と等しくなります。

    1

    予測された境界四角形と地上参照境界四角形の交差面積

    2

    予測された境界四角形と地上参照境界四角形を結合した総面積

パラメーター

ラベル説明データ タイプ
検出されたフィーチャ

[ディープ ラーニングを使用したオブジェクトの検出 (Detect Objects Using Deep Learning)] で検出されたオブジェクトを含むポリゴン フィーチャクラス。

Feature Class; Feature Layer
グラウンド トゥルース フィーチャ

グラウンド トゥルース データを含むポリゴン フィーチャクラス。

Feature Class; Feature Layer
出力精度テーブル

出力精度テーブル。

Table
出力精度レポート
(オプション)

出力精度レポートの名前。 レポートは、精度メトリクスとチャートを含む PDF ドキュメントです。

File
検出されたクラス値フィールド
(オプション)

検出されたオブジェクト フィーチャクラスのフィールドで、クラス値またはクラス名が含まれています。

フィールド名が指定されていない場合、Classvalue または Value フィールドが使用されます。 これらのフィールドが存在しない場合、すべてのレコードが 1 つのクラスに属するものとして識別されます。

クラス値またはクラス名は、地上参照フィーチャクラスの値と正確に一致している必要があります。

Field
グラウンド トゥルース クラス値フィールド
(オプション)

クラス値を含むグラウンド トゥルース フィーチャクラスのフィールド。

フィールド名が指定されていない場合、Classvalue または Value フィールドが使用されます。 これらのフィールドが存在しない場合、すべてのレコードが 1 つのクラスに属するものとして識別されます。

クラス値またはクラス名は、検出されたオブジェクト フィーチャクラス内のクラス値またはクラス名と正確に一致している必要があります。

Field
最小 IoU (Intersection Over Union)
(オプション)

オブジェクト検出モデルの精度を評価する閾値として使用する IoU 比率。 分子は、予測された境界四角形と地上参照境界四角形との間のオーバーラップの面積です。 分母は、和集合 (両方の境界四角形で囲まれた面積) です。 IoU の範囲は 0 ~ 1 です。

Double
マスク フィーチャ
(オプション)

精度が計算される領域を描画するポリゴン フィーチャクラス。 マスクと交差するフィーチャのみが精度評価の対象になります。

Feature Class; Feature Layer

ComputeAccuracyForObjectDetection(detected_features, ground_truth_features, out_accuracy_table, {out_accuracy_report}, {detected_class_value_field}, {ground_truth_class_value_field}, {min_iou}, {mask_features})
名前説明データ タイプ
detected_features

[ディープ ラーニングを使用したオブジェクトの検出 (Detect Objects Using Deep Learning)] で検出されたオブジェクトを含むポリゴン フィーチャクラス。

Feature Class; Feature Layer
ground_truth_features

グラウンド トゥルース データを含むポリゴン フィーチャクラス。

Feature Class; Feature Layer
out_accuracy_table

出力精度テーブル。

Table
out_accuracy_report
(オプション)

出力精度レポートの名前。 レポートは、精度メトリクスとチャートを含む PDF ドキュメントです。

File
detected_class_value_field
(オプション)

検出されたオブジェクト フィーチャクラスのフィールドで、クラス値またはクラス名が含まれています。

フィールド名が指定されていない場合、Classvalue または Value フィールドが使用されます。 これらのフィールドが存在しない場合、すべてのレコードが 1 つのクラスに属するものとして識別されます。

クラス値またはクラス名は、地上参照フィーチャクラスの値と正確に一致している必要があります。

Field
ground_truth_class_value_field
(オプション)

クラス値を含むグラウンド トゥルース フィーチャクラスのフィールド。

フィールド名が指定されていない場合、Classvalue または Value フィールドが使用されます。 これらのフィールドが存在しない場合、すべてのレコードが 1 つのクラスに属するものとして識別されます。

クラス値またはクラス名は、検出されたオブジェクト フィーチャクラス内のクラス値またはクラス名と正確に一致している必要があります。

Field
min_iou
(オプション)

オブジェクト検出モデルの精度を評価する閾値として使用する IoU 比率。 分子は、予測された境界四角形と地上参照境界四角形との間のオーバーラップの面積です。 分母は、和集合 (両方の境界四角形で囲まれた面積) です。 IoU の範囲は 0 ~ 1 です。

Double
mask_features
(オプション)

精度が計算される領域を描画するポリゴン フィーチャクラス。 マスクと交差するフィーチャのみが精度評価の対象になります。

Feature Class; Feature Layer

コードのサンプル

ComputeAccuracyForObjectDetection (オブジェクト検出精度の計算) の例 1 (Python ウィンドウ)

この例では、指定した最小 IoU 値の精度テーブルが生成されます。

# Import system modules
import arcpy
from arcpy.ia import *

# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")

# Execute 
ComputeAccuracyForObjectDetection(
	"C:/DeepLearning/Data.gdb/detectedFeatures", 
	"C:/DeepLearning/Data.gdb/groundTruth", 
	"C:/DeepLearning/Data.gdb/accuracyTable", 
	"E:/DeepLearning/accuracyReport.pdf", "Class", 
	"Class", 0.5, " C:/DeepLearning/Data.gdb/AOI")
ComputeAccuracyForObjectDetection (オブジェクト検出精度の計算) の例 2 (スタンドアロン スクリプト)

この例では、指定した最小 IoU 値の精度テーブルが生成されます。

# Import system modules
import arcpy
from arcpy.ia import *

# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")

# Set local variables 
detected_features = "C:/DeepLearning/Data.gdb/detectedFeatures" 
ground_truth_features = "C:/DeepLearning/Data.gdb/groundTruth" 
out_accuracy_table = "C:/DeepLearning/Data.gdb/accuracyTable" 
out_accuracy_report = "C:/DeepLearning/accuracyReport.pdf" 
detected_class_value_field = "Class" 
ground_truth_class_value_field = "Class" 
min_iou = 0.5 
mask_features = "C:/DeepLearning/Data.gdb/AOI" 

# Execute 
ComputeAccuracyForObjectDetection(detected_features, 
	ground_truth_features, out_accuracy_table, 
	out_accuracy_report, detected_class_value_field, 
	ground_truth_class_value_field, min_iou, mask_features)