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

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

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

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

  • Этот инструмент применяет PointCNN, используя среды глубокого обучения.

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

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

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

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

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

  • Создается папка для хранения контрольных моделей, которые являются моделями, созданными в каждую эпоху. Имя папки совпадает со значением параметра Выходное местоположение модели с суффиксом .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

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

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

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

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})
ИмяОписаниеТип данных
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Будет использовано значение ближнего инфракрасного канала из облака точек, с информацией ближнего инфракрасного излучения.
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

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

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

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

File
out_model_stats

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

Text File

Пример кода

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

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

import arcpy (st
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

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