Deep Learning in ArcGIS Pro

Mit der Image Analyst-Lizenz verfügbar.

Mit ArcGIS Pro können Sie Klassifizierungsmethoden der Statistik oder des maschinellen Lernens zum Klassifizieren von Fernerkundungsbildern verwenden. Deep Learning ist ein Typ von maschinellem Lernen, bei dem mehrere Schichten nichtlinearer Verarbeitung für die in einem Modell beschriebene Feature-Identifizierung und Mustererkennung verwendet werden. Deep-Learning-Modelle können für die Objektermittlung sowie Objekt- und Bildklassifizierung in ArcGIS Pro integriert werden.

In ArcGIS Pro werden mit Klassifizierungs- und Deep-Learning-Werkzeugen Trainingsgebiete von relevanten Features oder Objekten generiert. Diese Trainingsgebiete werden verwendet, um ein Deep-Learning-Modell mithilfe eines Geoverarbeitungswerkzeugs zu trainieren. Mit der daraus resultierenden Modelldefinitionsdatei bzw. dem Deep-Learning-Modellpaket (.dlpk) wiederum werden die Inferenz-Geoverarbeitungswerkzeuge ausgeführt, um bestimmte Objektpositionen zu extrahieren, die Objekte zu klassifizieren oder zu beschriften oder die Pixel in den Bilddaten zu klassifizieren. Sie können das Modell auch außerhalb von ArcGIS Pro mit einem externen Drittanbieter-Framework trainieren und eine Modelldefinitionsdatei verwenden, um die Inferenz-Geoverarbeitungswerkzeuge auszuführen. Modelldefinitionsdateien und .dlpk-Pakete können mehrfach als Eingabe für die Geoverarbeitungswerkzeuge verwendet werden. Dies ermöglicht das Bewerten mehrerer Bilder an unterschiedlichen Orten und in unterschiedlichen Zeiträumen, nachdem das Modell trainiert wurde.

Der Workflow ist im folgenden Diagramm dargestellt.

Deep-Learning-Workflow

SchrittBeschreibung

Deep Learning: Schritt 1

Erstellen Sie Trainingsgebiete im Bereich Objekte für Deep Learning beschriften, und konvertieren Sie die Gebiete mit dem Werkzeug Trainingsdaten für Deep Learning exportieren in Deep-Learning-Trainingsdaten.

Deep Learning: Schritt 2

Verwenden Sie das Werkzeug Deep-Learning-Modell trainieren, um ein Modell mit PyTorch zu trainieren, oder trainieren Sie das Modell außerhalb von ArcGIS Pro mithilfe eines unterstützten externen Deep-Learning-Frameworks.

Deep Learning: Schritt 3

Verwenden Sie das trainierte Modell, um das Werkzeug Objekte mit Deep Learning erkennen, das Werkzeug Pixel mit Deep Learning klassifizieren oder das Werkzeug Objekte mit Deep Learning klassifizieren auszuführen und eine Ausgabe zu generieren.

Features und Funktionen

Mithilfe von Werkzeugen für das Deep-Learning in ArcGIS Pro können Sie zusätzlich zu den Standardklassifizierungsmethoden des maschinellen Lernens weitere Methoden verwenden.

  • Verwenden Sie Convolutional Neural Networks oder Deep-Learning-Modelle, um Objekte zu ermitteln, Objekte zu klassifizieren oder Bildpixel zu klassifizieren.
  • Integrieren Sie externe Deep-Learning-Frameworks, z. B. TensorFlow, PyTorch und Keras.
  • Verwenden Sie eine Modelldefinitionsdatei mehrmals, um Änderungen im Zeitverlauf oder Objekte in unterschiedlichen Interessenbereichen zu ermitteln.
  • Generieren Sie eine Polygon-Feature-Class, in der die Position der ermittelten Objekte, die für zusätzliche Analysen oder Workflows verwendet werden sollen, angezeigt wird.
  • Profitieren Sie von den Vorteilen der GPU-Verarbeitung, und nutzen Sie die CPU für die verteilte Verarbeitung.

Erste Schritte mit Deep Learning

