Deep Learning à l’aide de l’extension ArcGIS Image Analyst

Disponible avec une licence Image Analyst.

L’extension ArcGIS Image Analyst vous permet d’exécuter des processus de Deep Learning complets avec imagerie dans ArcGIS Pro. Utilisez les outils de géotraitement pour préparer les données d’entraînement de l’imagerie, pour entraîner un modèle de détection d’objets, de classification de pixels ou de classification d’objets, et pour générer et examiner les résultats.

Remarque :

Cette rubrique décrit le Deep Learning dans le cadre de processus d’imagerie avec Image Analyst. Pour une présentation de toutes les fonctionnalités de Deep Learning disponibles dans ArcGIS Pro, reportez-vous à la rubrique Deep Learning dans ArcGIS Pro.

Le processus est représenté par le diagramme ci-dessous.

Processus d’apprentissage profond

IntervalleDescription

Deep Learning - étape 1

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 Exporter les données d’entraînement pour Deep Learning pour convertir les échantillons en données d’entraînement de Deep Learning.

Remarque :

L’outil Exporter les données d’entraînement pour Deep Learning est pris en charge également par l’extension Spatial Analyst.

Deep Learning - étape 2

Utilisez l’outil Entraîner le modèle de Deep Learning pour entraîner un modèle avec PyTorch, ou entraînez le modèle ailleurs que dans ArcGIS Pro au moyen d’une structure de Deep Learning tierce prise en charge.

Deep Learning - étape 3

Utilisez le modèle entraîné pour exécuter l’outil Détecter des objets à l’aide d’algorithmes de Deep Learning, l’outil Classer des pixels à l’aide d’algorithmes de Deep Learning ou l’outil Classer des objets à l’aide d’algorithmes de Deep Learning pour générer une sortie.

Examinez et validez les résultats dans lafenêtre des attributs, puis calculez la précision à l’aide de l’outil Calculer la précision pour la détection d’objets.

Fonctions et fonctionnalités

Dans ArcGIS Pro, les outils de Deep learning vous permettent d’aller au-delà des techniques de classification de Machine Learning standard.

  • Utilisez des réseaux neuronaux convolutifs ou des modèles de Deep Learning pour détecter des objets et classer des objets ou des pixels d’image.
  • Intégrez les structures des modèles de Deep Learning externes, tels que TensorFlow, PyTorch et Keras.
  • Utilisez un fichier de définition du modèle plusieurs fois pour détecter l’évolution au fil du temps ou détecter des objets dans différentes zones d’intérêt.
  • Générez une classe d’entités surfaciques qui indique l’emplacement des objets détectés à utiliser pour d’autres analyses ou processus.
  • Tirez parti du calcul par l’unité de traitement graphique (GPU) et de l’utilisation de l’unité de traitement centrale (CPU) pour le traitement distribué.

Prise en main de l’apprentissage profond

La création et l’exportation des échantillons d’entraînement sont des opérations réalisées dans ArcGIS Pro à l’aide d’outils de génération d’échantillons d’entraînement standard. Il est possible d’entraîner le modèle de Deep Learning avec la structure PyTorch à l’aide de l’outil Entraîner le modèle de Deep Learning, ou ailleurs que dans ArcGIS Pro en utilisant une autre structure de Deep Learning. Une fois que le modèle est entraîné, utilisez un fichier de définition du modèle Esri (.emd) pour utiliser les outils de géotraitement afin de détecter ou de classer des entités de votre imagerie.

