Оценить модель классификации облака точек (3D Analyst)

Краткая информация

Оценивает качество одной или нескольких моделей классификации облака точек, используя хорошо классифицированное облако точек как основу для оценки результатов классификации, полученных от каждой модели.

Использование

  • Чтобы получить наилучшую оценку результатов, базовое облако точек должно быть хорошо классифицированы для объектов интереса, по которым выполняется оценка.

  • Все оцениваемые входные модели должны иметь одинаковые коды классификации. Если базовое облако точек не содержит кодов классов, чьи значения или определения соответствуют классам в оцениваемых моделях, используйте параметр Перекодировка классов облака точек для назначения классификации базового облака точек в соответствии с кодами в обученных моделях.

  • Архитектура глубокого обучения PointCNN используется для создания модели классификации облака точек. Использование этой архитектуры может давать немного разные результаты при обработке одного и того же набора входных данных. Вы можете указать одну и ту же модель в качестве входной несколько раз для оценки согласованности результатов классификации в облаке точек. См. PointCNN: Свертка точек, преобразованных по X для дополнительной информации о потенциальной вариабельности результатов классификации.

  • В процессе оценки будет создано несколько выходных файлов в Целевой папке. Имя каждого файла будет начинаться с текста, указанного в параметре Базовое имя.

    • <base name>_ModelStatistics.csv — таблица, в которой перечислены параметры accuracy, precision, recall и F1 score.
    • <base name>_ClassCodeStatistics.csv — таблица, суммирующая результаты параметров accuracy, precision, recall и F1 score для каждого кода класса.
    • <base name>_ConfusionMatrices.csv — таблица, суммирующая, как каждая точка в каждом коде класса базового облака точек классифицируется входной моделью. В дополнение к истинно положительным и ложно положительным, в этой таблице также указаны классы, где выявились ложно положительные.
    • <base name>_ConfusionMatrix_<model number>.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

Связанные разделы