Skip to main content

Entrenar modelo de clasificación de nube de puntos (Herramientas de 3D Analyst)

Resumen

Entrena un modelo de aprendizaje profundo para la clasificación de nubes de puntos.

Más información sobre cómo entrenar un modelo de clasificación de nube de puntos

Uso

  • Esta herramienta requiere la instalación de Deep Learning Essentials, que proporciona múltiples soluciones de redes neuronales que incluyen arquitecturas neuronales para clasificar nubes de puntos.

    Para configurar su equipo para usar marcos de aprendizaje profundo en ArcGIS Pro, consulte Instalar marcos de aprendizaje profundo para ArcGIS.

  • El modelo de clasificación de nubes puntos se puede entrenar con una tarjeta gráfica NVIDIA compatible con CUDA, o bien con la CPU. Usar la GPU suele ser más rápido que usar la CPU. Utilice la CPU solo si no hay ninguna GPU disponible. Al utilizar la CPU para entrenar, empiece utilizando la arquitectura RandLA-Net, ya que consume menos memoria que PointCNN. También puede experimentar utilizando la muestra de entrenamiento más pequeña posible para estimar el tiempo que se tardará en procesar los datos antes del entrenamiento con el dataset de entrenamiento completo.

  • Al utilizar la GPU para entrenar un modelo en un equipo con varias tarjetas gráficas, la herramienta seleccionará la tarjeta gráfica más rápida del equipo. También puede especificar la GPU con la configuración del entorno Id. de GPU. Si hay varias tarjetas gráficas en el equipo, puede maximizar el rendimiento del entrenamiento al dedicar la tarjeta gráfica con los mayores recursos de cálculo para el entrenamiento y la que tiene menos recursos para la visualización. Si la GPU seleccionada también se utiliza para la visualización, el sistema operativo reduce su memoria disponible y cualquier aplicación que utilice la pantalla durante el proceso de entrenamiento.

  • Usar un modelo preentrenado es ventajoso, especialmente cuando se enfrentan limitaciones de datos, tiempo o recursos computacionales. Los modelos preentrenados reducen la necesidad de un entrenamiento exhaustivo y ofrecen un punto de partida fiable que puede acelerar la creación de un modelo útil. Para aprovechar el modelo preentrenado, los nuevos datos de entrenamiento deben ser compatibles con el modelo preentrenado. Asegúrese de que los nuevos datos de entrenamiento tengan los mismos atributos y códigos de clase que los datos de entrenamiento que se utilizaron para crear el modelo preentrenado. Si los códigos de clase de los datos de entrenamiento no coinciden con las clases en el modelo preentrenado, las clases de los datos de entrenamiento se deben reasignar en consecuencia.

  • Cuando la herramienta se está ejecutando, su mensaje de progreso devuelve las siguientes estadísticas sobre los resultados de entrenamiento que se lograron en cada época:

    • Epoch—El número de época con el que está asociado el resultado

    • Training Loss—El resultado de la función de pérdida de entropía promediada para los datos de entrenamiento

    • Validation Loss—El resultado de la función de pérdida de entropía que se determinó al aplicar el modelo entrenado en la época a los datos de validación

    • Accuracy—La relación de los puntos de los datos de validación clasificados correctamente por el modelo entrenado en la época (verdaderos positivos) y todos los puntos de los datos de validación

    • Precision—El promedio de macro de la precisión para todos los códigos de clase

    • Recall—El promedio de macro de la recuperación para todos los códigos de clase

    • F1 Score—El valor medio armónico del promedio de macro de la precisión y los valores de recuperación de todos los códigos de clase

    Se considera que un modelo que alcanza una pérdida de entrenamiento baja, pero una pérdida de validación elevada, se ajusta en exceso a los datos de entrenamiento, por lo que detecta patrones a partir de artefactos en los datos de entrenamiento y provoca que el modelo no funcione bien con los datos de validación. Se considera que un modelo que alcanza una gran pérdida de entrenamiento y una gran pérdida de validación se ajusta de forma insuficiente a los datos de entrenamiento, por lo que no se aprende efectivamente ningún patrón para producir un modelo utilizable.

    Más información sobre la evaluación de los resultados de entrenamiento de nube de puntos

  • Se crea una carpeta para almacenar los modelos de punto de control, que son modelos que se crean al final de cada época. El nombre de esta carpeta es el mismo que el del modelo con el sufijo .checkpoints y se almacena en el valor del parámetro Ubicación de modelo de salida. Una vez finalizado el entrenamiento, se crea una tabla CSV con un nombre que empieza con el valor del parámetro Nombre de modelo de salida y termina con _stats.csv en la carpeta de punto de control. Esta tabla incluye los siguientes campos relacionados con los resultados obtenidos para cada código de clase y época:

    • Epoch—El número de época asociado a los resultados de la fila. Este valor corresponde al modelo creado en el directorio de modelos de punto de control. Los resultados se obtienen aplicando el modelo entrenado en la época a los datos de validación.

    • Class_Code—El código de clase cuyos resultados se notifican.

    • Precision—La relación entre el número de puntos que se clasificaron correctamente (positivos verdaderos) y todos los puntos clasificados (positivos verdaderos y falsos positivos).

    • Recall—La relación entre el número de puntos clasificados correctamente (positivos verdaderos) y todos los puntos que se deberían haber clasificado con este valor (positivos verdaderos y falsos negativos).

    • F1_Score—El valor medio armónico de la precisión y el valor de recuperación.

  • La memoria dedicada utilizada durante el entrenamiento es la suma de la memoria asignada por el marco de aprendizaje profundo y el tamaño de los datos procesados en cada lote de una iteración en una época determinada. El tamaño de los datos de cada lote depende del número de atributos de punto adicionales especificados en el parámetro Selección de atributos, del número total de puntos de un bloque determinado y del número de bloques que se procesan en cada lote, tal y como se especifica en el parámetro Tamaño de lote. El número máximo de puntos por bloque se determina cuando se exportan los datos de entrenamiento y se debe dar por hecho este valor a la hora de estimar la posible huella de memoria de la operación de entrenamiento.

  • La opción Altura relativa del parámetro Selección de atributos es un atributo que identifica la altura de un punto a partir de una superficie de referencia, como un modelo de elevación de suelo desnudo. El uso de este atributo puede mejorar potencialmente la capacidad del modelo para aprender relaciones direccionales durante el proceso de entrenamiento.