Vous devez installer les paquetages Python de la structure de Deep Learning pour éviter qu’une erreur ne se produise au moment où vous ajoutez le fichier de définition de modèle Esri aux outils de géotraitement de Deep Learning. Pour savoir comment installer ces paquetages, reportez-vous à la rubrique Installer des structures de Deep Learning pour ArcGIS.

  1. Créez et exportez des échantillons d’apprentissage.
    1. Utilisez la fenêtre Label Objects for Deep Learning (Étiqueter les objets pour le Deep Learning) ou le Gestionnaire d’échantillons d’entraînement pour sélectionner ou créer une structure de classification.
    2. Créez des échantillons de site d’apprentissage pour les catégories de classes ou les entités d’intérêt. Enregistrez le fichier d’échantillon d’apprentissage.
    3. Exécutez l’outil de géotraitement Exporter les données d’entraînement pour Deep Learning pour convertir l’imagerie source et les échantillons d’entraînement en données d’entraînement de Deep Learning. L’imagerie source peut prendre la forme d’un service d’imagerie, d’un jeu de données mosaïque, d’un jeu de données raster ou d’un dossier de rasters. L’outil génère en sortie des fragments ou échantillons d’image contenant des sites d’entraînement à utiliser pour entraîner le modèle de Deep Learning. Une autre sortie de l’outil est un fichier de modèle .emd qu’il est nécessaire de renseigner.
  2. Entraînez le modèle d’apprentissage profond.
    1. Utilisez l’outil Entraîner le modèle de Deep Learning pour entraîner un modèle de Deep Learning avec les fragments d’image générés à l’étape précédente.
  3. Exécutez les outils de géotraitement d’inférence dans ArcGIS Pro.
    1. Utilisez l’outil de géotraitement Détecter des objets à l’aide d’algorithmes de Deep Learning, Classer des pixels à l’aide d’algorithmes de Deep Learning ou Classer des objets à l’aide d’algorithmes de Deep Learning pour traiter votre imagerie. Si le modèle entraîné incorporait des fonctions raster Python personnalisées avec des variables supplémentaires, telles que le remplissage ou un seuil de confiance pour optimiser la sensibilité, ces variables apparaissent dans la boîte de dialogue de l’outil de géotraitement pour que l’utilisateur puisse saisir des données. Le type de données (chaîne ou numérique) est spécifié dans la fonction raster Python. Dans l’idéal, le nombre des paramètres d’inférence supplémentaires doit être limité à deux.

      La valeur du paramètre Esri model definition (Définition du modèle Esri) peut être un fichier JSON de définition de modèle Esri (.emd) ou une chaîne JSON. Une chaîne JSON est utile lorsque cet outil est utilisé sur le serveur de sorte qu’il est possible de coller la chaîne JSON au lieu de télécharger le fichier .emd.

      The output of the L’outil Détecter des objets à l’aide d’algorithmes de Deep Learning est une classe d’entités indiquant les objets détectés par le modèle. L’outil Classer des pixels à l’aide d’algorithmes de Deep Learning produit en sortie un raster classé. Une classe d’entités et une imagerie doivent être définies comme jeux de données en entrée pour l’outil Classer des objets à l’aide d’algorithmes de Deep Learning, avec pour résultat une classe d’entités dont chaque objet de chaque entité porte l’étiquette d’un nom de classe.

Après avoir utilisé un modèle d’apprentissage profond, il est important de passer en revue les résultats et d’évaluer la précision du modèle. Utilisez la fenêtre Attributes (Attributs) pour examiner les résultats de votre inférence basée sur l’objet (outil Classer des objets à l’aide d’algorithmes de Deep Learning ou outil Détecter des objets à l’aide d’algorithmes de Deep Learning). Vous pouvez également utiliser l’outil Calculer la précision pour la détection d’objets pour générer une table et un rapport d’évaluation de la précision.

Pour vous familiariser avec les principes élémentaires des applications de Deep Learning avec vision artificielle, reportez-vous à la rubrique Introduction au Deep Learning.

Pour connaître la configuration nécessaire à l’exécution des outils de géotraitement, et pour en savoir plus sur les problèmes que vous pouvez rencontrer, reportez-vous à la rubrique Forum aux questions sur le Deep Learning.

Fichier de définition du modèle Esri

Le fichier .emd au format JSON décrit le modèle de Deep Learning entraîné. Il contient les paramètres de définition du modèle nécessaires à l’exécution des outils d’inférence et doit être modifié par le spécialiste des données qui a entraîné le modèle. Comme le décrit la table ci-dessous, le fichier comprend des paramètres obligatoires et facultatifs.

