Détecter des objets à l’aide de l’apprentissage en profondeur (Analyse raster)

Résumé

Dans un déploiement d’analyse raster, cet outil exécute un modèle d’apprentissage profond entraîné sur un raster en entrée afin de générer une classe d’entités contenant les objets qu’il identifie. La classe d’entités peut être partagée en tant que couche d’entités hébergée dans votre portail. Les entités peuvent correspondre à des emprises ou des polygones autour des objets trouvés ou encore des points situés aux centres des objets.

Illustration

Illustration de l’outil Détecter des objets à l’aide de l’apprentissage profond

Utilisation

  • Votre environnement Python serveur d’analyse raster doit être configuré avec l’API Python d’infrastructure d’apprentissage profond appropriée, telle que Tensorflow, CNTK ou un élément similaire.

  • Lorsque l’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 paramètre Input Model (modèle en entrée) n’utilise qu’un élément de paquetage d’apprentissage profond (.dlpk) du portail.

  • Une fois le paramètre Input Model (Modèle 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.

  • Utilisez le paramètre Non Maximum Suppression (Suppression non maximale) pour identifier et supprimer les entités dupliquées de la détection d'objets.

  • Pour obtenir plus d’informations sur l’apprentissage profond, reportez-vous à la rubrique Apprentissage profond dans ArcGIS Pro.

Syntaxe

DetectObjectsUsingDeepLearning(inputRaster, inputModel, outputName, {modelArguments}, {runNMS}, {confidenceScoreField}, {classValueField}, {maxOverlapRatio}, {processingMode})
ParamètreExplicationType de données
inputRaster

Image en entrée utilisée pour détecter des objets. Il peut s’agir de l’URL d’un service d’imagerie, d’une couche raster, d’un service d'imagerie, d’une couche de serveur de carte ou d’une couche Internet tuilée.

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

Le modèle en entrée peut être un fichier ou une URL d’un élément de paquetage d’apprentissage profond (.dlpk) du portail.

File; String
outputName

Le nom du service d’entités en sortie des objets détectés.

String
modelArguments
[modelArguments,...]
(Facultatif)

Les arguments du modèle de fonction 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 optimiser la sensibilité. Les noms des arguments sont renseignés par l’outil après lecture du module Python dans le serveur d’analyse raster.

Value Table
runNMS
(Facultatif)

Indique si la suppression non maximale (où les objets dupliqués sont identifiés et où l’entité dupliquée dont la valeur de confiance est la plus faible est supprimée) sera réalisée.

  • NO_NMSTous les objets détectés seront intégrés dans la classe d’entités en sortie. Il s’agit de l’option par défaut.
  • NMSLes objets dupliqués détectés seront supprimés.
Boolean
confidenceScoreField
(Facultatif)

Champ dans le service d’entités qui contient les scores de confiance utilisés en sortie par la méthode de détection d’objets.

Ce paramètre est obligatoire si le mot-clé NMS est utilisé pour le paramètre runNMS.

String
classValueField
(Facultatif)

Nom du champ de valeur de classe dans le service d’entités.

Si un nom de champ n’est pas spécifié, un champ Classvalue ou Value est utilisé. Si ces champs n’existent pas, tous les enregistrements sont identifiés comme appartenant à une classe.

String
maxOverlapRatio
(Facultatif)

Ratio de superposition maximale de deux entités se chevauchant, défini comme le rapport entre la zone d’intersection et la zone d’union. La valeur par défaut est 0.

Double
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

Le service d’entités en sortie.

Classe d’entités

Exemple de code

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

Cet exemple crée une couche d’entités hébergée dans votre portail en fonction de la détection d'objets à l’aide de l’outil DetectObjectsUsingDeepLearning.

import arcpy
arcpy.DetectObjectsUsingDeepLearning_ra(
        "https://myserver/rest/services/Farm/ImageServer",
        "https://myportal/sharing/rest/content/items/itemId", "detectedTrees",
"score_threshold 0.6;padding 0", "NO_NMS")
Exemple 2 d’utilisation de l’outil DetectObjectsUsingDeepLearning (script autonome)

Cet exemple crée une couche d’entités hébergée dans votre portail en fonction de la détection d'objets à l’aide de l’outil DetectObjectsUsingDeepLearning.

#---------------------------------------------------------------------------
# Name: DetectObjectsUsingDeepLearning_example02.py
# Requirements: ArcGIS Image Server
# Import system modules
import arcpy
# Set local variables
inImage = "https://myserver/rest/services/coconutFarmImage/ImageServer"
inModel = "https://myportal/sharing/rest/content/items/itemId"
outName = "detectedTrees"
modelArgs = "score_threshold 0.6;padding 0"
runNMS = "NMS"
confScoreField = "Confidence"
classVField = "Class"
maxOverlapRatio = 0.15 
# Execute Detect Objects Using raster analysis tool
arcpy.DetectObjectsUsingDeepLearning_ra(inImage, inModel, outName, modelArgs,
runNMS, confScoreField, ClassVField, maxOverlapRatio)

Informations de licence

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

Rubriques connexes