Détection des changements

Disponible avec une licence Image Analyst.

Pour identifier les changements entre deux images entre deux périodes, utilisez l’outil Détecter les changements à l’aide d’algorithmes de Deep Learning. Cet outil crée un raster classé montrant les changements. L’image ci-dessus montre trois images : une image de la première période, une image de la seconde et les changements entre les deux.

Images collectées à différents moments et les changements intervenus

Un processus type de détection des changements à l’aide du Deep Learning comprend trois étapes principales :

  1. Créez et exportez des échantillons d’apprentissage. Créez des échantillons d’entraînement dans la fenêtre Label Objects for Deep Learning (Étiqueter les objets pour le Deep Learning), puis utilisez l’outil Export Training Data For Deep Learning (Exporter les données d’entraînement pour Deep Learning) pour convertir les échantillons en données d’entraînement de Deep Learning.
  2. Entraînez le modèle d’apprentissage profond. Utilisez l’outil Train Deep Learning Model (Entraîner le modèle de Deep Learning) pour entraîner un modèle à l’aide des échantillons d’entraînement que vous avez créés à l’étape précédente.
  3. Exécuter l’inférence. Utilisez l’outil Détecter les changements à l’aide d’algorithmes de Deep Learning. Vous utiliserez le modèle créé à l’étape 2.

Pour obtenir des exemples, les formats de métadonnées pris en charge et les architectures de type de modèle, voir Architectures de modèles de Deep Learning.

Créer et exporter des échantillons d’entraînement

Créez une structure d’entraînement et des échantillons d’entraînement, puis exportez les données d’entraînement.

Si un jeu de données raster ou une classe d’entités contient des échantillons d’entraînement, vous pouvez utiliser l’outil Export Training Data For Deep Learning (Exporter les données d’apprentissage pour Deep Learning) et passer à la section Entraîner un modèle d’apprentissage profond.

  1. Créer une structure d’entraînement. Cette structure sera utilisée comme légende, elle doit donc contenir toutes les classes du processus de Deep Learning.
    1. Ajoutez l’image à utiliser pour générer les échantillons d’entraînement à une carte.
    2. Dans la fenêtre Contents (Contenu), sélectionnez l’image que vous avez ajoutée.
    3. Cliquez sur l’onglet Imagery (Imagerie).
    4. Cliquez sur Deep Learning Tools (Outils de Deep Learning), puis sur Label Objects for Deep Learning (Étiqueter les objets pour le Deep Learning).

      La fenêtre Image Classification (Classification d’image) apparaît avec une structure vide.

    5. Dans la fenêtre Image Classification (Classification d’image), cliquez avec le bouton droit de la souris sur New Schema (Nouvelle structure), puis cliquez sur Edit Properties (Mettre à jour les propriétés).

      Mettre à jour la nouvelle structure

    6. Entrez un nom pour la structure dans la zone de texte Name (Nom).

      Modifier le nom de la structure.

    7. Cliquez sur Save (Enregistrer).
  2. Ajoutez une nouvelle classe à la structure.
    1. Cliquez avec le bouton droit de la souris sur la structure que vous avez créée et sélectionnez Add New Class (Ajouter une nouvelle classe).
    2. Entrez un nom pour la classe dans la zone de texte Name (Nom).

      Modifier la nouvelle classe.

    3. Indiquez une valeur pour la classe.

      La valeur ne peut pas être 0.

    4. Éventuellement, choisissez une couleur pour la classe.
    5. Cliquez sur OK.

      La classe est ajoutée à la structure dans la fenêtre Image Classification (Classification d’image).

    6. Vous pouvez répéter les étapes 2a à 2e pour ajouter d’autres classes.
  3. Créer des échantillons d’entraînement.

    Ces échantillons d’entraînement montrent les zones où des changements se sont produits entre les deux images, de sorte que vous puissiez entraîner le modèle de Deep Learning.

    1. Dans la fenêtre Image Classification (Classification d’image), sélectionnez la classe pour laquelle vous voulez créer un échantillon d’entraînement.
    2. Sélectionnez un outil de dessin, par exemple Polygon (Polygone).
    3. Dessinez un polygone autour des pixels représentant la classe.

      Les polygones peuvent se chevaucher ; toutefois, si avez des doutes sur un objet, ne l’incluez pas dans les échantillons d’entraînement. Un nouvel enregistrement est ajouté dans le groupe Labeled Objects (Objets étiquetés) de la fenêtre Image Classification (Classification d’image).

      Nouveau développement

    4. Répétez les étapes 3a à 3c pour créer des échantillons d’entraînement pour toutes les classes de la structure.

      Il est conseillé de collecter un nombre statistiquement représentatif d’échantillons d’entraînement pour représenter chaque classe de la structure.

  4. Lorsque vous avez terminé de créer des échantillons d’entraînement, dans la fenêtre Image Classification (Classification d’image), cliquez sur Save (Enregistrer).

    Échantillons d’entraînement étiquetés

    1. Dans la fenêtre Save current training sample (Enregistrer l’échantillon d’entraînement actuel), accédez à la géodatabase.
    2. Indiquez un nom pour la classe d’entités, puis cliquez sur Save (Enregistrer).
  5. Fermez la fenêtre Image Classification (Classification d’images).
  6. Ouvrez l’outil Exporter les données d’entraînement pour Deep Learning pour exporter les échantillons d’entraînement en tant que fragments d’images.

    Un fragment d’image est une petite image qui contient un ou plusieurs objets à détecter. Les fragments d’images sont utilisés pour entraîner le modèle de Deep Learning.

    1. Indiquez la valeur de Input Raster (Raster en entrée).

      Il s’agit généralement de la première image, avant tout changement.

    2. Indiquez la valeur de Additional Input Raster (Raster en entrée supplémentaire).

      Il s’agit généralement de la dernière image, après les changements.

    3. Indiquez la valeur de Input Feature Class Or Classified Raster Or Table (Classe d’entités, raster classé ou table en entrée).

      Il s’agit du fichier d’échantillons d’entraînement des objets étiquetés que vous avez créé.

    4. Indiquez la valeur de Class Value Field (Champ de valeur de classe).

      Il s’agit de la classe d’entités d’étiquettes spécifiée pour les changements. La classe d’entités contient un champ nommé ClassValue, que vous pouvez utiliser.

    5. Indiquez la valeur de Output Folder (Dossier en sortie).

      Il s’agit du chemin d’accès et du nom du dossier dans lequel les fragments d’image en sortie et les métadonnées vont être stockés.

    6. Vous pouvez éventuellement spécifier une valeur pour le paramètre Meta Data Format (Format des métadonnées).

      Le meilleur format de métadonnées pour la détection des changements est Classified Tiles (Tuiles classées).

    7. Cliquez sur Run (Exécuter) pour exporter les données d’entraînement.
