Обучение модели выявления объектов облака точек (3D Analyst)

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

Обучение модели выявления объектов для облаков точек при помощи глубокого обучения.

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

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

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

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

  • Модель выявления объектов облака точек может быть обучена только с помощью видеокарты NVIDIA с поддержкой CUDA. Если в качестве среды Типа процессора не указан компьютер с видеокартами с поддержкой CUDA, для обучения будет использоваться карта с наиболее оптимальным аппаратным обеспечением. В противном случае, конкретную видеокарту можно назначить в настройках среды GPU ID.

  • В процессе обучения будут сообщаться следующие показатели:

    • Эпоха — номер эпохи, с которой связан результат
    • Потери обучения - результат функции потерь энтропии, который усредняется с данными обучения
    • Потери проверки - результат функции потерь энтропии, который выявляется при применении обученной модели в эпоху данных проверки
    • Средняя точность - отношение точек в данных проверки, которые были правильно классифицированы моделью, обученной в эту эпоху (истинные положительные значения), ко всем точкам в данных проверки

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

    Более подробно о доступе к результатам классификации облака точек

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

Параметры

ПодписьОписаниеТип данных
Входные обучающие данные

Обучающие данные выявления объектов облака точек (*.pcotd), которые будут использованы для обучения модели.

File
Местоположение выходной модели

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

Folder
Имя выходной модели

Имя выходного файла определения модели Esri (*.emd), пакета глубокого обучения (*.dlpk) и новой директории, созданной для хранения этих элементов.

String
Файл определения предварительно обученной модели
(Дополнительный)

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

File
Архитектура
(Дополнительный)

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

  • Разреженное встроенное сверточное обнаружениеБудет использоваться архитектура Sparsely Embedded CONvolutional Detection (SECOND). Это значение по умолчанию
String
Выбор атрибутов
(Дополнительный)

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

  • ИнтенсивностьБудет использоваться измерение амплитуды отраженного сигнала импульса лидара.
  • Номер отраженного сигналаИспользуется исходное положение точки, полученное из данного импульса лидара.
  • Количество отраженных сигналовИспользуется общее количество отраженных сигналов лидара, которое определяется как точки от импульсов, связанных с данной точкой.
  • Красный каналБудет использовано значение красного канала из облака точек, с цветовой информацией.
  • Зеленый каналБудет использовано значение зеленого канала из облака точек, с цветовой информацией.
  • Синий каналБудет использовано значение синего канала из облака точек, с цветовой информацией.
  • Канал Ближний инфракрасныйБудет использовано значение ближнего инфракрасного канала из облака точек, с информацией ближнего инфракрасного излучения.
  • Относительная высотаБудет использована относительная высота каждой точки по отношению к базовой поверхности, которая обычно представляет собой ЦМР голой земли.
String
Минимальное число точек на блок
(Дополнительный)

Минимальное число точек, которое должно присутствовать в данном блоке для использования при обучении модели. По умолчанию - 0.

Long
Переназначить коды объектов
(Дополнительный)

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

  • Текущий код - значение кода объекта для обучающих данных
  • Переназначенный код - значение кода объекта, на которое будет заменен существующий код

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

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

Long
Обучать только блоки, содержащие объекты
(Дополнительный)

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

  • Отмечено - модель будет обучаться с использованием только содержащих объекты блоков. Данные, используемые для проверки, не будут изменены.
  • Не отмечено - модель будет обучаться с использованием всех блоков, включая те, которые не содержат объектов. Это значение по умолчанию
Boolean
Описания объектов
(Дополнительный)

Описания каждого кода объекта в обучающих данных.

  • Код объекта - значение кода объекта, которое было выучено моделью
  • Описание - объект, описываемый кодом класса

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

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

  • Потери проверкиБудет использована модель, получившая наименьший результат функции потерь энтропии, примененная к данным проверки.
  • Средняя точностьБудет использована модель, достигающая наивысшего соотношения точек в данных проверки, которые были правильно классифицированы моделью, обученной в эту эпоху (истинные положительные значения), по всем точкам в данных проверки. Это значение по умолчанию
String
Максимальное число эпох
(Дополнительный)

Число повторов, при которых данные каждого блока будут переданы вперед и назад через нейронную сеть. Значение по умолчанию равно 25.

Long
Стратегия скорости обучения
(Дополнительный)

