Skip To Content

Classify Pixels Using Deep Learning

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, wobei jedem gültigen Pixel eine Klassenbeschriftung zugewiesen ist.

Das Paket des trainierten Deep-Learning-Modells besteht aus einer JSON-Datei mit der Esri-Modelldefinition (.emd). Es enthält den Pfad zur Python-Raster-Funktion, die zur Verarbeitung der einzelnen Raster-Kacheln wird, sowie den Pfad zur binären Datei des trainierten Deep-Learning-Modells, die über Training-Software von Drittanbietern wie TensorFlow oder CNTK erstellt wird.

Verwendung

  • Sie müssen die dem jeweiligen Deep-Learning-Framework entsprechende Python-API (TensorFlow oder CNTK) in der Python-Umgebung von ArcGIS Pro installieren, da sonst beim Hinzufügen der Esri-Modelldefinitionsdatei zum Werkzeug ein Fehler auftritt. Die entsprechenden Framework-Informationen sollten von der Person bereitgestellt werden, die die Esri-Modelldefinitionsdatei erstellt hat.

  • Informationen zum Ändern oder Klonen der Python-Umgebung finden Sie unter Python-Paketmanager.

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

  • Sie können auch eigene benutzerdefinierte Python-Module entwickeln, indem Sie den Beispielen und Anweisungen auf der Esri GitHub-Seite zu Python-Raster-FunktionenAnatomy of a Python raster function (Anatomie einer Python-Raster-Funktion) folgen.

  • Bei dem Parameter Modelldefinition kann es sich um eine JSON-Datei mit der Esri-Modelldefinition (.emd) oder um eine JSON-Zeichenfolge handeln. Eine JSON-Zeichenfolge ist nützlich, wenn Sie dieses Werkzeug auf dem Server verwenden, da Sie die JSON-Zeichenfolge einfügen können, statt die .emd-Datei hochzuladen.

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

  • The following code sample uses the Esri model definition (.emd) file:

    {
        "Framework":"TensorFlow",
        "ModelConfiguration":"deeplab",
        "InferenceFunction":"C:\\DeepLearning\\ImageClassifier.py",
        "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]
             }
        ]
    }

Syntax

ClassifyPixelsUsingDeepLearning(in_raster, in_model_definition, {arguments})
ParameterErklärungDatentyp
in_raster

The input image to classify.

Raster Dataset; Raster Layer; Mosaic Layer; Image Service; MapServer; Map Server Layer; Internet Tiled Layer
in_model_definition

Bei dem Parameter in_model_definition kann es sich um eine JSON-Datei mit der Esri-Modelldefinition (.emd) oder um eine JSON-Zeichenfolge handeln. Eine JSON-Zeichenfolge ist nützlich, wenn Sie dieses Werkzeug auf dem Server verwenden, da Sie die JSON-Zeichenfolge einfügen können, statt die .emd-Datei hochzuladen.

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 Funktionsargumente werden in der Python-Raster-Funktionsklasse definiert. Hier geben Sie zusätzliche Deep-Learning-Parameter und Argumente für Experimente und Verfeinerungen wie den Konfidenzschwellenwert zur Anpassung der Empfindlichkeit an. Die Namen der Argumente werden vom Werkzeug durch Lesen des Python-Moduls aufgefüllt.

Value Table

Rückgabewert

NameErklärungDatentyp
out_classified_raster

The classified image.

Each valid pixel has a class value. The raster has an attribute table with class names, values, and colors.

Raster

Codebeispiel

ClassifyPixelsUsingDeepLearning example 1 (Python window)

This example classifies a raster based on a custom pixel classification using the ClassifyPixelsUsingDeepLearning tool.

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

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

ClassifyPixelsUsingDeepLearning("c:/classifydata/moncton_seg.tif",
     "c:/classifydata/moncton.tif", "c:/classifydata/moncton_sig.emd")
ClassifyPixelsUsingDeepLearning example 2 (stand-alone script)

This example classifies a raster based on a custom pixel classification using the ClassifyPixelsUsingDeepLearning tool.

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

"""
Usage: ClassifyPixelsUsingDeepLearning(in_raster,out_classified_raster, 
       in_classifier_definition, {arguments})
                      
"""

# Set local variables
in_raster = "c:/classifydata/moncton_seg.tif"
out_classified_raster = "c:/classifydata/moncton.tif"
in_model_definition = "c:/classifydata/moncton_sig.emd"


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

# Execute 
ClassifyPixelsUsingDeepLearning("c:/classifydata/moncton_seg.tif",
     "c:/classifydata/moncton.tif", "c:/classifydata/moncton_sig.emd", 
     "padding 2")

Lizenzinformationen

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

Verwandte Themen