Disponible avec une licence Image Analyst.
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.
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 et 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 appropriée (PyTorch ou Keras) dans l’environnement Python d’ArcGIS Pro. Si vous ne le faites pas, une erreur se produit lorsque vous ajoutez le fichier de définition du modèle Esri à l’outil. Les informations sur la structure appropriée doivent être fournies par la personne ayant créé le fichier de définition de 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 PyTorch ou Keras) et utilise la fonction raster Python spécifiée pour traiter chaque objet.
Vous trouverez des exemples de cas d’utilisation de cet outil sur la page de la fonction raster Python de Esri dans GitHub. Vous pouvez également écrire des modules Python personnalisés en suivant les exemples et les instructions.
Le paramètre Esri model definition (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 sorte qu’il est possible de 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": "Keras", "ModelConfiguration":"KerasClassifier", "ModelFile":"C:\\DeepLearning\\Damage_Classification_Model_V7.h5", "ModelType":"ObjectClassification", "ImageHeight":256, "ImageWidth":256, "ExtractBands":[0,1,2], "CropSizeFixed": 1, "BlackenAroundFeature": 1, "ImageSpaceUsed": "MAP_SPACE", "Classes": [ { "Value": 0, "Name": "Damaged", "Color": [255, 0, 0] }, { "Value": 1, "Name": "Undamaged", "Color": [76, 230, 0] } ] }
The CropSizeFixed property defines the crop mode of the raster tile around each object. A value of 1 means a fixed raster tile is used, defined by the ImageHeight and ImageWidth properties in the .emd file. The object is centered within the fixed tile size. A value of 0 means a variable tile size is used, in which the raster tile is cropped using the smallest bounding box around the object.
The BlackenAroundFeature property specifies whether the pixels that are outside each object will be masked. A value of 0 means the pixels outside of the object will not be masked. A value of 1 means the pixels outside of the object will be masked.
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 plus d’informations sur la configuration requise pour l’exécution de cet outil et les problèmes susceptibles de survenir, reportez-vous au Forum aux questions sur l’apprentissage profond.
Pour obtenir plus d’informations sur l’apprentissage profond, reportez-vous à la rubrique Apprentissage profond dans ArcGIS Pro.
Syntaxe
ClassifyObjectsUsingDeepLearning(in_raster, out_feature_class, in_model_definition, {in_features}, {class_label_field}, {processing_mode}, {model_arguments})
Paramètre | Explication | Type 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; MapServer; Map Server Layer; Internet Tiled Layer; Folder; Feature Layer; Feature Class |
out_feature_class | The output feature class that will contain geometries surrounding the objects or feature from the input feature class, as well as a field to store the categorization label. | 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 sorte qu’il est possible de coller la chaîne JSON au lieu de télécharger le fichier .emd. Le fichier .dlpk doit être stocké localement. Le paramètre 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 |
in_features (Facultatif) | The point, line, or polygon input feature class that identifies the location of each object or feature to be classified and labelled. Each row in the input feature class represents a single object or feature. If no input feature class is specified, the tool assumes that each input image contains a single object to be classified. If the input image or images use a spatial reference, the output from the tool is a feature class, in which the extent of each image is used as the bounding geometry for each labelled feature class. If the input image or images are not spatially referenced, the output from the tool is a table containing the image ID values and the class labels for each image. | Feature Class; Feature Layer |
class_label_field (Facultatif) | The name of the field that will contain the class or category label in the output feature class. If no field name is specified, a new field called ClassLabel will be generated in the output feature class. | String |
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.
| String |
model_arguments [model_arguments,...] (Facultatif) | Arguments des fonctions définis dans la classe de fonctions raster Python. 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 alimentés par l’outil lors de la lecture du module Python. | Value Table |
Exemple de code
This example generates a new feature class with a label field to classify damaged and undamaged buildings in an image.
# Import system modules
import arcpy
from arcpy.ia import *
# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")
# Execute
ClassifyObjectsUsingDeepLearning("C:/Data/Input_Image.tif",
"C:/Data/MyProject.gdb/Classified_Results", "C:/Data/BuildingDamageClassifier.emd",
"C:/Data/building_footprints.shp","Class_Label",
"PROCESS_AS_MOSAICKED_IMAGE", "padding 0;batch_size 4")
This example generates a new feature class with a label field to classify damaged and undamaged buildings in an image.
# Import system modules
import arcpy
from arcpy.ia import *
# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")
# Define input parameters
in_raster = "C:/Classify_Objects/input_image.tif"
out_feature_class = "C:/Classify_Objects/MyProject.gdb/classified_results"
in_model_definition = "C:/Classify_Objects/BuildingDanmageClassifier.emd"
in_features = "C:/Classify_Objects/building_footprints.shp"
class_label_field = "Damaged_or_Undamaged"
model_arguments = "padding 0;batch_size 4"
process_all_raster_items = "PROCESS_AS_MOSAICKED_IMAGE"
# Execute
ClassifyObjectsUsingDeepLearning(in_raster, out_feature_class, in_model_definition,
in_features, class_label_field,
process_all_raster_items, model_arguments)
Environnements
Informations de licence
- Basic: Requiert Image Analyst
- Standard: Requiert Image Analyst
- Advanced: Requiert Image Analyst
Rubriques connexes
Vous avez un commentaire à formuler concernant cette rubrique ?