Подпись | Описание | Тип данных |
Входное облако точек | Облако точек, которое будет использоваться для создания обучающих данных для выявления объектов. | LAS Dataset Layer; File |
Входные обучающие объекты | Объекты-мультипатч, которые будут идентифицировать объекты, которые будут использоваться для обучения модели. | Feature Layer |
Входные объекты проверки | Объекты-мультипатч, которые будут идентифицировать объекты, которые будут использоваться для проверки модели в течение процесса обучения. | Feature Layer |
Размер блока | Диаметр каждого блока обучающих данных, которые будут созданы из входного облака точек. Основное правило - размер блока должен быть достаточно большим, чтобы захватывать объект интереса и окружающий контекст. | Linear Unit |
Выходные обучающие данные | Расположение и имя выходных обучающих данных (файл *.pcotd). | File |
Обучающие ограничивающие объекты (Дополнительный) | Полигональные объекты, которые выделяют поднаборы точек входного облака точек, которые будут использоваться для обучения модели. Этот параметр необходим, если не задано значение параметра Облако точек проверки. | Feature Layer |
Поле кода обучения (Дополнительный) | Поле, которое идентифицирует уникальный ID для каждого типа объекта в обучающих объектах-мультипатч. Если поле не определено, объектам присваивается идентификатор 0. | Field |
Облако точек проверки (Дополнительный) | Облако точек, которое будет использоваться для проверки модели глубокого обучения в процессе обучения. Набор данных должен ссылаться на другой набор точек, отличный от входного облака точек, чтобы корректно оценивать качество обучающей модели. Если облако точек проверки не задано, входное облако точек можно использовать для определения наборов данных для обучения и проверки, предоставив классы полигональных объектов для параметров Обучающие ограничивающие объекты и Ограничивающие объекты проверки. | LAS Dataset Layer; File |
Ограничивающие объекты проверки (Дополнительный) | Полигональные объекты, которые выделяют поднабор точек, использующийся для проверки модели в процессе обучения. Если облако точек проверки не указано, точки будут взяты из исходного облака точек. Если облако точек проверки не предоставлено, точки будут получены из входного облака точек, и для параметра Обучающие ограничивающие объекты потребуется полигон. | Feature Layer |
Поле кода проверки (Дополнительный) | Поле, которое идентифицирует уникальный ID для каждого типа объекта в объектах-мультипатч проверки. Если поле не определено, объектам присваивается идентификатор 0. | Field |
Предельное количество точек в блоке (Дополнительный) | Максимальное количество точек, которое может храниться в каждом блоке обучающих данных. Если блок содержит число точек, превышающее это значение, для одного и того же местоположения будет создано несколько блоков, чтобы гарантировать использование всех точек в обучении. Количество по умолчанию - 500 000. | Long |
Базовое значение высоты поверхности (Дополнительный) | Растровая поверхность, которая будет использоваться для получения значений относительной высоты для каждой точки в данных облаков точек. Точки, которые не перекрываются с растром, будут исключены из анализа. | Raster Layer |
Исключенные коды классов (Дополнительный) | Коды классов, которые будут исключены из обучающих данных. Можно задать любое значение от 0 до 255. | Long |
Экспортировать только содержащие объекты обучающие блоки. (Дополнительный) | Указывает, будут ли обучающие данные включать только содержащие объекты блоки, или же будут также включены блоки, не содержащие объектов. Этот параметр не повлияет на данные, используемые для проверки.
| Boolean |
Краткая информация
Создает обучающие данные облака точек для моделей выявления объектов при помощи глубокого обучения.
Иллюстрация
Использование
Обучающие данные выявления объектов облаков точек задаются директорией с расширением .pcotd, которая содержит две поддиректориями: одна содержит данные, использующиеся для обучения модели, а другая содержит данные, использующиеся для проверки модели в процессе обучения. Входное облако точек всегда должно указываться вместе с отдельными объектами-мультипатчами, представляющими собой ограничивающие прямоугольники объектов для обучения и проверки. Ограничивающий полигон может быть задан для ограничения данных, экспортируемых для обучения. Данные проверки могут задаваться следующим образом:
- Указать облако точек проверки в дополнение к входному облаку точек. Набор данных должен ссылаться на другой набор точек, отличный от входного облака точек. Также можно указать границу для обрезки облака точек проверки.
- Указать только входное облако точек с границами обучения и проверки. Это приведет к тому, что данные обучения и проверки будут получены из одного и того же входного облака точек, поэтому нет необходимости указывать набор данных для параметра Облако точек проверки. Избегайте перекрытия между двумя наборами данных граничащих полигонов, чтобы не использовать одни и те же данные облака точек для обучения и проверки.
Каждый тип объекта, присутствующий в облаке точек, содержится в ограничивающем прямоугольнике мультипатч. Неопознанные объекты в обучающих или проверочных данных приведут к тому, что модель не сможет эффективно научиться идентифицировать объект. Если облако точек содержит неопознанные объекты, используйте граничащие объекты, чтобы ограничить экспортированные наборы обучающих данных местоположением, в котором объекты корректно содержались в ограничивающем прямоугольнике.
Точки, представляющие объекты, не нуждаются в классификации, чтобы быть использованными в обучающем наборе данных для обнаружения объектов. Это упрощает задачу надписывания объектов и позволяет создавать ограничивающие прямоугольники в качестве объектов-мультипатчей. Ограничивающие прямоугольники можно создавать посредством интерактивного 3D-редактирования класса объектов-мультипатчей. Однако если объекты представлены классифицированными облаками точек, ограничивающие прямоугольники для этих точек можно создать с помощью инструмента Извлечь объекты из облака точек.
Входное облако точек должно иметь достаточно постоянную плотность точек. Оцените облако точек, чтобы определить, содержит ли оно местоположения с более высокой плотностью точек, такие как области, собранные на пересечении линий полета или с помощью наземных сканеров в режиме холостого хода. Для бортового лидара с перекрывающимися линиями полета можно использовать инструмент Классифицировать наложение LAS, чтобы отметить перекрывающиеся точки и добиться их более согласованного распределения. Другие типы облаков точек с избыточной плотностью горячих точек можно уменьшить до обычного распределения с помощью инструмента Проредить LAS.
Точки в облаке могут быть исключены из обучающих данных по их кодам классов, что помогает повысить производительность обучения модели за счет уменьшения количества обрабатываемых точек. Исключенные точки должны принадлежать к классам, которые могут быть легко классифицированы и не обязательно обеспечивают адекватный контекст для объектов, для которых обучается модель. Рассмотрите возможность фильтрации точек, которые классифицируются как наложения или шум. Наземные классифицированные точки также могут быть отфильтрованы, если во время генерации обучающих данных вычисляется высота от земли.
Когда это возможно, укажите размер блока, эффективно захватывающий объекты, для которых будет обучаться модель. Хотя каждый блок не всегда может содержать весь объект целиком, перекрывающиеся блоки, которые создаются в обучающих данных, будут охватывать достаточное количество разнообразных представлений объекта для успешного обучения модели.
Ограничение точек в блоке должно отражать размер блока и среднее расстояние между точками данных. Количество точек в заданном блоке может быть аппроксимировано с помощью инструмента Статистика точек LAS как растр с опцией Число точек в параметре Метод и желаемым размером блока, заданным как размер ячейки выходного растра. Гистограмма изображения этого растра может проиллюстрировать распределение точек по блокам по всему набору данных. Если гистограмма отображает большое количество блоков с широкой дисперсией, это может указывать на наличие данных с нерегулярной выборкой, содержащих потенциальные горячие точки с высокой плотностью. Если блок содержит больше точек, чем предельное количество точек на блок, этот блок будет создан несколько раз, чтобы убедиться, что все его точки представлены в обучающих данных. Например, если предельное количество точек на блок установлено на 10000, а блок содержит 22000 точек, будут созданы три блока по 10000 точек, чтобы нивелировать плотность в каждом блоке. Также следует избегать предельного количества точек, которое значительно превышает номинальное количество точек в большинстве блоков. В некоторых архитектурах дискретизация данных повышается, в соответствии с предельным количеством точек. Поэтому используйте размер блока и ограничение по количеству точек в блоке, которые будут близки к ожидаемому количеству точек, охватывающему большинство блоков в обучающих данных. Как только обучающие данные созданы, в окне сообщения инструмента отображается гистограмма, а ее изображение сохраняется в папке, содержащей обучающие и данные и данные для проверки. Эту гистограмму можно просмотреть, чтобы определить, была ли выбрана подходящая комбинация размера блока и предельного количества точек. Если значения указывают на неоптимальное количество точек, снова запустите инструмент с более подходящим значением для параметра Предельное количество точек в блоке.
Значение предельного количества точек на блок должно также учитывать выделенный объем памяти графического адаптера на компьютере, который будет использоваться для обучения. Распределение памяти во время обучения будет зависеть от количества точек на блок, используемых атрибутов и общего количества блоков, которые одновременно обрабатываются в данном пакете. Если для эффективного обучения модели требуется больший размер блока и большее ограничение количества точек, размер пакета может быть уменьшен на этапе обучения, чтобы обеспечить возможность обработки большего количества точек.
-
Убедитесь, что выходные данные записаны в местоположение, где на диске достаточно свободного места, чтобы разместить обучающие данные. Инструмент создает частично перекрывающиеся блоки несжатых файлов HDF5, которые реплицируют каждую точку в четырех блоках. В блоках, превышающих максимальное ограничение точек, некоторые точки могут дублироваться больше четырех раз. Результирующие обучающие данные могут занять в три раза больше дискового пространства, чем исходные данные облака точек.
В окне сообщений инструмента отображается соотношение квартилей для каждого типа объектов. Это соотношение рассчитывается путем деления объемов объектов третьего квартиля на первый квартиль. Эта метрика служит индикатором изменчивости размеров объектов. Большее соотношение квартилей предполагает большую изменчивость объемов объектов, тогда как меньшее соотношение указывает на меньшую изменчивость. Если наблюдается значительное изменение объема, вам может потребоваться настроить параметры вокселей в параметре инструмента Обучение модели выявления объектов облака точек Настройки архитектуры, чтобы получить точную модель.
Параметры
arcpy.ddd.PreparePointCloudObjectDetectionTrainingData(in_point_cloud, in_training_features, in_validation_features, block_size, out_training_data, {training_boundary}, {training_code_field}, {validation_point_cloud}, {validation_boundary}, {validation_code_field}, {block_point_limit}, {reference_height}, {excluded_class_codes}, {blocks_contain_objects})
Имя | Описание | Тип данных |
in_point_cloud | Облако точек, которое будет использоваться для создания обучающих данных для выявления объектов. | LAS Dataset Layer; File |
in_training_features | Объекты-мультипатч, которые будут идентифицировать объекты, которые будут использоваться для обучения модели. | Feature Layer |
in_validation_features | Объекты-мультипатч, которые будут идентифицировать объекты, которые будут использоваться для проверки модели в течение процесса обучения. | Feature Layer |
block_size | Диаметр каждого блока обучающих данных, которые будут созданы из входного облака точек. Основное правило - размер блока должен быть достаточно большим, чтобы захватывать объект интереса и окружающий контекст. | Linear Unit |
out_training_data | Расположение и имя выходных обучающих данных (файл *.pcotd). | File |
training_boundary (Дополнительный) | Полигональные объекты, которые выделяют поднаборы точек входного облака точек, которые будут использоваться для обучения модели. Этот параметр необходим, если не задано значение параметра validation_point_cloud. | Feature Layer |
training_code_field (Дополнительный) | Поле, которое идентифицирует уникальный ID для каждого типа объекта в обучающих объектах-мультипатч. Если поле не определено, объектам присваивается идентификатор 0. | Field |
validation_point_cloud (Дополнительный) | Исходное облако точек, которое будет использовано для проверки модели глубокого обучения. Набор данных должен ссылаться на другой набор точек, отличный от входного облака точек, чтобы корректно оценивать качество обучающей модели. Если облако точек проверки не задано, входное облако точек можно использовать для определения наборов данных для обучения и проверки, предоставив классы полигональных объектов для параметров training_boundary и validation_boundary. | LAS Dataset Layer; File |
validation_boundary (Дополнительный) | Полигональные объекты, которые выделяют поднабор точек, использующийся для проверки модели в процессе обучения. Если облако точек проверки не указано, точки будут взяты из исходного облака точек. Если облако точек проверки не предоставлено, точки будут получены из входного облака точек, и для параметра training_boundary потребуется полигон. | Feature Layer |
validation_code_field (Дополнительный) | Поле, которое идентифицирует уникальный ID для каждого типа объекта в объектах-мультипатч проверки. Если поле не определено, объектам присваивается идентификатор 0. | Field |
block_point_limit (Дополнительный) | Максимальное количество точек, которое может храниться в каждом блоке обучающих данных. Если блок содержит число точек, превышающее это значение, для одного и того же местоположения будет создано несколько блоков, чтобы гарантировать использование всех точек в обучении. Количество по умолчанию - 500 000. | Long |
reference_height (Дополнительный) | Растровая поверхность, которая будет использоваться для получения значений относительной высоты для каждой точки в данных облаков точек. Точки, которые не перекрываются с растром, будут исключены из анализа. | Raster Layer |
excluded_class_codes [excluded_class_codes,...] (Дополнительный) | Коды классов, которые будут исключены из обучающих данных. Можно задать любое значение от 0 до 255. | Long |
blocks_contain_objects (Дополнительный) | Указывает, будут ли обучающие данные включать только содержащие объекты блоки, или же будут также включены блоки, не содержащие объектов. Этот параметр не повлияет на данные, используемые для проверки.
| Boolean |
Пример кода
В следующем примере показано использование этого инструмента в окне Python.
import arcpy
arpy.env.workspace = r"C:\GIS_Data"
arcpy.ddd.PreparePointCloudObjectDetectionTrainingData("Training.lasd", r"Objects.fgdb\Training_FCs",
r"Objects.fgdb\Validation_FCs", "12 Meters",
"Training_Cars.pcotd", training_code_field="Car_Type",
validation_code_field="Car_Type", reference_surface="DEM.tif",
excluded_classes=[2, 7, 18])