Detect Objects Using Deep Learning (Image Analyst)

Disponible avec une licence Image Analyst.

Synthèse

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 trouve. 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.

Cet outil nécessite un fichier de définition de modèle contenant des informations de modèle entraîné. Le modèle peut être entraîné avec l’outil Préparer le modèle d’apprentissage profond ou par un logiciel d’entraînement tiers tel que TensorFlow, PyTorch ou Keras. Le fichier de définition de modèle peut être un fichier JSON de définition de modèle Esri (.emd) ou un paquetage de modèle d’apprentissage profond. Il doit contenir le chemin d’accès à la fonction raster Python à appeler pour traiter chaque objet, ainsi que le chemin d’accès au fichier de modèle d’apprentissage profond binaire entraîné.

Utilisation

  • Vous devez installer l’API Python de structure d’apprentissage profond qui convient (telle que TensorFlow, PyTorch ou Keras) dans l’environnement ArcGIS Pro Python. Si vous ne le faites pas, une erreur se produit lorsque vous ajoutez le fichier de définition du modèle Esri à l’outil. Procurez-vous les informations de structure appropriées auprès de l’auteur du fichier de définition du modèle Esri.

    Pour configurer votre machine afin d’utiliser des structures d’apprentissage profond dans ArcGIS Pro, consultez la rubrique Installer les structures d’apprentissage profond pour ArcGIS.

  • Cet outil appelle une API Python d’apprentissage profond tierce (telle que TensorFlow, PyTorch ou Keras) et utilise la fonction raster Python spécifiée pour traiter chaque objet.

  • Des exemples de cas d’utilisation pour cet outil sont disponibles sur la page GitHub de la fonction raster Python d'Esri dans Anatomie d’une fonction raster Python. Vous pouvez également écrire des modules Python personnalisés en suivant les exemples et les instructions du référentiel GitHub.

  • Le paramètre Définition du modèle Esri peut être un fichier JSON de définition de modèle Esri (.emd), une chaîne JSON ou un paquetage de modèle d’apprentissage profond (.dlpk). Une chaîne JSON est utile lorsque cet outil est utilisé sur le serveur de manière à pouvoir coller la chaîne JSON au lieu de télécharger le fichier .emd. Le fichier .dlpk doit être stocké localement.

  • See the sample below for the .emd file.

    {
        "Framework" :"TensorFlow",
        "ModelConfiguration": "ObjectDetectionAPI",
        
        "ModelFile": ".\\CoconutTreeDetection.model",
        "ModelType": "ObjectDetection",
        "ImageHeight": 850,
        "ImageWidth": 850,
        "ExtractBands": [0,1,2],
        "ImageSpaceUsed": "MAP_SPACE"
        "Classes": [
        {
            "Value": 0,
            "Name": "CoconutTree",
            "Color": [0, 255, 0]
        }
        ]
    }
  • Use the Non Maximum Suppression parameter to identify and remove duplicate features from the object detection.

  • L’outil peut traiter l’imagerie en entrée existant dans l’espace cartographique ou la résolution. L’imagerie dans l’espace cartographique se trouve dans un système de coordonnées basé sur une carte. L’imagerie dans la résolution se trouve dans un espace d’image brut, sans rotation ni distorsion. Le système de référence peut être spécifié lors de la génération des données d’entraînement dans l’outil Exporter les données d’apprentissage pour l’apprentissage profond à l’aide du paramètre Reference System (Système de référence). Si le modèle est entraîné dans un logiciel d’entraînement tiers, le système de référence doit être spécifié dans le fichier .emd à l’aide du paramètre ImageSpaceUsed , qui peut être défini sur MAP_SPACE ou PIXEL_SPACE.

  • Le raster en entrée peut consister en un raster unique, en plusieurs rasters ou en une classe d’entités avec des images rattachées. Pour plus d’informations sur les fichiers joints, reportez-vous à la section Ajouter ou supprimer des fichiers joints.

  • Pour en savoir plus sur les exigences relatives à l’exécution de cet outil, ainsi que sur les problèmes que vous pouvez rencontrer, consultez les rubriques FAQ Apprentissage profond. .

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

Paramètres

ÉtiquetteExplicationType de données
Input Raster

The input image used to detect objects. The input can be a single raster or multiple rasters in a mosaic dataset, image service, or folder of images. A feature class with image attachments is also supported.

Raster Dataset; Raster Layer; Mosaic Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer; Folder; Feature Layer; Feature Class
Output Detected Objects

The output feature class that will contain geometries circling the object or objects detected in the input image.

Feature Class
Model Definition

Ce paramètre peut être un fichier JSON de définition de modèle Esri (.emd), une chaîne JSON ou encore un paquetage de modèle d’apprentissage profond (.dlpk). Une chaîne JSON est utile lorsque cet outil est utilisé sur le serveur de manière à pouvoir coller la chaîne JSON au lieu de télécharger le fichier .emd. Le fichier .dlpk doit être stocké localement.