Trainingsgebiete werden in ArcGIS Pro mit den Standardwerkzeugen zur Generierung von Trainingsgebieten erstellt und exportiert. Das Deep-Learning-Modell kann unter Verwendung des Werkzeugs Deep-Learning-Modell trainieren mit dem PyTorch-Framework trainiert werden, oder es kann ein anderes Deep-Learning-Framework außerhalb von ArcGIS Pro für das Training verwendet werden. Nachdem das Modell trainiert wurde, verwenden Sie eine Esri Modelldefinitionsdatei (.emd), um Geoverarbeitungswerkzeuge zur Erkennung und Klassifizierung von Features in Ihren Bilddaten auszuführen.

Sie müssen die Python-Pakete für den Deep-Learning-Framework installieren. Andernfalls tritt ein Fehler auf, wenn Sie den Deep-Learning-Geoverarbeitungswerkzeugen die Esri Modelldefinitionsdatei hinzufügen. Weitere Informationen zur Installation der Pakete finden Sie unter Installieren von Deep-Learning-Frameworks für ArcGIS.

  1. Erstellen und exportieren Sie Trainingsgebiete.
    1. Verwenden Sie den Bereich Objekte für Deep Learning beschriften oder den Trainingsgebiet-Manager, um ein Klassifizierungsschema auszuwählen oder zu erstellen.
    2. Erstellen Sie Trainingsgebiete für die relevanten Klassenkategorien oder Features. Speichern Sie die Trainingsgebietdatei.
    3. Führen Sie das Geoverarbeitungswerkzeug Trainingsdaten für Deep Learning exportieren aus, um die Quellbilddaten und -trainingsgebiete in Deep-Learning-Trainingsdaten zu konvertieren. Bei den Quellbilddaten kann es sich um einen Image-Service, ein Mosaik- oder Raster-Dataset oder um einen Ordner mit Rastern handeln. Die Ausgabe des Werkzeugs sind Bildschnipsel oder Stichproben mit Trainingsgebieten, die zum Trainieren des Deep-Learning-Modells verwendet werden sollen. Das Werkzeug gibt außerdem eine .emd-Vorlagendatei aus, die gefüllt werden muss.
  2. Trainieren Sie das Deep-Learning-Modell.
    1. Verwenden Sie das Werkzeug Deep-Learning-Modell trainieren, um mithilfe der im vorausgehenden Schritt generierten Bildschnipsel ein Deep-Learning-Modell zu trainieren.
  3. Führen Sie die Inferenz-Geoverarbeitungswerkzeuge in ArcGIS Pro aus.
    1. Verwenden Sie das Geoverarbeitungswerkzeug Objekte mit Deep Learning erkennen, Pixel mit Deep Learning klassifizieren oder Objekte mit Deep Learning klassifizieren, um die Bilddaten zu verarbeiten. Wenn das trainierte Modell benutzerdefinierte Python-Raster-Funktionen mit zusätzlichen Variablen, z. B. Abstand oder einem Konfidenzschwellenwert für die Feineinstellung der Empfindlichkeit, enthielt, werden diese Variablen im Dialogfeld für die Benutzereingabe des Geoverarbeitungswerkzeugs angezeigt. Der Datentyp, z. B. Zeichenfolge oder numerisch, wird in der Python-Raster-Funktion angegeben. Es sollten möglichst nicht mehr als zwei zusätzliche Inferenzparameter angegeben werden.

      Bei dem Parameterwert für die Esri Model Definition kann es sich um eine Esri Model Definition-Datei als JSON (.emd) oder um eine JSON-Zeichenfolge 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.

      Das Werkzeug Objekte mit Deep Learning ermitteln gibt eine Feature-Class aus, mit der die vom Modell ermittelten Objekte angezeigt werden. Das Werkzeug Pixel mit Deep Learning klassifizieren gibt ein klassifiziertes Raster aus. Für das Werkzeug Objekte mit Deep Learning klassifizieren sind eine Feature-Class und Bilddaten als Eingabe-Datasets erforderlich, und das Ergebnis ist eine Feature-Class, in der jedes Objekt innerhalb der einzelnen Features mit einem Klassennamen beschriftet ist.

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 in ArcGIS ProPDF mit FAQ zu Deep Learning.

Esri Modelldefinitionsdatei

Die .emd-Datei ist eine JSON-Datei, die das trainierte Deep-Learning-Modell beschreibt. Sie enthält Modelldefinitionsparameter, die zum Ausführen der Inferenzwerkzeuge erforderlich sind, und sollte von dem Data Scientist, der das Modell trainiert hat, geändert werden. Die Datei enthält erforderliche und optionale Parameter, wie in der folgenden Tabelle beschrieben.

