Preparar datos de entrenamiento de nube de puntos (3D Analyst)

Resumen

Genera los datos que se usarán para entrenar y validar un modelo de clasificación de nubes de puntos.

Uso

  • Revise la nube de puntos de entrada para asegurarse de que sus puntos estén bien clasificados para los objetos de interés. La calidad del modelo de clasificación depende de la calidad de los datos que se utilizan para el entrenamiento y la validación. Si la clasificación de la nube de puntos necesita un refinamiento, considere editar interactivamente la clasificación de puntos.

    Más información sobre la edición interactiva de la clasificación LAS

  • Los datos de entrenamiento de nube de puntos se definen mediante un directorio con una extensión .pctd con dos subdirectorios, uno que contiene los datos que se usarán para entrenar el modelo de clasificación y otro que contiene los datos que se usarán para validar el modelo entrenado. Siempre se debe especificar una nube de puntos de entrada, ya que proporciona el origen de los datos utilizados para el entrenamiento. Se puede definir el límite de entrenamiento para limitar los puntos exportados para el entrenamiento. Los datos de validación también son necesarios y se pueden especificar mediante cualquiera de las siguientes acciones:

    • Proporcione una nube de puntos de validación. Este dataset debe hacer referencia a un conjunto de puntos diferente al de la nube de puntos de entrada.
    • Proporcione una nube de puntos de validación con un límite de validación. Dará lugar a que los datos de validación se creen a partir de la parte de la nube de puntos de validación que se superpone al límite de validación.
    • Proporcione un límite de entrenamiento y un límite de validación sin una nube de puntos de validación. Dará lugar a que los datos de entrenamiento se creen a partir de las partes de la nube de puntos de entrada que intersecan el límite de entrenamiento y que la nube de puntos de validación se cree a partir de las partes de la nube de puntos de entrada que intersecan el límite de validación. Las entidades de límite no deben superponerse entre sí.
  • La nube de puntos de entrada debe tener una densidad de puntos bastante uniforme. Evalúe la nube de puntos para determinar si contiene ubicaciones con una mayor densidad de puntos, como áreas recopiladas mediante inspecciones de líneas de vuelo superpuestas o escáneres terrestres inactivos. Para lidar aerotransportado con líneas de vuelo superpuestas, se puede utilizar la herramienta Clasificar superposición LAS para marcar los puntos superpuestos y lograr una distribución de puntos más coherente. Otros tipos de nubes de puntos con puntos calientes sobremuestreados pueden reducirse a una distribución regular utilizando la herramienta LAS fino.

  • Los puntos de la nube de puntos pueden excluirse de los datos de entrenamiento mediante sus códigos de clase para ayudar a mejorar el rendimiento del entrenamiento del modelo al reducir la cantidad de puntos que deben procesarse. Los puntos excluidos deben pertenecer a clases que puedan clasificarse fácilmente y que no proporcionen necesariamente un contexto adecuado para los objetos para los que se está entrenando el modelo. Considere la posibilidad de filtrar los puntos clasificados como superposición o ruido. Los puntos clasificados como suelo también se pueden filtrar si se calcula la altura desde el suelo durante la generación de los datos de entrenamiento.

  • La información sobre la altura de referencia se puede incorporar a los datos de entrenamiento para proporcionar un atributo adicional para el proceso de entrenamiento. Se realiza especificando un ráster en el parámetro Superficie de referencia. Este ráster se utiliza para obtener el atributo de altura relativa de cada punto superpuesto. El atributo se calcula tomando el valor z de cada punto y restando la altura obtenida del ráster mediante la interpolación bilineal. La inclusión de esta información puede ayudar a diferenciar los objetos que tienen un rango distinto de altura relativa de la superficie ráster. También proporciona otra base para que la red neuronal pueda inferir las relaciones direccionales. Por ejemplo, al entrenar para líneas eléctricas y utilizar un ráster de elevación del suelo como la superficie de referencia, los puntos de línea eléctrica probablemente estarán dentro de un rango determinado de alturas relativas situadas por encima del suelo. Además, cuando la altura de referencia se basa en la elevación del suelo, puede ofrecer un pretexto para eliminar la inclusión de puntos de suelo en los datos de entrenamiento cuando la presencia de puntos de suelo no proporciona contexto útil para identificar los objetos de interés. La red neuronal intentará aprender la clasificación de todos los datos que se le proporcionan durante el entrenamiento. Dado que se puede conseguir una clasificación de suelo de alta calidad con la herramienta Clasificar el terreno LAS, no hay necesidad de entrenar la red neuronal para identificar y distinguir puntos de suelo de otras clases. Los puntos de suelo, que normalmente se representan mediante la clase 2 y, a veces con las clases 8 y 20, se pueden excluir si se incluyen en el parámetro Códigos de clase excluidos. Al hacerlo, la red neuronal procesará más rápidamente los datos de entrenamiento, ya que los puntos de suelo suelen representar aproximadamente la mitad del total de puntos capturados en un levantamiento topográfico LIDAR.

  • La superficie ráster utilizada como entrada para el parámetro Superficie de referencia se puede generar a partir de un subconjunto de puntos LAS, como puntos clasificados de suelo, filtrando el dataset LAS y utilizando la herramienta De dataset LAS a ráster. El subconjunto de puntos deseado del dataset LAS se puede filtrar utilizando cualquier combinación de códigos de clasificación, valores de retorno e indicadores de clasificación. Los filtros de puntos se pueden aplicar a través del cuadro de diálogo de propiedades de la capa del dataset LAS o la herramienta Crear capa de dataset LAS. También es posible generar una superficie ráster a partir de una capa de escena de nube de puntos con la herramienta De nube de puntos a ráster.

  • El parámetro Códigos de clase excluidos se puede utilizar para omitir puntos asociados con códigos de clase que no ofrecen un contexto útil para inferir cómo identificar objetos de interés. Omitirlos mejorará la velocidad del proceso de entrenamiento al reducir el número de puntos que se evalúan. Por ejemplo, los puntos clasificados de edificios suelen ser irrelevantes para entrenar un modelo de clasificación para objetos como semáforos, líneas eléctricas y otros activos. Los puntos de edificios también se pueden clasificar de forma fiable con la herramienta Clasificar edificio de LAS. Si se especifica la clase 6, que representa edificios, como una clase excluida, se omitirán los puntos de edificio de los datos de entrenamiento. Cualquier nube de puntos que utilice un modelo entrenado con clases excluidas debe tener esas clases clasificadas antes de aplicar el modelo. Estas clases también deben aparecer en el parámetro Códigos de clase excluidos de las herramientas Clasificar nube de puntos mediante un modelo entrenado y Evaluar datos de entrenamiento de nube de puntos para que el modelo pueda inferir su clasificación usando una nube de puntos que coincida con las características de los datos utilizados para entrenar el modelo.

  • El límite de puntos de bloqueo debe reflejar el tamaño del bloque y el espaciado medio entre puntos de los datos. El número de puntos en un bloque determinado se puede calcular de forma aproximada utilizando la herramienta Estadísticas de punto LAS cómo ráster con el parámetro Método establecido en Recuento de puntos y el tamaño de bloque deseado como tamaño de celda del ráster de salida. Un histograma de imágenes de este ráster puede ilustrar la distribución de puntos por bloque en todo el dataset. Si el histograma muestra un gran número de bloques con una amplia varianza, puede indicar la presencia de datos muestreados de forma irregular que contienen posibles puntos calientes de densas colecciones de puntos. Si un bloque contiene más puntos que el límite de puntos del bloque, ese bloque se creará varias veces para garantizar que todos sus puntos estén representados en los datos de entrenamiento. Por ejemplo, si el límite de puntos es 10 000 y un bloque determinado contiene 22 000 puntos, se crearán tres bloques de 10 000 puntos para garantizar un muestreo uniforme en cada bloque. También debe evitarse un límite de puntos por bloque que sea significativamente superior a la cantidad nominal de puntos en la mayoría de los bloques. En algunas arquitecturas, los datos se remuestrean para cumplir con el límite de puntos. Por estas razones, utilice un tamaño de bloque y un límite de puntos de bloque que se acerquen al recuento de puntos previsto que cubre la mayoría de los bloques en los datos de entrenamiento. Una vez creados los datos de entrenamiento, se muestra un histograma en la ventana de mensajes de la herramienta y se almacena una imagen del mismo en la carpeta que contiene los datos de entrenamiento y validación. Este histograma puede revisarse para determinar si se especificó una combinación adecuada de tamaño de bloque y límite de puntos. Si los valores indican un límite de puntos subóptimo, vuelva a ejecutar la herramienta con un valor más adecuado para el parámetro Límite de puntos de bloqueo.

  • Asegúrese de que la salida se escriba en una ubicación con suficiente espacio en disco para alojar los datos de entrenamiento. Esta herramienta crea bloques parcialmente superpuestos de archivos HDF5 sin comprimir que replican cada punto en cuatro bloques. En los bloques que superan el límite máximo de puntos, algunos puntos pueden duplicarse más de cuatro veces. Los datos de entrenamiento resultantes pueden ocupar al menos tres veces más espacio en disco que los datos de la nube de puntos de origen.

