Entraîner le modèle de détection d’objets dans les nuages de points (3D Analyst)

Synthèse

Entraîne un modèle de détection d’objets pour les nuages de points à l’aide du Deep Learning.

Utilisation

  • Cet outil requiert l’installation de Deep Learning Essentials, qui offre plusieurs solutions de réseau neuronal incluant des architectures neuronales permettant de classer les nuages de points.

    Pour configurer votre machine afin d’utiliser des structures d’apprentissage profond dans ArcGIS Pro, consultez la rubrique Installer les structures d’apprentissage profond pour ArcGIS.

  • Si vous comptez entraîner des modèles dans un environnement déconnecté, reportez-vous à la rubrique Installation supplémentaire pour un environnement déconnecté pour plus d’informations.

  • L’utilisation d’un modèle pré-entraîné dans le processus d’entraînement est intéressante, en particulier lorsque vous avez des limitations en termes de données, de temps ou de ressources de calcul. Les modèles pré-entraînés réduisent la nécessité d’un entraînement complet et fournissent un point de départ fiable pour créer rapidement un modèle utile. Pour utiliser un modèle pré-entraîné, les nouvelles données d’entraînement doivent être compatibles. Cela signifie que les nouvelles données d’entraînement doivent avoir les mêmes attributs et codes d’objet que celles qui ont permis de créer le modèle pré-entraîné. Si les codes d’objet dans les données d’entraînement ne correspondent pas à ceux du modèle pré-entraîné, les codes d’objet des données d’entraînement doivent être réappariés.

  • Le modèle de détection d’objets dans les nuages de points peut uniquement être entraîné à l’aide d’une carte graphique NVIDIA compatible CUDA. Lorsque l’environnement Type de traitement n’est pas défini sur un ordinateur doté d’une carte graphique compatible CUDA, la carte présentant le matériel le mieux adapté servira pour l’entraînement. Sinon, une carte graphique spécifique peut être attribuée dans le paramètre d’environnement ID GPU.

  • Les métriques suivantes seront signalées au cours de l’entraînement :

    • Époque : numéro d’époque auquel le résultat est associé
    • Perte d’entraînement : résultat de la fonction de perte d’entropie dont la moyenne a été calculée pour les données d’entraînement
    • Perte de validation : résultat de la fonction de perte d’entropie qui a été déterminée lors de l’application du modèle entraîné dans l’époque sur les données de validation
    • Précision moyenne : ratio de points dans les données de validation qui ont été correctement classés par le modèle entraîné dans l’époque (vrais positifs) par rapport à tous les points dans les données de validation

    Un modèle qui atteint une perte d’entraînement faible, mais une perte de validation élevée est considéré comme étant en état de sur-ajustement par rapport aux données d’entraînement : il détecte les modèles des artefacts dans les données d’entraînement. En conséquence, le modèle ne fonctionne pas bien pour les données de validation. Un modèle qui atteint une perte d’entraînement élevée et une perte de validation élevée est considéré comme étant en état de sous-ajustement par rapport aux données d’entraînement : aucun modèle n’est appris assez efficacement pour produire un modèle utilisable.

    En savoir plus sur l’évaluation des résultats d’entraînement du nuage de points

  • Un dossier permettant de stocker les modèles des points de contrôle (modèles créés à la fin de chaque époque) est créé. Le nom du dossier des points de contrôle commence par le même nom que celui du modèle et se termine par le suffixe .checkpoints. Il est stocké dans la valeur du paramètre Localisation du modèle en sortie.

Paramètres

ÉtiquetteExplicationType de données
Données d’entraînement en entrée

Données d’entraînement de détection d’objets dans les nuages de points (fichier *.pcotd) qui seront utilisées pour entraîner le modèle.

File
Output Model Location (Localisation du modèle en sortie)

Dossier existant qui stocke le nouveau répertoire contenant le modèle de Deep Learning.

Folder
Output Model Name (Nom du modèle en sortie)

Nom du fichier de définition de modèle Esri en sortie (*.emd), package Deep Learning (*.dlpk) et répertoire créé pour les stocker.

String
Fichier de définition du modèle pré-entraîné
(Facultatif)

