Выявить объекты из облака точек при помощи обученной модели (3D Analyst)

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

Выявляет объекты, захваченные в облаке точек, с помощью модели глубокого обучения.

Иллюстрация

Иллюстрация инструмента Выявить объекты из облака точек при помощи обученной модели

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

  • Этот инструмент требует установки Deep Learning Essentials, который предоставляет множество решений для нейронных сетей, включающих нейронные архитектуры для классификации облаков точек.

    Чтобы настроить компьютер на работу в среде глубокого обучения в ArcGIS AllSource, см. раздел Установка сред глубокого обучения для ArcGIS.

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

  • Модель идентифицирует множество объектов, некоторые из которых могут перекрываться. Для их уточнения используются два ключевых порога: порог оценки достоверности и порог наложения. Показатель достоверности представляет собой числовое значение от 0,0 до 1,0, которое указывает, насколько вероятно, что объект будет правильно идентифицирован. Более высокий показатель подразумевает большую уверенность, и можно установить пороговое значение для фильтрации обнаружений, получивших уровень достоверности ниже заданного.

    В тех случаях, когда несколько похожих объектов имеют перекрывающиеся ограничивающие рамки, еще более важным становится порог наложения. В этом измерении используется коэффициент пересечения и объединения (IoU), который рассчитывается путем деления объема пересечения на объем объединения перекрывающихся ограничивающих рамок. Для объектов, IoU которых превышает порог наложения, сохраняется только объект с наивысшим показателем достоверности. Алгоритм немаксимального подавления (NMS) используется для обеспечения того, чтобы в окончательный результат входили только наиболее релевантные обнаружения.

  • Параметр Базовая поверхность требуется, когда входная модель была обучена с атрибутами относительной высоты. Растровая поверхность используется в качестве базовой высоты, от которой интерполируются относительные высоты для каждой точки. Это предоставляет дополнительную информацию для модели, которую можно использовать для более простой дифференциации объектов. Растровая поверхность, заданная для этого параметра, должна представлять тот же тип данных, что и растр, использованный в обучающих данных, по которым создавалась модель. В большинстве случаев это будет растр, созданный из наземных классифицированных точек. Растровая поверхность может быть построена из классифицированных точек поверхности земли в наборе данных LAS путем применения фильтра поверхности земли и использования инструмента Набор данных LAS в растр. Поверхность земли также может быть сгенерирована по слою сцены облака точек с помощью инструмента Облако точек в растр. Растровые поверхности, которые не происходят из входного облака точек, использовать можно, но необходимо убедиться, что z-значения в растре точно соответствуют z-значениям в облаке точек.

  • Если входная модель была обучена по точкам из определенных классов, исключенных из обучающих данных, используйте параметр Исключенные коды классов, чтобы гарантировать, что одинаковые точки не будут использоваться в наборе точек, который оценивается моделью. Исключение классов, которые не обеспечивают полезного контекста для целей данной модели, уменьшит количество оцениваемых точек, что повышает скорость обучения и применения модели. Например, точки, представляющие здания, обычно не имеют отношения к точкам, представляющим такие объекты, как светофоры, линии электропередач или автомобили. Точки зданий также могут быть надежно классифицированы с помощью инструмента Классифицировать здания в LAS. Если точки с классом 6, представляющие здания, были исключены из обучающих данных, которые использовались для создания модели, входное облако точек также должно классифицировать точки зданий и исключить их из этого инструмента.

Параметры

ПодписьОписаниеТип данных
Входное облако точек

Облако точек, которое будет использоваться для обнаружения объектов.

LAS Dataset Layer
Входное определение модели

Модель обнаружения объектов, которая будет использоваться. Могут быть указаны файл определения модели Esri (.emd), пакет глубокого обучения (.dlpk) или опубликованная модель обнаружения объектов из ArcGIS Online или Portal for ArcGIS.

