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

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

Тренирует модель глубокого обучения для облака точек с помощью архитектуры PointCNN.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Параметры

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

Обучающие данные облака точек (файл *.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)

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

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

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

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