Modèle de détection d’objets pré-entraîné qui sera affiné. Lorsqu’un modèle pré-entraîné est fourni, les données d’entraînement en entrée doivent avoir les mêmes attributs et nombre maximal de points que ceux utilisés par les données d’entraînement qui ont permis de générer le modèle.

File
Architecture
(Facultatif)

Déterminer l’architecture qui sera utilisée pour entraîner le modèle.

  • Sparsely Embedded Convolutional DetectionL’architecture SECOND (Sparsely Embedded Convolutional Detection) sera utilisée. Il s’agit de l’option par défaut.
  • Point Transfomer V3L’architecture Point Transformer V3 sera utilisée.
String
Sélection des attributs
(Facultatif)

Indique les attributs ponctuels qui seront utilisés avec le code de classification lors de l’entraînement du modèle. Seuls les attributs présents dans les données d’entraînement du nuage de points seront disponibles. Aucun attribut supplémentaire n’est inclus par défaut.

  • IntensitéLa mesure de la magnitude du retour de l’impulsion lidar sera utilisée.
  • Numéro de retourLa position ordinale du point obtenue d’une impulsion lidar donnée sera utilisée.
  • Nombre de retoursLe nombre total de retours lidar qui ont été identifiés en tant que points à partir de l’impulsion associée à un point donné sera utilisé.
  • Canal rougeLa valeur du canal rouge d’un nuage de points avec des informations de couleurs sera utilisée.
  • Canal vertLa valeur du canal vert d’un nuage de points avec des informations de couleurs sera utilisée.
  • Canal bleuLa valeur du canal bleu d’un nuage de points avec des informations de couleurs sera utilisée.
  • Canal proche infrarougeLa valeur du canal proche infrarouge d’un nuage de points avec des informations proche infrarouge sera utilisée.
  • Hauteur relativeLa hauteur relative de chaque point par rapport à une surface de référence, généralement un MNE de terre nue, sera utilisée.
String
Minimum Points Per Block (Nombre minimal de points par bloc)
(Facultatif)

Nombre minimal de points qui doivent être présents dans un bloc donné pour que ce dernier puisse être utilisé lors de l’entraînement du modèle. La valeur par défaut est 0.

Long
Réapparier les codes d’objet
(Facultatif)

Détermine la façon dont les codes d’objet seront réappariés aux nouvelles valeurs avant d’entraîner le modèle de Deep Learning.

  • Code actuel : valeur du code d’objet dans les données d’entraînement.
  • Code réapparié : valeur du code d’objet qui remplacera le code existant.

Value Table
Codes d’objet d’intérêt
(Facultatif)

Codes d’objet qui serviront à filtrer les objets dans les données d’entraînement. Lorsque des codes d’objet sont fournis, les objets qui ne sont pas inclus sont ignorés.

Long
Uniquement les blocs d’entraînement qui contiennent des objets
(Facultatif)

Indique si le modèle sera entraîné avec uniquement les blocs contenant des objets ou avec tous les blocs, y compris ceux qui ne contiennent pas d’objets.

  • Activé : le modèle sera entraîné avec uniquement les blocs qui contiennent des objets. Les données servant à la validation ne seront pas modifiées.
  • Désactivé : le modèle sera entraîné avec tous les blocs, y compris ceux qui ne contiennent pas d’objets. Il s’agit de l’option par défaut.
Boolean
Description des objets
(Facultatif)

Description de chaque code d’objet dans les données d’entraînement.

  • Code d’objet : valeur du code d’objet qui a été apprise par le modèle.
  • Description : objet décrit par le code de classe.

Value Table
Critères de sélection du modèle
(Facultatif)

Spécifie la base statistique qui servira à déterminer le modèle final.

  • Perte de validationLe modèle qui atteint le résultat le plus faible lorsque la fonction de perte d’entropie est appliquée aux données de validation sera utilisé.
  • Précision moyenneLe modèle qui atteint le ratio de points le plus élevé dans les données de validation qui ont été correctement classés par le modèle entraîné dans l’époque (vrais positifs) par rapport à tous les points dans les données de validation sera utilisé. Il s’agit de l’option par défaut.
String
Maximum Number of Epochs (Nombre maximal d’époques)
(Facultatif)

Nombre de fois que chaque bloc de données va et vient sur le réseau neuronal. La valeur par défaut est 25.

