Skip To Content

Apprentissage profond dans l’analyse raster

ArcGIS Image Server permet d’utiliser des méthodes de classification statistiques ou d’apprentissage automatique en vue de classer l’imagerie de télédétection. L’apprentissage profond est un type d’apprentissage automatique qui s’appuie sur plusieurs couches de traitement non linéaire pour réaliser l’identification d’identités et la reconnaissance des modèles dont l’explication se trouve dans un modèle. Les modèles d’apprentissage profond peuvent être intégrés avec ArcGIS Image Server pour la détection des objets et la classification des images. Les échantillons d’apprentissage des entités ou des objets d’intérêt sont générés dans ArcGIS Pro avec les outils du gestionnaire d’échantillons d’apprentissage de classification, étiquetés à l’aide de l’outil Étiqueter les objets pour l’apprentissage profond et, enfin, convertis au format à utiliser dans la structure d’apprentissage profond. Ces échantillons d’apprentissage sont utilisés pour entraîner le modèle à l’aide de l’outil d’analyse raster Entraîner le modèle d’apprentissage profond ou ArcGIS API for Python. Le modèle entraîné, associé à la définition du modèle (et éventuellement à un fichier de script de fonction raster Python), est empaqueté et partagé sous forme d’élément (paquetage d’apprentissage profond .dlpk), qui est ensuite utilisé pour exécuter les outils d’inférence d’analyse raster. Les outils d’inférence extraient des entités spécifiques ou classent les pixels dans l’imagerie. L’élément .dlpk peut être utilisé en entrée plusieurs fois dans les outils d’analyse raster, ce qui permet d’évaluer facilement plusieurs images à différents emplacements et sur différentes périodes, une fois le modèle entraîné.

Processus d’apprentissage profond

Élément de processus 1

Créez des échantillons d’apprentissage avec l’outil Étiqueter les objets pour l’apprentissage profond dans ArcGIS Pro et utilisez l’outil d’analyse raster Exporter les données d’apprentissage pour l’apprentissage profond dans ArcGIS REST API ou ArcGIS API for Python pour préparer les données que le responsable des données va utiliser.

Élément de processus 2

Entraînez le modèle d’apprentissage profond à l’aide de l’outil d’analyse raster Entraîner le modèle d’apprentissage profond. Vous pouvez également utiliser le module ArcGIS REST API pour entraîner le modèle avec une structure d’apprentissage profond. Le paquetage d’apprentissage profond en sortie (*.dlpk), composé d’un fichier de définition de modèle et d’un modèle d’apprentissage profond entraîné ou un script Python, est partagé sur votre portail comme élément .dlpk.

Élément de processus 3

Le responsable des données renvoie un paquetage d’apprentissage profond, qui se compose du fichier de définition du modèle et du modèle entraîné ou d’un script Python, dans l’environnement d’analyse raster ArcGIS Image Server.

Avec l’élément .dlpk sur le portail, exécutez l’outil Détecter des objets à l’aide de l’apprentissage profond ou l’outil Classer des pixels à l’aide de l’apprentissage profond ou encore l’outil Classer des objets à l’aide de l’apprentissage profond pour générer une sortie.

Fonctions et fonctionnalités

Les outils d’analyse raster d’apprentissage profond vous permettent d’aller au-delà des techniques de classification d’apprentissage automatique standard.

  • Utilisez les réseaux neuronaux convolutifs pour classer des images et détecter des objets.
  • Utilisez un modèle d’apprentissage profond pour classer des pixels d’images ou détecter ou classer des objets, tels que des avions, des arbres, des véhicules, des plans d’eau, des bâtiments et des puits de pétrole.
  • Intégrez les structures des modèles d’apprentissage profond externes, notamment PyTorch, Keras et TensorFlow.
  • Traitez un ensemble de rasters au cours de l’inférence du modèle 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 illustre les objets détectés à utiliser afin de réaliser d’autres analyses ou processus.
  • Les outils d’inférence d’apprentissage profond peuvent recourir au processeur pour le traitement distribué ou utiliser la puissance du processeur graphique (GPU) sur chaque nœud de serveur le cas échéant.
  • Vous pouvez utiliser plusieurs GPU par nœud de serveur pour exécuter la tâche d’inférence de l’apprentissage profond selon les configurations de modèle prédéfinies dans ArcGIS dont TensorFlow Object Detection API et DeepLab, Keras MaskRCNN, PyTorch fastai Single Shot Detector.
  • Si le raster en entrée est livré avec l’espace cartographique approprié en vue de la transformation, les fragments d’image d’entraînement peuvent être exportés dans l’espace image via l’outil Exporter les données d’apprentissage pour l’apprentissage profond.

