Etiqueta | Explicación | Tipo 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 | El diámetro de cada bloque de datos de entrenamiento que se creará a partir de la nube de puntos de entrada. Como norma general, el tamaño de bloque debe ser lo suficientemente grande 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) | Las entidades de polígono que delinearán el subconjunto de puntos de la nube de puntos de entrada que se utilizarán para entrenar el modelo. Este parámetro es necesario cuando no se proporciona el valor del parámetro Nube de puntos de validación. | Feature Layer |
Nube de puntos de validación (Opcional) | La nube de puntos que se usará para validar el modelo de aprendizaje profundo durante el proceso de entrenamiento. Este dataset debe hacer referencia a un conjunto de puntos distinto 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 entidad poligonal 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) | Las entidades poligonales que delineará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 de 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) | La superficie ráster que se utilizará para proporcionar valores de altura relativa para cada punto en los datos de nube de puntos. Los puntos que no se superpongan con el ráster se omitirán del análisis. | Raster Layer |
Códigos de clase excluidos (Opcional) | Los códigos de clase que se excluirán de los datos de entrenamiento. Se puede especificar cualquier valor del rango de 0 a 255. | Long |
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 estudios de líneas de vuelo superpuestas o escáneres terrestres inactivos. Para LIDAR aéreo con líneas de vuelo superpuestas, la herramienta Clasificar solapamiento de LAS se puede utilizar para marcar los puntos superpuestos y lograr una distribución de puntos más uniforme. Otros tipos de nubes de puntos con puntos calientes sobremuestreados se pueden reducir a una distribución regular utilizando la herramienta LAS fino.
Los puntos de la nube de puntos se pueden excluir 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 no necesariamente proporcionen un contexto adecuado para los objetos para los que se entrena el modelo. Considere filtrar los puntos clasificados como superposición o ruido. Los puntos clasificados de suelo también se pueden filtrar si se calcula la altura desde el suelo durante la generación de 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 bloque debe reflejar el tamaño del bloque y el espaciado de punto promedio de los datos. El número de puntos de un tamaño de bloque determinado se puede aproximar con la herramienta Estadísticas de punto LAS como ráster con la opción Recuento de puntos del parámetro Método y el tamaño de bloque deseado como tamaño de celda del ráster de salida. Un histograma de imagen de este ráster puede ilustrar la distribución de puntos por bloque en el dataset. Si el histograma muestra una gran cantidad de bloques con una amplia varianza, puede indicar la presencia de datos muestreados de manera irregular con posibles puntos calientes de colecciones de puntos densos. 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 asegurar un muestreo uniforme en cada bloque. También se debe evitar un límite de puntos de bloque que sea significativamente mayor que la cantidad nominal de puntos en la mayoría de los bloques. En algunas arquitecturas, los datos se muestrean ascendentemente 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 cubra 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 mensaje de la herramienta y una imagen del mismo se almacena en la carpeta que contiene los datos de entrenamiento y validación. Este histograma se puede revisar 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 punto subóptimo, vuelva a ejecutar la herramienta con un valor más apropiado para el parámetro Límite de punto de bloque.
-
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 descomprimidos que replican cada punto en cuatro bloques. En aquellos bloques que superen el límite máximo de puntos, algunos puntos pueden estar duplicados 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 nube de punto de origen.
Parámetros
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})
Nombre | Explicación | Tipo 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 | El diámetro de cada bloque de datos de entrenamiento que se creará a partir de la nube de puntos de entrada. Como norma general, el tamaño de bloque debe ser lo suficientemente grande 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) | Las entidades de polígono que delinearán el subconjunto de puntos de la nube de puntos de entrada que se utilizarán para entrenar el modelo. Este parámetro es necesario cuando no se proporciona el valor del parámetro validation_point_cloud. | Feature Layer |
validation_point_cloud (Opcional) | El 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 distinto 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 entidad poligonal para los parámetros training_boundary y validation_boundary. | LAS Dataset Layer; File |
validation_boundary (Opcional) | Las entidades poligonales que delineará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) | La superficie ráster que se utilizará para proporcionar valores de altura relativa para cada punto en los datos de nube de puntos. Los puntos que no se superpongan con el ráster se omitirán del análisis. | Raster Layer |
excluded_class_codes [excluded_class_codes,...] (Opcional) | Los códigos de clase que se excluirán de los datos de entrenamiento. Se puede especificar cualquier valor del rango de 0 a 255. | Long |
Muestra de código
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])