Long
Learning Rate Strategy (Stratégie de vitesse d’apprentissage)
(Facultatif)

Indique la manière dont la vitesse d’apprentissage est modifiée lors de l’entraînement.

  • One Cycle Learning Rate (Vitesse d’apprentissage d’un cycle)La vitesse d’apprentissage est répétée pour chaque époque à l’aide de l’implémentation de Fast.AI de la technique 1cycle pour entraîner les réseaux neuronaux et améliorer l’entraînement d’un réseau neuronal convolutif. Il s’agit de l’option par défaut.
  • Fixed Learning Rate (Vitesse d’apprentissage fixe)La même vitesse d’apprentissage est utilisée tout au long du processus d’entraînement.
String
Learning Rate (Vitesse d’apprentissage)
(Facultatif)

Vitesse à laquelle les informations existantes sont remplacées par les nouvelles informations. Si aucune valeur n’est indiquée, la vitesse d’apprentissage optimale est extraite de la courbe d’apprentissage lors du processus d’entraînement. Il s’agit de l’option par défaut.

Double
Batch Size (Taille de lot)
(Facultatif)

Nombre de blocs de données d’entraînement traités à tout moment. La valeur par défaut est 2.

Long
Arrêter l’entraînement lorsque le modèle ne s’améliore plus
(Facultatif)

Indique si l’entraînement du modèle s’arrête lorsque la mesure spécifiée dans le paramètre Model Selection Criteria (Critères de sélection du modèle) n’enregistre aucune amélioration après cinq époques consécutives.

  • Activé : l’entraînement du modèle s’arrête lorsque le modèle ne s’améliore plus.
  • Désactivé : l’entraînement du modèle continue jusqu’à atteindre le nombre maximal d’époques. Il s’agit de l’option par défaut.
Boolean
Paramètres d’architecture
(Facultatif)

Paramètres d’architecture pouvant être modifiés en vue d’améliorer les résultats d’entraînement.

  • Option : options spécifiques à l’architecture pouvant être modifiées.
    • Largeur de voxel : dimensions x et y du voxel utilisé au cours de l’entraînement. La valeur correspondante est en unités linéaires de mètres et peut être exprimée en tant que valeur double.
    • Hauteur de voxel : dimension z du voxel utilisé au cours de l’entraînement. La valeur correspondante est en unités linéaires de mètres et peut être exprimée en tant que valeur double.
    • Limite de points voxel : nombre de points dans un voxel donné. La valeur correspondante doit être un entier positif. Si aucune valeur n’est fournie, cette limite est calculée au cours de l’entraînement en fonction de la taille de bloc et de la limite de points de bloc des données d’entraînement.
    • Voxels d’entraînement maximum : nombre maximal de voxels pouvant être utilisés dans les données d’entraînement. La valeur correspondante doit être un entier positif. Si aucune valeur n’est fournie, cette limite est calculée au cours de l’entraînement.
    • Voxels de validation maximum : nombre maximal de voxels pouvant être utilisés dans les données de validation. La valeur correspondante doit être un entier positif. Si aucune valeur n’est fournie, cette limite est calculée au cours de l’entraînement.
  • Valeur : valeur correspondant à l’option en cours de modification.

Value Table

Sortie obtenue

ÉtiquetteExplicationType de données
Modèle en sortie

Modèle de détection d’objets en sortie qui est produit.

File
Statistiques d’époque en sortie

Table ASCII en sortie contenant les statistiques d’époque qui ont été générées au cours de l’entraînement.

Text File

arcpy.ddd.TrainPointCloudObjectDetectionModel(in_training_data, out_model_location, out_model_name, {pretrained_model}, {architecture}, {attributes}, {min_points}, {remap_objects}, {target_objects}, {train_blocks}, {object_descriptions}, {model_selection_criteria}, {max_epochs}, {learning_rate_strategy}, {learning_rate}, {batch_size}, {early_stop}, {architecture_settings})
NomExplicationType de données
in_training_data

Données d’entraînement de détection d’objets dans les nuages de points (fichier *.pcotd) qui seront utilisées pour entraîner le modèle.

File
out_model_location

Dossier existant qui stocke le nouveau répertoire contenant le modèle de Deep Learning.

Folder
out_model_name

