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 especifica 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 tamaño del diámetro de cada tesela HDF5 circular creada 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 (*.pctd). | File |
Entidades de límite de entrenamiento (Opcional) | Los polígonos de límite que delinearán el subconjunto de puntos de la nube de puntos de entrada que se utilizarán para entrenar el modelo de aprendizaje profundo. | 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 especifica 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 evaluar el modelo durante el proceso de entrenamiento. Si no se especifica una nube de puntos de validación, los puntos se obtendrán de la nube de puntos de entrada. | 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. | 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 PointCNN para la 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. Opcionalmente, 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í.
Al entrenar el modelo de clasificación de nube de puntos, cree los datos de entrenamiento utilizando un tamaño de bloque que capture lo suficiente el objeto que se está clasificando y los datos relevantes para capturar su contexto circundante. El tamaño del bloque no tiene por qué capturar todo el objeto, siempre y cuando haya datos circundantes suficientes para inferir adecuadamente una estrategia de clasificación. Si un bloque contiene más puntos que el límite de puntos de bloque, se crearán varios bloques para la misma ubicación. Por ejemplo, si el valor del parámetro Límite de puntos de bloque 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. Algunos puntos se repetirán en dos bloques, pero todos los puntos se almacenarán en al menos un bloque.
Evite el uso de un tamaño de bloque y un límite de puntos de bloque que darán lugar a la creación de muchos bloques que superan el límite de puntos. 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, generando un ráster de salida que utilice la opción Recuento de puntos para el parámetro Método. Este ráster debe tener un tamaño de celda que coincida con el tamaño de bloque deseado. Puede examinar el histograma de imagen de este ráster para tener una aproximación del número de bloques que se incluyen en un tamaño de bloque específico y ajustar el límite de punto en consecuencia.
El valor del parámetro Límite de puntos de bloque también debe tener en cuenta la capacidad de memoria de GPU dedicada del equipo que se utilizará para entrenar el modelo de aprendizaje profundo. La asignación de memoria durante el entrenamiento dependerá del número de atributos que se utilicen, el número de puntos de un bloque determinado y el número total de bloques procesados en un lote de iteración determinado. Si se necesita un tamaño de bloque más grande junto con un límite de puntos mayor para entrenar el modelo con eficacia, el tamaño de lote se puede reducir en el paso de entrenamiento para garantizar que se puedan procesar más puntos.
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.
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.
Una superficie ráster que se puede utilizar 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 de sus propiedades de capa y utilizando la herramienta De dataset LAS a ráster. Si la herramienta se utiliza en Python, se puede utilizar la herramienta Crear capa de dataset LAS para filtrar por los puntos deseados antes de crear el ráster. También es posible generar una superficie de suelo a partir de una capa de escena de nube de puntos con la herramienta De nube de puntos a ráster. Las superficies ráster que no proceden de la nube de puntos de entrada también se pueden utilizar, pero debe asegurarse de que los valores z del ráster correspondan correctamente con los valores z de la nube de puntos.
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. Esto 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 diversos activos de ferrocarril. Los puntos de edificios también se pueden clasificar con la herramienta Clasificar edificio de LAS. Si se especifica la clase 6, que representa edificios, como una clase excluida, se omitirían 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.
Si la referencia espacial de la nube de puntos de entrada no utiliza un sistema de coordenadas proyectadas, se puede utilizar el entorno Sistema de coordenadas de salida para definir un sistema de coordenadas proyectadas que se utilizará al clasificar sus puntos.
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 especifica 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 tamaño del diámetro de cada tesela HDF5 circular creada 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 (*.pctd). | File |
training_boundary (Opcional) | Los polígonos de límite que delinearán el subconjunto de puntos de la nube de puntos de entrada que se utilizarán para entrenar el modelo de aprendizaje profundo. | 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 especifica 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 evaluar el modelo durante el proceso de entrenamiento. Si no se especifica una nube de puntos de validación, los puntos se obtendrán de la nube de puntos de entrada. | 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. | 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])
Entornos
Información de licenciamiento
- Basic: Requiere 3D Analyst
- Standard: Requiere 3D Analyst
- Advanced: Requiere 3D Analyst