Parámetros

EtiquetaExplicaciónTipo de datos
Nube de puntos de entrada

La nube de puntos que se usará para crear los datos de entrenamiento y, potencialmente, los datos de validación si no se proporciona una nube de puntos de validación. En este caso, se deben definir tanto el límite de entrenamiento como el límite de validación.

LAS Dataset Layer; File
Tamaño de bloque

Diámetro de cada bloque de datos de entrenamiento que se creará a partir de la nube de puntos de entrada. Como regla general, el tamaño del bloque debe ser lo suficientemente grande como para capturar los objetos de interés y su contexto circundante.

Linear Unit
Datos de entrenamiento de salida

La ubicación y el nombre de los datos de entrenamiento de salida (archivo *.pctd).

File
Entidades de límite de entrenamiento
(Opcional)

Entidades de polígono que delimitarán el subconjunto de puntos de la nube de puntos de entrada que se utilizará para entrenar el modelo. Este parámetro es obligatorio si no se especifica el valor del parámetro Nube de puntos de validación.

Feature Layer
Nube de puntos de validación
(Opcional)

Nube de puntos que se utilizará para validar el modelo de aprendizaje profundo durante el proceso de entrenamiento. Este dataset debe hacer referencia a un conjunto de puntos diferente al de la nube de puntos de entrada para garantizar la calidad del modelo entrenado. Si no se proporciona una nube de puntos de validación, se puede utilizar la nube de puntos de entrada para definir los datasets de entrenamiento y validación proporcionando clases de entidades de polígono para los parámetros Entidades de límite de entrenamiento y Entidades de límite de validación.

