Préparer les données d’entraînement du nuage de points (3D Analyst)

Synthèse

Génère les données allant être utilisées pour entraîner et valider un modèle PointCNN afin de classer un nuage de points.

Utilisation

  • Examinez le nuage de points en entrée afin de vérifier que ses points sont correctement classés pour les objets d’intérêt. La qualité du modèle de classification dépend de la qualité des données utilisées pour l’entraînement et la validation. Si vous devez affiner la classification du nuage de points, vous pouvez envisager de mettre à jour la classification des points de manière interactive.

    En savoir plus sur la mise à jour interactive de la classification LAS

  • Les données d’entraînement du nuage de points sont définies par un répertoire doté d’une extension .pctd et de deux sous-répertoires, un contenant les données qui seront utilisées pour l’entraînement du modèle de classification et l’autre incluant les données qui seront utilisées pour la validation du modèle entraîné. Un nuage de points en entrée doit toujours être spécifié car il indique la source des données utilisées pour l’entraînement. Vous pouvez éventuellement définir la limite d’entraînement afin de limiter les points exportés pour l’entraînement. Les données de validation sont également requises et peuvent être spécifiées en procédant de l’une des manières suivantes :

    • Indiquez un nuage de points de validation. Ce jeu de données doit référencer un ensemble de points différent du nuage de points en entrée.
    • Indiquez un nuage de points de validation avec une limite de validation. Cela entraîne la création des données de validation à partir de la portion du nuage de points de validation superposée à la limite de validation.
    • Indiquez une limite d’entraînement et une limite de validation sans nuage de points de validation. Les données d’entraînement sont alors créées à partir des portions du nuage de points en entrée qui intersectent la limite d’entraînement et le nuage de points de validation est créé à partir des portions du nuage de points en entrée qui intersectent la limite de validation. Les entités de limite ne doivent pas se chevaucher.
  • Lorsque vous entraînez le modèle de classification du nuage de points, exportez les données d’entraînement et de validation en utilisant une taille de bloc qui capture suffisamment l’objet classé et le contexte associé environnant. Il n’est pas nécessaire que la taille de bloc capture la totalité de l’objet, à condition que les données environnantes soient suffisantes pour obtenir le contexte nécessaire à une classification raisonnable. Si un bloc contient un nombre de points supérieur à la limite de points spécifiée, plusieurs blocs sont créés pour le même emplacement. Par exemple, si la valeur du paramètre Limite de points de bloc est de 10 000 et qu’un bloc donné contient 22 000 points, trois blocs de 10 000 points sont créés, garantissant ainsi l’échantillonnage uniforme dans chaque bloc. Certains points sont répétés dans deux blocs, mais tous les points sont stockés au moins dans un bloc.

  • Il est préférable d’éviter d’utiliser une limite de taille de bloc et de points de bloc allant entraîner la création de nombreux blocs dépassant la limite de points. Il est possible d’obtenir une approximation du nombre de points dans une taille de bloc donnée à l’aide de l’outil Statistiques de points LAS sous forme de raster en générant un raster en sortie qui utilise l’option Nombre de points du paramètre Méthode. Ce raster doit avoir une taille de cellule qui correspond à la taille de bloc souhaitée. Vous pouvez examiner l’histogramme d’image de ce raster pour avoir une idée du nombre de blocs correspondant à une taille de bloc spécifique et ajuster la limite de points en conséquence.

    La valeur du paramètre Limite de points de bloc doit également être un facteur de la capacité de mémoire GPU dédiée de l’ordinateur qui sera utilisé pour entraîner le modèle de Deep Learning. L’allocation de mémoire pendant l’entraînement dépend du nombre d’attributs qui seront utilisés pour entraîner le modèle, du nombre de points dans un bloc donné et du nombre total de blocs traités dans un lot d’itérations donné. Si une taille de bloc plus élevée et une limite de points plus importante sont nécessaires pour un entraînement efficace du modèle, il est possible de réduire la taille du lot lors de l’entraînement pour faire en sorte que davantage de points puissent être traités.

  • Vérifiez que la sortie est écrite à un emplacement disposant de suffisamment d’espace disque pour tenir compte des données d’entraînement. Cet outil crée des blocs partiellement superposés de fichiers HDF5 décompressés qui répliquent chaque point dans quatre blocs. Dans les blocs qui dépassent la limite de points maximale, certains points peuvent finir par être dupliqués plus de quatre fois. Les données d’entraînement résultantes peuvent occuper au moins trois fois plus d’espace disque que les données de nuage de points sources.

  • Si la référence spatiale du nuage de points en entrée n’utilise pas de système de coordonnées projetées, l’environnement Système de coordonnées en sortie peut être utilisé pour définir un système de coordonnées projetées qui sera utilisé pour la classification de ses points.

