Détecter les changements à l’aide du Deep Learning (Image Analyst)

Disponible avec une licence Image Analyst.

Synthèse

Exécute un modèle d'apprentissage profond entraîné pour détecter les changements entre deux rasters.

Cet outil nécessite un fichier de définition de modèle contenant des informations de modèle entraîné. 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

  • Les entrées de cet outil sont deux images : une image d’une période précédente et une image d’une période plus récente. La sortie est un jeu de données raster classé qui montre les changements entre les deux entrées de raster.

  • Vous devez installer l’API Python de la structure de Deep Learning appropriée (telle que TensorFlow ou PyTorch) dans l’environnement Python ArcGIS Pro. Si vous ne le faites pas, une erreur se produit lorsque vous ajoutez le fichier de définition de modèle Esri à l’outil. Procurez-vous les informations sur la structure appropriée auprès de l’auteur du 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 TensorFlow, PyTorch ou Keras) et utilise la fonction raster Python spécifiée pour traiter chaque objet.

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

  • Des paramètres en entrée supplémentaires peuvent être nécessaires, comme la taille des lots miniatures, la taille de la marge intérieure, etc.

  • Consultez l’exemple ci-dessous pour un fichier JSON de définition de modèle (.emd).

    Exemple de fichier JSON de définition de modèle

    
    {
       "Framework": "",
       "ModelConfiguration":" ",
       "ModelFile":"",
       "InferenceFunction":"",
       "ModelType":"",
       "ImageHeight":256,
       "ImageWidth":256,
       "ExtractBands":[0,1,2],
       "CropSizeFixed": 1,
       "BlackenAroundFeature": 1,
          "Classes": [
          {
             "Value": 0,
                "Name": "Building",
                "Color": [255, 0, 0]
               	}
       ]
    }

  • 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, cela signifie que la taille de lot est définie sur 4.

  • 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
Raster d’origine

Raster en entrée avant la modification.

Raster Dataset; Raster Layer; Mosaic Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer
Raster de destination

Raster en entrée après la modification.

Raster Dataset; Raster Layer; Mosaic Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer
Raster classé en sortie

Raster classé en sortie qui illustre le changement.

Raster Dataset
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
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.

  • padding : nombre de pixels en bordure des tuiles d’image à partir duquel les prévisions sont fusionnées pour les tuiles adjacentes. Pour lisser la sortie tout en réduisant les artefacts, augmentez la valeur. La valeur maximale de la marge intérieure peut représenter la moitié de la valeur de la taille d’une tuile. L’argument est disponible pour toutes les architectures de modèle.
  • batch_size : nombre de tuiles d’image traitées à chaque étape de l’inférence du modèle. Ce nombre dépend de la mémoire de la carte graphique. L’argument est disponible pour toutes les architectures de modèle.

Value Table

DetectChangeUsingDeepLearning(from_raster, to_raster, out_classified_raster, in_model_definition, {arguments})
NomExplicationType de données
from_raster

Raster en entrée avant la modification.

Raster Dataset; Raster Layer; Mosaic Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer
to_raster

Raster en entrée après la modification.

Raster Dataset; Raster Layer; Mosaic Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer
out_classified_raster

Raster classé en sortie qui illustre le changement.

Raster Dataset
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
arguments
[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.

  • padding : nombre de pixels en bordure des tuiles d’image à partir duquel les prévisions sont fusionnées pour les tuiles adjacentes. Pour lisser la sortie tout en réduisant les artefacts, augmentez la valeur. La valeur maximale de la marge intérieure peut représenter la moitié de la valeur de la taille d’une tuile. L’argument est disponible pour toutes les architectures de modèle.
  • batch_size : nombre de tuiles d’image traitées à chaque étape de l’inférence du modèle. Ce nombre dépend de la mémoire de la carte graphique. L’argument est disponible pour toutes les architectures de modèle.

Value Table

Exemple de code

Exemple 1 d’utilisation de la fonction DetectChangeUsingDeepLearning (fenêtre Python)

Cet exemple exécute un modèle de Deep Learning pour rechercher la différence entre deux images.

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


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


DetectChangeUsingDeepLearning("c://detectchange//input_image1.tif", 
     "c://detectchange//input_image2.tif", "c://detectchange//output_difference.tif", 
     "c://detectchange/detectBuilding.emd", "padding 0;score_threshold 0.6;batch_size 4")
Exemple 2 d’utilisation de la fonction DetectChangeUsingDeepLearning (script autonome)

Cet exemple exécute un modèle de Deep Learning pour rechercher la différence entre deux images.

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

""" 
Usage: DetectObjectsUsingDeepLearning(from_raster, to_raster, out_classified_raster, 
    in_model_definition, {model_arguments}) 
"""

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

# Set local variable
from_raster = r"c:/detectchange/input_image1.tif"
to_raster = r"c:/detectchange/input_image2.tif"
out_classified_raster = r"c:/detectchange/output_difference.tif"
in_model_definition = r"c:/ detectchange/detectbuilding.emd"

# arcpy.env.processorType = "GPU"
# arcpy.env.gpuId = 0

# Execute
DetectChangeUsingDeepLearning(from_raster, to_raster, out_classified_raster, 
    in_model_definition, "padding 0;score_threshold 0.6;batch_size 4")

Informations de licence

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

Rubriques connexes