Nachdem die .emd-Datei abgeschlossen und überprüft wurde, kann sie mehrfach zur Inferenzierung verwendet werden, sofern die Eingabebilddaten vom selben Sensor stammen wie die ursprüngliche Modelleingabe und die Klassen oder Objekte, die erkannt werden sollen, übereinstimmen. Wurde eine .emd-Datei z. B. mit einem Modell definiert, das Sentinel-2-Satellitendaten zur Erkennung von Erdöl-Bohrplätzen verwendet, kann diese eingesetzt werden, um mithilfe von Sentinel-2-Satellitendaten Erdöl-Bohrplätze in mehreren Interessenbereichen und zu verschiedenen Zeitpunkten zu erstellen.

Einige Parameter haben alle Inferenzwerkzeuge gemeinsam; diese sind in der folgenden Tabelle aufgelistet. Andere Parameter kommen nur bei bestimmten Werkzeugen zum Einsatz, z. B. die Parameter CropSizeFixed und BlackenAroundFeature, die nur von dem Werkzeug Objekte mit Deep Learning klassifizieren verwendet werden.

Parameter der ModelldefinitionsdateiErklärung

Framework

Der Name des zum Trainieren des Modells verwendeten Deep-Learning-Frameworks.

Die folgenden Deep-Learning-Frameworks werden unterstützt:

  • TensorFlow
  • Keras
  • PyTorch
Wenn Ihr Modell mit einem Deep-Learning-Framework trainiert wurde, das nicht in der Liste enthalten ist, ist zusammen mit dem trainierten Modell eine benutzerdefinierte Inferenzfunktion (ein Python-Modul) erforderlich. Sie müssen außerdem InferenceFunction auf den Pfad des Python-Moduls festlegen.

ModelConfiguration

Der Name der Modellkonfiguration.

Die Modellkonfiguration definiert die Modelleingaben und -ausgaben, die Inferenzlogik und die Vermutungen zu den Modelleingaben und -ausgaben. Vorhandene Open-Source-Deep-Learning-Workflows definieren die Standardkonfiguration der Eingaben und Ausgaben und die Standard-Inferenzlogik. ArcGIS unterstützt die folgenden vordefinierten Konfigurationen:

TensorFlow

  • ObjectDetectionAPI
  • DeepLab

Keras

  • MaskRCNN

Wenn Sie eine der vordefinierten Konfigurationen verwendet haben, geben Sie in der .emd-Datei den Namen der Konfiguration ein. Falls Sie Ihr Deep-Learning-Modell mit einer benutzerdefinierten Konfiguration trainiert haben, müssen Sie in der .emd-Datei oder in der benutzerdefinierten Python-Datei die Eingaben und Ausgaben vollständig beschreiben.

ModelType

Der Typ des Modells.

  • ImageClassification: Zum Klassifizieren von Pixeln
  • ObjectDetection: Zum Ermitteln von Objekten oder Features
  • ObjectClassification: Zum Klassifizieren von Objekten und Features

ModelFile

Der Pfad zu einer Datei für ein trainiertes Deep-Learning-Modell. Das Dateiformat ist von der Modellumgebung abhängig. In TensorFlow ist die Modelldatei beispielsweise eine .pb-Datei.

Beschreibung

Stellt Informationen über das Modell bereit. Modellinformationen können alle Informationen sein, mit denen das von Ihnen trainierte Modell beschrieben wird. Hierzu zählen z. B. die Nummer und der Name des Modells, der Zeitpunkt der Modellerstellung und die Performance-Genauigkeit.

InferenceFunction

(optional)

Der Pfad der Inferenzfunktion.

Eine Inferenzfunktion kann die Datei mit den trainierten Modelldaten auswerten und stellt die Inferenzlogik bereit. Die Deep-Learning-Geoverarbeitungswerkzeuge in ArcGIS Pro unterstützen sechs Inferenzfunktionen:

  • Objekte ermitteln für TensorFlow
  • Pixel klassifizieren für Tensor Flow
  • Objekte ermitteln für Keras
  • Objekte ermitteln für PyTorch
  • Objekte klassifizieren für Pytorch