LAS Dataset Layer; File
Entidades de límite de validación
(Opcional)

Entidades de polígono que delimitarán el subconjunto de puntos que se utilizarán para validar el modelo durante el proceso de entrenamiento. Si no se proporciona una nube de puntos de validación, los puntos se obtendrán de la nube de puntos de entrada y se requerirá un polígono para el parámetro Entidades del límite de entrenamiento.

Feature Layer
Filtrar bloques por código de clase
(Opcional)

Los códigos de clase que se utilizarán para limitar los bloques de datos de entrenamiento exportados. Se exportarán todos los puntos de los bloques que contengan al menos uno de los valores enumerados para este parámetro, excepto las clases especificadas en el parámetro Códigos de clase excluidos o los puntos marcados como Retenido. Se puede especificar cualquier valor del rango de 0 a 255.

Value Table
Límite de puntos de bloque
(Opcional)

El número máximo de puntos que se permitirá en cada bloque de los datos de entrenamiento. Cuando un bloque contenga puntos en exceso de este valor, se crearán varios bloques para la misma ubicación con el fin de garantizar que se utilicen todos los puntos durante el entrenamiento. El valor predeterminado es 8.192.

Long
Superficie de referencia
(Opcional)

Superficie ráster que se utilizará para proporcionar valores de altura relativos para cada punto de los datos de nube de puntos. Los puntos que no se solapen con el ráster se omitirán del análisis.

Raster Layer
Códigos de clase excluidos
(Opcional)

