| Etiqueta | Explicación | Tipo de datos |
Nube de puntos de entrada | La nube de puntos que se utilizará para crear los datos de entrenamiento para la detección de objetos. | LAS Dataset Layer; File |
Entidades de entrenamiento de entrada | Las entidades multiparche que identificarán los objetos que se utilizarán para entrenar el modelo. | Feature Layer |
Entidades de validación de entrada | Las entidades multiparche que identificarán los objetos que se utilizarán para validar el modelo durante el proceso de entrenamiento. | Feature Layer |
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 (un archivo *.pcotd). | 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 |
Campo de código de entrenamiento (Opcional) | El campo que identifica el Id. único para cada tipo de objeto en las entidades multiparche de entrenamiento. Cuando no se define ningún campo, a los objetos se les asigna un Id. de 0. | Field |
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 |
Campo de código de validación (Opcional) | El campo que identifica el Id. único para cada tipo de objeto en las entidades multiparche de validación. Cuando no se define ningún campo, a los objetos se les asigna un Id. de 0. | Field |
Límite de puntos de bloque (Opcional) | El número máximo de puntos que se pueden almacenar 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 500.000. | Long |
Superficie de altura 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 |
Exportar solo bloques de entrenamiento que contengan objetos (Opcional) | Especifica si los datos de entrenamiento solo incluirán bloques que contienen objetos o si también incluirán bloques que no contienen objetos. Los datos utilizados para la validación no se verán afectados por este parámetro.
| Boolean |
Resumen
Crea datos de entrenamiento de nube de puntos para modelos de detección de objetos con aprendizaje profundo.
Ilustración

