Pixel mit Deep Learning klassifizieren (Image Analyst)

Mit der Image Analyst-Lizenz verfügbar.

Zusammenfassung

Führt ein trainiertes Deep-Learning-Modell auf einem Eingabe-Raster zur Erstellung eines klassifizierten Rasters aus, bei dem jedem gültigen Pixel eine Klassenbeschriftung zugewiesen ist.

Dieses Werkzeug erfordert eine Modelldefinitionsdatei, die Informationen zum trainierten Modell enthält. Das Modell kann mit dem Werkzeug Deep-Learning-Modell trainieren oder einer Training-Software von Drittanbietern wie TensorFlow, PyTorch oder Keras trainiert werden. 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

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

    Informationen zum Einrichten des Computers für Deep-Learning-Frameworks in ArcGIS Pro 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.

  • Beispielanwendungsfälle für dieses Werkzeug finden Sie auf der Esri GitHub-Seite zu Python-Raster-Funktionen. Sie können auch benutzerdefinierte Python-Module entwickeln. Folgen Sie dazu den Beispielen und Anweisungen im GitHub-Repository.

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

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

  • Im folgenden Codebeispiel wird die Datei der Esri Modelldefinition (.emd) verwendet:

    {
        "Framework":"TensorFlow",
        "ModelConfiguration":"deeplab",
    
        "ModelFile":"\\Data\\ImgClassification\\TF\\froz_inf_graph.pb",
        "ModelType":"ImageClassification",
        "ExtractBands":[0,1,2],
        "ImageHeight":513,
        "ImageWidth":513,
    
        "Classes" : [
            {
                "Value":0,
                "Name":"Evergreen Forest",
                "Color":[0, 51, 0]
             },
             {
                "Value":1,
                "Name":"Grassland/Herbaceous",
                "Color":[241, 185, 137]
             },
             {
                "Value":2,
                "Name":"Bare Land",
                "Color":[236, 236, 0]
             },
             {
                "Value":3,
                "Name":"Open Water",
                "Color":[0, 0, 117]
             },
             {
                "Value":4,
                "Name":"Scrub/Shrub",
                "Color":[102, 102, 0]
             },
             {
                "Value":5,
                "Name":"Impervious Surface",
                "Color":[236, 236, 236]
             }
        ]
    }
  • Bei dem Eingabe-Raster kann es sich um ein einzelnes Raster, mehrere Raster oder eine Feature-Class mit angehängten Bildern handeln. Weitere Informationen zu Anlagen finden Sie unter Hinzufügen oder Entfernen von Dateianlagen.

  • Durch größere Batches kann die Leistung des Werkzeugs erhöht werden. Aber größere Batches belegen mehr Arbeitsspeicher. Wird die Fehlermeldung "Nicht genügend Arbeitsspeicher" angezeigt, verwenden Sie kleinere Batches. Der Wert batch_size kann über den Parameter Argumente angepasst werden.

  • Batch-Größen sind quadratische Zahlen, z. B. 1, 4, 9, 16, 25, 64 und so weiter. Wenn der Eingabewert kein perfektes Quadrat ist, wird der höchstmögliche quadratische Wert verwendet. Wird beispielsweise ein Wert von 6 angegeben, bedeutet dies, dass die Batch-Größe auf 4 festgelegt wird.

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

Parameter

BeschriftungErläuterungDatentyp
Eingabe-Raster

Das Eingabe-Raster-Dataset, das klassifiziert wird.

Bei der Eingabe kann es sich um ein oder mehrere Raster in einem Mosaik-Dataset, einen Image-Service, einen Bildordner oder eine Feature-Class mit Bildanlagen handeln.

Raster Dataset; Raster Layer; Mosaic Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer; Folder; Feature Layer; Feature Class
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)

