Skip To Content

Apprentissage profond dans l’analyse raster

ArcGIS Image Server permet d’utiliser des méthodes de classification statistiques ou de Machine Learning pour classer l’imagerie de télédétection. L’apprentissage profond est un genre d’apprentissage automatique qui repose sur plusieurs couches de traitement non linéaire pour l’identification d’entités et la reconnaissance des modèles décrites dans un modèle. Les modèles de Deep Learning peuvent être intégrés à ArcGIS Image Server pour la détection des objets et la classification des images. Les échantillons d’entraînement 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’entraînement de classification, étiquetés à l’aide de l’outil Étiqueter les objets pour le Deep Learning, puis convertis au format à utiliser dans la structure de Deep Learning. Ces échantillons d’entraînement sont utilisés pour entraîner le modèle à l’aide de l’outil d’analyse raster Entraîner le modèle de Deep Learning ou ArcGIS API for Python. Le modèle entraîné, associé au fichier de définition du modèle (et éventuellement à un fichier de script de fonction raster Python) est empaqueté et partagé sous la forme d’un élément de paquetage de Deep Learning (.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’entraînement avec l’outil Étiqueter les objets pour le Deep Learning dans ArcGIS Pro, puis utilisez l’outil d’analyse raster Exporter les données d’entraînement pour le Deep Learning 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 ArcGIS REST API pour entraîner le modèle avec une structure de Deep Learning. Le paquetage de Deep Learning en sortie (*.dlpk), composé du fichier de définition de modèle et du modèle de Deep Learning entraîné ou du script Python, est partagé sur votre portail comme élément  .dlpk.

Élément de processus 3

Le responsable des données renvoie un paquetage de Deep Learning, composé du fichier de définition de modèle et du modèle entraîné ou du 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 du Deep Learning, l’outil Classer des pixels à l’aide du Deep Learning ou l’outil Classer des objets à l’aide du Deep Learning 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’entraînement pour le Deep Learning.

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 de Deep Learning peut être entraîné dans ArcGIS à l’aide de l’outil d’analyse raster Train Deep Learning Model (Entraîner le modèle de Deep Learning) 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é au portail ArcGIS Enterprise et est prêt 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 Classic, 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 de Deep Learning séparée est également fournie. Elle installe les API de structure de Deep Learning 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 préalable requise pour pouvoir exécuter les tâches de Deep Learning 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 Analyse raster 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 le Deep Learning 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. Par ailleurs, les utilisateurs peuvent entraîner leurs modèles de Deep Learning en utilisant ArcGIS API for Python arcgis.learn ou des API de structure de Deep Learning 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 de Deep Learning (.dlpk) peut être utilisé directement au cours de l’étape suivante.
    3. Si une API de structure de Deep Learning de tierce partie est utilisée pour entraîner le modèle, les utilisateurs doivent mettre à jour le fichier .emd pour prendre en compte le nom de la structure de Deep Learning, 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 obtenir des informations relatives aux paramètres obligatoires et facultatifs du fichier .emd, reportez-vous à la section Fichier de définition du modèle Esri ci-après.
  3. Exécutez les outils d’analyse raster d’inférence disponibles dans Map Viewer Classic, ArcGIS API for Python, ArcGIS REST API ou ArcGIS Pro.
    1. Utilisez l’outil d’analyse raster Détecter des objets à l’aide du Deep Learning, Classer des pixels à l’aide du Deep Learning ou Classer des objets à l’aide du 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 le seuil de confiance pour optimiser la sensibilité, ces variables apparaissent dans la boîte de dialogue de l’outil d’analyse raster ArcGIS Pro ou Map Viewer Classic 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.
      Remarque :

      La structure du modèle de Deep Learning doit être installée sur les machines du service 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 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 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

PythonInferenceFunctionPython

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 de Deep Learning à 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 de Deep Learning 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 de Deep Learning qui n’est pas encore prise en charge, ou s’il nécessite une logique d’inférence particulière, 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)

Un paquetage de modèle de Deep Learning (.dlpk) est nécessaire en entrée pour les outils d’analyse raster de Deep Learning. Un paquetage de modèle de Deep Learning se compose du fichier JSON de définition du modèle Esri (.emd), du fichier de modèle binaire de Deep Learning et, éventuellement, de la fonction raster Python à utiliser.

Vous pouvez partager un paquetage de Deep Learning directement depuis ArcGIS Pro. Si tous les composants sont prêts, vous pouvez également compresser les fichiers dans un fichier .zip et charger ce fichier .zip sur votre portail en tant qu’élément .dlpk. Pour plus de détails, voir Ajouter des fichiers en tant qu’éléments. Vous pouvez également changer l’extension de votre 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.