Указывает, как будет изменяться скорость обучения во время обучения.

  • Скорость обучения одного циклаСкорость обучения будет циклически изменяться в течение каждой эпохи с использованием Fast.Искусственный интелект реализует методику 1 цикла для обучения нейронных сетей, чтобы помочь улучшить обучение сверточной нейронной сети. Это значение по умолчанию
  • Фиксированная скорость обученияОдна и та же скорость обучения будет использоваться на протяжении всего учебного процесса.
String
Скорость обучения
(Дополнительный)

Скорость, с которой существующая информация будет перезаписана новой информацией. Если значение не задано, оптимальная скорость обучения будет извлечена из кривой обучения в процессе обучения. Это значение по умолчанию

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

Число блоков обучающих данных, которые будут обработаны в заданное время. Значение по умолчанию равно 2.

Long
Остановка обучения, если модель более не улучшается.
(Дополнительный)

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

  • Отмечено - обучение будет остановлено, если модель более не улучшается.
  • Не отмечено - обучение модели будет продолжено, пока не будет достигнуто максимально возможное число эпох. Это значение по умолчанию
Boolean
Настройки архитектуры
(Дополнительный)

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

  • Опции - опции, зависящие от архитектуры, которые можно изменить.
    • Ширина воксела - измерения x и y воксела, используемые во время обучения. Соответствующее значение выражается в линейных единицах - метрах, и может быть выражено как двойное значение.
    • Высота воксела - измерение z воксела, используемое во время обучения. Соответствующее значение выражается в линейных единицах - метрах, и может быть выражено как двойное значение.
    • Предел количества точек воксела - количество точек в данном вокселе. Соответствующее значение должно быть положительным целым числом. Если значение не указано, этот предел рассчитывается во время обучающего процесса на основе размера блока и предела количества блоков обучающих данных.
    • Максимум обучающих вокселов - максимальное количество вокселов, которое может храниться в обучающих данных. Соответствующее значение должно быть положительным целым числом. Если значение не указано, этот предел рассчитывается во время обучающего процесса.
    • Максимум вокселов проверки - максимальное количество вокселов, которое может быть использовано в данных проверки. Соответствующее значение должно быть положительным целым числом. Если значение не указано, этот предел рассчитывается во время обучающего процесса.
  • Значение - значение, соответствующее изменяемой опции.

Value Table

Производные выходные данные

ПодписьОписаниеТип данных
Выходная модель

Созданная выходная модель выявления объектов.

File
Выходная статистика эпохи

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

Text File

arcpy.ddd.TrainPointCloudObjectDetectionModel(in_training_data, out_model_location, out_model_name, {pretrained_model}, {architecture}, {attributes}, {min_points}, {remap_objects}, {target_objects}, {train_blocks}, {object_descriptions}, {model_selection_criteria}, {max_epochs}, {learning_rate_strategy}, {learning_rate}, {batch_size}, {early_stop}, {architecture_settings})
ИмяОписаниеТип данных
in_training_data

Обучающие данные выявления объектов облака точек (*.pcotd), которые будут использованы для обучения модели.

File
out_model_location

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

Folder
out_model_name

Имя выходного файла определения модели Esri (*.emd), пакета глубокого обучения (*.dlpk) и новой директории, созданной для хранения этих элементов.

String
pretrained_model
(Дополнительный)

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

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

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

  • SECDБудет использоваться архитектура Sparsely Embedded CONvolutional Detection (SECOND). Это значение по умолчанию
String
attributes
[attributes,...]
(Дополнительный)

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

  • INTENSITYБудет использоваться измерение амплитуды отраженного сигнала импульса лидара.
  • RETURN_NUMBERИспользуется исходное положение точки, полученное из данного импульса лидара.
  • NUMBER_OF_RETURNSИспользуется общее количество отраженных сигналов лидара, которое определяется как точки от импульсов, связанных с данной точкой.
  • REDБудет использовано значение красного канала из облака точек, с цветовой информацией.
  • GREENБудет использовано значение зеленого канала из облака точек, с цветовой информацией.
  • BLUEБудет использовано значение синего канала из облака точек, с цветовой информацией.
  • NEAR_INFRAREDБудет использовано значение ближнего инфракрасного канала из облака точек, с информацией ближнего инфракрасного излучения.
  • RELATIVE_HEIGHTБудет использована относительная высота каждой точки по отношению к базовой поверхности, которая обычно представляет собой ЦМР голой земли.
String
min_points
(Дополнительный)

Минимальное число точек, которое должно присутствовать в данном блоке для использования при обучении модели. По умолчанию - 0.

Long
remap_objects
[remap_objects,...]
(Дополнительный)

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

  • Текущий код - значение кода объекта для обучающих данных
  • Переназначенный код - значение кода объекта, на которое будет заменен существующий код

