Image Analyst ライセンスで利用できます。
概要
[ディープ ラーニングを使用したオブジェクトの検出 (Detect Objects Using Deep Learning)] ツールから検出されたオブジェクトをグラウンド トゥルース データと比較することで、ディープ ラーニング モデルの精度を計算します。
使用法
このツールは、[ディープ ラーニングを使用したオブジェクトの検出 (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 は、予測されたオブジェクトの周囲の境界四角形と地上参照データの周囲の境界四角形との間のオーバーラップの量を表します。
予測された境界四角形と地上参照境界四角形の交差面積
予測された境界四角形と地上参照境界四角形を結合した総面積
構文
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 |
コードのサンプル
この例では、指定した最小 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")
この例では、指定した最小 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)
ライセンス情報
- Basic: 次のものが必要 Image Analyst
- Standard: 次のものが必要 Image Analyst
- Advanced: 次のものが必要 Image Analyst