Die Informationen aus dem Parameter Modelldefinition werden zum Füllen dieses Parameters verwendet. Diese Argumente variieren je nach Modellarchitektur. Für in ArcGIS trainierte Modelle werden die folgenden Modellargumente unterstützt. Vortrainierte ArcGIS-Modelle und benutzerdefinierte Deep-Learning-Modelle enthalten ggf. zusätzliche von dem Werkzeug unterstützte Argumente.

  • 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.
  • 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.
  • tile_size: Die Breite und Höhe der Bildkacheln, in die die Bilddaten für Vorhersagen unterteilt werden Das Argument ist nur für die Architektur CycleGAN verfügbar.
  • predict_background: Gibt an, ob die Hintergrundklasse klassifiziert wird. Wenn "true" festgelegt ist, wird auch die Hintergrundklasse klassifiziert. Das Argument ist für UNET, PSPNET, DeepLab und MMSegmentation verfügbar.
  • test_time_augmentation: Führt beim Erstellen von Vorhersagen Test-Time Augmentation durch. Wenn "True" festgelegt ist, werden Vorhersagen für gekippte und gedrehte Varianten des Eingabebilds in der endgültigen Ausgabe zusammengeführt. Das Argument ist für UNET, PSPNET, DeepLab, HED Edge Detector, BDCN Edge Detector, ConnectNet, MMSegmentation und Multi-Task Road Extractor verfügbar.
  • merge_policy: Die Richtlinie für das Zusammenführen erweiterter Vorhersagen. Die verfügbaren Optionen lauten "mean", "max" und "min". Dies gilt nur bei Verwendung von Test-Time Augmentation. Das Argument ist für die Architekturen MultiTaskRoadExtractor und ConnectNet verfügbar. Wenn IsEdgeDetection in der .emd-Datei des Modells vorhanden ist, sind auch die Architekturen BDCNEdgeDetector, HEDEdgeDetector und MMSegmentation verfügbar.
  • threshold: Vorhersagen, deren Konfidenzwert höher als dieser Schwellenwert ist, sind im Ergebnis enthalten. Zulässige Werte liegen zwischen 0 und 1,0. Wenn ArcGISLearnVersion 1.8.4 oder höher in der .emd-Datei des Modells vorhanden ist, sind die Architekturen MultiTaskRoadExtractor und ConnectNet verfügbar. Bei ArcGISLearnVersion 1.8.4 oder höher und wenn IsEdgeDetection in der .emd-Datei des Modells vorhanden ist, sind auch die Architekturen BDCNEdgeDetector, HEDEdgeDetector und MMSegmentation verfügbar.
  • return_probability_raster: Gibt an, ob die Ausgabe ein Wahrscheinlichkeits-Raster ist. Wenn "true" festgelegt ist, ist die Ausgabe ein Wahrscheinlichkeits-Raster. Wenn "false" festgelegt ist, ist die Ausgabe ein binäres klassifiziertes Raster. Der Standardwert ist "false". Wenn ArcGISLearnVersion 1.8.4 oder höher in der .emd-Datei des Modells vorhanden ist, sind die Architekturen MultiTaskRoadExtractor und ConnectNet verfügbar. Bei ArcGISLearnVersion 1.8.4 oder höher und wenn IsEdgeDetection in der .emd-Datei des Modells vorhanden ist, sind auch die Architekturen BDCNEdgeDetector, HEDEdgeDetector und MMSegmentation verfügbar.
  • direction: Das Bild wird von einer Domäne in eine andere übertragen. Die verfügbaren Optionen lauten AtoB und BtoA. Das Argument ist nur für die Architektur CycleGAN verfügbar. Weitere Informationen zu diesem Argument finden Sie unter How CycleGAN works.
  • thinning: Gibt an, ob die vorhergesagten Kanten ausgedünnt bzw. skelettiert sind. Die verfügbaren Optionen lauten True und False. Wenn IsEdgeDetection in der .emd-Datei des Modells vorhanden ist, sind die Architekturen BDCNEdgeDetector, HEDEdgeDetector und MMSegmentation verfügbar.

Value Table
Verarbeitungsmodus

Legt fest, wie alle Raster-Elemente in einem Mosaik-Dataset oder Image-Service verarbeitet werden. Dieser Parameter findet Anwendung, wenn es sich beim Eingabe-Raster um ein Mosaik-Dataset oder einen Image-Service handelt.

  • Als mosaikiertes Bild verarbeitenAlle Raster-Elemente im Mosaik-Dataset oder Image-Service werden zusammen mosaikiert und verarbeitet. Dies ist die Standardeinstellung.
  • Alle Raster-Elemente separat verarbeitenAlle Raster-Elemente im Mosaik-Dataset oder Image-Service werden als separate Bilder verarbeitet.
String
Ausgabeordner
(optional)

Der Ordner, in dem die klassifizierten Ausgabe-Raster gespeichert werden. Anhand der klassifizierten Raster in diesem Ordner wird ein Mosaik-Dataset erstellt.

Dieser Parameter ist erforderlich, wenn es sich bei dem Eingabe-Raster um einen Ordner mit Bildern oder ein Mosaik-Dataset handelt, in dem alle Elemente einzeln verarbeitet werden müssen. Als Standard wird ein Ordner im Projektordner verwendet.

Folder
Ausgabe-Features
(optional)

Die Feature-Class, in der die klassifizierten Ausgabe-Raster gespeichert werden.

Dieser Parameter ist erforderlich, wenn es sich bei dem Eingabe-Raster um eine Feature-Class mit Bildern handelt.

Feature Class
Anlagen überschreiben
(optional)

