Подготовка обучающих данных облаков точек (3D Analyst)

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

Создает данные, для использования в обучении и проверке модели PointCNN для классификации облака точек.

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

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

    Более подробно об интерактивном редактировании классификации LAS

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

    • Указать облако точек проверки Набор данных должен ссылаться на другой набор точек, отличный от входного облака точек.
    • Указать облако точек проверки с границами проверки. Это приведет к созданию данных проверки из части облака точек проверки, перекрывающих границы проверки.
    • Указать границы обучения и границы проверки без облака точек проверки. Это приведет к созданию обучающих данных из части входного облака точек, которое пересекает ограничивающие объекты обучения, и созданию облака точек проверки из части входного облака точек, пересекающего ограничивающие объекты проверки. Ограничивающие объекты не должны перекрывать друг друга.
  • При обучении модели классификации облака точек создавайте обучающие данные, используя размер блока, достаточный для захвата классифицируемого объекта и данных, которые важны для захвата окружающего контекста. Размер блока не обязательно должен охватывать весь объект, если окружающих данных достаточно для получения корректной классификации. Если блок содержит больше точек, чем заданное ограничение количества точек в блоке, для одного и того же местоположения будет создано несколько блоков. Например, если параметр Предел количества точек на блок установлен на 10000, и данный блок содержит 22000 точек, будут созданы три блока по 10000 точек, чтобы образцы гарантировано содержались в каждом блоке. Некоторые точки могут быть дублированы в двух блоках, но все точки гарантировано попадут хотя бы в один блок.

  • Избегайте использования размера блока и значения ограничения количества точек в блоке, которые приведут к созданию множества блоков, превышающих ограничение по количеству точек. Число точек для заданного размера блока можно подобрать с помощью инструмента Статистика точек LAS как растр, создав выходной растр, который использует опцию Количество точек в параметре Метод. Размер ячейки растра должен соответствовать желаемому размеру блока. Вы можете оценить гистограмму изображения этого растра, чтобы получить приблизительное число блоков, имеющих определенный размер блока, и соответствующим образом настроить ограничение точек.

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

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

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

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

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

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

Параметры

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

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

LAS Dataset Layer; File
Размер блока

Размер диаметра каждой окружности HDF5, созданной из входного облака точек. Основное правило - размер блока должен быть достаточно большим, чтобы захватывать объект интереса и окружающий контекст.

Linear Unit
Выходные обучающие данные

Расположение и имя выходных обучающих данных (*.pctd).

File
Обучающие ограничивающие объекты
(Дополнительный)

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

Feature Layer
Облако точек проверки
(Дополнительный)

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

LAS Dataset Layer; File
Ограничивающие объекты проверки
(Дополнительный)

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

Feature Layer
Фильтровать блоки по коду класса
(Дополнительный)

Коды классов, которые будут использоваться для ограничения экспортируемых блоков обучающих данных. Все точки в блоках, которые содержат хотя бы одно из значений, перечисленных для этого параметра, будут экспортированы, за исключением классов, указанных в параметре Исключенные коды классов, или точек, помеченных как Исключенные. Можно задать любое значение от 0 до 255.

Value Table
Предельное количество точек в блоке
(Дополнительный)

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

Long
Базовая поверхность
(Дополнительный)

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

Raster Layer
Исключенные коды классов
(Дополнительный)

Коды классов, которые будут исключены из обучающих данных. Можно задать любое значение от 0 до 255.

Long

arcpy.ddd.PreparePointCloudTrainingData(in_point_cloud, block_size, out_training_data, {training_boundary}, {validation_point_cloud}, {validation_boundary}, {class_codes_of_interest}, {block_point_limit}, {reference_height}, {excluded_class_codes})
ИмяОписаниеТип данных
in_point_cloud

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

LAS Dataset Layer; File
block_size

Размер диаметра каждой окружности HDF5, созданной из входного облака точек. Основное правило - размер блока должен быть достаточно большим, чтобы захватывать объект интереса и окружающий контекст.

Linear Unit
out_training_data

Расположение и имя выходных обучающих данных (*.pctd).

File
training_boundary
(Дополнительный)

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

Feature Layer
validation_point_cloud
(Дополнительный)

Исходное облако точек, которое будет использовано для проверки модели глубокого обучения. Набор данных должен ссылаться на другой набор точек, отличный от входного облака точек, чтобы корректно оценивать качество обучающей модели. Если облако точек проверки не указано, входное облако точек можно использовать для определения наборов данных для обучения и проверки, предоставив классы полигональных объектов для параметров training_boundary и validation_boundary.

LAS Dataset Layer; File
validation_boundary
(Дополнительный)

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

Feature Layer
class_codes_of_interest
[class_codes_of_interest,...]
(Дополнительный)

Коды классов, которые будут использоваться для ограничения экспортируемых блоков обучающих данных. Все точки в блоках, которые содержат хотя бы одно из значений, перечисленных для этого параметра, будут экспортированы, за исключением классов, указанных в параметре excluded_class_codes, или точек, помеченных как Исключенные. Можно задать любое значение от 0 до 255.

Value Table
block_point_limit
(Дополнительный)

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

Long
reference_height
(Дополнительный)

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

Raster Layer
excluded_class_codes
[excluded_class_codes,...]
(Дополнительный)

Коды классов, которые будут исключены из обучающих данных. Можно задать любое значение от 0 до 255.

Long

Пример кода

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

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

import arcpy
arcpy.env.workspace = 'C:/data'
arcpy.ddd.PreparePointCloudTrainingData('training_source.lasd', '35 Meters', 'vegetation_training.pctd', 
                                        validation_point_cloud='validation_source.lasd', 
                                        class_codes_of_interest=[14, 15], block_point_limit=12000,
                                        reference_height='Ground_Elevation.tif', 
                                        excluded_class_codes=[2, 6, 8, 9, 20])

Информация о лицензиях

  • Basic: Обязательно 3D Analyst
  • Standard: Обязательно 3D Analyst
  • Advanced: Обязательно 3D Analyst

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