Обучение модели классификации облака точек (3D Analyst)

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

Тренирует модель глубокого обучения для классификации облака точек.

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

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

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

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

  • Модель классификации облака точек может быть обучена с помощью видеокарты NVIDIA с поддержкой CUDA или CPU. Использование графического процессора обычно быстрее, чем использование центрального процессора. Используйте центральный процессор только, если нет доступного графического процессора. При использовании центрального процессора для обучения, начните с использования архитектуры RandLA-Net, так как она использует меньше памяти, чем PointCNN. Также можно поэкспериментировать с использованием наименьших возможных обучающих выборок, чтобы оценить время обработки данных, до обучения с полным набором обучающих данных.

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

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

  • Когда инструмент запущен, индикатор выполнения отображает сообщение, содержащее следующую статистику результатов обучения, полученных для каждой эпохи:

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

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

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

  • Создается папка для хранения контрольных моделей, которые являются моделями, созданными в конце каждой эпохи. Имя этой папки такое же, как у модели, с суффиксом .checkpoints и хранится в значении параметра Местоположение выходной модели. После завершения обучения в папке контрольных точек создается таблица CSV, имя которой начинается со значения Имени выходной модели и заканчивается на _stats.csv. Таблица содержит следующие поля, в зависимости от результатов, получаемых для каждого кода класса и каждой эпохи:

    • Epoch— номер эпохи, связанный с результатом в строке. Значение, соответствующее модели, созданной в парке контрольных точек моделей. Результаты получаются путем применения модели, обученной в эпоху присутствия данных проверки.
    • Class_Code— код класса для которого получены результаты.
    • Precision— отношение точек, которые были корректно классифицированы (истинно положительные) и всех классифицированных точек (истинно положительные и ложно положительные).
    • Recall— отношение точек, которые были корректно классифицированы (истинно положительные), и всех точек, которые должны быть классифицированы по этому значению (истинно положительные и ложно отрицательные).
    • F1_Score— гармоническое среднее точности и вызванного значения.
  • Выделенная память, используемая во время обучения, представляет собой сумму памяти, выделенной для среды глубокого обучения, и объема данных, обрабатываемых в каждом пакете итерации в заданную эпоху. Размер данных в каждом пакете зависит от числа дополнительных атрибутов точек, указанных в параметре Выбор атрибутов, общего числа точек в каком-либо блоке и от числа обрабатываемых в каждом пакете блоков, как указано в параметре Размер пакета. Максимальное количество точек на блок определяется при экспорте обучающих данных, и это значение следует принимать при оценке потенциального объема памяти для операции обучения.

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

Параметры

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

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

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

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

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

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

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

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

File
Выбор атрибутов
(Дополнительный)

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

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

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

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

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

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

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

Long
Код класса фона
(Дополнительный)

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

Long
Описание класса
(Дополнительный)

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

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

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

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

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

Long
Итераций на эпоху (%)
(Дополнительный)

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

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

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

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

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

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

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

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

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

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

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

  • PointCNNБудет использоваться архитектура PointCNN.
  • RandLA-NetБудет использоваться архитектура RandLA-Net. RandLA-Net построена на принципах простой случайной выборки и агрегирования локальных объектов. Это значение по умолчанию
  • Semantic Query NetworkБудет использоваться архитектура Semantic Query Network (SQN). SQN не требует комплексной классификации обучающих данных, как это делают другие архитектуры нейронных сетей.
String

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

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

Результирующая модель, созданная этим инструментом.

File
Выходная статистика модели

Файл .csv, содержащий точность, полноту и оценки F1 для каждого кода класса и эпохи.

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

Файл .csv, содержащий потери при обучении, потери при проверке, точность, достовенность, отзыв и оценки F1, полученные в каждую эпоху.

Text File

arcpy.ddd.TrainPointCloudClassificationModel(in_training_data, out_model_location, out_model_name, {pretrained_model}, {attributes}, {min_points}, {class_remap}, {target_classes}, {background_class}, {class_descriptions}, {model_selection_criteria}, {max_epochs}, {epoch_iterations}, {learning_rate}, {batch_size}, {early_stop}, {learning_rate_strategy}, {architecture})
ИмяОписаниеТип данных
in_training_data

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

File
out_model_location

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

Folder
out_model_name

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • POINTCNNБудет использоваться архитектура PointCNN.
  • RANDLANETБудет использоваться архитектура RandLA-Net. RandLA-Net построена на принципах простой случайной выборки и агрегирования локальных объектов. Это значение по умолчанию
  • SQNБудет использоваться архитектура Semantic Query Network (SQN). SQN не требует комплексной классификации обучающих данных, как это делают другие архитектуры нейронных сетей.
String

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

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

Результирующая модель, созданная этим инструментом.

File
out_model_stats

Файл .csv, содержащий точность, полноту и оценки F1 для каждого кода класса и эпохи.

Text File
out_epoch_stats

Файл .csv, содержащий потери при обучении, потери при проверке, точность, достовенность, отзыв и оценки F1, полученные в каждую эпоху.

Text File

Пример кода

TrainPointCloudClassificationModel, пример 1 (автономный скрипт)

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

import arcpy

arcpy.env.workspace = "D:/Deep_Learning_Workspace"
arcpy.ddd.TrainPointCloudClassificationModel(
    "Powerline_Training.pctd", "D:/DL_Models", "Powerline", 
    attributes=['INTENSITY', 'RETURN_NUMBER', 'NUMBER_OF_RETURNS'],
    target_classes=[14, 15], background_class=1,
    class_descriptions=[[1, "Background"], [14, "Wire Conductor"], [15, "Transmission Tower"]],
    model_selection_criteria="F1_SCORE", max_epochs=10)

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

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