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

摘要

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

使用情况

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

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

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

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

    • <基本名称>_ModelStatistics.csv - 此表中列出了每个模型的整体准确率、精确率、召回率和 F1 分数。
    • <基本名称>_ClassCodeStatistics.csv - 此表汇总了每个类代码的准确率、精确率、召回率和 F1 分数。
    • <基本名称>_ConfusionMatrices.csv - 此表汇总了输入模型对参考点云中每个类代码的每个点的分类方式。 除了正确和误报数值外,该表还标识了发生误报的类别。
    • <基本名称>_ConfusionMatrix_<模型编号>.png - 此图像所显示的图表提供了给定模型混淆矩阵的易于阅读的描述。
  • 当使用相对高度属性训练了输入模型时,参考表面参数为必需项。 栅格表面将用作参考高度,可以在其中为每个点插值相对高度。 由此为模型提供附加信息,可用于更加轻松地区分对象。 为此参数提供的栅格表面应表示与创建模型的训练数据中使用的栅格相同类型的数据。 在大多数情况下,将为根据地面分类点创建的栅格。 通过应用地面过滤器并使用 LAS 数据集转栅格工具,可以根据 LAS 数据集中的地面分类点生成栅格表面。 也可以使用点云转栅格工具从点云场景图层生成地表。 也可以使用并非源自输入点云的栅格表面,但必须确保栅格中的 z 值与点云中的 z 值适当地对应。

  • 当使用训练数据中排除的某些类中的点来训练输入模型时,请使用排除类代码参数以确保从该模型评估的点集中忽略这些点。 排除不能为给定模型的目标提供有用背景的类将减少评估的点数,从而提高训练和应用模型的速度。 例如,表示建筑物的点通常与表示诸如交通灯、电线或汽车等对象的点没有相关性。 还可以使用分类 LAS 建筑物工具对建筑点进行可靠分类。 如果在用于创建模型的训练数据中排除表示建筑物的类 6 的点,则输入点云还必须对建筑物点进行分类并将其排除在此工具中。

参数

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

将在评估过程中使用的点云分类模型和批量大小。

Value Table
参考点云

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

LAS Dataset Layer; File
目标文件夹

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

Folder
基本名称

将用于汇总评估结果的每个输出文件的文件名前缀。

String
处理边界
(可选)

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

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

参考点云中的类代码必须与正在评估的模型中的类代码相匹配。 当类代码不匹配时,使用此参数将点云中的不同类代码与正在评估的模型中支持的类相关联。

Value Table
参考表面
(可选)

将用于为点云数据中的每个点提供相对高度值的栅格表面。 与栅格不重叠的点将在分析中忽略。

Raster Layer
排除的类代码
(可选)

将从处理过程中排除的类代码。 可以指定 0 到 255 范围内的任何值。

Long

派生输出

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

存储每个输入模型的每个类代码的混淆矩阵的 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}, {reference_height}, {excluded_class_codes})
名称说明数据类型
in_trained_model
[in_trained_model,...]

将在评估过程中使用的点云分类模型和批量大小。

Value Table
in_point_cloud

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

LAS Dataset Layer; File
target_folder

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

Folder
base_name

将用于汇总评估结果的每个输出文件的文件名前缀。

String
boundary
(可选)

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

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

参考点云中的类代码必须与正在评估的模型中的类代码相匹配。 当类代码不匹配时,使用此参数将点云中的不同类代码与正在评估的模型中支持的类相关联。

Value Table
reference_height
(可选)

将用于为点云数据中的每个点提供相对高度值的栅格表面。 与栅格不重叠的点将在分析中忽略。

Raster Layer
excluded_class_codes
[excluded_class_codes,...]
(可选)

将从处理过程中排除的类代码。 可以指定 0 到 255 范围内的任何值。

Long

派生输出

名称说明数据类型
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]])

相关主题