Parámetros

Etiqueta Explicación Tipo de datos

Datos de entrenamiento de entrada

Los datos de entrenamiento de la nube de puntos (archivo *.pctd) que se usan para entrenar el modelo de clasificación.

File

Ubicación de modelo de salida

Una carpeta existente que almacenará el nuevo directorio que contiene el modelo de aprendizaje profundo.

Folder

Nombre de modelo de salida

Nombre del archivo de definición del modelo de salida de Esri (*.emd), paquete de aprendizaje profundo (*.dlpk`) y directorio que se crea para almacenarlos.

String

Modelo preentrenado

(Opcional)

El modelo preentrenado que se perfeccionará. Si se proporciona un modelo preentrenado, los datos de entrenamiento de entrada deben tener los mismos atributos, códigos de clase y número máximo de puntos utilizados por los datos de entrenamiento que generaron este modelo.

File

Selección de atributos

(Opcional)

Especifica los atributos de punto que se utilizarán para entrenar el modelo. Solo estarán disponibles los atributos que estén presentes en los datos de entrenamiento de la nube de puntos. No se incluyen atributos adicionales de forma predeterminada.

  • IntensityThe measure of the magnitude of the lidar pulse return will be used.

  • Return NumberThe ordinal position of the point obtained from a given lidar pulse will be used.

  • Number of ReturnsThe total number of lidar returns that were identified as points from the pulse associated with a given point will be used.

  • Red BandThe red band's value from a point cloud with color information will be used.

  • Green BandThe green band's value from a point cloud with color information will be used.

  • Blue BandThe blue band's value from a point cloud with color information will be used.

  • Near Infrared BandThe near infrared band's value from a point cloud with near infrared information will be used.

  • Relative HeightThe relative height of each point in relation to a reference surface, which would typically be a bare earth DEM, will be used.

String

Puntos mínimos por bloque

(Opcional)

Número mínimo de puntos que deben estar presentes en un bloque determinado para que se pueda utilizar al entrenar el modelo. El valor predeterminado es 0.

Long

Reasignación de clase

(Opcional)

Define cómo se asignarán los valores de código de clase a valores nuevos antes de entrenar el modelo de aprendizaje profundo.

Columnas de la tabla de valores:

  • Current ClassThe class code value in the training data.

  • Remapped ClassThe class code that the existing code will be changed to.

Value Table

Códigos de clase de interés

(Opcional)

Los códigos de clase que se utilizarán para filtrar los bloqueos de los datos de entrenamiento. Cuando se especifican códigos de clase de interés, todos los demás códigos de clase se reasignan al código de clase de fondo.

Long

Código de clase de fondo

(Opcional)

El valor del código de clase que se utilizará para todos los demás códigos de clase cuando se hayan especificado códigos de clase de interés.

Long

Descripción de la clase

(Opcional)

Las descripciones de lo que representa cada código de clase en los datos de entrenamiento.

Columnas de la tabla de valores:

  • Current CodeThe class code value that was learned by the model.

  • Class DescriptionThe object described by the class code.

Value Table

Criterios de selección de modelo

(Opcional)

Especifica la base estadística que se utilizará para determinar el modelo final.

  • Validation LossThe model that achieves the lowest result when the entropy loss function is applied to the validation data will be used.

  • RecallThe model that achieves the best macro average of the recall for all class codes will be used. Each class code's recall value is determined by the ratio of correctly classified points (true positives) over all the points that should have been classified with this value (expected positives). This is the default.

  • F1 ScoreThe model that achieves the best harmonic mean between the macro average of the precision and recall values for all class codes will be used. This provides a balance between precision and recall, which favors better overall performance.

  • PrecisionThe model that achieves the best macro average of the precision for all class codes will be used. Each class code's precision is determined by the ratio of points that are correctly classified (true positives) over all the points that are classified (true positives and false positives).

  • AccuracyThe model that achieves the highest ratio of corrected classified points over all the points in the validation data will be used.

String

Número máximo de épocas

(Opcional)

Número de veces que cada bloque de datos se transmitirá hacia adelante y hacia atrás a través de la red neuronal. El valor predeterminado es 25.

Long

Iteraciones por época (%)

(Opcional)

Porcentaje de datos que se procesarán en cada época de entrenamiento. El valor predeterminado es 100.

Double

Tasa de aprendizaje

(Opcional)

La velocidad a la que la información existente se sobrescribirá con información nueva. Si no se proporciona ningún valor, la tasa de aprendizaje óptima se extraerá de la curva de aprendizaje durante el proceso de entrenamiento. Esta es la opción predeterminada.

Double

Tamaño de lote

(Opcional)

Número de bloques de datos de entrenamiento que se procesarán en un momento dado. El valor predeterminado es 2.

Long

Detener el entrenamiento cuando el modelo ya no mejore

(Opcional)

Especifica si el entrenamiento del modelo se detiene cuando la métrica especificada en el parámetro Criterios de selección del modelo no registre ninguna mejora después de cinco épocas consecutivas.

  • ActivadoThe model training will stop when the model is no longer improving. This is the default.

  • DesactivadoThe model training will continue until the maximum number of epochs has been reached.

Boolean

Estrategia de tasa de aprendizaje

(Opcional)

Especifica cómo se modificará la tasa de aprendizaje durante el entrenamiento.

  • One Cycle Learning RateThe learning rate will be cycled throughout each epoch using Fast.AI's implementation of the 1cycle technique for training neural networks to help improve the training of a convolutional neural network. This is the default.

  • Fixed Learning RateThe same learning rate will be used throughout the training process.

String

Arquitectura de modelo

(Opcional)

Especifica la arquitectura de red neuronal que se utilizará para entrenar el modelo. Cuando se especifica un modelo preentrenado, la arquitectura utilizada para crear el modelo preentrenado se configurará automáticamente.

  • PointCNNThe PointCNN architecture will be used.

  • RandLA-NetThe RandLA-Net architecture will be used. RandLA-Net is built on the principles of simple random sampling and local feature aggregation.

  • Semantic Query NetworkThe Semantic Query Network (SQN) architecture will be used. SQN does not require a comprehensive classification of the training data as the other neural network architectures do.

  • Point Transformer V3The Point Transformer V3 architecture will be used. This is the default.

String

Función de pérdida

(Opcional)

Especifica la función de pérdida que se utilizará durante el entrenamiento.

  • Cross Entropy LossCross entropy loss will be used. This function is best suited for training data in which each class has a similar number of points to the other classes. This is the default.

  • Focal LossFocal loss will be used. This function is best suited for training data in which the classes that are being trained may have point counts with great variation.

String

Salida derivada

Etiqueta Explicación Tipo de datos

Modelo de salida

Modelo resultante generado por esta herramienta.

File

Estadísticas de modelo de salida

El archivo .csv que contiene las puntuaciones de precisión, recuperación y F1 para cada código de clase y época.

Text File

Estadísticas de época de salida

El archivo .csv que contiene la pérdida de entrenamiento, la pérdida de validación, la precisión, la exactitud, la recuperación y las puntuaciones F1 obtenidas en cada época.

Text File

Entornos

Tipo de procesador, Id. de GPU

Información de licenciamiento

  • Basic: Requiere 3D Analyst
  • Standard: Requiere 3D Analyst
  • Avanzado: Requiere 3D Analyst