Paramètres de l’outil Exporter les données d’entraînement pour Deep Learning

Entraîner un modèle d’apprentissage profond

L’outil Train Deep Learning Model (Entraîner le modèle de Deep Learning) utilise les fragments d’image étiquetés pour déterminer les combinaisons de pixels dans chaque image et représenter l’objet. Vous allez utiliser ces échantillons d’entraînement pour entraîner un modèle de Deep Learning. Dans l’outil, seuls les paramètres Input Training Data (Données d’entraînement en entrée) et Output Model (Modèle en sortie) sont requis.

Étant donné que les données d’entraînement en entrée sont basées sur la valeur Metadata Format (Format des métadonnées), une valeur appropriée pour Model Type (Type de modèle) est attribuée par défaut. L’outil met également à jour la liste déroulante Model Type (Type de modèle) avec les types de modèles qui prennent en charge le format de métadonnées spécifié. Les paramètres Batch Size (Taille de lot), Model Arguments (Arguments du modèle) et Backbone Model (Modèle de backbone) sont renseignés en fonction de la valeur de Model Type (Type de modèle). Le modèle en sortie sera utilisé pour l’inférence des changements entre les deux images.

  1. Ouvrez l’outil Train Deep Learning Model (Entraîner le modèle de Deep Learning).
  2. Pour le paramètre Input Training Data (Données d’entraînement en entrée), accédez au dossier de données d’entraînement dans lequel les fragments d’image sont stockés et sélectionnez-le.
  3. Pour le paramètre Output Model (Modèle en sortie), indiquez le chemin de fichier et le nom du dossier dans lequel le modèle en sortie va être enregistré après l’entraînement.
  4. Spécifiez éventuellement une valeur pour le paramètre Max Epochs (Nombre maximal d’époques).

    Un epoch est un cycle entier à travers le jeu de données d’entraînement. Au cours de chaque époque, le jeu de données d’entraînement que vous avez stocké dans le dossier de fragments d’image est transmis vers l’avant et vers l’arrière dans le réseau neuronal en une seule fois. En règle générale, entre 20 et 50 époques sont utilisées pour l’examen initial. La valeur par défaut est 20. Si le modèle peut être amélioré dans une plus large mesure, vous pouvez le réentraîner en utilisant le même outil.

  5. Vous pouvez éventuellement modifier la valeur de Model Type (Type de modèle) dans la liste déroulante.

    Le type de modèle détermine l’algorithme de Deep Learning et le réseau neuronal utilisés pour entraîner le modèle, par exemple l’architecture Change Detector (Détecteur de changements). Pour plus d’informations sur les modèles, voir Modèles de Deep Learning dans ArcGIS. Pour obtenir des exemples de documentation et des informations sur les métadonnées prises en charge et les architectures de modèles, voir Architectures de modèles de Deep Learning.

  6. Modifiez éventuellement la valeur de paramètre Model Arguments (Arguments du modèle).

    Le paramètre Model Arguments (Arguments du modèle) est renseigné avec les informations provenant de la définition du modèle. Ces arguments varient en fonction de l’architecture de modèle spécifiée. Une liste des arguments de modèle pris en charge par l’outil est disponible dans le paramètre Model Arguments (Arguments du modèle).

  7. Définissez éventuellement la valeur de paramètre Batch Size (Taille de lot).

    Ce paramètre détermine le nombre d’échantillons d’apprentissage allant être entraînés à la fois. Une valeur de taille de lot peut être déterminée par différents facteurs, tels que le nombre de fragments d’image, la mémoire GPU (si un GPU est utilisé) et la vitesse d’apprentissage, si une valeur personnalisée est utilisée. En règle générale, la taille de lot par défaut donne de bons résultats.

  8. Indiquez éventuellement la valeur de paramètre Learning Rate (Vitesse d’apprentissage).

    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.

  9. Spécifiez éventuellement la valeur de paramètre Backbone Model (Modèle de backbone).

    La valeur par défaut est fonction de l’architecture du modèle. Vous pouvez changer de modèle de backbone par défaut dans la liste déroulante.

  10. Indiquez éventuellement la valeur de paramètre Pre-trained Model (Modèle pré-entraîné).

    Un modèle pré-entraîné avec des classes similaires peut être affiné en vue de son adaptation au nouveau modèle. Le modèle pré-entraîné doit avoir été entraîné avec le même type de modèle et le même modèle d’architecture que ceux qui seront utilisés pour entraîner le nouveau modèle.

  11. Modifiez éventuellement la valeur de paramètre Validation % (Pourcentage de validation).

    Il s’agit du pourcentage d’échantillons d’entraînement utilisés pour valider le modèle. Cette valeur dépend de différents facteurs tels que le nombre d’échantillons d’entraînement et l’architecture du modèle. En règle générale, avec peu de données d’entraînement, entre 10 et 20 pour cent est une valeur appropriée pour la validation. Si les données d’entraînement sont nombreuses (plusieurs milliers d’échantillons, par exemple), un pourcentage plus faible (entre 2 et 5 pour cent des données) est appropriée pour la validation. La valeur par défaut est 10.

  12. Activez éventuellement le paramètre Stop when model stops improving (Arrêter lorsque le modèle ne s’améliore plus).

    S’il est activé, l’entraînement de modèle s’arrête lorsque le modèle ne s’améliore plus quelle que soit la valeur de Max Epochs (Nombre maximal d’époques) spécifiée. Cette case est cochée par défaut.

  13. Activez éventuellement le paramètre Freeze Model (Figer le modèle).

    Ce paramètre spécifie si les couches de backbone dans le modèle pré-entraîné vont être figées pour que la conception originale des pondérations et des biais soit conservée. Si vous activez ce paramètre, les couches de backbone sont figées et les pondérations et biais prédéfinis ne sont pas modifiés dans le paramètre Backbone Model (Modèle de backbone). Si vous n’activez pas cette option, les couches de backbone ne sont pas figées et les pondérations et biais du paramètre Backbone Model (Modèle de backbone) peuvent être modifiés pour s’adapter aux échantillons d’entraînement. Le traitement est plus long, mais produit généralement de meilleurs résultats. Cette case est cochée par défaut.

  14. Cliquez sur Run (Exécuter) pour commencer l’entraînement.