Gibt an, ob vorhandene Bildanlagen überschrieben werden.

  • Deaktiviert: Vorhandene Bildanlagen werden nicht überschrieben, und neue Bildanlagen werden in einer neuen Feature-Class gespeichert. Wenn dieser Parameter deaktiviert ist, ist der Parameter Ausgabe-Features verfügbar. Dies ist die Standardeinstellung.
  • Aktiviert: Die vorhandene Feature-Class wird durch die neuen aktualisierten Anlagen überschrieben.

Dieser Parameter ist nur verfügbar, wenn der Parameterwert Eingabe-Raster eine Feature-Class mit Bildanlagen ist.

Boolean

Rückgabewert

BeschriftungErläuterungDatentyp
Ausgabe-Raster-Dataset

Der Name des Rasters oder Mosaik-Datasets mit dem Ergebnis.

Raster Dataset

ClassifyPixelsUsingDeepLearning(in_raster, in_model_definition, {arguments}, processing_mode, {out_classified_folder}, {out_featureclass}, {overwrite_attachments})
NameErläuterungDatentyp
in_raster

Das Eingabe-Raster-Dataset, das klassifiziert wird.

Bei der Eingabe kann es sich um ein oder mehrere Raster in einem Mosaik-Dataset, einen Image-Service, einen Bildordner oder eine Feature-Class mit Bildanlagen handeln.

Raster Dataset; Raster Layer; Mosaic Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer; Folder; Feature Layer; Feature Class
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)

Die Informationen aus dem Parameter in_model_definition werden zum Festlegen der Standardwerte für diesen Parameter verwendet. Diese Argumente variieren je nach Modellarchitektur. Für in ArcGIS trainierte Modelle werden die folgenden Modellargumente unterstützt. Vortrainierte ArcGIS-Modelle und benutzerdefinierte Deep-Learning-Modelle enthalten ggf. zusätzliche von dem Werkzeug unterstützte Argumente.

  • 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.
  • 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.
  • tile_size: Die Breite und Höhe der Bildkacheln, in die die Bilddaten für Vorhersagen unterteilt werden Das Argument ist nur für die Architektur CycleGAN verfügbar.
  • predict_background: Gibt an, ob die Hintergrundklasse klassifiziert wird. Wenn "true" festgelegt ist, wird auch die Hintergrundklasse klassifiziert. Das Argument ist für UNET, PSPNET, DeepLab und MMSegmentation verfügbar.
  • test_time_augmentation: Führt beim Erstellen von Vorhersagen Test-Time Augmentation durch. Wenn "True" festgelegt ist, werden Vorhersagen für gekippte und gedrehte Varianten des Eingabebilds in der endgültigen Ausgabe zusammengeführt. Das Argument ist für UNET, PSPNET, DeepLab, HED Edge Detector, BDCN Edge Detector, ConnectNet, MMSegmentation und Multi-Task Road Extractor verfügbar.
  • merge_policy: Die Richtlinie für das Zusammenführen erweiterter Vorhersagen. Die verfügbaren Optionen lauten "mean", "max" und "min". Dies gilt nur bei Verwendung von Test-Time Augmentation. Das Argument ist für die Architekturen MultiTaskRoadExtractor und ConnectNet verfügbar. Wenn IsEdgeDetection in der .emd-Datei des Modells vorhanden ist, sind auch die Architekturen BDCNEdgeDetector, HEDEdgeDetector und MMSegmentation verfügbar.
  • threshold: Vorhersagen, deren Konfidenzwert höher als dieser Schwellenwert ist, sind im Ergebnis enthalten. Zulässige Werte liegen zwischen 0 und 1,0. Wenn ArcGISLearnVersion 1.8.4 oder höher in der .emd-Datei des Modells vorhanden ist, sind die Architekturen MultiTaskRoadExtractor und ConnectNet verfügbar. Bei ArcGISLearnVersion 1.8.4 oder höher und wenn IsEdgeDetection in der .emd-Datei des Modells vorhanden ist, sind auch die Architekturen BDCNEdgeDetector, HEDEdgeDetector und MMSegmentation verfügbar.
  • return_probability_raster: Gibt an, ob die Ausgabe ein Wahrscheinlichkeits-Raster ist. Wenn "true" festgelegt ist, ist die Ausgabe ein Wahrscheinlichkeits-Raster. Wenn "false" festgelegt ist, ist die Ausgabe ein binäres klassifiziertes Raster. Der Standardwert ist "false". Wenn ArcGISLearnVersion 1.8.4 oder höher in der .emd-Datei des Modells vorhanden ist, sind die Architekturen MultiTaskRoadExtractor und ConnectNet verfügbar. Bei ArcGISLearnVersion 1.8.4 oder höher und wenn IsEdgeDetection in der .emd-Datei des Modells vorhanden ist, sind auch die Architekturen BDCNEdgeDetector, HEDEdgeDetector und MMSegmentation verfügbar.
  • direction: Das Bild wird von einer Domäne in eine andere übertragen. Die verfügbaren Optionen lauten AtoB und BtoA. Das Argument ist nur für die Architektur CycleGAN verfügbar. Weitere Informationen zu diesem Argument finden Sie unter How CycleGAN works.
  • thinning: Gibt an, ob die vorhergesagten Kanten ausgedünnt bzw. skelettiert sind. Die verfügbaren Optionen lauten True und False. Wenn IsEdgeDetection in der .emd-Datei des Modells vorhanden ist, sind die Architekturen BDCNEdgeDetector, HEDEdgeDetector und MMSegmentation verfügbar.

