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

Resumen

Genera los datos que se usarán para entrenar y validar un modelo PointCNN para clasificar una nube 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, exporte los datos de entrenamiento y validación utilizando un tamaño de bloque que capture lo suficiente el objeto que se está clasificando y su contexto circundante. El tamaño del bloque no tiene por qué capturar todo el objeto, siempre y cuando haya datos circundantes suficientes para obtener el contexto necesario para lograr una clasificación razonable. Si un bloque contiene más puntos que el límite de puntos especificado, 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.

  • Se recomienda evitar 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 idea 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 para entrenar el modelo, 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 acabar duplicándose 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.

  • 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

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 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 ancho y la altura bidimensionales de cada tesela HDF5 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)

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 la nube de puntos de validación, se deben proporcionar los valores de 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 entrenado. 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
Códigos de clase de interés
(Opcional)

Los códigos de clase que limitarán los bloques de datos de entrenamiento exportados a solo aquellos que contengan los valores especificados. Se exportarán todos los puntos del bloque de cualquier bloque que contenga al menos uno de los códigos de clase enumerados en este parámetro.

Long
Límite de puntos de bloque
(Opcional)

El número máximo de puntos permitido 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

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})
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 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 ancho y la altura bidimensionales de cada tesela HDF5 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 la nube de puntos de validación, se deben proporcionar los valores de 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 entrenado. 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 limitarán los bloques de datos de entrenamiento exportados a solo aquellos que contengan los valores especificados. Se exportarán todos los puntos del bloque de cualquier bloque que contenga al menos uno de los códigos de clase enumerados en este parámetro.

Long
block_point_limit
(Opcional)

El número máximo de puntos permitido 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

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', '20 Meters', 'vegetation_training.pctd', 
                                        validation_point_cloud='validation_source.lasd')

Información de licenciamiento

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

Temas relacionados