Paramètres de l’outil Entraîner le modèle de Deep Learning

Exécuter l’inférence

L’inférence est le traitement au cours duquel les informations acquises pendant le traitement d’entraînement de Deep Learning sont utilisées pour classer les pixels et les objets similaires d’une image. Le modèle de Deep Learning entraîné produit est utilisé pour effectuer la détection des changements entre deux images raster. Étant donné que vous exécutez un processus de détection des changements, vous utilisez l’outil Détecter les changements à l’aide d’algorithmes de Deep Learning.

  1. Ouvrez l’outil Détecter les changements à l’aide d’algorithmes de Deep Learning.
  2. Pour le paramètre From Raster (Raster d’origine), recherchez et indiquez l’image de la première période (image de référence).
  3. Pour le paramètre To Raster (Raster de destination), recherchez et indiquez l’image de la seconde période (image à jour).
  4. Pour le paramètre Output Classified Raster (Raster classé en sortie), entrez le nom du raster en sortie.

    Le raster classé en sortie contient les valeurs de pixel 0 (sans changement) et 1 (avec changement).

    Le paramètre Arguments est renseigné à l’aide des informations de Model Definition (Définition du modèle). Ces arguments varient en fonction de l’architecture de modèle. Dans cet exemple, comme l’architecture de modèle Change Detector (Détecteur de changements) est utilisée, les arguments padding et batch_size sont renseignés.

  5. Acceptez les valeurs par défaut pour le paramètre Arguments ou modifiez-les.
    1. padding - Nombre de pixels en bordure des tuiles d’image à partir desquelles les prévisions sont fusionnées pour les tuiles adjacentes. Augmentez la valeur pour lisser la sortie, ce qui réduit les artefacts. La valeur maximale de marge de remplissage peut être égale à la moitié de la valeur de taille de tuile.
    2. batch_size - Nombre de tuiles d’image traitées à chaque étape de l’inférence du modèle. Ce nombre dépend de la taille de mémoire de la carte graphique.
  6. Cliquez sur Run (Exécuter) pour lancer l’inférence.
  7. Paramètres de l’outil Détecter les changements à l’aide d’algorithmes de Deep Learning

Rubriques connexes