Uso
Los datos de entrenamiento de detección de objetos de nube de puntos se definen mediante un directorio con una extensión .pcotd que contiene dos subdirectorios: uno que contiene los datos utilizados para entrenar el modelo y el otro que contiene los datos utilizados para validar el modelo durante todo el proceso de entrenamiento. Siempre se debe especificar una nube de puntos de entrada junto con entidades multiparche separadas que representen los cuadros delimitadores de los objetos para el entrenamiento y la validación. Se puede proporcionar un polígono límite para limitar los datos que se exportan para el entrenamiento. Los datos de validación se pueden definir de la siguiente manera:
- Proporcione una nube de puntos de validación además de la nube de puntos de entrada. Este dataset debe hacer referencia a un conjunto de puntos diferente al de la nube de puntos de entrada. También se puede especificar un límite para recortar la nube de puntos de validación.
- Proporcione solo una nube de puntos de entrada con un límite de entrenamiento y validación. Esto dará como resultado que tanto los datos de entrenamiento como los de validación provengan de la misma nube de puntos de entrada, por lo que no es necesario especificar un dataset para el parámetro Nube de puntos de validación. Evite superposiciones entre los dos datasets de polígonos límite para no utilizar los mismos datos de nube de puntos para el entrenamiento y la validación.
Contenga cada tipo de objeto que esté presente en la nube de puntos dentro de un cuadro delimitador multiparche. Los objetos no identificados en los datos de entrenamiento o validación harán que el modelo no pueda aprender de manera efectiva cómo identificar el objeto. Si la nube de puntos contiene objetos no identificados, utilice entidades de límite para limitar los datasets de entrenamiento exportados a lugares donde los objetos estaban contenidos correctamente en un cuadro delimitador.
No es necesario clasificar los puntos que representan los objetos para usarlos en el dataset de entrenamiento para la detección de objetos. Esto simplifica la tarea de etiquetar los objetos y solo crea cuadros delimitadores como entidades multiparche. Los cuadros delimitadores se pueden generar mediante la edición 3D interactiva de una clase de entidad multiparche. Sin embargo, si los objetos están representados por nubes de puntos clasificadas, se pueden crear cuadros delimitadores para esos puntos mediante la herramienta Extraer objetos de la nube de puntos.
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.
Si es posible, especifique un tamaño de bloque que capture suficientemente los objetos para los que se entrenará el modelo. Aunque es posible que cada bloque no contenga siempre el objeto completo, los bloques superpuestos que se crean en los datos de entrenamiento capturarán una cantidad suficiente de representaciones variadas del objeto para entrenar un modelo satisfactorio.
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.
El límite del punto de bloqueo debe tener en cuenta la capacidad de memoria dedicada de la GPU del ordenador que se utilizará para el entrenamiento. La asignación de memoria durante el entrenamiento dependerá del número de puntos por bloque, los atributos que se utilicen y el número total de bloques que se procesen simultáneamente en un lote determinado. Si se necesita un tamaño de bloque y un límite de puntos mayores para entrenar eficazmente el modelo, se puede reducir el tamaño del lote en la etapa 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 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.
La ventana de mensaje de la herramienta muestra una proporción de cuartil para cada tipo de objeto. Esta relación se calcula dividiendo los volúmenes de objetos en el tercer cuartil por el primer cuartil. Esta métrica sirve como indicador de la variabilidad del tamaño entre los objetos. Una proporción de cuartil más grande sugiere una mayor variabilidad en los volúmenes de los objetos, mientras que una proporción más pequeña indica menos variabilidad. Si hay una variación significativa en el volumen, es posible que necesite ajustar los parámetros de vóxel en el parámetro Ajustes de arquitectura de la herramienta Entrenar modelo de detección de objetos de nube de puntos para obtener un modelo preciso.
Parámetros
arcpy.ddd.PreparePointCloudObjectDetectionTrainingData(in_point_cloud, in_training_features, in_validation_features, block_size, out_training_data, {training_boundary}, {training_code_field}, {validation_point_cloud}, {validation_boundary}, {validation_code_field}, {block_point_limit}, {reference_height}, {excluded_class_codes}, {blocks_contain_objects})| Nombre | Explicación | Tipo de datos |
in_point_cloud | La nube de puntos que se utilizará para crear los datos de entrenamiento para la detección de objetos. | LAS Dataset Layer; File |
in_training_features | Las entidades multiparche que identificarán los objetos que se utilizarán para entrenar el modelo. | Feature Layer |
in_validation_features | Las entidades multiparche que identificarán los objetos que se utilizarán para validar el modelo durante el proceso de entrenamiento. | Feature Layer |
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 (un archivo *.pcotd). | 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 |
training_code_field (Opcional) | El campo que identifica el Id. único para cada tipo de objeto en las entidades multiparche de entrenamiento. Cuando no se define ningún campo, a los objetos se les asigna un Id. de 0. | Field |
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 |
validation_code_field (Opcional) | El campo que identifica el Id. único para cada tipo de objeto en las entidades multiparche de validación. Cuando no se define ningún campo, a los objetos se les asigna un Id. de 0. | Field |
block_point_limit (Opcional) | El número máximo de puntos que se pueden almacenar 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 500.000. | 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 |
blocks_contain_objects (Opcional) | Especifica si los datos de entrenamiento solo incluirán bloques que contienen objetos o si también incluirán bloques que no contienen objetos. Los datos utilizados para la validación no se verán afectados por este parámetro.
| Boolean |
Muestra de código
En el siguiente ejemplo se muestra cómo usar esta herramienta en la ventana de Python.
import arcpy
arpy.env.workspace = r"C:\GIS_Data"
arcpy.ddd.PreparePointCloudObjectDetectionTrainingData("Training.lasd", r"Objects.fgdb\Training_FCs",
r"Objects.fgdb\Validation_FCs", "12 Meters",
"Training_Cars.pcotd", training_code_field="Car_Type",
validation_code_field="Car_Type", reference_surface="DEM.tif",
excluded_classes=[2, 7, 18])Entornos
Información de licenciamiento
- Basic: Requiere 3D Analyst
- Standard: Requiere 3D Analyst
- Advanced: Requiere 3D Analyst