| Étiquette | Explication | Type de données |
Nuage de points en entrée | Nuage de points qui sera utilisé pour créer les données d’entraînement pour la détection d’objets. | LAS Dataset Layer; File |
Entités d’entraînement en entrée | Entités multipatch qui identifieront les objets qui seront utilisés pour entraîner le modèle. | Feature Layer |
Entités de validation en entrée | Entités multipatch qui identifieront les objets qui seront utilisés pour valider le modèle au cours du processus d’entraînement. | Feature Layer |
Taille de bloc | Diamètre de chaque bloc de données d’entraînement créé à partir du nuage de points en entrée. En règle générale, la taille du bloc doit être suffisante pour capturer les objets qui vous intéressent et leur contexte. | Linear Unit |
Données d’entraînement en sortie | Emplacement et nom des données d’entraînement en sortie (fichier *.pcotd). | File |
Training Boundary Features (Entités de limite d’entraînement) (Facultatif) | Entités surfaciques qui délimitent le sous-ensemble de points du nuage de points en entrée utilisé pour entraîner le modèle. Ce paramètre est requis si la valeur du paramètre Validation Point Cloud (Nuage de points de validation) n’est pas fournie. | Feature Layer |
Champ de code d’entraînement (Facultatif) | Champ qui identifie l’ID unique pour chaque type d’objet dans les entités multipatch d’entraînement. Si aucun champ n’est défini, l’ID 0 est attribué aux objets. | Field |
Validation Point Cloud (Nuage de points de validation) (Facultatif) | Nuage de points utilisé pour valider le modèle de Deep Learning lors de l’entraînement. Ce jeu de données doit faire référence à un ensemble de points autre que le nuage de points en entrée pour garantir la qualité du modèle entraîné. Si aucun nuage de points de validation n’est fourni, le nuage de points en entrée peut être utilisé pour définir les jeux de données d’entraînement et de validation en fournissant des classes d’entités surfaciques pour les paramètres Training Boundary Features (Entités de limite d’entraînement) et Validation Boundary Features (Entités de limite de validation). | LAS Dataset Layer; File |
Validation Boundary Features (Entités de limite de validation) (Facultatif) | Entités surfaciques qui délimitent le sous-ensemble de points à utiliser pour valider le modèle lors de l’entraînement. Si aucun nuage de points de validation n’est fourni, les points proviennent du nuage de points en entrée et un polygone est requis pour le paramètre Training Boundary Features (Entités de limite d’entraînement). | Feature Layer |
Champ de code de validation (Facultatif) | Champ qui identifie l’ID unique pour chaque type d’objet dans les entités multipatch de validation. Si aucun champ n’est défini, l’ID 0 est attribué aux objets. | Field |
Limite de points de bloc (Facultatif) | Nombre maximal de points pouvant être stocké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. La valeur par défaut est 500 000. | Long |
Surface de hauteur de référence (Facultatif) | La surface raster sera utilisée pour attribuer des valeurs de hauteur relative à chaque point dans les données du nuage de points. Les points qui ne sont pas superposés au raster seront exclus de l’analyse. | Raster Layer |
Codes de classe exclus (Facultatif) | Codes de classe exclus des données d’entraînement. Vous pouvez spécifier n’importe quelle valeur comprise entre 0 et 255. | Long |
Exporter uniquement les blocs d’entraînement qui contiennent des objets (Facultatif) | Indique si les données d’entraînement comprendront uniquement les blocs contenant des objets ou si les blocs qui ne contiennent pas d’objets seront également inclus. Les données utilisées pour la validation ne seront pas affectées par ce paramètre.
| Boolean |
Synthèse
Crée des données d’entraînement de nuage de points pour les modèles de détection d’objets à l’aide du Deep Learning.
Illustration

