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

  • L’outil requiert l’installation de Deep Learning Essentials, qui fournit de nombreuses solutions de réseau neuronal incluant des architectures neuronales pour la classification des nuages de points.

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

  • 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
Localisation du modèle en sortie

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

Folder
Nom du modèle en sortie

Le nom du fichier de définition du modèle Esri en sortie (*.emd), du paquetage de Deep Learning (*.dlpk) et du répertoire qui sera 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.
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
Nombre minimal de points par bloc
(Facultatif)

Nombre minimal de points qui doivent être présents dans un bloc donné pour qu’il soit 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 dans lequel le code existant sera transformé

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é appris par le modèle
  • Description : objet décrit par le code d’objet

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
Nombre maximal d’époques
(Facultatif)

Nombre de transmissions de chaque bloc de données vers l’avant ou l’arrière via le réseau neuronal. La valeur par défaut est 25.

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

Indique comment la vitesse d’apprentissage est modifiée au cours de l’entraînement.

  • Vitesse d’apprentissage d’un cycleLa vitesse d’apprentissage décrit un cycle à travers chaque époque à l’aide de l’implémentation de Fast.AI de la technique 1cycle afin que les réseaux neuronaux d’entraînement puissent faciliter l’entraînement d’un réseau neural convolutif. Il s’agit de l’option par défaut.
  • Vitesse d’apprentissage fixeLa même vitesse d’apprentissage est utilisée tout au long du processus d’entraînement.
String
Vitesse d’apprentissage
(Facultatif)

Vitesse à laquelle les informations existantes sont remplacées par de 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
Taille de lot
(Facultatif)

Nombre de blocs de données d’entraînement qui est traité à 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 doit ou non s’arrêter lorsque la mesure spécifiée dans le paramètre 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 stockera le nouveau répertoire contenant le modèle de Deep Learning.

Folder
out_model_name

Le nom du fichier de définition du modèle Esri en sortie (*.emd), du paquetage de Deep Learning (*.dlpk) et du répertoire qui sera 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.
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 qu’il soit 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ée : valeur du code d’objet dans lequel le code existant sera transformé

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é appris par le modèle
  • Description : objet décrit par le code d’objet

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 transmissions de chaque bloc de données vers l’avant ou l’arrière via le réseau neuronal. La valeur par défaut est 25.

Long
learning_rate_strategy
(Facultatif)

Indique comment la vitesse d’apprentissage est modifiée au cours de l’entraînement.

  • ONE_CYCLELa vitesse d’apprentissage décrit un cycle à travers chaque époque à l’aide de l’implémentation de Fast.AI de la technique 1cycle afin que les réseaux neuronaux d’entraînement puissent faciliter l’entraînement d’un réseau neural 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 de 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 qui est traité à tout moment. La valeur par défaut est 2.

Long
early_stop
(Facultatif)

Indique si l’entraînement du modèle doit ou non s’arrêter lorsque la valeur 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)