Une fois que le fichier .emd est rempli et vérifié, il est possible de l’utiliser plusieurs fois pour l’inférence tant que l’imagerie en entrée provient du même capteur que l’entrée de modèle d’origine et que les classes ou les objets détectés sont les mêmes. Par exemple, un fichier .emd défini avec un modèle destiné à la détection de plateformes d’exploitation pétrolière à l’aide d’une imagerie satellite Sentinel-2 peut être utilisé pour détecter ces plateformes sur plusieurs zones d’intérêt et à plusieurs dates avec l’imagerie Sentinel-2.

Certains paramètres sont utilisés par tous les outils d’inférence (ils sont répertoriés dans le tableau ci-après). Certains paramètres sont utilisés par des outils spécifiques, ce qui est le cas des paramètres CropSizeFixed et BlackenAroundFeature utilisés uniquement par l’outil Classer des objets à l’aide d’algorithmes de Deep Learning.

Paramètre du fichier de définition du modèleExplication

Structure

Nom d’une structure d’apprentissage profond utilisée pour entraîner votre modèle.

Les structures d’apprentissage profond suivantes sont prises en charge :

  • TensorFlow
  • Keras
  • PyTorch
Si votre modèle est entraîné à l’aide d’une structure de Deep Learning qui ne figure pas dans cette liste, une fonction d’inférence personnalisée (un module Python) est requise avec le modèle entraîné, et vous devez définir InferenceFunction sur le chemin d’accès au module Python.

ModelConfiguration

Nom de la configuration du modèle.

La configuration du modèle définit les entrées et sorties du modèle, la logique d’inférence et les hypothèses émises concernant les entrées et sorties du modèle. Certains processus de Deep Learning Open Source existants définissent la configuration des entrées et sorties standard et la logique d’inférence. ArcGIS prend en charge l’ensemble de configurations prédéfinies suivant :

TensorFlow

  • ObjectDetectionAPI
  • DeepLab

Keras

  • MaskRCNN

Si vous avez utilisé une des configurations prédéfinies, saisissez son nom dans le fichier .emd. Si vous avez entraîné votre modèle de Deep Learning à l’aide d’une configuration personnalisée, vous devez décrire les entrées et sorties en entier dans le fichier .emd ou dans le fichier Python personnalisé.

ModelType

Type de modèle.

  • ImageClassification : pour classer les pixels
  • ObjectDetection : pour détecter les objets ou entités
  • ObjectClassification : pour classer les objets et les entités

ModelFile

Chemin d’accès au fichier de modèle d’apprentissage profond entraîné. Le format du fichier dépend de la structure du modèle. Par exemple, dans TensorFlow, le fichier de modèle est un fichier .pb.

Description

Fournissez des informations sur le modèle. Il peut s’agir de toutes sortes d’indications descriptives concernant le modèle que vous avez entraîné. Le numéro et le nom du modèle, l’heure de création du modèle et l’exactitude de fonctionnement en sont quelques exemples.

InferenceFunction

(Facultatif)

Chemin d’accès à la fonction d’inférence.

Une fonction d’inférence comprend le fichier de données du modèle entraîné et fournit la logique d’inférence. Six fonctions d’inférence sont prises en charge dans les outils de géotraitement de Deep Learning ArcGIS Pro :

  • Détecter des objets pour TensorFlow
  • Classer des pixels pour Tensor Flow
  • Détecter des objets pour Keras
  • Détecter des objets pour PyTorch
  • Classer des objets pour PyTorch
Si vous avez utilisé une des fonctions d’inférence ci-dessus, il n’est pas nécessaire de le préciser dans le fichier .emd. Si votre modèle est entraîné à l’aide d’une configuration de modèle de Deep Learning qui n’est pas encore prise en charge, ou s’il nécessite une logique d’inférence spéciale, une fonction d’inférence personnalisée (un module Python) est requise avec le modèle entraîné. Dans ce cas, définissez InferenceFunction sur le chemin d’accès au module Python. Un fichier de module Python d’inférence peut se trouver à n’importe quel emplacement accessible par ArcGIS Pro.

SensorName

(Facultatif)

Nom du capteur utilisé pour collecter l’imagerie à partir de laquelle les échantillons d’entraînement ont été générés.