Paramètres

ÉtiquetteExplicationType de données
Nuage de points en entrée

Nuage de points qui sera utilisé pour créer les données d’entraînement et éventuellement les données de validation si aucun nuage de points de validation n’est spécifié. Dans ce cas, vous devez définir la limite d’entraînement et la limite de validation.

LAS Dataset Layer; File
Taille de bloc

Largeur et hauteur bidimensionnelles de chaque tuile HDF5 créée à partir du nuage de points en entrée. En règle générale, la taille de bloc doit être assez grande pour capturer les objets d’intérêt et leur contexte environnant.

Linear Unit
Données d’entraînement en sortie

Emplacement et nom des entraînement données en sortie (*.pctd).

File
Entités de limite d’entraînement
(Facultatif)

Les polygones de limite allant délimiter le sous-ensemble de points à partir du nuage de points en entrée seront utilisés pour entraîner le modèle d’apprentissage profond.

Feature Layer
Nuage de points de validation
(Facultatif)

Source du nuage de points qui sera utilisé pour valider le modèle de Deep Learning. Ce jeu de données doit référencer un ensemble de points différent du nuage de points en entrée pour garantir la qualité du modèle entraîné. Si le nuage de points de validation n’est pas spécifié, vous devez indiquer les valeurs de paramètre Entités de limite d’entraînement et Entités de limite de validation.

LAS Dataset Layer; File
Entités de limite de validation
(Facultatif)

Entités surfaciques qui délimitent le sous-ensemble de points à utiliser pour la validation du modèle entraîné. Si aucun nuage de points de validation n’est spécifié, les points sont issus du nuage de points en entrée.

Feature Layer
Codes de classes d’intérêt
(Facultatif)

Codes de classe allant limiter les blocs de données d’entraînement exportés aux blocs qui contiennent les valeurs spécifiées. Pour un bloc contenant au moins l’un des codes de classe répertoriés dans ce paramètre, tous les points dans le bloc seront exportés.

Long
Limite de points de bloc
(Facultatif)

Nombre maximal de points autorisés dans chaque bloc des données d’entraînement. Lorsqu’un bloc contient un nombre de points supérieur à cette valeur, plusieurs blocs sont créés pour le même emplacement, garantissant ainsi l’utilisation de tous les points lors de l’entraînement.

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})
NomExplicationType de données
in_point_cloud

Nuage de points qui sera utilisé pour créer les données d’entraînement et éventuellement les données de validation si aucun nuage de points de validation n’est spécifié. Dans ce cas, vous devez définir la limite d’entraînement et la limite de validation.

LAS Dataset Layer; File
block_size

Largeur et hauteur bidimensionnelles de chaque tuile HDF5 créée à partir du nuage de points en entrée. En règle générale, la taille de bloc doit être assez grande pour capturer les objets d’intérêt et leur contexte environnant.

Linear Unit
out_training_data

Emplacement et nom des entraînement données en sortie (*.pctd).

File
training_boundary
(Facultatif)

Les polygones de limite allant délimiter le sous-ensemble de points à partir du nuage de points en entrée seront utilisés pour entraîner le modèle d’apprentissage profond.

Feature Layer
validation_point_cloud
(Facultatif)

Source du nuage de points qui sera utilisé pour valider le modèle de Deep Learning. Ce jeu de données doit référencer un ensemble de points différent du nuage de points en entrée pour garantir la qualité du modèle entraîné. Si le nuage de points de validation n’est pas spécifié, vous devez indiquer les valeurs de paramètre training_boundary et validation_boundary.

LAS Dataset Layer; File
validation_boundary
(Facultatif)

Entités surfaciques qui délimitent le sous-ensemble de points à utiliser pour la validation du modèle entraîné. Si aucun nuage de points de validation n’est spécifié, les points sont issus du nuage de points en entrée.

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

Codes de classe allant limiter les blocs de données d’entraînement exportés aux blocs qui contiennent les valeurs spécifiées. Pour un bloc contenant au moins l’un des codes de classe répertoriés dans ce paramètre, tous les points dans le bloc seront exportés.

Long
block_point_limit
(Facultatif)

Nombre maximal de points autorisés dans chaque bloc des données d’entraînement. Lorsqu’un bloc contient un nombre de points supérieur à cette valeur, plusieurs blocs sont créés pour le même emplacement, garantissant ainsi l’utilisation de tous les points lors de l’entraînement.

Long

Exemple de code

Exemple d’utilisation de l’outil PreparePointCloudTrainingData (fenêtre Python)

L'exemple suivant illustre l'utilisation de cet outil dans la fenêtre 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')

Informations de licence

  • Basic: Nécessite 3D Analyst
  • Standard: Nécessite 3D Analyst
  • Advanced: Nécessite 3D Analyst

Rubriques connexes