Utilisation
Les données d’entraînement de détection d’objets dans les nuages de points sont définies par un répertoire doté d’une extension .pcotd contenant deux sous-répertoires : l’un contenant les données utilisées pour entraîner le modèle et l’autre contenant les données utilisées pour valider le modèle à travers l’entraînement. Un nuage de points en entrée doit toujours être spécifié avec des entités multipatch distinctes représentant les emprises des objets pour l’entraînement et la validation. Un polygone d’emprise peut être fourni afin de limiter les données exportées pour l’entraînement. Les données de validation peuvent être définies par les termes suivants :
- Indiquez un nuage de points de validation en plus du nuage de points en entrée. Ce jeu de données doit référencer un ensemble de points différent du nuage de points en entrée. Une limite peut également être spécifiée pour découper le nuage de points de validation.
- Indiquez uniquement un nuage de points en entrée avec une limite d’entraînement et de validation. En procédant ainsi, les données d’entraînement et de validation sont issues du même nuage de points en entrée, ce qui rend inutile de définir un jeu de données pour le paramètre Nuage de points de validation. Évitez les superpositions entre les deux jeux de données surfaciques de limite afin de ne pas utiliser les mêmes données de nuage de points pour l’entraînement et la validation.
Renfermez chaque type d’objet présent dans le nuage de points dans une emprise multipatch. Si des objets ne sont pas identifiés dans les données d’entraînement ou de validation, le modèle ne pourra pas apprendre à les identifier. Si le nuage de points comporte des objets non identifiés, utilisez les entités de limite pour limiter les jeux de données d’entraînement exportés aux endroits où les objets étaient correctement renfermés dans une emprise.
Il n’est pas nécessaire de classer les points qui représentent les objets afin de pouvoir les utiliser dans le jeu de données d’entraînement pour la détection d’objets. Cela simplifie la tâche d’étiquetage des objets à la seule création d’emprises en tant qu’entités multipatch. Les emprises peuvent être générées via la mise à jour 3D interactive d’une classe d’entités multipatch. Cependant, si des objets sont représentés par des nuages de points classés, les emprises de ces points peuvent être créées via l’outil Extraire des objets d’un nuage de points.
La densité des points du nuage de points en entrée doit être assez cohérente. Évaluez le nuage de points pour déterminer s’il contient des emplacements avec une plus forte densité de points (par exemple, les zones collectées par les enquêtes de lignes de vol superposées ou les scanners terrestres inactifs). Pour un lidar aéroporté avec des lignes de vol superposées, l’outil Classify LAS Overlap (Classer LAS par superposition) permet de marquer les points superposés et d’obtenir une distribution des points plus cohérente. Les autres types de nuages de points avec des points chauds suréchantillonnés peuvent être affinés dans une distribution standard à l’aide de l’outil Thin LAS (LAS fin).
Des points du nuage de points peuvent être exclus des données d’entraînement en fonction de leurs codes de classe pour améliorer les performances d’entraînement du modèle en réduisant le nombre de points à traiter. Les points exclus doivent appartenir à des classes qui peuvent être facilement classées et ne fournissent pas nécessairement un contexte adéquat aux objets pour lesquels le modèle est entraîné. Envisagez d’éliminer les points classés comme superposition ou bruit. Les points classés comme terrestres peuvent également être éliminés si la hauteur par rapport au sol est calculée lors de la génération des données d’entraînement.
Si possible, spécifiez une taille de bloc qui capture suffisamment les objets pour lesquels le modèle sera entraîné. Chaque bloc ne contient pas toujours l’intégralité de l’objet, mais les blocs superposés créés dans les données d’entraînement capturent une quantité suffisante de représentations variées de l’objet pour entraîner un modèle réussi.
La limite de points de bloc doit également refléter la taille de bloc et l’espacement moyen des points des données. Le nombre de points dans un bloc donné peut être estimé par approximation à l’aide de l’outil LAS Point Statistics As Raster (Statistiques de point LAS en tant que raster) avec l’option Point Count (Nombre de points) du paramètre Method (Méthode) et la taille de bloc souhaitée comme taille de cellule du raster en sortie. Un histogramme d’image de ce raster peut illustrer la distribution des points par bloc dans le jeu de données. Si l’histogramme transmet un grand nombre de blocs de variance étendue, cela peut indiquer la présence de données échantillonnées de manière irrégulière contenant des points chauds potentiels de collections de points de forte densité. Si un bloc contient plus de points que la limite de points de bloc, ce bloc est créé plusieurs fois pour que tous ses points soient représentés dans les données d’entraînement. Par exemple, si la limite de points est de 10 000 et qu’un bloc donné contient 22 000 points, trois blocs de 10 000 points sont créés pour garantir un échantillonnage uniforme dans chaque bloc. Il faut également éviter une limite de points de bloc considérablement plus élevée que le nombre nominal de points dans la plupart des blocs. Dans certaines architectures, les données sont suréchantillonnées pour atteindre la limite de points. Pour ces raisons, utilisez une taille de bloc et une limite de points de bloc proches du nombre de points anticipé qui couvre la plupart des blocs dans les données d’entraînement. Une fois que les données d’entraînement ont été créées, un histogramme est affiché dans la fenêtre des messages de l’outil et une image de cet histogramme est stockée dans le dossier contenant les données d’entraînement et de validation. Cet histogramme peut être examiné pour déterminer si une combinaison appropriée de taille de bloc et de limite de points a été spécifiée. Si les valeurs indiquent une limite de points non optimale, exécutez à nouveau l’outil avec une valeur plus appropriée pour le paramètre Block Point Limit (Limite de points de bloc).
La limite de points de bloc doit factoriser la capacité de mémoire dédiée du GPU sur l’ordinateur utilisé pour l’entraînement. L’allocation de mémoire lors de l’entraînement dépend du nombre de points par bloc, des attributs utilisés et du nombre total de blocs traités simultanément dans un lot donné. Si une taille de bloc et une limite de points supérieures sont nécessaires pour entraîner le modèle de manière efficace, la taille de lot peut être réduite dans l’étape d’entraînement pour qu’un plus grand nombre de points puissent être traités.
-
Vérifiez que la sortie est enregistrée dans un emplacement disposant d’un espace disque suffisant pour contenir les données d’entraînement. Cet outil crée des blocs partiellement superposés de fichiers HDF5 non compressés qui répliquent chaque point dans quatre blocs. Dans les blocs qui dépassent la limite de points de bloc, certains points peuvent ê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 source du nuage de points.
La fenêtre de message de l’outil affiche un ratio de quartile pour chaque type d’objet. Ce ratio se calcule en divisant les volumes des objets dans le troisième quartile par le premier quartile. Cette métrique sert d’indicateur de la variabilité de taille parmi les objets. Un ratio de quartile élevé suggère une variabilité plus importante des volumes des objets, tandis qu’un ratio plus faible indique une variabilité moindre. Si le volume subit une variation importante, vous pouvez ajuster les paramètres de voxel dans le paramètre Paramètres d’architecture de l’outil Entraîner le modèle de détection d’objets dans les nuages de points pour produire un modèle exact.
Paramètres
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})| Nom | Explication | Type de données |
in_point_cloud | Nuage de points qui sera utilisé pour créer les données d’entraînement pour la détection d’objets. | LAS Dataset Layer; File |
in_training_features | Entités multipatch qui identifieront les objets qui seront utilisés pour entraîner le modèle. | Feature Layer |
in_validation_features | Entités multipatch qui identifieront les objets qui seront utilisés pour valider le modèle au cours du processus d’entraînement. | Feature Layer |
block_size | Diamètre de chaque bloc de données d’entraînement créé à partir du nuage de points en entrée. En règle générale, la taille du bloc doit être suffisante pour capturer les objets qui vous intéressent et leur contexte. | Linear Unit |
out_training_data | Emplacement et nom des données d’entraînement en sortie (fichier *.pcotd). | File |
training_boundary (Facultatif) | Entités surfaciques qui délimitent le sous-ensemble de points du nuage de points en entrée utilisé pour entraîner le modèle. Ce paramètre est requis si la valeur du paramètre validation_point_cloud n’est pas fournie. | Feature Layer |
training_code_field (Facultatif) | Champ qui identifie l’ID unique pour chaque type d’objet dans les entités multipatch d’entraînement. Si aucun champ n’est défini, l’ID 0 est attribué aux objets. | Field |
validation_point_cloud (Facultatif) | Source du nuage de points utilisée pour valider le modèle de Deep Learning. Ce jeu de données doit faire référence à un ensemble de points autre que le nuage de points en entrée pour garantir la qualité du modèle entraîné. Si aucun nuage de points de validation n’est fourni, le nuage de points en entrée peut être utilisé pour définir les jeux de données d’entraînement et de validation en fournissant des classes d’entités surfaciques pour les paramètres 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 valider le modèle lors de l’entraînement. Si aucun nuage de points de validation n’est fourni, les points proviennent du nuage de points en entrée et un polygone est requis pour le paramètre training_boundary. | Feature Layer |
validation_code_field (Facultatif) | Champ qui identifie l’ID unique pour chaque type d’objet dans les entités multipatch de validation. Si aucun champ n’est défini, l’ID 0 est attribué aux objets. | Field |
block_point_limit (Facultatif) | Nombre maximal de points pouvant être stocké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. La valeur par défaut est 500 000. | Long |
reference_height (Facultatif) | La surface raster sera utilisée pour attribuer des valeurs de hauteur relative à chaque point dans les données du nuage de points. Les points qui ne sont pas superposés au raster seront exclus de l’analyse. | Raster Layer |
excluded_class_codes [excluded_class_codes,...] (Facultatif) | Codes de classe exclus des données d’entraînement. Vous pouvez spécifier n’importe quelle valeur comprise entre 0 et 255. | Long |
blocks_contain_objects (Facultatif) | Indique si les données d’entraînement comprendront uniquement les blocs contenant des objets ou si les blocs qui ne contiennent pas d’objets seront également inclus. Les données utilisées pour la validation ne seront pas affectées par ce paramètre.
| Boolean |
Exemple de code
L’exemple suivant illustre l’utilisation de cet outil dans la fenêtre 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])Environnements
Informations de licence
- Basic: Nécessite 3D Analyst
- Standard: Nécessite 3D Analyst
- Advanced: Nécessite 3D Analyst
Vous avez un commentaire à formuler concernant cette rubrique ?