RasterCount

(Facultatif)

Nombre de rasters utilisés pour générer les échantillons d’entraînement.

BandList

(Facultatif)

Liste des bandes utilisées dans l’imagerie source.

ImageHeight

(Facultatif)

Nombre de lignes dans l’image classée ou traitée.

ImageWidth

(Facultatif)

Nombre de colonnes dans l’image classée ou traitée.

ExtractBands

(Facultatif)

Les index noms des canaux à extraire de l’imagerie en entrée.

Classes

(Facultatif)

Informations concernant les catégories ou objets de la classe en sortie.

DataRange

(Facultatif)

Plage de valeurs de données, si une mise à l’échelle ou une normalisation a été réalisée en prétraitement.

ModelPadding

(Facultatif)

Quantité de remplissage à ajouter à l’imagerie en entrée pour l’inférence.

BatchSize

(Facultatif)

Nombre d’échantillons d’entraînement à utiliser à chaque itération du modèle.

PerProcessGPUMemoryFraction

(Facultatif)

Fraction de la mémoire graphique à allouer à chaque itération du modèle. La valeur par défaut est de 0,95, soit 95 pour cent.

MetaDataMode

(Facultatif)

Format des étiquettes de métadonnées utilisées pour les fragments d’image.

ImageSpaceUsed

(Facultatif)

Type de système de référence utilisé pour entraîner le modèle.

  • MAP_SPACE
  • PIXEL_SPACE

WellKnownBandNames

(Facultatif)

Noms donnés à chaque bande en entrée, par ordre d’indice de bande. Les bandes peuvent alors être désignées par ces noms dans d’autres outils.

AllTileStats

Statistiques de chaque bande des données d’entraînement.

Voici un exemple de fichier de définition de modèle (.emd) qui utilise une configuration de modèle standard :

{
    "Framework": "TensorFlow",
    "ModelConfiguration": "ObjectDetectionAPI",
    "ModelFile":"C:\\ModelFolder\\ObjectDetection\\tree_detection.pb",
    "ModelType":"ObjectionDetection",
    "ImageHeight":850,
    "ImageWidth":850,
    "ExtractBands":[0,1,2],
    "Classes" : [
      {
        "Value": 0,
        "Name": "Tree",
        "Color": [0, 255, 0]
      }
    ]
}

Voici un exemple de fichier de définition de modèle (.emd) dont la configuration compte davantage de paramètres facultatifs :

{
    "Framework": "PyTorch",
    "ModelConfiguration": "FasterRCNN",
    "ModelFile":"C:\\ModelFolder\\ObjectDetection\\river_detection.pb",
    "ModelType":"ObjectionDetection",
				"Description":"This is a river detection model for  imagery",
    "ImageHeight":448,
    "ImageWidth":448,
    "ExtractBands":[0,1,2,3],
				"DataRange":[0.1, 1.0],
				"ModelPadding":64,
				"BatchSize":8,
				"PerProcessGPUMemoryFraction":0.8,
				"MetaDataMode" : "PASCAL_VOC_rectangles",
				"ImageSpaceUsed" : "MAP_SPACE",
    "Classes" : [
      {
        "Value": 1,
        "Name": "River",
        "Color": [0, 255, 0]
      }
    ],
				"InputRastersProps" : {
						"RasterCount" : 1,
						"SensorName" : "Landsat 8",
						"BandNames" : [
								"Red",
								"Green",
								"Blue",
								"NearInfrared"
						]
				},
				"AllTilesStats" : [
      {
      		"BandName" : "Red",
      		"Min" : 1,
      		"Max" : 60419,
      		"Mean" : 7669.720049855654,
      		"StdDev" : 1512.7546387966217
      },
      {
      		"BandName" : "Green",
      		"Min" : 1,
      		"Max" : 50452,
      		"Mean" : 8771.2498195125681,
      		"StdDev" : 1429.1063589515179
      },
      {
      		"BandName" : "Blue",
      		"Min" : 1,
      		"Max" : 47305,
      		"Mean" : 9306.0475897744163,
      		"StdDev" : 1429.380049936676
      },
      {
      		"BandName" : "NearInfrared",
      		"Min" : 1,
      		"Max" : 60185,
      		"Mean" : 17881.499184561973,
      		"StdDev" : 5550.4055277121679
      }
    ],
}

