评估点云分类模型 (3D Analyst)

摘要

使用分类良好的点云作为基线来评估一个或多个点云分类模型的质量,从而比较从每个模型获得的分类结果。

使用情况

  • 要获得最好的评估结果,参考点云必须对正在评估的感兴趣对象进行良好分类。

  • 被评估的所有输入模型必须具有相同的分类代码。 如果参考点云没有其值或含义与被评估模型中的类匹配的类代码,请通过点云类重映射参数使用训练模型中的代码来指定参考点云的分类。

  • PointCNN 深度学习架构用于创建点云分类模型。 在处理同一组输入数据时,此架构可能会产生略有不同的结果。 您可以多次指定相同的模型作为输入,以评估来自点云的分类结果的一致性。 有关分类结果可变性潜力的详细信息,请参阅 PointCNN:X 变换点的卷积插值

  • 评估过程将在目标文件夹参数值中创建多个输出文件。 各文件名称将以基本名称参数值中指定的文本开头。

    • <基本名称>_ModelStatistics.csv - 此表中列出了每个模型的整体准确率、精确率、召回率和 F1 分数。
    • <基本名称>_ClassCodeStatistics.csv - 此表汇总了每个类代码的准确率、精确率、召回率和 F1 分数。
    • <基本名称>_ConfusionMatrices.csv - 此表汇总了输入模型对参考点云中每个类代码的每个点的分类方式。 除了正确和误报数值外,该表还标识了发生误报的类别。
    • <基本名称>_ConfusionMatrix_<模型编号>.png - 此图像所显示的图表提供了给定模型混淆矩阵的易于阅读的描述。

参数

标注说明数据类型
输入模型定义

要评估的点云分类模型。 接受输入包括 Esri 模型定义 (.emd) 和深度学习包 (.dlpk) 文件。

File; String
参考点云

将用于评估分类模型的点云。

LAS Dataset Layer; File
目标文件夹

将用于存储汇总评估结果的文件的目录。

Folder
基本名称

将用作每个汇总评估结果文件的前缀的名称。

String
处理边界
(可选)

用于描绘将用于评估分类模型的参考点云部分的面要素。

Feature Layer
点云类重映射
(可选)

来自参考点云的类代码将被重新映射以匹配正在评估的模型中的类代码。

Value Table

派生输出

标注说明数据类型
输出混淆矩阵

存储每个输入模型的每个类代码的混淆矩阵的 CSV 格式表。

Text File
输出模型统计数据

汇总输入模型的整体统计数据的 CSV 格式表。

Text File
输出类代码统计数据

汇总每个输入模型的每个类代码的统计数据的 CSV 格式表。

Text File

arcpy.ddd.EvaluatePointCloudClassificationModel(in_trained_model, in_point_cloud, target_folder, base_name, {boundary}, {class_remap})
名称说明数据类型
in_trained_model
[in_trained_model,...]

要评估的点云分类模型。 接受输入包括 Esri 模型定义 (.emd) 和深度学习包 (.dlpk) 文件。

File; String
in_point_cloud

将用于评估分类模型的点云。

LAS Dataset Layer; File
target_folder

将用于存储汇总评估结果的文件的目录。

Folder
base_name

将用作每个汇总评估结果文件的前缀的名称。

String
boundary
(可选)

用于描绘将用于评估分类模型的参考点云部分的面要素。

Feature Layer
class_remap
[class_remap,...]
(可选)

来自参考点云的类代码将被重新映射以匹配正在评估的模型中的类代码。

Value Table

派生输出

名称说明数据类型
out_confusion_matrices

存储每个输入模型的每个类代码的混淆矩阵的 CSV 格式表。

Text File
out_model_statistics

汇总输入模型的整体统计数据的 CSV 格式表。

Text File
out_class_code_statistics

汇总每个输入模型的每个类代码的统计数据的 CSV 格式表。

Text File

代码示例

EvaluatePointCloudUsingTrainedModel 示例(Python 窗口)

下面的示例演示了如何在 Python 窗口中使用此工具。

import arcpy
arcpy.env.workspace = 'C:/data'
arcpy.ddd.EvaluatePointCloudUsingTrainedModel(
        ['Transmission_Power_Lines.dlpk', 'Distribution_Power_Lines.dlpk'], 
        'Classified_Power_Lines.lasd', 'D:/Evaluate_PointCNN_Models', 
        'Power_Line_Results_', 'test_boundary.shp', [[18, 14], [20, 14]])

许可信息

  • Basic: 需要 3D Analyst
  • Standard: 需要 3D Analyst
  • Advanced: 需要 3D Analyst

相关主题