Подпись | Описание | Тип данных |
Входное облако точек | Облако точек, которое будет использоваться для создания обучающих данных и, возможно, данных проверки, если облако точек проверки не предоставлено. В этом случае и границы обучения, и границы проверки должны быть указаны. | LAS Dataset Layer; File |
Размер блока | Диаметр каждого блока обучающих данных, которые будут созданы из входного облака точек. Основное правило - размер блока должен быть достаточно большим, чтобы захватывать объект интереса и окружающий контекст. | Linear Unit |
Выходные обучающие данные | Расположение и имя выходных обучающих данных (файл *.pctd). | File |
Обучающие ограничивающие объекты (Дополнительный) | Полигональные объекты, которые выделяют поднаборы точек входного облака точек, которые будут использоваться для обучения модели. Этот параметр необходим, если не задано значение параметра Облако точек проверки. | Feature Layer |
Облако точек проверки (Дополнительный) | Облако точек, которое будет использоваться для проверки модели глубокого обучения в процессе обучения. Набор данных должен ссылаться на другой набор точек, отличный от входного облака точек, чтобы корректно оценивать качество обучающей модели. Если облако точек проверки не задано, входное облако точек можно использовать для определения наборов данных для обучения и проверки, предоставив классы полигональных объектов для параметров Обучающие ограничивающие объекты и Ограничивающие объекты проверки. | LAS Dataset Layer; File |
Ограничивающие объекты проверки (Дополнительный) | Полигональные объекты, которые выделяют поднабор точек, использующийся для проверки модели в процессе обучения. Если облако точек проверки не указано, точки будут взяты из исходного облака точек. Если облако точек проверки не предоставлено, точки будут получены из входного облака точек, и для параметра Обучающие ограничивающие объекты потребуется полигон. | Feature Layer |
Фильтровать блоки по коду класса (Дополнительный) | Коды классов, которые будут использоваться для ограничения экспортируемых блоков обучающих данных. Все точки в блоках, которые содержат хотя бы одно из значений, перечисленных для этого параметра, будут экспортированы, за исключением классов, указанных в параметре Исключенные коды классов, или точек, помеченных как Исключенные. Можно задать любое значение от 0 до 255. | Value Table |
Предельное количество точек в блоке (Дополнительный) | Максимальное количество точек, которое будет допустимо в каждом блоке обучающих данных. Если блок содержит число точек, превышающее это значение, для одного и того же местоположения будет создано несколько блоков, чтобы гарантировать использование всех точек в обучении. Значение по умолчанию - 8,192. | Long |
Базовая поверхность (Дополнительный) | Растровая поверхность, которая будет использоваться для получения значений относительной высоты для каждой точки в данных облаков точек. Точки, которые не перекрываются с растром, будут исключены из анализа. | Raster Layer |
Исключенные коды классов (Дополнительный) | Коды классов, которые будут исключены из обучающих данных. Можно задать любое значение от 0 до 255. | Long |
Краткая информация
Создает данные, для использования в обучении и проверке модели классификации облака точек.
Использование
Необходимо проверить входное облако точек, чтобы убедиться, что все точки корректно классифицированы по объектам интереса. Качество модели классификации зависит от качества данных, используемых для обучения и проверки. Если классификация облака точек требует усовершенствования, можно использовать интерактивное редактирование классификации точек.
Более подробно об интерактивном редактировании классификации LAS
Обучающие данные облака точек задаются директорией, с расширением .pctd, с двумя поддиректориями, одна из которых содержит данные, предназначенные для использования в обучении в модели классификации, а другая содержит данные, для проверки обученной модели. Необходимо указать входное облако точек, которое служит источником обучающих данных. Можно указать ограничивающие объекты обучения, для ограничения точек, экспортируемых для обучения. Данные проверки также необходимы и могут быть указаны следующими способами:
- Указать облако точек проверки Набор данных должен ссылаться на другой набор точек, отличный от входного облака точек.
- Указать облако точек проверки с границами проверки. Это приведет к созданию данных проверки из части облака точек проверки, перекрывающих границы проверки.
- Указать границы обучения и границы проверки без облака точек проверки. Это приведет к созданию обучающих данных из части входного облака точек, которое пересекает ограничивающие объекты обучения, и созданию облака точек проверки из части входного облака точек, пересекающего ограничивающие объекты проверки. Ограничивающие объекты не должны перекрывать друг друга.
Входное облако точек должно иметь достаточно постоянную плотность точек. Оцените облако точек, чтобы определить, содержит ли оно местоположения с более высокой плотностью точек, такие как области, собранные на пересечении линий полета или с помощью наземных сканеров в режиме холостого хода. Для бортового лидара с перекрывающимися линиями полета можно использовать инструмент Классифицировать наложение LAS, чтобы отметить перекрывающиеся точки и добиться их более согласованного распределения. Другие типы облаков точек с избыточной плотностью горячих точек можно уменьшить до обычного распределения с помощью инструмента Проредить LAS.
Точки в облаке могут быть исключены из обучающих данных по их кодам классов, что помогает повысить производительность обучения модели за счет уменьшения количества обрабатываемых точек. Исключенные точки должны принадлежать к классам, которые могут быть легко классифицированы и не обязательно обеспечивают адекватный контекст для объектов, для которых обучается модель. Рассмотрите возможность фильтрации точек, которые классифицируются как наложения или шум. Наземные классифицированные точки также могут быть отфильтрованы, если во время генерации обучающих данных вычисляется высота от земли.
Информация о базовой высоте может быть включена в обучающие данные, чтобы предоставить дополнительный атрибут для процесса обучения. Это делается путем указания растра в параметре Базовая поверхность. Этот растр используется для извлечения атрибута относительной высоты для каждой накладывающейся точки. Атрибут вычисляется по z-значению каждой точки, из которого вычитается высота, полученная из растра с помощью билинейной интерполяции. Включение этой информации может помочь дифференцировать объекты, имеющие явное отличие относительной высоты от растровой поверхности. Это также обеспечивает еще одну основу для нейронной сети, чтобы сделать вывод о направленных отношениях. Например, при обучении для линий электропередач и использовании растра высот земли в качестве базовой поверхности точки линий электропередач, скорее всего, попадут в определенный диапазон относительных высот над землей. Кроме того, если базовая высота основывается на высоте поверхности, это может служить причиной не включения наземных точек в обучающие данные, когда наличие наземных точек не обеспечивает полезного контекста для идентификации интересующих объектов. Нейронная сеть попытается изучить классификацию всех данных, которые ей предоставляются во время обучения. Поскольку с помощью инструмента Классифицировать поверхность Земли LAS можно добиться высококачественной классификации наземных объектов, нет необходимости обучать нейронную сеть идентифицировать и отличать наземные точки от других классов. Наземные точки, которые обычно представлены классом 2, а иногда и классом 8 и классом 20, можно исключить, перечислив их в параметре Исключенные коды классов. Когда это будет сделано, нейронная сеть будет обрабатывать обучающие данные быстрее, поскольку наземные точки обычно составляют примерно половину от общего числа точек, полученных в лидарной съемке.
Растровая поверхность, используемая в качестве входных данных для параметра Базовая поверхность, может создаваться из подмножества точек LAS, таких, как классифицированные точки поверхности земли, путем фильтрации набора данных LAS и использования инструмента Набор данных LAS в растр. Желаемый поднабор точек из набора данных LAS можно отфильтровать с использованием любой комбинации кодов классификации, возвращаемых значений и флагов классификации. Фильтры точек можно применить в диалоговом окне свойств слоя набора данных LAS или с помощью инструмента Создать слой набора данных LAS. Поверхность растра также может быть сгенерирована по слою сцены облака точек с помощью инструмента Облако точек в растр.
Параметр Исключенные коды классов можно использовать для исключения точек, связанных с кодами классов, не дающих полезного контекста для идентификации интересующих объектов. Их исключение повысит скорость процесса обучения за счет уменьшения количества оцениваемых точек. Например, классифицированные точки зданий обычно несущественны при обучении модели классификации для таких объектов, как светофоры, линии электропередачи и другого оборудования. Точки зданий также могут быть надежно классифицированы с помощью инструмента Классифицировать здания в LAS. Указание класса 6, представляющего здания, в качестве исключенного класса приведет к исключению точек здания из обучающих данных. Любое облако точек, которое будет использовать модель, обученную с исключенными классами, должно иметь эти же классифицированные классы перед применением модели. Эти классы также должны быть перечислены в параметре Исключенные коды классов инструментов Классификация облака точек с использованием обучающей модели и Оценить обучающие данные облака точек, чтобы модель могла вывести свою классификацию с использованием облака точек, которое соответствует характеристикам данных, используемых для обучения модели.
Ограничение точек в блоке должно отражать размер блока и среднее расстояние между точками данных. Количество точек в заданном блоке может быть аппроксимировано с помощью инструмента Статистика точек LAS как растр с опцией Число точек в параметре Метод и желаемым размером блока, заданным как размер ячейки выходного растра. Гистограмма изображения этого растра может проиллюстрировать распределение точек по блокам по всему набору данных. Если гистограмма отображает большое количество блоков с широкой дисперсией, это может указывать на наличие данных с нерегулярной выборкой, содержащих потенциальные горячие точки с высокой плотностью. Если блок содержит больше точек, чем предельное количество точек на блок, этот блок будет создан несколько раз, чтобы убедиться, что все его точки представлены в обучающих данных. Например, если предельное количество точек на блок установлено на 10000, а блок содержит 22000 точек, будут созданы три блока по 10000 точек, чтобы нивелировать плотность в каждом блоке. Также следует избегать предельного количества точек, которое значительно превышает номинальное количество точек в большинстве блоков. В некоторых архитектурах дискретизация данных повышается, в соответствии с предельным количеством точек. Поэтому используйте размер блока и ограничение по количеству точек в блоке, которые будут близки к ожидаемому количеству точек, охватывающему большинство блоков в обучающих данных. Как только обучающие данные созданы, в окне сообщения инструмента отображается гистограмма, а ее изображение сохраняется в папке, содержащей обучающие и данные и данные для проверки. Эту гистограмму можно просмотреть, чтобы определить, была ли выбрана подходящая комбинация размера блока и предельного количества точек. Если значения указывают на неоптимальное количество точек, снова запустите инструмент с более подходящим значением для параметра Предельное количество точек в блоке.
-
Убедитесь, что выходные данные записаны в местоположение, где на диске достаточно свободного места, чтобы разместить обучающие данные. Инструмент создает частично перекрывающиеся блоки несжатых файлов HDF5, которые реплицируют каждую точку в четырех блоках. В блоках, превышающих максимальное ограничение точек, некоторые точки могут дублироваться больше четырех раз. Результирующие обучающие данные могут занять в три раза больше дискового пространства, чем исходные данные облака точек.
Параметры
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 | Диаметр каждого блока обучающих данных, которые будут созданы из входного облака точек. Основное правило - размер блока должен быть достаточно большим, чтобы захватывать объект интереса и окружающий контекст. | Linear Unit |
out_training_data | Расположение и имя выходных обучающих данных (файл *.pctd). | File |
training_boundary (Дополнительный) | Полигональные объекты, которые выделяют поднаборы точек входного облака точек, которые будут использоваться для обучения модели. Этот параметр необходим, если не задано значение параметра validation_point_cloud. | Feature Layer |
validation_point_cloud (Дополнительный) | Исходное облако точек, которое будет использовано для проверки модели глубокого обучения. Набор данных должен ссылаться на другой набор точек, отличный от входного облака точек, чтобы корректно оценивать качество обучающей модели. Если облако точек проверки не задано, входное облако точек можно использовать для определения наборов данных для обучения и проверки, предоставив классы полигональных объектов для параметров training_boundary и validation_boundary. | LAS Dataset Layer; File |
validation_boundary (Дополнительный) | Полигональные объекты, которые выделяют поднабор точек, использующийся для проверки модели в процессе обучения. Если облако точек проверки не указано, точки будут взяты из исходного облака точек. Если облако точек проверки не предоставлено, точки будут получены из входного облака точек, и для параметра training_boundary потребуется полигон. | Feature Layer |
class_codes_of_interest [class_codes_of_interest,...] (Дополнительный) | Коды классов, которые будут использоваться для ограничения экспортируемых блоков обучающих данных. Все точки в блоках, которые содержат хотя бы одно из значений, перечисленных для этого параметра, будут экспортированы, за исключением классов, указанных в параметре excluded_class_codes, или точек, помеченных как Исключенные. Можно задать любое значение от 0 до 255. | Value Table |
block_point_limit (Дополнительный) | Максимальное количество точек, которое будет допустимо в каждом блоке обучающих данных. Если блок содержит число точек, превышающее это значение, для одного и того же местоположения будет создано несколько блоков, чтобы гарантировать использование всех точек в обучении. Значение по умолчанию - 8,192. | Long |
reference_height (Дополнительный) | Растровая поверхность, которая будет использоваться для получения значений относительной высоты для каждой точки в данных облаков точек. Точки, которые не перекрываются с растром, будут исключены из анализа. | Raster Layer |
excluded_class_codes [excluded_class_codes,...] (Дополнительный) | Коды классов, которые будут исключены из обучающих данных. Можно задать любое значение от 0 до 255. | Long |
Пример кода
В следующем примере показано использование этого инструмента в окне 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])