Veränderung mit Deep Learning erkennen (Image Analyst)

Mit der Image Analyst-Lizenz verfügbar.

Zusammenfassung

Führt ein trainiertes Deep-Learning-Modell zur Erkennung von Änderungen zwischen zwei Rastern aus.

Dieses Werkzeug erfordert eine Modelldefinitionsdatei, die Informationen zum trainierten Modell enthält. Bei der Modelldefinitionsdatei kann es sich um eine Esri Modelldefinitionsdatei als JSON (.emd) oder ein Deep-Learning-Modellpaket handeln. Sie muss den Pfad zur Python-Raster-Funktion, die zur Verarbeitung der einzelnen Objekte aufgerufen werden soll, sowie den Pfad zur binären Datei des trainierten Deep-Learning-Modells enthalten.

Verwendung

  • Die Eingaben für dieses Werkzeug sind zwei Bilder: ein Bild aus einer früheren Zeit und ein aktuelleres Bild. Die Ausgabe ist ein klassifiziertes Raster-Dataset, in dem die Veränderung zwischen den beiden Raster-Eingaben angezeigt wird.

  • Sie müssen die dem jeweiligen Deep-Learning-Framework entsprechende Python-API (z. B. TensorFlow oder PyTorch) in der Python-Umgebung von ArcGIS AllSource installieren, da sonst beim Hinzufügen der Esri Modelldefinitionsdatei zum Werkzeug ein Fehler auftritt. Fordern Sie die entsprechenden Framework-Informationen vom Ersteller der Esri Modelldefinitionsdatei an.

    Informationen zum Einrichten des Computers für Deep-Learning-Frameworks in ArcGIS AllSource finden Sie unter Installieren von Deep-Learning-Frameworks for ArcGIS.

  • Mit diesem Werkzeug wird eine Deep-Learning-Python-API eines Drittanbieters (wie TensorFlow, PyTorch oder Keras) aufgerufen und die angegebene Python-Raster-Funktion zum Verarbeiten der einzelnen Objekte verwendet.

  • Bei dem Parameterwert für die Modelldefinition kann es sich um eine Esri Modelldefinitionsdatei als JSON (.emd), eine JSON-Zeichenfolge oder ein Deep-Learning-Modellpaket (.dlpk) handeln. Eine JSON-Zeichenfolge ist nützlich, wenn Sie dieses Werkzeug auf dem Server verwenden, sodass Sie die JSON-Zeichenfolge einfügen können, statt die .emd-Datei hochzuladen. Die .dlpk-Datei muss lokal gespeichert werden.

  • Gegebenenfalls sind zusätzliche Eingabeparameter wie minimale Batch-Größe, Padding-Größe usw. erforderlich.

  • Unten finden Sie ein Beispiel für eine JSON-Modelldefinitionsdatei (.emd).

    Beispiel für eine JSON-Modelldefinitionsdatei

    
    {
       "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]
               	}
       ]
    }

  • Durch Vergrößern der Batch-Größe kann die Performance des Werkzeugs verbessert werden; mit zunehmender Batch-Größe erhöht sich jedoch auch der Speicherbedarf. Wenn ein Fehler vom Typ "Nicht genügend Arbeitsspeicher" auftritt, verwenden Sie eine kleinere Batch-Größe. Der Wert batch_size kann mithilfe des Parameters Argumente angepasst werden.

  • Batch-Größen sind Quadratzahlen wie 1, 4, 9, 16, 25, 64 usw. Wenn der Eingabewert keine perfekte Quadratzahl ist, wird der höchstmögliche Quadratwert verwendet. Wird beispielsweise der Wert 6 angegeben, wird die Batch-Größe auf den Wert 4 festgelegt.

  • Dieses Werkzeug kann mehrere verfügbare GPUs unterstützen und verwenden. Um eine bestimmte GPU zu verwenden, geben Sie die GPU-ID-Umgebung an. Wenn die GPU-ID nicht festgelegt wurde, dann verwendet das Werkzeug alle verfügbaren GPUs. Dies ist die Standardeinstellung.

  • Weitere Informationen zu den Voraussetzungen für die Ausführung dieses Werkzeugs und eventuell dabei auftretenden Problemen finden Sie unter Häufig gestellte Fragen zu Deep Learning.

  • Weitere Informationen zu Deep Learning finden Sie unter Deep Learning in ArcGIS AllSource.

Parameter

BeschriftungErläuterungDatentyp
Von Raster

Das Eingabe-Raster vor der Veränderung.

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

Das Eingabe-Raster nach der Veränderung.

Raster Dataset; Raster Layer; Mosaic Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer
Klassifiziertes Ausgabe-Raster

Das klassifizierte Ausgabe-Raster, das die Veränderung zeigt.

Raster Dataset
Modelldefinition