Value Table
processing_mode

Legt fest, wie alle Raster-Elemente in einem Mosaik-Dataset oder Image-Service verarbeitet werden. Dieser Parameter findet Anwendung, wenn es sich beim Eingabe-Raster um ein Mosaik-Dataset oder einen Image-Service handelt.

  • PROCESS_AS_MOSAICKED_IMAGEAlle Raster-Elemente im Mosaik-Dataset oder Image-Service werden zusammen mosaikiert und verarbeitet. Dies ist die Standardeinstellung.
  • PROCESS_ITEMS_SEPARATELYAlle Raster-Elemente im Mosaik-Dataset oder Image-Service werden als separate Bilder verarbeitet.
String
out_classified_folder
(optional)

Der Ordner, in dem die klassifizierten Ausgabe-Raster gespeichert werden. Anhand der klassifizierten Raster in diesem Ordner wird ein Mosaik-Dataset erstellt.

Dieser Parameter ist erforderlich, wenn es sich bei dem Eingabe-Raster um einen Ordner mit Bildern oder ein Mosaik-Dataset handelt, in dem alle Elemente einzeln verarbeitet werden müssen. Als Standard wird ein Ordner im Projektordner verwendet.

Folder
out_featureclass
(optional)

Die Feature-Class, in der die klassifizierten Ausgabe-Raster gespeichert werden.

Dieser Parameter ist erforderlich, wenn es sich bei dem Eingabe-Raster um eine Feature-Class mit Bildern handelt.

Feature Class
overwrite_attachments
(optional)

Gibt an, ob vorhandene Bildanlagen überschrieben werden.

  • NO_OVERWRITEVorhandene Bildanlagen werden nicht überschrieben, und neue Bildanlagen werden in einer neuen Feature-Class gespeichert. Wenn diese Option angegeben wird, muss der Parameter out_featureclass gefüllt werden. Dies ist die Standardeinstellung.
  • OVERWRITEDie vorhandene Feature-Class wird durch die neuen aktualisierten Anlagen überschrieben.

Dieser Parameter ist nur gültig, wenn der Parameterwert in_raster eine Feature-Class mit Bildanlagen ist.

Boolean

Rückgabewert

NameErläuterungDatentyp
out_classified_raster

Der Name des Rasters oder Mosaik-Datasets mit dem Ergebnis.

Raster Dataset

Codebeispiel

ClassifyPixelsUsingDeepLearning: Beispiel 1 (Python-Fenster)

In diesem Beispiel wird ein Raster basierend auf einer benutzerdefinierten Pixel-Klassifizierung mithilfe der Funktion ClassifyPixelsUsingDeepLearning klassifiziert.

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

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

out_classified_raster = ClassifyPixelsUsingDeepLearning
     ("c:\\classifydata\\moncton_seg.tif", "c:\\classifydata\\moncton_sig.emd", 
     "padding 0; batch_size 16", "PROCESS_AS_MOSAICKED_IMAGE")
Out_classified_raster.save("c:\\classifydata\\classified_moncton.tif")
ClassifyPixelsUsingDeepLearning: Beispiel 2 (eigenständiges Skript)

In diesem Beispiel wird ein Raster basierend auf einer benutzerdefinierten Pixel-Klassifizierung mithilfe der Funktion ClassifyPixelsUsingDeepLearning klassifiziert.

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


# Set local variables
in_raster = "c:\\classifydata\\moncton_seg.tif"
in_model_definition = "c:\\classifydata\\moncton_sig.emd"
model_arguments = "padding 0; batch_size 16"
processing_mode = "PROCESS_AS_MOSAICKED_IMAGE"

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

# Execute 
Out_classified_raster = ClassifyPixelsUsingDeepLearning(in_raster, 
                   in_model_definition, model_arguments, processing_mode)
Out_classified_raster.save("c:\\classifydata\\classified_moncton.tif")

Lizenzinformationen

  • Basic: Erfordert Image Analyst
  • Standard: Erfordert Image Analyst
  • Advanced: Erfordert Image Analyst

Verwandte Themen