Classer des objets à l’aide de l’apprentissage profond (Analyse raster)

Synthèse

Exécute un modèle de Deep Learning entraîné sur un raster en entrée et une classe d’entités facultative afin de générer une classe d’entités ou une table dans laquelle un objet ou une entité en entrée a une catégorie ou une étiquette de classe attribuée.

Illustration

Illustration de l’outil Classer des objets à l’aide de l’apprentissage profond

Utilisation

  • L'environnement Python du serveur d'analyse raster doit être configuré avec l'API Python de la structure Deep Learning appropriée, telle que Tensorflow, CNTK ou une autre similaire.

  • Lorsque cet outil est en cours d’exécution, le serveur d’analyse raster appelle une API Python de Deep Learnin tierce (telle que TensorFlow ou CNTK) et utilise la fonction raster Python spécifiée pour traiter chaque tuile raster.

  • Le modèle en entrée de cet outil n’extrait qu’un élément de paquetage Deep Learning (.dlpk) du portail.

  • Une fois que le modèle en entrée a été sélectionné ou spécifié, l’outil récupère les arguments du modèle auprès du serveur d’analyse raster. Il est possible que l’outil ne parvienne pas à récupérer ces informations si le modèle en entrée n’est pas valide ou que le serveur d’analyse raster n’est pas correctement configuré avec l’infrastructure Deep Learning.

Paramètres

ÉtiquetteExplicationType de données
Raster en entrée

Image en entrée à classer. L’image peut être une URL de service d’imagerie, une couche raster, un service d’imagerie, une couche de serveur de carte ou une couche Internet tuilée.

Raster Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer; String
Modèle en entrée

Modèle d’apprentissage profond allant être utilisé pour classer des objets dans l’image en entrée. L’entrée est l’URL d’un élément de paquetage d’apprentissage profond (.dlpk) qui contient le chemin d’accès au fichier du modèle binaire d’apprentissage profond, le chemin d’accès à la fonction raster Python à utiliser et d’autres paramètres, tels que le remplissage ou la taille de préférence des tuiles.

File
Nom en sortie

Nom du service d’entités contenant les objets classés.

String
Entités en entrée
(Facultatif)

Service d’entités identifiant l’emplacement de chaque objet ou entité à classer ou étiqueter. Chaque ligne dans le service d’entités en entrée représente un objet ou une entité unique.

Si aucun service d’entités en entrée n’est spécifié, chaque image en entrée sera classée comme un objet unique. Si l’image ou les images en entrée utilisent une référence spatiale, la sortie de l’outil est une classe d’entités dans laquelle l’étendue de chaque image est utilisée comme géométrie d’emprise pour chaque classe d’entités étiquetée. Si l’image ou les images en entrée ne sont pas référencées spatialement, la sortie de l’outil est une table contenant les valeurs d’ID des images et les étiquettes de classe de chaque image.

Feature Layer; Map Server Layer; String
Arguments du modèle
(Facultatif)

Arguments de modèle de fonction à utiliser pour la classification. Ces arguments sont définis dans la classe de fonction raster Python référencée par le modèle en entrée. C’est là que vous répertoriez les paramètres et arguments d’apprentissage profond supplémentaires à tester et affiner, par exemple un seuil de confiance pour ajuster la sensibilité. Les noms des arguments sont renseignés par l’outil via le module Python dans le serveur d’analyse raster.

Value Table
Champ classe d'étiquettes
(Facultatif)

Nom du champ allant contenir l’étiquette de classe ou de catégorie dans la classe d’entités en sortie.

Si aucun nom de champ n’est spécifié, un nouveau champ nommé ClassLabel est généré dans la classe d’entités en sortie.

String
Processing Mode (Mode de traitement)
(Facultatif)

Spécifie comment tous les éléments raster figurant dans un jeu de données mosaïque ou un service d’imagerie seront traités. Ce paramètre est appliqué lorsqu’un raster en entrée est un jeu de données mosaïque ou service d’imagerie.

  • Process as mosaicked image (Traiter en tant qu’image mosaïquée)Tous les éléments raster figurant dans le jeu de données mosaïque ou le service d’imagerie seront mosaïqués ensemble, puis traités. Il s’agit de l’option par défaut.
  • Process all raster items separately (Traiter tous les éléments raster séparément)Tous les éléments raster figurant dans le jeu de données mosaïque ou le service d’imagerie seront traités en tant qu’images séparées.
String

Sortie obtenue

ÉtiquetteExplicationType de données
Objets en sortie

Jeu d’entités en sortie.

Feature Set

arcpy.ra.ClassifyObjectsUsingDeepLearning(inputRaster, inputModel, outputName, {inputFeatures}, {modelArguments}, {classLabelField}, {processingMode})
NomExplicationType de données
inputRaster

Image en entrée à classer. L’image peut être une URL de service d’imagerie, une couche raster, un service d’imagerie, une couche de serveur de carte ou une couche Internet tuilée.

Raster Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer; String
inputModel

