Classer des objets à l’aide d’algorithmes de Deep Learning (Analyse raster)

Résumé

Exécute un modèle d’apprentissage profond 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 de serveur d’analyse raster doit être configuré avec l’API Python d’infrastructure d’apprentissage profond appropriée, telle que Tensorflow, CNTK ou une autre similaire.

  • Lorsque cet outil est en cours d’exécution, votre serveur d’analyse raster appelle une API Python d’apprentissage profond 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 d’apprentissage profond (fichier .dlpk) du portail.

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

Syntaxe

arcpy.ra.ClassifyObjectsUsingDeepLearning(inputRaster, inputModel, outputName, {inputFeatures}, {modelArguments}, {classLabelField}, {processingMode})
ParamètreExplicationType 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; MapServer; 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 d’apprentissage profond supplémentaires et les arguments des expériences et améliorations, tels qu’un seuil de confiance pour l’ajustement de 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 dérivée

NomExplicationType de données
outObjects

Jeu d’entités en sortie.

Jeu d’entités

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.ClassifyObjectsUsingDeepLearning_ra(
	"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.ClassifyObjectsUsingDeepLearning_ra(inputRaster, inputFeatures, 
	inputModel, outputName, modelArguments, classLabelField , processingMode)

Informations de licence

  • Basic: Requiert ArcGIS Image Server
  • Standard: Requiert ArcGIS Image Server
  • Advanced: Requiert ArcGIS Image Server