Classer les pixels

Disponible avec une licence Image Analyst.

Utilisez l’outil Classer des pixels à l’aide du Deep Learning pour classer des pixels d’imagerie. Cet outil exécute un modèle de Deep Learning entraîné sur un raster en entrée afin de générer un raster classé, une étiquette de classe étant attribuée à chaque pixel. Par exemple, la classification de pixels peut être utilisée pour la classification d’occupation du sol. L’image ci-dessous présente un exemple de classification d’occupation du sol.

Exemple de classification de pixels

Un processus type de classification de pixels à 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 Classer des pixels à 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.
    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. Indiquer un nom pour la structure.

      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. Indiquer un nom pour la classe.

      Fenêtre Add New Class (Ajouter une 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.
    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).

      Outil Polygone

    3. Dessinez un polygone autour des pixels représentant la classe créée.

      Exemples de polygones

      Un nouvel enregistrement est ajouté dans le groupe Labeled Objects (Objets étiquetés) de la fenêtre Image Classification (Classification d’image).

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

      Echantillons d'apprentissage

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

    Bouton Enregistrer

    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).

    Avant d’entraîner le modèle, vous devez exporter les échantillons d’entraînement en tant que fragments d’image. Un fragment d’image est une petite image qui contient un ou plusieurs objets à détecter. Un fragment d’image est créé et étiqueté pour chaque échantillon d’entraînement pour les classes de la structure.

  5. Dans la fenêtre Image Classification (Classification d’image), cliquez sur l’onglet Export Training Data (Exporter les données d’entraînement).
    1. 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.

    2. Vous pouvez éventuellement sélectionner la valeur Meta Data Format (Format des métadonnées).

      L’option Classified tiles (Tuiles classées) est le meilleur format pour une entrée raster multicanal. Si l’entrée est un raster multidimensionnel et que vous voulez utiliser l’architecture de modèle PSETAE, spécifiez l’option RCNN Masks (Masques RCNN).

    3. Cliquez sur Run (Exécuter) pour exporter les données d’entraînement.

Onglet Exporter les données d’entraînement

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.

Lorsque vous entrez les données d’entraînement, une valeur appropriée pour Model Type (Type de modèle) est déterminée en fonction de la valeur de Metadata Format (Format de métadonnées). Pa exemple, si le format de métadonnées Classified tiles (Tuiles classées) est spécifié, l’option U-Net est spécifiée pour le paramètre Model Type (Type de modèle). La liste déroulante Model Type (Type de modèle) est également mise à jour avec les types de modèles qui prennent en charge le format de métadonnées Classified Tiles (Tuiles classées).

Liste déroulante Type de modèle

Pour entraîner un modèle de Deep Learning, procédez comme suit :

  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 du paramètre 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 de modèle U-Net. 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.

Outil Entraîner le modèle de Deep Learning

Exécuter l’inférence

Utilisez le modèle de Deep Learning produit pour appliquer la classification de pixels à une image. 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 similaires d’une image. Étant donné que vous exécutez un processus de classification de pixels, vous utilisez l’outil Classer des pixels à l’aide d’algorithmes de Deep Learning.

  1. Ouvrez l’outil Classer des pixels à l’aide d’algorithmes de Deep Learning.
  2. Pour le paramètre Input Raster (Raster en entrée), accédez aux données raster en entrée que vous voulez classer et sélectionnez-les.

    L’entrée peut être un jeu de données raster ou plusieurs rasters d’un jeu de données mosaïque, un service d’imagerie, un dossier d’images ou une classe d’entités avec des images en pièces jointes.

  3. Pour le paramètre Output Raster Dataset (Jeu de données raster en sortie), indiquez un nom pour le jeu de données en sortie.

    Le jeu de données en sortie contient chaque pixel valide, auquel une étiquette de classe est attribuée dans l’image en entrée.

  4. Spécifiez la valeur de Model Definition (Définition de modèle) (*.emd ou *.dlpk).

    Il s’agit du fichier de modèle qui contient la sortie d’entraînement. Il s’agit de la sortie de la section d’entraînement Deep Learning.

  5. Pour le paramètre Arguments, acceptez les valeurs par défaut ou modifiez-les.

    Le paramètre Arguments est renseigné à l’aide des informations du paramètre Model Definition (Définition du modèle). Ces arguments varient en fonction de l’architecture de modèle spécifiée. Dans cet exemple, comme l’architecture de modèle UI-Net est utilisée, les arguments suivants sont renseignés.

    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.
    3. predict_background - Spécifiez si l’arrière-plan est classé. Si la valeur est true, la classe d’arrière-plan est également classée.
    4. test_time_augmentation - Procède à l’augmentation du temps de test lors de la prévision. Si la valeur est true, les prévisions des variants inversés et pivotés de l’image en entrée sont fusionnées dans la sortie finale.
  6. Cliquez sur Run (Exécuter) pour lancer l’inférence.

    Classer des pixels à l’aide d’un outil d’apprentissage profond

Le raster classé produit est présenté ci-dessous.

Résultat de la classification des pixels

Rubriques connexes