Modèle d’apprentissage profond allant être utilisé pour classer des objets dans l’image en entrée. L’entrée est l’URL d’un élément de paquetage d’apprentissage profond (.dlpk) qui contient le chemin d’accès au fichier du modèle binaire d’apprentissage profond, le chemin d’accès à la fonction raster Python à utiliser et d’autres paramètres, tels que le remplissage ou la taille de préférence des tuiles.

File
outputName

Nom du service d’entités contenant les objets classés.

String
inputFeatures
(Facultatif)

Service d’entités identifiant l’emplacement de chaque objet ou entité à classer ou étiqueter. Chaque ligne dans le service d’entités en entrée représente un objet ou une entité unique.

Si aucun service d’entités en entrée n’est spécifié, chaque image en entrée sera classée comme un objet unique. Si l’image ou les images en entrée utilisent une référence spatiale, la sortie de l’outil est une classe d’entités dans laquelle l’étendue de chaque image est utilisée comme géométrie d’emprise pour chaque classe d’entités étiquetée. Si l’image ou les images en entrée ne sont pas référencées spatialement, la sortie de l’outil est une table contenant les valeurs d’ID des images et les étiquettes de classe de chaque image.

Feature Layer; Map Server Layer; String
modelArguments
[modelArguments,...]
(Facultatif)

Arguments de modèle de fonction à utiliser pour la classification. Ces arguments sont définis dans la classe de fonction raster Python référencée par le modèle en entrée. C’est là que vous répertoriez les paramètres et arguments d’apprentissage profond supplémentaires à tester et affiner, par exemple un seuil de confiance pour ajuster la sensibilité. Les noms des arguments sont renseignés par l’outil via le module Python dans le serveur d’analyse raster.

Value Table
classLabelField
(Facultatif)

Nom du champ allant contenir l’étiquette de classe ou de catégorie dans la classe d’entités en sortie.

Si aucun nom de champ n’est spécifié, un nouveau champ nommé ClassLabel est généré dans la classe d’entités en sortie.

String
processingMode
(Facultatif)

Spécifie comment tous les éléments raster figurant dans un jeu de données mosaïque ou un service d’imagerie seront traités. Ce paramètre est appliqué lorsqu’un raster en entrée est un jeu de données mosaïque ou service d’imagerie.

  • PROCESS_AS_MOSAICKED_IMAGETous les éléments raster figurant dans le jeu de données mosaïque ou le service d’imagerie seront mosaïqués ensemble, puis traités. Il s’agit de l’option par défaut.
  • PROCESS_ITEMS_SEPARATELYTous les éléments raster figurant dans le jeu de données mosaïque ou le service d’imagerie seront traités en tant qu’images séparées.
String

Sortie obtenue

NomExplicationType de données
outObjects

Jeu d’entités en sortie.

Feature Set

Exemple de code

Exemple 1 d’utilisation de l’outil ClassifyObjectsUsingDeepLearning (fenêtre Python)

Cet exemple classe des entités dans un raster en fonction d’un modèle de classification utilisant l’apprentissage profond dans un déploiement d’analyse raster et publie le raster en tant que couche d’imagerie hébergée dans votre portail.

import arcpy

arcpy.ra.ClassifyObjectsUsingDeepLearning(
	"https://myserver/rest/services/Buildings/ImageServer", 
	"https://myserver/rest/services/Hosted/BuildingFootprints/FeatureServer/0",
	"https://myportal/sharing/rest/content/items/itemId", "BuildingDamage",
	"batch_size 4", "ClassLabel","PROCESS_AS_MOSAICKED_IMAGE")
Exemple 2 d’utilisation de l’outil ClassifyObjectsUsingDeepLearning (script autonome)

Cet exemple classe des entités dans un raster en fonction d’un modèle de classification utilisant l’apprentissage profond dans un déploiement d’analyse raster et publie le raster en tant que couche d’imagerie hébergée dans votre portail.

#---------------------------------------------------------------------------
# Name: ClassifyObjectsUsingDeepLearning_example02.py
# Requirements: ArcGIS Image Server
# Import system modules
import arcpy

# Set local variables
inputRaster = "https://myserver/rest/services/Buildings/ImageServer"
inputFeatures = "https://myserver/rest/services/Hosted/BuildingFootprints/FeatureServer/0"
inputModel = "https://myportal/sharing/rest/content/items/itemId"
outputName = "BuildingDamage"
modelArguments = "batch_size 4"
classLabelField = "ClassLabel"
processingMode = "PROCESS_AS_MOSAICKED_IMAGE"

# Execute Classify Objects Using Deep Learning 
arcpy.ra.ClassifyObjectsUsingDeepLearning(inputRaster, inputFeatures, 
	inputModel, outputName, modelArguments, classLabelField , processingMode)

Informations de licence

  • Basic: Nécessite ArcGIS Image Server
  • Standard: Nécessite ArcGIS Image Server
  • Advanced: Nécessite ArcGIS Image Server