Étiquette | Explication | Type de données |
Raster en entrée | Image en entrée utilisée pour classer les objets. L’entrée peut être un raster ou plusieurs rasters d’un jeu de données mosaïque, un service d’imagerie, un dossier d’images ou une classe d’entités avec des images en pièces jointes. | Raster Dataset; Raster Layer; Mosaic Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer; Folder; Feature Layer; Feature Class |
Classe d’entités des objets classés en sortie | Classe d’entités en sortie qui contient les géométries entourant les objets ou l’entité de la classe d’entités en entrée, ainsi qu’un champ pour stocker l’étiquette de catégorisation. Si la classe d’entités existe déjà, les résultats sont ajoutés à la classe d’entités existante. | Feature Class |
Définition de modèle | La valeur du paramètre Définition de modèle peut être un fichier JSON de définition de modèle Esri (.emd), une chaîne JSON ou un paquetage de modèle de Deep Learning (.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 |
Entités en entrée (Facultatif) | Classe d’entités ponctuelles, linéaires ou surfaciques en entrée qui identifie la localisation de chaque objet ou entité à classer et étiqueter. Chaque ligne dans la classe d’entités en entrée représente un objet ou une entité unique. Si aucune classe d’entités en entrée n’est fournie, on suppose que chaque image en entrée contient un seul objet à classer. 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 zone de délimitation géométrique 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 Class; Feature Layer |
Champ d’étiquette de classe (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 fourni, un champ ClassLabel est généré dans la classe d’entités en sortie. | String |
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.
| String |
Arguments (Facultatif) | Les informations du paramètre Définition de modèle sont utilisées pour renseigner ce paramètre. Ces arguments varient selon l’architecture du modèle. Les arguments de modèle suivants sont pris en charge pour des modèles entraînés dans ArcGIS. Les modèles pré-entraînés ArcGIS et les modèles de Deep Learning personnalisés peuvent comporter des arguments supplémentaires pris en charge par l’outil.
| Value Table |
Légende (Facultatif) |
Nom du champ contenant le texte ou la légende dans la classe d’entités en sortie. Ce paramètre est pris en charge uniquement lorsqu’un modèle Créateur de légende d’image est utilisé. Si aucun nom de champ n’est spécifié, un champ Caption est généré dans la classe d’entités en sortie. Remarque :Ce paramètre n’apparaît pas dans la fenêtre Géotraitement. Pour changer le nom de champ par défaut, utilisez le paramètre Champ classe d'étiquette. | String |
Disponible avec une licence Image Analyst.
Synthèse
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 de Deep Learning. 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 binaire de modèle de Deep Learning entraîné.
Utilisation
Vous devez installer l’API Python de structure Deep Learning appropriée (PyTorch ou Keras) dans l’environnement Python de ArcGIS Pro. Si vous ne le faites pas, une erreur se produit lorsque vous ajoutez le fichier de définition du modèle Esri dans 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 Deep Learning tierce (telle que 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 de la fonction raster Python d’Esri dans GitHub. Vous pouvez également écrire des modules Python personnalisés en suivant les exemples et les instructions.
La valeur du paramètre Définition de modèle peut être un fichier JSON de définition de modèle Esri (.emd), une chaîne JSON ou un paquetage de modèle de Deep Learning (.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.
L’exemple de code suivant correspond à un fichier .emd :
{ "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] } ] }
La propriété CropSizeFixed définit le mode de rognage de la tuile raster autour de chaque objet. La valeur 1 signifie qu’une tuile raster fixe est utilisée, définie par les propriétés ImageHeight et ImageWidth dans le fichier .emd. L’objet est centré dans la taille de tuile fixe. La valeur 0 signifie qu’une taille de tuile variable est utilisée, dans laquelle la tuile raster est rognée à l'aide de la plus petite zone de délimitation autour de l’objet.
La propriété BlackenAroundFeature indique si les pixels qui se trouvent à l’extérieur de chaque objet sont masqués. La valeur 0 signifie que les pixels à l’extérieur de l’objet ne sont pas masqués. La valeur 1 signifie que les pixels à l’extérieur de l’objet sont masqués.
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.
Il est possible d’augmenter la taille de lot pour améliorer les performances de l’outil. Il convient toutefois de noter que le volume de mémoire utilisée est proportionnel à la taille de lot. Si un message d’erreur s’affiche pour mémoire insuffisante, utilisez une taille de lot plus petite. La valeur batch_size peut être ajustée à l'aide du paramètre Arguments.
Les tailles de lot sont des nombres au carré, tels que 1, 4, 9, 16, 25, 64, etc. Si la valeur en entrée ne correspond pas à un carré parfait, la valeur au carré la plus élevée possible est utilisée. Par exemple, si la valeur 6 est spécifiée, la taille de lot est définie sur 4.
Cet outil prend en charge et utilise plusieurs GPU le cas échéant. Pour utiliser un GPU spécifique, spécifiez l’environnement GPU ID (ID de GPU). Si l’ID de GPU n’est pas défini, l’outil utilise tous les GPU disponibles. Il s’agit de l’option par défaut.
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 le Deep Learning, reportez-vous à la rubrique Deep Learning à l’aide de l’extension ArcGIS Image Analyst.
Paramètres
ClassifyObjectsUsingDeepLearning(in_raster, out_feature_class, in_model_definition, {in_features}, {class_label_field}, {processing_mode}, {model_arguments}, {caption_field})
Nom | Explication | Type de données |
in_raster | Image en entrée utilisée pour classer les objets. L’entrée peut être un raster ou plusieurs rasters d’un jeu de données mosaïque, un service d’imagerie, un dossier d’images ou une classe d’entités avec des images en pièces jointes. | Raster Dataset; Raster Layer; Mosaic Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer; Folder; Feature Layer; Feature Class |
out_feature_class | Classe d’entités en sortie qui contient les géométries entourant les objets ou l’entité de la classe d’entités en entrée, ainsi qu’un champ pour stocker l’étiquette de catégorisation. Si la classe d’entités existe déjà, les résultats sont ajoutés à la classe d’entités existante. | 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 un paquetage de modèle de Deep Learning (.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 |
in_features (Facultatif) | Classe d’entités ponctuelles, linéaires ou surfaciques en entrée qui identifie la localisation de chaque objet ou entité à classer et étiqueter. Chaque ligne dans la classe d’entités en entrée représente un objet ou une entité unique. Si aucune classe d’entités en entrée n’est fournie, on suppose que chaque image en entrée contient un seul objet à classer. 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 zone de délimitation géométrique 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 Class; Feature Layer |
class_label_field (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 fourni, un champ ClassLabel est généré dans la classe d’entités en sortie. | 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) | Les informations du paramètre in_model_definition servent à définir les valeurs par défaut de ce paramètre. Ces arguments varient selon l’architecture du modèle. Les arguments de modèle suivants sont pris en charge pour des modèles entraînés dans ArcGIS. Les modèles pré-entraînés ArcGIS et les modèles de Deep Learning personnalisés peuvent comporter des arguments supplémentaires pris en charge par l’outil.
| Value Table |
caption_field (Facultatif) |
Nom du champ contenant le texte ou la légende dans la classe d’entités en sortie. Ce paramètre est pris en charge uniquement lorsqu’un modèle Créateur de légende d’image est utilisé. Si aucun nom de champ n’est spécifié, un champ Caption est généré dans la classe d’entités en sortie. | String |
Exemple de code
Cet exemple génère une nouvelle classe d’entités avec un champ d’étiquette pour classer les bâtiments endommagés ou non dans une 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")
Cet exemple génère une nouvelle classe d’entités avec un champ d’étiquette pour classer les bâtiments endommagés ou non dans une 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: Nécessite Image Analyst
- Standard: Nécessite Image Analyst
- Advanced: Nécessite Image Analyst
Rubriques connexes
- Vue d’ensemble du jeu d’outils Deep Learning
- Installer des structures d’apprentissage profond pour ArcGIS
- Entraîner le modèle de Deep Learning
- Arguments de Deep learning
- Architectures des modèles de Deep Learning
- Rechercher un outil de géotraitement
- Détecter des objets à l’aide du Deep Learning
- Exporter les données d’entraînement pour le Deep Learning
- Classification d’objets
Vous avez un commentaire à formuler concernant cette rubrique ?