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 supports 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, puis convertis au format à utiliser dans le cadre de l’apprentissage profond. Ces échantillons d’apprentissage sont utilisés par un responsable des données ou des images pour entraîner le modèle à l’aide d’une structure d’apprentissage profond tierce. 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 dlpk (paquetage d’apprentissage profond), 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 le gestionnaire d’échantillons d’apprentissage 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

Le responsable des données utilise les données d’entraînement pour développer des modèles à l’aide d’une structure d’apprentissage profond tierce.

É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é et/ou d’un script Python, dans l’environnement d’analyse raster ArcGIS Image Server.

Élément de processus 4

Créez un élément de paquetage d’apprentissage (.dlpk) et partagez-le sur le portail. Avec l’élément dlpk, 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 pour générer une sortie.

Élément de processus 5

Vous pouvez utiliser ArcGIS API for Python pour entraîner le modèle avec une structure d’apprentissage profond.

Fonctions et fonctionnalités

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

  • Utilisez les réseaux neuronaux convolutifs pour classer des images.
  • Utilisez un modèle d’apprentissage profond pour classer des pixels d’images ou détecter des objets, tels que des avions, des arbres, des véhicules, des plans d’eau et des puits de pétrole.
  • Intégrez les structures des modèles d’apprentissage profond externes, notamment Keras, TensorFlow, CNTK et PyTorch.
  • 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 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 de la GPU sur chaque nœud de serveur le cas échéant.

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é à l’extérieur de ArcGIS à l’aide d’une structure d’apprentissage profond par un responsable des données ou par une personne munie d’une solide expérience dans l’entraînement des modèles d’apprentissage profond. Une fois le modèle entraîné et défini dans un fichier de définition du modèle Esri .emd, vous partagez un élément dlpk dans Portal for ArcGIS et exécutez les outils d’analyse raster pour détecter des objets ou classer des pixels dans Map Viewer, ArcGIS API for Python, ArcGIS REST API ou ArcGIS Pro. Dans certains cas, les trois étapes peuvent être accomplies par un seul analyste ayant une expérience dans les modèles d’apprentissage profond et la classification des images ArcGIS.

Vous devez installer l’instance ArcGIS API for Python de structure d’apprentissage profond qui convient (TensorFlow, CNTK ou Keras) dans l’environnement ArcGIS Server Python 3. Sinon, une erreur se produit lorsque vous ajoutez l’élément dlpk dans l’outil. Procurez-vous les informations de structure appropriées auprès de l’auteur du fichier de définition du modèle Esri.

Consultez la documentation de la structure pour obtenir de l’aide sur l’installation. Reportez-vous à la documentation pour obtenir de l’aide sur la configuration et le déploiement de ArcGIS Enterprise en vue de l’analyse raster.

  1. Créez et exportez des échantillons d’apprentissage.
    1. Utilisez le gestionnaire d’échantillons d’apprentissage 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 d’une structure d’apprentissage profond telle que TensorFlow, CNTK, PyTorch ou Keras.
    2. Mettez à jour le fichier .emd en utilisant le nom de la structure d’apprentissage profond, la configuration du modèle et d’autres propriétés facultatives. 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 ArcGIS Pro.
    1. Utilisez les outils d’analyse raster Détecter 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. Dans l’idéal, le nombre des paramètres d’inférence supplémentaires doit être limité à deux.

      La sortie de l’outil Détecter des objets à l’aide de l’apprentissage profond est une classe d’entités qui illustre les objets détectés par le modèle, et 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 d’analyse raster 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.

Trois structures d’apprentissage profond sont prises en charge :

  • TensorFlow
  • CNTK
  • 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

CNTK

Keras

PyTorch

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

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 CNTK
  • Classer des pixels pour CNTK
  • Détecter des objets pour Keras
  • Détecter 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.