Paquetage de modèle de Deep Learning

Un paquetage de modèle d’apprentissage profond (.dlpk) contient les fichiers et données nécessaires à l’exécution des outils d’inférence d’apprentissage profond pour la détection des objets ou la classification des images. Il est possible de charger le paquetage sur le portail comme élément DLPK et de l’utiliser comme entrée des outils d’analyse raster pour apprentissage profond.

Les paquetages de modèle de Deep Learning doivent contenir un fichier de définition de modèle Esri (.emd) et un fichier de modèle entraîné. L’extension du fichier de modèle entraîné est fonction de la structure d’entraînement utilisée pour le modèle. Par exemple, un modèle entraîné avec TensorFlow génère un fichier portant l’extension .pb, alors qu’un modèle entraîné avec Keras produit un fichier portant l’extension .h5. Selon la structure du modèle et les options que vous utilisez pour entraîner votre modèle, il peut être nécessaire d’inclure une fonction raster Python (.py) ou des fichiers supplémentaires. Il est possible d’inclure plusieurs fichiers de modèle entraîné dans un seul et même paquetage de modèle d’apprentissage profond.

Vous pouvez ouvrir la plupart des paquetages dans n’importe quelle version de ArcGIS Pro. Par défaut, le contenu d’un paquetage est stocké dans le dossier <User Documents>\ArcGIS\Packages. Vous pouvez changer cet emplacement dans les options de partage et de téléchargement. Les fonctionnalités du paquetage qui ne sont pas prises en charge par la version de ArcGIS Pro utilisée pour consommer le paquetage ne sont pas disponibles.

Pour afficher ou modifier les propriétés d’un paquetage .dlpk, ou pour ajouter des fichiers à votre paquetage .dlpk ou en supprimer, cliquez avec le bouton droit sur le paquetage .dlpk dans la fenêtre Catalog (Catalogue) et cliquez sur Properties (Propriétés).

Paquetage de Deep Learning ouvert dans la fenêtre Catalogue

Les propriétés englobent les informations suivantes :

  • Input - Fichier .emd, fichier de modèle entraîné et tout autre fichier qui peut être nécessaire à l’exécution des outils d’inférence.
  • Framework - Structure de Deep Learning utilisée pour entraîner le modèle.
  • ModelConfiguration - Type d’entraînement de modèle réalisé (détection d’objets, classification de pixels ou classification d’entités).
  • Description - Présentation descriptive du modèle. Cette propriété est facultative et modifiable.
  • Summary - Bref résumé du modèle. Cette propriété est facultative et modifiable.
  • Tags - Toutes les balises utilisées pour identifier le paquetage. Cette propriété est utile pour les éléments du paquetage .dlpk qui sont stockés sur votre portail.

Propriétés du paquetage de Deep Learning

Une propriété modifiée dans la fenêtre Properties (Propriétés) est mise à jour lorsque vous cliquez sur OK. Si l’élément du paquetage .dlpk est utilisé depuis votre portail dans la fenêtre Catalog (Catalogue), l’élément du portail est mis à jour.

Pour plus d’informations sur la création d’un paquetage .dlpk, reportez-vous à la rubrique Partager un paquetage de modèle de Deep Learning.

Ressources de développement

En complément des outils et processus de géotraitement à votre disposition dans ArcGIS Pro, vous pouvez réaliser des tâches de Deep Learning dans des scripts et des notebooks. Si vous travaillez dans ArcGIS REST API, utilisez les tâches de Deep Learning disponibles avec le service d’analyse rasterTâches du service d’analyse raster. Ces tâches sont équivalentes aux outils de géotraitement disponibles, à ceci près qu’elles permettent un traitement distribué en fonction de la configuration du traitement.

Si vous travaillez dans ArcGIS API for Python, de nombreuses autres tâches de Deep Learning sont disponibles avec le module arcgis.learn Site Web ArcGIS API for Python.

Rubriques connexes