Nom du fichier de définition de modèle Esri en sortie (*.emd), package Deep Learning (*.dlpk) et répertoire créé pour les stocker.

String
pretrained_model
(Facultatif)

Modèle de détection d’objets pré-entraîné qui sera affiné. Lorsqu’un modèle pré-entraîné est fourni, les données d’entraînement en entrée doivent avoir les mêmes attributs et nombre maximal de points que ceux utilisés par les données d’entraînement qui ont permis de générer le modèle.

File
architecture
(Facultatif)

Déterminer l’architecture qui sera utilisée pour entraîner le modèle.

  • SECDL’architecture SECOND (Sparsely Embedded Convolutional Detection) sera utilisée. Il s’agit de l’option par défaut.
  • POINT_TRANSFORMER_V3L’architecture Point Transformer V3 sera utilisée.
String
attributes
[attributes,...]
(Facultatif)

Indique les attributs ponctuels qui seront utilisés avec le code de classification lors de l’entraînement du modèle. Seuls les attributs présents dans les données d’entraînement du nuage de points seront disponibles. Aucun attribut supplémentaire n’est inclus par défaut.

  • INTENSITYLa mesure de la magnitude du retour de l’impulsion lidar sera utilisée.
  • RETURN_NUMBERLa position ordinale du point obtenue d’une impulsion lidar donnée sera utilisée.
  • NUMBER_OF_RETURNSLe nombre total de retours lidar qui ont été identifiés en tant que points à partir de l’impulsion associée à un point donné sera utilisé.
  • REDLa valeur du canal rouge d’un nuage de points avec des informations de couleurs sera utilisée.
  • GREENLa valeur du canal vert d’un nuage de points avec des informations de couleurs sera utilisée.
  • BLUELa valeur du canal bleu d’un nuage de points avec des informations de couleurs sera utilisée.
  • NEAR_INFRAREDLa valeur du canal proche infrarouge d’un nuage de points avec des informations proche infrarouge sera utilisée.
  • RELATIVE_HEIGHTLa hauteur relative de chaque point par rapport à une surface de référence, généralement un MNE de terre nue, sera utilisée.
String
min_points
(Facultatif)

Nombre minimal de points qui doivent être présents dans un bloc donné pour que ce dernier puisse être utilisé lors de l’entraînement du modèle. La valeur par défaut est 0.

Long
remap_objects
[remap_objects,...]
(Facultatif)

Détermine la façon dont les codes d’objet seront réappariés aux nouvelles valeurs avant d’entraîner le modèle de Deep Learning.

  • Code actuel : valeur du code d’objet dans les données d’entraînement.
  • Code réapparié : valeur du code d’objet qui remplacera le code existant.

Value Table
target_objects
[target_objects,...]
(Facultatif)

Codes d’objet qui serviront à filtrer les objets dans les données d’entraînement. Lorsque des codes d’objet sont fournis, les objets qui ne sont pas inclus sont ignorés.

Long
train_blocks
(Facultatif)

Indique si le modèle sera entraîné avec uniquement les blocs contenant des objets ou avec tous les blocs, y compris ceux qui ne contiennent pas d’objets.

  • OBJECT_BLOCKSLe modèle sera entraîné avec uniquement les blocs qui contiennent des objets. Les données servant à la validation ne seront pas modifiées.
  • ALL_BLOCKSLe modèle sera entraîné avec tous les blocs, y compris ceux qui ne contiennent pas d’objets. Il s’agit de l’option par défaut.
Boolean
object_descriptions
[object_descriptions,...]
(Facultatif)

Description de chaque code d’objet dans les données d’entraînement.

  • Code d’objet : valeur du code d’objet qui a été apprise par le modèle.
  • Description : objet décrit par le code de classe.

Value Table
model_selection_criteria
(Facultatif)

Spécifie la base statistique qui servira à déterminer le modèle final.

  • VALIDATION_LOSSLe modèle qui atteint le résultat le plus faible lorsque la fonction de perte d’entropie est appliquée aux données de validation sera utilisé.
  • AVERAGE_PRECISIONLe modèle qui atteint le ratio de points le plus élevé dans les données de validation qui ont été correctement classés par le modèle entraîné dans l’époque (vrais positifs) par rapport à tous les points dans les données de validation sera utilisé. Il s’agit de l’option par défaut.