Wenn Sie eine der oben genannten Inferenzfunktionen verwendet haben, muss sie nicht in der .emd-Datei angegeben werden. Falls Ihr Modell mit einer Konfiguration des Deep-Learning-Modells trainiert wird, die noch nicht unterstützt wird oder die eine spezielle Inferenzlogik erfordert, ist zusammen mit dem trainierten Modell eine benutzerdefinierte Inferenzfunktion (ein Python-Modul) erforderlich. Legen Sie in diesem Fall InferenceFunction auf den Pfad des Python-Moduls fest. Für Python-Modul-Inferenzdateien ist jeder Speicherort zulässig, auf den ArcGIS Pro Zugriff hat.

SensorName

(optional)

Der Name des Sensors, der zum Sammeln der Bilddaten verwendet wurde, aus denen Trainingsgebiete generiert wurden.

RasterCount

(optional)

Die Anzahl der Raster, die zum Generieren der Trainingsgebiete verwendet wurden.

BandList

(optional)

Die Liste der Bänder,die in den Quellbilddaten verwendet wurden.

ImageHeight

(optional)

Die Anzahl der Zeilen in dem Bild, das klassifiziert oder verarbeitet wird.

ImageWidth

(optional)

Die Anzahl der Spalten in dem Bild, das klassifiziert oder verarbeitet wird.

ExtractBands

(optional)

Die Bandindizes oder -namen, die aus den Eingabebilddaten extrahiert werden sollen.

Classes

(optional)

Informationen über die Kategorien oder Objekte der Ausgabeklasse.

DataRange

(optional)

Der Bereich der Datenwerte, wenn die Skalierung oder die Normalisierung in der Vorverarbeitung erfolgt sind.

ModelPadding

(optional)

Das Padding, das den Eingabebilddaten zur Inferenzierung hinzugefügt werden soll.

BatchSize

(optional)

Die Anzahl der Trainingsgebiete, die in jeder Iteration des Modells verwendet werden soll.

PerProcessGPUMemoryFraction

(optional)

Der Anteil des GPU-Speichers, der jeder Iteration in dem Modell zugewiesen werden soll. Der Standardwert ist 0,95 oder 95 Prozent.

MetaDataMode

(optional)

Das Format der für die Bildschnipsel verwendeten Metadatenbeschriftungen.

ImageSpaceUsed

(optional)

Der Typ des zum Trainieren des Modells verwendeten Bezugssystems.

  • MAP_SPACE
  • PIXEL_SPACE

WellKnownBandNames

(optional)

Die Namen, die jedem Eingabeband in der Reihenfolge der Bandindizes gegeben werden. Auf die Bänder kann dann anhand dieser Namen in anderen Werkzeugen Bezug genommen werden.

AllTileStats

Die Statistik der einzelnen Bänder im Trainingsgebiet.

Das Folgende ist ein Beispiel für eine Modelldefinitionsdatei (.emd), die eine Standard-Modellkonfiguration verwendet:

{
    "Framework": "TensorFlow",
    "ModelConfiguration": "ObjectDetectionAPI",
    "ModelFile":"C:\\ModelFolder\\ObjectDetection\\tree_detection.pb",
    "ModelType":"ObjectionDetection",
    "ImageHeight":850,
    "ImageWidth":850,
    "ExtractBands":[0,1,2],
    "Classes" : [
      {
        "Value": 0,
        "Name": "Tree",
        "Color": [0, 255, 0]
      }
    ]
}

Im folgenden Beispiel für eine Modelldefinitionsdatei (.emd) werden weitere optionale Parameter in der Konfiguration verwendet:

{
    "Framework": "PyTorch",    "ModelConfiguration": "FasterRCNN",    "ModelFile":"C:\\ModelFolder\\ObjectDetection\\river_detection.pb",    "ModelType":"ObjectionDetection",				"Description":"This is a river detection model for  imagery",    "ImageHeight":448,    "ImageWidth":448,    "ExtractBands":[0,1,2,3],				"DataRange":[0.1, 1.0],				"ModelPadding":64,				"BatchSize":8,				"PerProcessGPUMemoryFraction":0.8,				"MetaDataMode" : "PASCAL_VOC_rectangles",				"ImageSpaceUsed" : "MAP_SPACE",    "Classes" : [      {
        "Value": 1,        "Name": "River",        "Color": [0, 255, 0]      }
    ],				"InputRastersProps" : {
						"RasterCount" : 1,						"SensorName" : "Landsat 8",						"BandNames" : [								"Red",								"Green",								"Blue",								"NearInfrared"
						]				},				"AllTilesStats" : [      {
      		"BandName" : "Red",      		"Min" : 1,      		"Max" : 60419,      		"Mean" : 7669.720049855654,      		"StdDev" : 1512.7546387966217      },      {
      		"BandName" : "Green",      		"Min" : 1,      		"Max" : 50452,      		"Mean" : 8771.2498195125681,      		"StdDev" : 1429.1063589515179      },      {
      		"BandName" : "Blue",      		"Min" : 1,      		"Max" : 47305,      		"Mean" : 9306.0475897744163,      		"StdDev" : 1429.380049936676      },      {
      		"BandName" : "NearInfrared",      		"Min" : 1,      		"Max" : 60185,      		"Mean" : 17881.499184561973,      		"StdDev" : 5550.4055277121679      }
    ], }