Bei dem Parameterwert für die Modelldefinition kann es sich um eine Esri Modelldefinitionsdatei als JSON (.emd), eine JSON-Zeichenfolge oder ein Deep-Learning-Modellpaket (.dlpk) handeln. Eine JSON-Zeichenfolge ist nützlich, wenn Sie dieses Werkzeug auf dem Server verwenden, sodass Sie die JSON-Zeichenfolge einfügen können, statt die .emd-Datei hochzuladen. Die .dlpk-Datei muss lokal gespeichert werden.

Sie enthält den Pfad zur binären Datei des Deep-Learning-Modells, den Pfad zu der zu verwendenden Python-Raster-Funktion sowie andere Parameter wie etwa die bevorzugte Kachelgröße oder den bevorzugten Abstand.

File; String
Argumente
(optional)

Zum Füllen dieses Parameters werden die Informationen aus dem Parameter Modelldefinition verwendet. Diese Argumente sind je nach Modellarchitektur unterschiedlich. Für Modelle, die in ArcGIS trainiert werden, werden die folgenden Modellargumente unterstützt. Vortrainierte Modelle und benutzerdefinierte Deep-Learning-Modelle in ArcGIS verfügen ggf. über weitere Argumente, die von dem Werkzeug unterstützt werden.

  • padding: Die Anzahl von Pixeln am Rahmen von Bildkacheln, aus denen Vorhersagen für benachbarte Kacheln verschmolzen werden. Um die Ausgabe zu glätten und gleichzeitig Artefakte zu reduzieren, erhöhen Sie den Wert. Der Maximalwert für Padding ist die Hälfte des Wertes für die Kachelgröße. Das Argument ist für alle Modellarchitekturen verfügbar.
  • batch_size: Die Anzahl der in den einzelnen Schritten der Modellinferenz verarbeiteten Kacheln. Dieser Wert hängt vom Speicher der Grafikkarte ab. Das Argument ist für alle Modellarchitekturen verfügbar.

Value Table

DetectChangeUsingDeepLearning(from_raster, to_raster, out_classified_raster, in_model_definition, {arguments})
NameErläuterungDatentyp
from_raster

Das Eingabe-Raster vor der Veränderung.

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

Das Eingabe-Raster nach der Veränderung.

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

Das klassifizierte Ausgabe-Raster, das die Veränderung zeigt.

Raster Dataset
in_model_definition

Bei dem Parameterwert für in_model_definition kann es sich um eine Esri Modelldefinitionsdatei als JSON (.emd), eine JSON-Zeichenfolge oder ein Deep-Learning-Modellpaket (.dlpk) handeln. Eine JSON-Zeichenfolge ist nützlich, wenn Sie dieses Werkzeug auf dem Server verwenden, sodass Sie die JSON-Zeichenfolge einfügen können, statt die .emd-Datei hochzuladen. Die .dlpk-Datei muss lokal gespeichert werden.

Sie enthält den Pfad zur binären Datei des Deep-Learning-Modells, den Pfad zu der zu verwendenden Python-Raster-Funktion sowie andere Parameter wie etwa die bevorzugte Kachelgröße oder den bevorzugten Abstand.

File; String
arguments
[arguments,...]
(optional)

Mit den Informationen aus dem Parameter in_model_definition werden die Standardwerte für diesen Parameter festgelegt. Diese Argumente sind je nach Modellarchitektur unterschiedlich. Für Modelle, die in ArcGIS trainiert werden, werden die folgenden Modellargumente unterstützt. Vortrainierte Modelle und benutzerdefinierte Deep-Learning-Modelle in ArcGIS verfügen ggf. über weitere Argumente, die von dem Werkzeug unterstützt werden.

  • padding: Die Anzahl von Pixeln am Rahmen von Bildkacheln, aus denen Vorhersagen für benachbarte Kacheln verschmolzen werden. Um die Ausgabe zu glätten und gleichzeitig Artefakte zu reduzieren, erhöhen Sie den Wert. Der Maximalwert für Padding ist die Hälfte des Wertes für die Kachelgröße. Das Argument ist für alle Modellarchitekturen verfügbar.
  • batch_size: Die Anzahl der in den einzelnen Schritten der Modellinferenz verarbeiteten Kacheln. Dieser Wert hängt vom Speicher der Grafikkarte ab. Das Argument ist für alle Modellarchitekturen verfügbar.

Value Table

Codebeispiel

DetectChangeUsingDeepLearning: Beispiel 1 (Python-Fenster)

In diesem Beispiel wird ein Deep-Learning-Modell zur Erkennung des Unterschieds zwischen zwei Bildern ausgeführt.

# 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")
DetectChangeUsingDeepLearning: Beispiel 2 (eigenständiges Skript)

In diesem Beispiel wird ein Deep-Learning-Modell zur Erkennung des Unterschieds zwischen zwei Bildern ausgeführt.

# 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")

Verwandte Themen