Prise en main de l’apprentissage profond

La création et l’exportation d’échantillons d’apprentissage s’effectuent dans ArcGIS par un analyste des images compétent, car il est important de bien connaître les processus de classification des images. Le modèle d’apprentissage profond est entraîné dans ArcGIS à l’aide de l’outil d’analyse raster Entraîner le modèle d’apprentissage profond ou, ArcGIS API for Python arcgis.learn. Sinon, le modèle peut être entraîné hors d’ArcGIS au moyen d’une API d’apprentissage profond de tierce partie. Une fois le modèle entraîné, l’élément .dlpk est ajouté à Portal for ArcGIS et est prêt à l’emploi pour les tâches d’inférence du modèle. Exécutez les outils d’analyse raster pour détecter et classer des objets ou classer des pixels dans Map Viewer, ArcGIS API for Python, ArcGIS REST API ou ArcGIS Pro. L’ensemble du processus d’apprentissage profond peut être accompli par un seul analyste bénéficiant d’une expérience en matière de modèles d’apprentissage profond et de classification des images ArcGIS.

Une application de configuration séparée de l’apprentissage profond est également fournie. Celle-ci installe les instances API de structure d’apprentissage profond qui conviennent (TensorFlow, Keras, PyTorch et les autres bibliothèques Python nécessaires) dans l’environnement arcgispro-py3 par défaut, ArcGIS Image Server. Il s’agit de la configuration requise pour pouvoir exécuter les tâches d’apprentissage profond sur ArcGIS Image Server.

Reportez-vous à la documentation pour obtenir de l’aide sur la configuration et le déploiement d’ArcGIS Enterprise en vue de l’analyse raster. Consultez les étapes supplémentaires de la configuration de votre serveur Raster Analysis afin de pouvoir utiliser plusieurs GPU par nœud de serveur.

  1. Créez et exportez des échantillons d’apprentissage.
    1. Utilisez l’outil Étiqueter les objets pour l’apprentissage profond dans ArcGIS Pro 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 d’analyse raster Exporter les données d’apprentissage pour l’apprentissage profond pour convertir l’imagerie source et les échantillons d’apprentissage en données d’entraînement de l’apprentissage profond. L’imagerie source peut être un service d’imagerie. La sortie de l’outil est la chaîne du répertoire de données où vont être stockés les fragments d’image, les étiquettes et les fichiers de métadonnées en sortie. Autre sortie de l’outil : un fichier .emd modèle que le responsable des données doit renseigner.
  2. Entraînez le modèle d’apprentissage profond.
    1. Utilisez les fragments d’image générés à l’étape 1 ci-dessus pour entraîner un modèle à l’aide de l’outil d’analyse raster Entraîner le modèle d’apprentissage profond. Les utilisateurs peuvent aussi entraîner leurs modèles d’apprentissage profond en utilisant ArcGIS API for Pythonarcgis.learn ou des API de structure d’apprentissage profond de tierce partie.
    2. Si le modèle d’apprentissage profond est entraîné à l’aide de l’outil d’analyse raster Entraîner le modèle d’apprentissage profond, la sortie sera un élément de paquetage de modèle d’apprentissage profond publié sur le portail. Le paquetage du modèle d’apprentissage profond (.dlpk) peut être utilisé directement au cours de l’étape suivante.
    3. Si une API de structure d’apprentissage profond de tierce partie a entraîné le modèle, les utilisateurs doivent mettre à jour le fichier .emd pour prendre en compte le nom de la structure d’apprentissage profond, la configuration du modèle et d’autres propriétés facultatives ainsi qu’une éventuelle fonction raster Python personnalisée chargée de l’inférence du modèle. Pour connaître les paramètres obligatoires et facultatifs du fichier .emd, reportez-vous à la section Fichier de définition du modèle Esri ci-dessous.
  3. Exécutez les outils d’analyse raster d’inférence de Map Viewer, ArcGIS API for Python, ArcGIS REST API ou de ArcGIS Pro.
    1. Utilisez les outils d’analyse raster Détecter des objets à l’aide de l’apprentissage profond ou Classer des objets à l’aide de l’apprentissage profond ou Classer des pixels à l’aide de l’apprentissage profond 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 le seuil de confiance pour optimiser la sensibilité, ces variables apparaissent dans la boîte de dialogue des outils d’analyse raster ArcGIS Pro ou Map Viewer 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.

      La sortie de l’outil Détecter des objets à l’aide de l’apprentissage profond ou Classer des objets à l’aide de l’apprentissage profond est une classe d’entités qui présente les objets détectés ou classés par le modèle ; l’outil Classer des pixels à l’aide de l’apprentissage profond génère un raster classé.

      Remarque :

      La structure du modèle d’apprentissage profond doit être installée sur les machines du service Raster Analysis pour que les outils d’inférence puissent être exécutés. En effet, la logique d’inférence est intégrée à l’API Python de la structure et est nécessaire au calcul.

