Modèles de Deep Learning dans ArcGIS

Disponible avec une licence Image Analyst.

Un modèle de Deep Learning est un modèle informatique entraîné à l’aide d’échantillons d’entraînement et de réseaux neuronaux de Deep Learning afin d’effectuer diverses tâches telles que la détection des objets, la classification des pixels, la détection des changements et la classification des objets.

Dans ArcGIS, les modèles de Deep Learning peuvent être regroupés dans trois catégories :

  • Modèles pré-entraînés ArcGIS
  • Modèles entraînés avec ArcGIS
  • Modèles personnalisés

Modèles pré-entraînés ArcGIS

Les modèles pré-entraînés ArcGIS automatisent la numérisation et l’extraction d’entités géographiques à partir de jeux de données d’imagerie et de nuage de points.

L’extraction manuelle d’entités à partir de données brutes, comme la numérisation d’emprises ou la génération de cartes d’occupation du sol, est chronophage. Les algorithmes de Deep Learning permettent d’automatiser ce processus et réduisent l’interaction manuelle nécessaire à la réalisation de ces tâches. Il peut, cependant, s’avérer compliqué d’entraîner un modèle de Deep Learning car cela nécessite d’importantes quantités de données et de ressources de calcul et exige de bien maîtriser le Deep Learning.

Grâce aux modèles pré-entraînés ArcGIS, vous n’avez pas besoin de consacrer du temps et des efforts à l’entraînement d’un modèle de Deep Learning. Les modèles ArcGIS ont été entraînés sur des données issues de géographies différentes. Lorsqu’une nouvelle imagerie est mise à disposition, vous pouvez extraire des entités et produire des couches de jeux de données SIG pour la cartographie, la visualisation et l’analyse. Les modèles pré-entraînés sont disponibles sur ArcGIS Living Atlas of the World si vous disposez d’un compte ArcGIS.

Modèles entraînés avec ArcGIS

Pour diverses raisons, vous devrez peut-être entraîner vos propres modèles. Par exemple, si le modèle pré-entraîné ArcGIS disponible est entraîné pour une région géographique différente de votre zone d’intérêt. Dans de telles situations, vous pouvez utiliser l’outil Entraîner le modèle de Deep Learning. L’entraînement de votre propre modèle nécessite des étapes supplémentaires, mais produit généralement les meilleurs résultats pour une zone d’intérêt et un cas d’utilisation spécifiques. L’outil entraîne un modèle d’apprentissage profond à l’aide de la sortie de l’outil Exporter les données d’entraînement pour le Deep Learning. Les deux outils prennent en charge la plupart des architectures de modèles et des formats de métadonnées de Deep Learning courants.

Pour plus d’informations sur les divers formats de métadonnées, reportez-vous à la documentation de l’outil Exporter les données d’entraînement pour le Deep Learning. Pour plus d’informations sur les divers types de modèles, reportez-vous à la documentation de l’outil Entraîner le modèle de Deep Learning.

Modèles personnalisés

Dans ArcGIS, l’inférence de modèle de Deep Learning est mise en œuvre sur la structure de fonction raster Python. De nombreux modèles de Deep Learning entraînés en dehors d’ArcGIS peuvent être utilisés dans ArcGIS à des fins d’inférence. Toutefois, pour cela, la fonction d’inférence doit être personnalisée et les paquetages prenant en charge le modèle doivent être installés. Le référentiel raster-deep-learning fournit des instructions sur les fonctions raster Python de Deep Learning dans ArcGIS et indique comment créer des fonctions raster Python personnalisées pour intégrer des modèles de Deep Learning supplémentaires dans ArcGIS. Ces modèles sont considérés comme des modèles personnalisés.

Contenu d’un modèle de Deep Learning

Un modèle standard entraîné dans ArcGIS contient le dossier et les fichiers présentés dans l’image suivante et répertoriés ci-dessous :

Structure de dossier du modèle

  • loss_graph.png : affiche la perte d’entraînement et de validation des lots traités. S’utilise dans le fichier model_metrics.html.
  • show_results.png : affiche des exemples de résultats pour le modèle. S’utilise dans le fichier model_metrics.html.
  • training_validation_loss.json : affiche la perte d’entraînement et de validation par epoch.
  • model_metrics.html : contient des informations sur le modèle entraîné, telles que le taux d’apprentissage, les pertes d’entraînement et de validation et les exemples de résultats.
  • model_name.pth : contient les pondérations du modèle.

Selon l’architecture du modèle, le dossier du modèle peut contenir d’autres fichiers de prise en charge tels que ModelConfiguration.py.

Fichier de définition du modèle Esri

Le fichier de définition de modèle Esri (.emd) est un fichier au format JSON qui 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 et sont répertoriés dans le tableau ci-après. Certains paramètres ne sont utilisés qu’avec des outils spécifiques, tels que les paramètres CropSizeFixed et BlackenAroundFeature utilisés uniquement par l’outil Classer des objets à l’aide du Deep Learning.

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

Structure

Nom d’une structure de Deep Learning utilisée pour entraîner le modèle.

Voici quelques exemples de frameworks de Deep Learning pris en charge :

  • TensorFlow
  • Keras
  • PyTorch
Reportez-vous à la liste des frameworks pris en charge.

Si le modèle est entraîné à l’aide d’un framework de Deep Learning qui ne figure pas dans la liste des frameworks pris en charge, une fonction d’inférence personnalisée (un module Python) est requise avec le modèle entraîné, et vous devez définir le paramètre 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é le modèle de Deep Learning à l’aide d’une configuration personnalisée, vous devez décrire les entrées et les sorties en entier dans le fichier .emd ou dans le fichier Python personnalisé.

ModelType

Type de modèle. Les options sont les suivantes :

  • ImageClassification : classe les pixels.
  • ObjectDetection : détecte les objets ou les entités.
  • ObjectClassification : classe 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

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. Les fonctions d’inférence suivantes 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 le 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. Les options sont les suivantes :

  • 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 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 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. Si la version d’ArcGIS Pro utilisée pour ouvrir un paquetage ne prend pas en charge la fonctionnalité dans le paquetage, la fonctionnalité ne sera pas disponible.

Pour afficher ou modifier les propriétés d’un paquetage .dlpk ou pour ajouter des fichiers à un 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).

Ouvrez un paquetage de Deep Learning dans la fenêtre Catalog (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.

Rubriques connexes