计算对象检测的精度 (影像分析)

获得 Image Analyst 许可后可用。

摘要

通过对深度学习检测对象使用工具检测到的对象和实际地表数据进行比较来计算深度学习模型的精度。

了解有关计算对象检测的精度工作原理的详细信息。

使用情况

  • 该工具将生成一个表格,其中包含有关使用深度学习检测对象工具的输出精度的信息。

    该表将包含检测数据中每个类的精度指标,以及针对所有类的一行(总体精度)。 表中将包含以下字段:

    • Precision- 真正数与预测总数之比。
    • Recall- 真正数与正预测总数之比。
    • F1_Score- 精度和召回率的加权平均值。 值的范围从 0 到 1,其中 1 表示最高精度。
    • AP- 平均精度 (AP) 指标,即在给定交并比 (IoU) 值处,介于 0 到 1 之间的所有召回率值的平均精度。
    • True_Positive- 被模型预测为正的正样本数。
    • False_Positive- 被模型预测为正的负样本数。
    • False_Negative- 被模型预测为负的正样本数。

    有关输出表和精度报表中提供的指标的详细信息,请参阅“计算对象检测的精度”工作原理

  • 输入地面参考数据必须包含面。 如果存在指示对象位置的点或线数据,则在运行此工具之前,请使用缓冲工具生成面要素类。

  • 交并比 (IoU) 用作确定预测结果为真正还是假正的阈值。 IoU 比率是预测对象周围的边界框与地面参考数据周围的边界框之间的重叠量。

    IoU 比率是边界框 (1) 在边界框并集 (2) 上的重叠量。

    1

    预测边界框与地面参考边界框的相交区域

    2

    组合的预测边界框和地面参考边界框的总面积

参数

标注说明数据类型
检测的要素

面要素类,其中包含使用深度学习检测对象工具检测的对象。

Feature Class; Feature Layer
实际地表要素

包含实际地表数据的面要素类。

Feature Class; Feature Layer
输出精度表

输出精度表。

Table
输出精度报表
(可选)

输出精度报表的名称。 该报表是包含精度指标和图表的 PDF 文档。

File
检测到的类值字段
(可选)

检测到的对象要素类中的字段,包含类值或类名称。

如果未指定字段名称,则将使用 ClassvalueValue 字段。 如果这些字段不存在,则会将所有记录标识为属于一个类。

类值或类名称必须与地面参考要素类中的类值或类名称完全匹配。

Field
实际地表类值字段
(可选)

实际地表要素中的字段,包含类值。

如果未指定字段名称,则将使用 ClassvalueValue 字段。 如果这些字段不存在,则会将所有记录标识为属于一个类。

类值或类名称必须与检测到的对象要素类中的类值或类名称完全匹配。

Field
最小交并比 (IoU)
(可选)

用作阈值的 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

面要素类,其中包含使用深度学习检测对象工具检测的对象。

Feature Class; Feature Layer
ground_truth_features

包含实际地表数据的面要素类。

Feature Class; Feature Layer
out_accuracy_table

输出精度表。

Table
out_accuracy_report
(可选)

输出精度报表的名称。 该报表是包含精度指标和图表的 PDF 文档。

File
detected_class_value_field
(可选)

检测到的对象要素类中的字段,包含类值或类名称。

如果未指定字段名称,则将使用 ClassvalueValue 字段。 如果这些字段不存在,则会将所有记录标识为属于一个类。

类值或类名称必须与地面参考要素类中的类值或类名称完全匹配。

Field
ground_truth_class_value_field
(可选)

实际地表要素中的字段,包含类值。

如果未指定字段名称,则将使用 ClassvalueValue 字段。 如果这些字段不存在,则会将所有记录标识为属于一个类。

类值或类名称必须与检测到的对象要素类中的类值或类名称完全匹配。

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)