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

Synthèse

Exécute un modèle d’apprentissage profond formé sur un raster en entrée pour 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 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 plus d’informations sur le Deep Learning, reportez-vous à la rubrique Deep Learning à l’aide de l’extension ArcGIS Image Analyst.

Paramètres

ÉtiquetteExplicationType de données
Raster en entrée

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; Map Server; Map Server Layer; Internet Tiled Layer; String
Modèle en entrée

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
Nom en sortie

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

String
Arguments du modèle
(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
Suppression non maximale
(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.

  • Désactivé : tous 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.
  • Activé : les objets dupliqués détectés seront supprimés.

Boolean
Champ de score de confiance
(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 lorsque le paramètre Suppression non maximale est activé.

String
Champ de valeur de classe
(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
Ratio de superposition maximale
(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
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 sortants

Le service d’entités en sortie.

Feature Class

arcpy.ra.DetectObjectsUsingDeepLearning(inputRaster, inputModel, outputName, {modelArguments}, {runNMS}, {confidenceScoreField}, {classValueField}, {maxOverlapRatio}, {processingMode})
NomExplicationType 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; Map Server; 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
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 obtenue

NomExplicationType de données
outObjects

Le service d’entités en sortie.

Feature Class

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.ra.DetectObjectsUsingDeepLearning(
        "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.ra.DetectObjectsUsingDeepLearning(inImage, inModel, outName, modelArgs,
runNMS, confScoreField, ClassVField, maxOverlapRatio)

Informations de licence

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

Rubriques connexes