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

摘要

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

使用情况

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

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

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

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

    • <基本名称>_ModelStatistics.csv - 此表中列出了每个模型的整体准确率、精确率、召回率和 F1 分数。
    • <基本名称>_ClassCodeStatistics.csv - 此表汇总了每个类代码的准确率、精确率、召回率和 F1 分数。
    • <基本名称>_ConfusionMatrices.csv - 此表汇总了输入模型对参考点云中每个类代码的每个点的分类方式。 除了正确和误报数值外,该表还标识了发生误报的类别。
    • <基本名称>_ConfusionMatrix_<模型编号>.png - 此图像所显示的图表提供了给定模型混淆矩阵的易于阅读的描述。
  • 当使用通过参考高度信息训练的分类模型时,参考表面参数是必需的输入。 为此参数提供的栅格用于派生出每个重叠点的相对高度属性。 取每个点的 z 值并减去通过双线性插值法从栅格获得的高度,即可计算属性。 该信息有助于区分与各个类相关联的对象,这些类具有与栅格表面不同的相对高度范围,因此更易于进行区分。 当使用相对高度信息训练模型时,作为分类输入提供的栅格表面应基于相同类型的点。 如果在训练期间用于合并相对高度的栅格基于地面分类点,则为此工具提供相同类型的栅格。 对于表示室外调查的 LAS 数据集,相对高度信息最典型的来源是相同点云中的地面分类点。 通过从图层属性中过滤 LAS 数据集并使用 LAS 数据集转栅格工具,可以从地面分类点生成栅格表面。 如果在 Python 中使用该工具,则可以在创建栅格之前使用创建 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]])

许可信息

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

相关主题