File; String
Целевые объекты

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

  • Код объекта — коды, представляющие объекты, которые модель была обучена идентифицировать.
  • Достоверность – порог достоверности распознавания объектов действует по шкале от 0,0 до 1,0. Более высокое значение означает, что меньшее количество объектов будет соответствовать критериям положительной идентификации. Установка порога 1,0 требует 100-процентной уверенности в обнаружении объекта, что фактически делает распознавание любого объекта маловероятным. Если вы хотите исключить определенный объект из выходных данных, установите его порог достоверности равным 1,0.
  • Наложение – порог наложения позволяет выбрать объект, который будет сохранен при обнаружении нескольких перекрывающихся объектов. Порог наложения описывает соотношение между пересечением и объединением перекрывающихся ограничивающих рамок. Если несколько объектов перекрываются и превышен порог наложения, будет сохранен объект с более высокой достоверностью.

Value Table
Выходные объекты

Выходные объекты-мультипатчи, которые будут содержать ограничивающие рамки, окружающие объекты, выявленные во входном облаке точек.

Feature Class
Размер пакета
(Дополнительный)

Количество блоков из входного облака точек, которые будут обрабатываться одновременно. Если значение не указано, одновременно будет обрабатываться один блок.

Long
Обработка границ

Полигональный объект, определяющий область интереса, которая будет обрабатываться.

Feature Layer
Базовая поверхность

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

Raster Layer
Исключаемые классы

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

Long

arcpy.ddd.DetectObjectsFromPointCloudUsingTrainedModel(in_point_cloud, in_trained_model, target_objects, out_features, {batch_size}, boundary, reference_height, excluded_class_codes)
ИмяОписаниеТип данных
in_point_cloud

Облако точек, которое будет использоваться для обнаружения объектов.

LAS Dataset Layer
in_trained_model

Модель обнаружения объектов, которая будет использоваться. Могут быть указаны файл определения модели Esri (.emd), пакет глубокого обучения (.dlpk) или опубликованная модель обнаружения объектов из ArcGIS Online или Portal for ArcGIS.

File; String
target_objects
[target_objects,...]

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

  • Код объекта — коды, представляющие объекты, которые модель была обучена идентифицировать.
  • Достоверность – порог достоверности распознавания объектов действует по шкале от 0,0 до 1,0. Более высокое значение означает, что меньшее количество объектов будет соответствовать критериям положительной идентификации. Установка порога 1,0 требует 100-процентной уверенности в обнаружении объекта, что фактически делает распознавание любого объекта маловероятным. Если вы хотите исключить определенный объект из выходных данных, установите его порог достоверности равным 1,0.
  • Наложение – порог наложения позволяет выбрать объект, который будет сохранен при обнаружении нескольких перекрывающихся объектов. Порог наложения описывает соотношение между пересечением и объединением перекрывающихся ограничивающих рамок. Если несколько объектов перекрываются и превышен порог наложения, будет сохранен объект с более высокой достоверностью.

Value Table
out_features

Выходные объекты-мультипатчи, которые будут содержать ограничивающие рамки, окружающие объекты, выявленные во входном облаке точек.

Feature Class
batch_size
(Дополнительный)

Количество блоков из входного облака точек, которые будут обрабатываться одновременно. Если значение не указано, одновременно будет обрабатываться один блок.

Long
boundary

Полигональный объект, определяющий область интереса, которая будет обрабатываться.

Feature Layer
reference_height

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

Raster Layer
excluded_class_codes
[excluded_class_codes,...]

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

Long

Пример кода

DetectObjectsFromPointCloudUsingTrainedModel, пример (окно Python)

В следующем примере показано использование этого инструмента в окне Python.

import arcpy
arcpy.env.workspace = 'C:/data/detect_cars'
arcpy.ddd.DetectObjectsFromPointCloudUsingTrainedModel('2018_survey.lasd', 'cars.emd',
                                                       [(1, 0.7, 0.4)], 'Cars_in_Point_Cloud.shp',
                                                       10, 'study_area_boundary.shp',
                                                       'dem.tif', [2, 6, 7, 18])