Fichier de définition du modèle Esri

Le fichier .emd au format JSON décrit le modèle d’apprentissage profond 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 responsable 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.

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

fonction d’inférence (InferenceFunction)

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 d’apprentissage profond Open Source existants définissent la configuration des entrées et sorties standard et la logique d’inférence. ArcGIS prend en charge plusieurs configurations prédéfinies :

TensorFlow

  • ObjectDetectionAPI
  • DeepLab

Keras

  • MaskRCNN
  • KerasClassifier

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 d’apprentissage profond à l’aide d’une configuration personnalisée, vous devez décrire les entrées et sorties dans le fichier .emd ou dans le fichier Python personnalisé, en entier.

ModelFile

Chemin d’accès au fichier de modèle d’apprentissage profond entraîné. De nombreux formats de fichier de structure de modèle reposant sur les zones tampon de protocole, le modèle d’apprentissage profond entraîné est un fichier .pb, mais d’autres formats de fichier sont pris en charge.

ModelType

Type de modèle. Il peut s’agir de l’un des types suivants :

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

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 d’analyse raster d’apprentissage profond ArcGIS :

  • 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 d’apprentissage profond qui n’est pas encore prise en charge, ou s’il nécessite une logique d’inférence, une fonction d’inférence personnalisée (un module Python) est nécessaire avec le modèle entraîné. Dans ce cas, définissez InferenceFunction sur le chemin d’accès au module Python.

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.

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

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

Élément dlpk (paquetage d’apprentissage profond)

Les outils d’analyse raster d’apprentissage profond nécessitent un paquetage de modèle d’apprentissage profond (.dlpk) en entrée. Un paquetage de modèle d’apprentissage profond se compose du fichier JSON définition du modèle ESRI (.emd), du fichier de modèle binaire d’apprentissage profond et, éventuellement, de la fonction raster Python à utiliser.

Une fois tous les composants prêts, vous pouvez compresser tous les fichiers dans un fichier .zip et charger le fichier .zip sur votre portail en tant qu’élément .dlpk. Pour plus d’informations, reportez-vous à la rubrique Ajouter des fichiers à partir de votre ordinateur. Vous pouvez également modifier l’extension de fichier .zip en .dlpk afin que le type d’élément .dlpk soit automatiquement détecté lorsque vous ajoutez un élément.

Remarque :

Vous devez comprimer tous les fichiers inclus dans le paquetage du modèle d’apprentissage profond au niveau du dossier racine.