Value Table
target_objects
[target_objects,...]
(Дополнительный)

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

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

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

  • OBJECT_BLOCKSМодель будет обучаться с использованием только содержащих объекты блоков. Данные, используемые для проверки, не будут изменены.
  • ALL_BLOCKSМодель будет обучаться с использованием всех блоков, включая те, которые не содержат объектов. Это значение по умолчанию
Boolean
object_descriptions
[object_descriptions,...]
(Дополнительный)

Описания каждого кода объекта в обучающих данных.

  • Код объекта - значение кода объекта, которое было выучено моделью
  • Описание - объект, описываемый кодом класса

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

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

  • VALIDATION_LOSSБудет использована модель, получившая наименьший результат функции потерь энтропии, примененная к данным проверки.
  • AVERAGE_PRECISIONБудет использована модель, достигающая наивысшего соотношения точек в данных проверки, которые были правильно классифицированы моделью, обученной в эту эпоху (истинные положительные значения), по всем точкам в данных проверки. Это значение по умолчанию
String
max_epochs
(Дополнительный)

Число повторов, при которых данные каждого блока будут переданы вперед и назад через нейронную сеть. Значение по умолчанию равно 25.

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

Указывает, как будет изменяться скорость обучения во время обучения.

  • ONE_CYCLEСкорость обучения будет циклически изменяться в течение каждой эпохи с использованием Fast.Искусственный интелект реализует методику 1 цикла для обучения нейронных сетей, чтобы помочь улучшить обучение сверточной нейронной сети. Это значение по умолчанию
  • FIXEDОдна и та же скорость обучения будет использоваться на протяжении всего учебного процесса.
String
learning_rate
(Дополнительный)

Скорость, с которой существующая информация будет перезаписана новой информацией. Если значение не задано, оптимальная скорость обучения будет извлечена из кривой обучения в процессе обучения. Это значение по умолчанию

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

Число блоков обучающих данных, которые будут обработаны в заданное время. Значение по умолчанию равно 2.

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

Определяет, будет ли обучение модели остановлено, если метрика, указанная в параметре model_selection_criteria, не регистрирует никаких улучшения по прошествии 5 последовательных эпох.

  • EARLY_STOPОбучение будет остановлено, если модель более не улучшается.
  • NO_EARLY_STOPОбучение модели будет продолжено, пока не будет достигнуто максимально возможное число эпох. Это значение по умолчанию
Boolean
architecture_settings
[architecture_settings,...]
(Дополнительный)

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

  • Опции - опции, зависящие от архитектуры, которые можно изменить.
    • VOXEL_WIDTH - измерения x и y воксела, используемые во время обучения. Соответствующее значение выражается в линейных единицах - метрах, и может быть выражено как двойное значение.
    • VOXEL_HEIGHT - измерение z воксела, используемое во время обучения. Соответствующее значение выражается в линейных единицах - метрах, и может быть выражено как двойное значение.
    • VOXEL_POINT_LIMIT - количество точек в данном вокселе. Соответствующее значение должно быть положительным целым числом. Если значение не указано, этот предел рассчитывается во время обучающего процесса на основе размера блока и предела количества блоков обучающих данных.
    • MAX_TRAINING_VOXELS - максимальное количество вокселов, которое может храниться в обучающих данных. Соответствующее значение должно быть положительным целым числом. Если значение не указано, этот предел рассчитывается во время обучающего процесса.
    • MAX_VALIDATION_VOXELS - максимальное количество вокселов, которое может быть использовано в данных проверки. Соответствующее значение должно быть положительным целым числом. Если значение не указано, этот предел рассчитывается во время обучающего процесса.
  • Значение - значение, соответствующее изменяемой опции.

Value Table

Производные выходные данные

ИмяОписаниеТип данных
out_model

Созданная выходная модель выявления объектов.

File
out_epoch_stats

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

Text File

Пример кода

Пример TrainPointCloudObjectDetectionModel (автономный скрипт)

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

import arcpy

arcpy.env.workspace = "D:/Deep_Learning_Workspace"
arcpy.ddd.TrainPointCloudObjectDetectionModel("Cars.pcotd", "D:/DL_Models", "Cars", 
    attributes=["INTENSITY", "RETURN_NUMBER", "NUMBER_OF_RETURNS", "RELATIVE_HEIGHT"],
    object_descriptions=[[31, "Cars"]], train_blocks="OBJECT_BLOCKS",
    model_selection_criteria="AVERAGE_PRECISION", max_epochs=10)

Параметры среды