Deep-Learning-Modellpaket

Ein Deep-Learning-Modellpaket (.dlpk) enthält die Dateien und Daten, die benötigt werden, um Deep-Learning-Inferenzwerkzeuge für die Objekterkennung oder Bildklassifizierung auszuführen. Das Paket kann als DLPK-Element in das Portal hochgeladen und als Eingabe für Deep-Learning-Raster-Analyse-Werkzeuge verwendet werden.

Deep-Learning-Modellpakete müssen eine Esri Modelldefinitionsdatei (.emd) und eine Datei mit dem trainierten Modell enthalten. Die Erweiterung der Datei mit dem trainierten Modell hängt davon ab, in welcher Umgebung das Modell trainiert wurde. Wenn Sie das Modell beispielsweise mit TensorFlow trainiert haben, ist die Modelldatei eine .pb-Datei, während bei einem mit Keras trainierten Modell eine .h5-Datei generiert wird. Abhängig von der Modellumgebung und den zum Trainieren des Modells verwendeten Optionen müssen Sie möglicherweise eine Python-Raster-Funktion (.py) oder zusätzliche Dateien hinzufügen. Sie können mehrere Dateien mit trainierten Modellen in ein einziges Deep-Learning-Modellpaket aufnehmen.

Die meisten Pakete können in jeder Version von ArcGIS Pro geöffnet werden. Standardmäßig wird der Inhalt eines Pakets im Ordner <User Documents>\ArcGIS\Packages gespeichert. Sie können diesen Speicherort in den Freigabe- und Download-Optionen ändern. Werden im Paket enthaltene Funktionen nicht in der Version von ArcGIS Pro unterstützt, die für das Paket verwendet wird, sind diese nicht verfügbar.

Wenn Sie die Eigenschaften eines .dlpk-Pakets anzeigen oder bearbeiten bzw. Dateien zu Ihrem .dlpk-Paket hinzufügen oder daraus entfernen möchten, klicken Sie im Bereich Katalog mit der rechten Maustaste auf das .dlpk-Paket, und klicken Sie dann auf Eigenschaften.

Geöffnetes Deep-Learning-Paket im Bereich "Katalog"

Eigenschaften enthalten die folgenden Informationen:

  • Eingabe: Die .emd-Datei, die trainierte Modelldatei sowie zusätzliche Dateien, die für die Ausführung der Inferenzwerkzeuge erforderlich sind.
  • Framework: Das Deep-Learning-Framework, das zum Trainieren des Modells verwendet wird.
  • ModelConfiguration: Der Typ des durchgeführten Modelltrainings (Objekterkennung, Pixelklassifizierung oder Feature-Klassifizierung).
  • Beschreibung: Eine Beschreibung des Modells. Diese ist optional und kann bearbeitet werden.
  • Zusammenfassung: Eine kurze Zusammenfassung des Modells. Diese ist optional und kann bearbeitet werden.
  • Tags: Alle Tags, mit denen das Paket gekennzeichnet wird. Dies ist nützlich für .dlpk-Pakete, die im Portal gespeichert sind.

Eigenschaften des Deep-Learning-Pakets

Alle im Fenster Eigenschaften bearbeiteten Eigenschaften werden aktualisiert, wenn Sie auf OK klicken. Erfolgt der Zugriff auf das .dlpk-Paket über den Bereich Katalog in Ihrem Portal, wird das Portal-Element aktualisiert.

Informationen zum Erstellen eines .dlpk-Pakets finden Sie unter Freigeben eines Deep-Learning-Modellpakets.

Verwandte Themen