String
max_epochs
(Facultatif)

Nombre de fois que chaque bloc de données va et vient sur le réseau neuronal. La valeur par défaut est 25.

Long
learning_rate_strategy
(Facultatif)

Indique la manière dont la vitesse d’apprentissage est modifiée lors de l’entraînement.

  • ONE_CYCLELa vitesse d’apprentissage est répétée pour chaque époque à l’aide de l’implémentation de Fast.AI de la technique 1cycle pour entraîner les réseaux neuronaux et améliorer l’entraînement d’un réseau neuronal convolutif. Il s’agit de l’option par défaut.
  • FIXEDLa même vitesse d’apprentissage est utilisée tout au long du processus d’entraînement.
String
learning_rate
(Facultatif)

Vitesse à laquelle les informations existantes sont remplacées par les nouvelles informations. Si aucune valeur n’est indiquée, la vitesse d’apprentissage optimale est extraite de la courbe d’apprentissage lors du processus d’entraînement. Il s’agit de l’option par défaut.

Double
batch_size
(Facultatif)

Nombre de blocs de données d’entraînement traités à tout moment. La valeur par défaut est 2.

Long
early_stop
(Facultatif)

Indique si l’entraînement du modèle s’arrête lorsque la mesure spécifiée dans le paramètre model_selection_criteria n’enregistre aucune amélioration après cinq époques consécutives.

  • EARLY_STOPL’entraînement du modèle s’arrête lorsque le modèle ne s’améliore plus.
  • NO_EARLY_STOPL’entraînement du modèle continue jusqu’à atteindre le nombre maximal d’époques. Il s’agit de l’option par défaut.
Boolean
architecture_settings
[architecture_settings,...]
(Facultatif)

Paramètres d’architecture pouvant être modifiés en vue d’améliorer les résultats d’entraînement.

  • Option : options spécifiques à l’architecture pouvant être modifiées.
    • VOXEL_WIDTH : dimensions x et y du voxel utilisé au cours de l’entraînement. La valeur correspondante est en unités linéaires de mètres et peut être exprimée en tant que valeur double.
    • VOXEL_HEIGHT : dimension z du voxel utilisé au cours de l’entraînement. La valeur correspondante est en unités linéaires de mètres et peut être exprimée en tant que valeur double.
    • VOXEL_POINT_LIMIT : nombre de points dans un voxel donné. La valeur correspondante doit être un entier positif. Si aucune valeur n’est fournie, cette limite est calculée au cours de l’entraînement en fonction de la taille de bloc et de la limite de points de bloc des données d’entraînement.
    • MAX_TRAINING_VOXELS : nombre maximal de voxels pouvant être utilisés dans les données d’entraînement. La valeur correspondante doit être un entier positif. Si aucune valeur n’est fournie, cette limite est calculée au cours de l’entraînement.
    • MAX_VALIDATION_VOXELS : nombre maximal de voxels pouvant être utilisés dans les données de validation. La valeur correspondante doit être un entier positif. Si aucune valeur n’est fournie, cette limite est calculée au cours de l’entraînement.
  • Valeur : valeur correspondant à l’option en cours de modification.

Value Table

Sortie obtenue

NomExplicationType de données
out_model

Modèle de détection d’objets en sortie qui est produit.

File
out_epoch_stats

Table ASCII en sortie contenant les statistiques d’époque qui ont été générées au cours de l’entraînement.

Text File

Exemple de code

Exemple d’utilisation de la fonction TrainPointCloudObjectDetectionModel (script autonome)

L’exemple suivant illustre l’utilisation de cet outil dans la fenêtre Python :

import arcpy

arcpy.env.workspace = "D:/Deep_Learning_Workspace"
arcpy.ddd.TrainPointCloudObjectDetectionModel("Cars.pcotd", "D:/DL_Models", "Cars", 
    attributes=["INTENSITY", "RETURN_NUMBER", "NUMBER_OF_RETURNS", "RELATIVE_HEIGHT"],
    object_descriptions=[[31, "Cars"]], train_blocks="OBJECT_BLOCKS",
    model_selection_criteria="AVERAGE_PRECISION", max_epochs=10)

Informations de licence

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

Rubriques connexes