Disponible avec une licence Image Analyst.
Utilisez l’outil Classer des objets à l’aide du Deep Learning pour classer des objets d’imagerie. Cet outil exécute un modèle de Deep Learning entraîné sur un raster en entrée et chaque entité en entrée possède une étiquette de classe attribuée. L’image ci-dessous représente un exemple de classification d’objets à l’aide d’outils de Deep Learning.
Un processus type de classification d’objets à l’aide du Deep Learning comprend trois étapes principales :
- 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.
- 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.
- Exécuter l’inférence. Utilisez l’outil Classer des objets à 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.
- Créer une structure d’entraînement.
- Ajoutez l’image à utiliser pour générer les échantillons d’entraînement à une carte.
- Dans la fenêtre Contents (Contenu), sélectionnez l’image que vous avez ajoutée.
- Cliquez sur l’onglet Imagery (Imagerie).
- 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.
- 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).
- Indiquer un nom pour la structure.
- Cliquez sur Save (Enregistrer).
- Ajoutez une nouvelle classe à la structure.
- 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).
- Indiquer un nom pour la classe.
- Indiquez une valeur pour la classe.
La valeur ne peut pas être 0.
- Éventuellement, choisissez une couleur pour la classe.
- Cliquez sur OK.
La classe est ajoutée à la structure dans la fenêtre Image Classification (Classification d’image).
- Vous pouvez répéter les étapes 2a à 2e pour ajouter d’autres classes.
- 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).
- Créer des échantillons d’entraînement.
- Dans la fenêtre Image Classification (Classification d’image), sélectionnez la classe pour laquelle vous voulez créer un échantillon d’entraînement.
- Sélectionnez un outil de dessin, par exemple Polygon (Polygone).
- Dessinez un polygone autour des pixels à classer.
Un nouvel enregistrement est ajouté dans le groupe Labeled Objects (Objets étiquetés) de la fenêtre Image Classification (Classification d’image).
- Répétez les étapes 3a à 3c pour créer des échantillons d’entraînement pour toutes les classes.
Comme le modèle final tiendra compte de la taille des objets identifiés, vous pouvez sélectionner des objets de différentes tailles.
- Lorsque vous avez terminé de créer des échantillons, dans la fenêtre Image Classification (Classification d’image), cliquez sur Save (Enregistrer).
- Dans la fenêtre Save current training sample (Enregistrer l’échantillon d’entraînement actuel), accédez à la géodatabase.
- 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.
- Dans la fenêtre Image Classification (Classification d’image), cliquez sur l’onglet Export Training Data (Exporter les données d’entraînement).
- 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.
- Vous pouvez éventuellement sélectionner la valeur Meta Data Format (Format des métadonnées).
Les formats de métadonnées pris en charge pour le type de modèle de classificateur d’entités sont Tuiles étiquetées, Imagenet et Tuiles multi-étiquetées.
- Cliquez sur Run (Exécuter) pour exporter les données d’entraînement.
- Indiquez la valeur de Output Folder (Dossier en sortie).
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 par défaut appropriée pour Model Type (Type de modèle) est déterminée. Par exemple, si vous avez spécifié le format de métadonnées Labeled Tiles (Tuiles étiquetées) au cours du traitement d’exportation, l’option Feature Classifier (Classificateur d’entités) 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 Labeled Tiles (Tuiles étiquetées). Les paramètres Batch Size (Taille de lot), Model Arguments (Arguments du modèle) et Backbone Model (Modèle de backbone) sont également renseignés en fonction de la valeur du paramètre Model Type (Type de modèle).
- Ouvrez l’outil Train Deep Learning Model (Entraîner le modèle de Deep Learning).
- 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.
- 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.
- 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.
- Assurez-vous que la valeur Feature Classifier (Object classification) (Classificateur d’entités [Classification d’objets]) est sélectionnée dans la liste déroulante du paramètre Model Type (Type de modèle).
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 Feature Classifier (Classificateur d’entités). Pour plus d’informations sur les modèles, les métadonnées prises en charge et pour obtenir des informations détaillées sur les architectures de modèles, voir Architectures de modèles de Deep Learning et Modèles de Deep Learning dans ArcGIS .
- 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).
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Cliquez sur Run (Exécuter) pour commencer l’entraînement.
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 attribuer des classes ou des étiquettes de catégorie à chaque objet détecté dans l’image en entrée. Étant donné que vous exécutez un processus de classification d’objets, vous utilisez l’outil Classer des objets à l’aide d’algorithmes de Deep Learning.
- Ouvrez l’outil Classer des objets à l’aide d’algorithmes de Deep Learning.
- 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.
- Pour le paramètre Output Classified Objects Feature Class (Classe d’entités des objets classés en sortie), indiquez un nom pour la classe d’entités en sortie.
La classe d’entités en sortie contiendra les géométries qui entourent les objets détectés dans l’image en entrée, ainsi qu’un champ contenant l’étiquette de catégorisation.
- 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.
- 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 Feature Classifier (Classificateur d’entités) est utilisée, les arguments suivants sont renseignés.
- 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.
- 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.
- Cliquez sur Run (Exécuter) pour lancer l’inférence.
Rubriques connexes
Vous avez un commentaire à formuler concernant cette rubrique ?