Códigos de clase que se excluirán del de los datos de entrenamiento. Se puede especificar cualquier valor entre 0 y 255.

Long

arcpy.ddd.PreparePointCloudTrainingData(in_point_cloud, block_size, out_training_data, {training_boundary}, {validation_point_cloud}, {validation_boundary}, {class_codes_of_interest}, {block_point_limit}, {reference_height}, {excluded_class_codes})
NombreExplicaciónTipo de datos
in_point_cloud

La nube de puntos que se usará para crear los datos de entrenamiento y, potencialmente, los datos de validación si no se proporciona una nube de puntos de validación. En este caso, se deben definir tanto el límite de entrenamiento como el límite de validación.

LAS Dataset Layer; File
block_size

Diámetro de cada bloque de datos de entrenamiento que se creará a partir de la nube de puntos de entrada. Como regla general, el tamaño del bloque debe ser lo suficientemente grande como para capturar los objetos de interés y su contexto circundante.

Linear Unit
out_training_data

La ubicación y el nombre de los datos de entrenamiento de salida (archivo *.pctd).

File
training_boundary
(Opcional)

Entidades de polígono que delimitarán el subconjunto de puntos de la nube de puntos de entrada que se utilizará para entrenar el modelo. Este parámetro es obligatorio si no se especifica el valor del parámetro validation_point_cloud.

Feature Layer
validation_point_cloud
(Opcional)

Origen de la nube de puntos que se utilizará para validar el modelo de aprendizaje profundo. Este dataset debe hacer referencia a un conjunto de puntos diferente al de la nube de puntos de entrada para garantizar la calidad del modelo entrenado. Si no se proporciona una nube de puntos de validación, se puede utilizar la nube de puntos de entrada para definir los datasets de entrenamiento y validación proporcionando clases de entidades de polígono para los parámetros training_boundary y validation_boundary.

LAS Dataset Layer; File
validation_boundary
(Opcional)

Entidades de polígono que delimitarán el subconjunto de puntos que se utilizarán para validar el modelo durante el proceso de entrenamiento. Si no se proporciona una nube de puntos de validación, los puntos se obtendrán de la nube de puntos de entrada y se requerirá un polígono para el parámetro training_boundary.

Feature Layer
class_codes_of_interest
[class_codes_of_interest,...]
(Opcional)

Los códigos de clase que se utilizarán para limitar los bloques de datos de entrenamiento exportados. Se exportarán todos los puntos de los bloques que contengan al menos uno de los valores enumerados para este parámetro, excepto las clases especificadas en el parámetro excluded_class_codes o los puntos marcados como Retenido. Se puede especificar cualquier valor del rango de 0 a 255.

Value Table
block_point_limit
(Opcional)

El número máximo de puntos que se permitirá en cada bloque de los datos de entrenamiento. Cuando un bloque contenga puntos en exceso de este valor, se crearán varios bloques para la misma ubicación con el fin de garantizar que se utilicen todos los puntos durante el entrenamiento. El valor predeterminado es 8.192.

Long
reference_height
(Opcional)

Superficie ráster que se utilizará para proporcionar valores de altura relativos para cada punto de los datos de nube de puntos. Los puntos que no se solapen con el ráster se omitirán del análisis.

Raster Layer
excluded_class_codes
[excluded_class_codes,...]
(Opcional)

Códigos de clase que se excluirán del de los datos de entrenamiento. Se puede especificar cualquier valor entre 0 y 255.

Long

Muestra de código

Ejemplo de PreparePointCloudTrainingData (ventana de Python)

En el siguiente ejemplo se muestra cómo usar esta herramienta en la ventana de Python.

import arcpy
arcpy.env.workspace = 'C:/data'
arcpy.ddd.PreparePointCloudTrainingData('training_source.lasd', '35 Meters', 'vegetation_training.pctd', 
                                        validation_point_cloud='validation_source.lasd', 
                                        class_codes_of_interest=[14, 15], block_point_limit=12000,
                                        reference_height='Ground_Elevation.tif', 
                                        excluded_class_codes=[2, 6, 8, 9, 20])

Información de licenciamiento

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

Temas relacionados