Il 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; String
Arguments
(Facultatif)

Arguments des fonctions définis dans la classe de fonctions raster Python. C’est là que sont répertoriés 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 à partir du module Python.

Value Table
Non Maximum Suppression
(Facultatif)

Specifies whether nonmaximum suppression will be performed in which duplicate objects are identified and the duplicate features with lower confidence value are removed.

  • Unchecked—Nonmaximum suppression will not be performed. All objects that are detected will be in the output feature class. This is the default.
  • Checked—Nonmaximum suppression will be performed and duplicate objects that are detected will be removed.

Boolean
Confidence Score Field
(Facultatif)

The name of the field in the feature class that will contain the confidence scores as output by the object detection method.

This parameter is required when the Non Maximum Suppression parameter is checked.

String
Champ de valeur de classe
(Facultatif)

Nom du champ de valeur de classe dans la classe d’entités en entrée.

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
(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

DetectObjectsUsingDeepLearning(in_raster, out_detected_objects, in_model_definition, {arguments}, {run_nms}, {confidence_score_field}, {class_value_field}, {max_overlap_ratio}, {processing_mode})
NomExplicationType de données
in_raster

The input image used to detect objects. The input can be a single raster or multiple rasters in a mosaic dataset, image service, or folder of images. A feature class with image attachments is also supported.

Raster Dataset; Raster Layer; Mosaic Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer; Folder; Feature Layer; Feature Class
out_detected_objects

The output feature class that will contain geometries circling the object or objects detected in the input image.

Feature Class
in_model_definition

La valeur du paramètre in_model_definition peut être un fichier JSON de définition de modèle Esri (.emd), une chaîne JSON ou encore un paquetage de modèle d’apprentissage profond (.dlpk). Une chaîne JSON est utile lorsque cet outil est utilisé sur le serveur de manière à pouvoir coller la chaîne JSON au lieu de télécharger le fichier .emd. Le fichier .dlpk doit être stocké localement.

Il 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; String
arguments
[arguments,...]
(Facultatif)

Arguments des fonctions définis dans la classe de fonctions raster Python. C’est là que sont répertoriés 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 à partir du module Python.

Value Table
run_nms
(Facultatif)

Specifies whether nonmaximum suppression will be performed in which duplicate objects are identified and the duplicate features with lower confidence value are removed.

  • NO_NMSNonmaximum suppression will not be performed. All objects that are detected will be in the output feature class. This is the default.
  • NMSNonmaximum suppression will be performed and duplicate objects that are detected will be removed.
Boolean
confidence_score_field
(Facultatif)

The name of the field in the feature class that will contain the confidence scores as output by the object detection method.

This parameter is required when the NMS keyword for the run_nms parameter is used.

String
class_value_field
(Facultatif)

Nom du champ de valeur de classe dans la classe d’entités en entrée.

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
max_overlap_ratio
(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
(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

Exemple de code

DetectObjectsUsingDeepLearning example 1 (Python window)

This example creates a feature class based on object detection.

# Import system modules
import arcpy
from arcpy.ia import *

# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")

DetectObjectsUsingDeepLearning("c:/detectobjects/moncton_seg.tif", 
     "c:/detectobjects/moncton_seg.shp", "c:/detectobjects/moncton.emd", 
     "padding 0; threshold 0.5; batch_size 4", "NO_NMS", "Confidence", 
     "Class", 0, "PROCESS_AS_MOSAICKED_IMAGE")
DetectObjectsUsingDeepLearning example 2 (stand-alone script)

This example creates a feature class based on object detection.

# Import system modules
import arcpy
from arcpy.ia import *

"""
Usage: DetectObjectsUsingDeepLearning( in_raster, out_detected_objects, 
       in_model_definition, {arguments}, {run_nms}, {confidence_score_field}, 
       {class_value_field}, {max_overlap_ratio}, {processing_mode})
"""

# Set local variables
in_raster = "c:/classifydata/moncton_seg.tif"
out_detected_objects = "c:/detectobjects/moncton.shp"
in_model_definition = "c:/detectobjects/moncton_sig.emd"
model_arguments = "padding 0; threshold 0.5; batch_size 4"
run_nms = "NO_NMS"
confidence_score_field = "Confidence"
class_value_field = "Class"
max_overlap_ratio = 0
processing_mode = "PROCESS_AS_MOSAICKED_IMAGE"
# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")

# Execute 
DetectObjectsUsingDeepLearning( in_raster, out_detected_objects, 
   in_model_definition, model_arguments, run_nms, confidence_score_field, 
   class_value_field, max_overlap_ratio, processing_mode)

Informations de licence

  • Basic: Nécessite Image Analyst
  • Standard: Nécessite Image Analyst
  • Advanced: Nécessite Image Analyst

Rubriques connexes