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-Dateien 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.
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. | |
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. | |
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 nutzen.
- 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.
- Erstellen und exportieren Sie Trainingsgebiete.
- Verwenden Sie den Bereich Objekte für Deep Learning beschriften oder den Trainingsgebiet-Manager, um ein Klassifizierungsschema auszuwählen oder zu erstellen.
- Erstellen Sie Trainingsgebiete für die relevanten Klassenkategorien oder Features. Speichern Sie die Trainingsgebietdatei.
- 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 vom Data Scientist gefüllt wird.
- Trainieren Sie das Deep-Learning-Modell.
- Verwenden Sie das Werkzeug Deep-Learning-Modell trainieren, um mithilfe der im vorausgehenden Schritt generierten Bildschnipsel ein Deep-Learning-Modell zu trainieren.
- Führen Sie die Inferenz-Geoverarbeitungswerkzeuge in ArcGIS Pro aus.
- 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 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.
Die Ausgabe des Werkzeugs Objekte mit Deep Learning ermitteln ist eine Feature-Class, in der die vom Modell ermittelten Objekte angezeigt werden, und 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.
- 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 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.
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.
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.
Es gibt einige Parameter, die alle Inferenzwerkzeuge gemeinsam haben; 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 für das Werkzeug Objekte mit Deep Learning klassifizieren verwendet werden.
Parameter der Modelldefinitionsdatei | Erklärung |
---|---|
Framework | Der Name des zum Trainieren des Modells verwendeten Deep-Learning-Frameworks. Die folgenden Deep-Learning-Frameworks werden unterstützt:
|
ModelConfiguration | Der Name der Modellkonfiguration. Die Modellkonfiguration definiert die Modelleingaben und -ausgaben, die Inferenzlogik und die Vermutungen zu den Modelleingaben und -ausgaben. Es gibt Open-Source-Deep-Learning-Workflows, die die Standardkonfiguration der Eingaben und Ausgaben und die Standard-Inferenzlogik definieren. ArcGIS unterstützt eine Reihe vordefinierter Konfigurationen: TensorFlow
Keras
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.
|
ModelFile | Der Pfad zu einer Datei für ein trainiertes Deep-Learning-Modell. Das Dateiformat ist von der Modellumgebung abhängig. Wenn Sie beispielsweise TensorFlow verwendet haben, ist die Modelldatei eine .pb-Datei. |
Beschreibung | Stellt Informationen über das Modell bereit. Die Modellinformationen können alle Informationen umfassen, die der Data Scientist der Beschreibung des von ihm trainierten Modells hinzufügen möchte. 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:
|
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.
|
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. |
Im folgenden Beispiel für eine Modelldefinitionsdatei (.emd) wird 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]
}
]
}
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-Elements anzeigen oder bearbeiten bzw. Dateien zu Ihrem .dlpk hinzufügen oder daraus entfernen möchten, klicken Sie im Bereich Katalog mit der rechten Maustaste auf das .dlpk, und klicken Sie dann auf Eigenschaften.
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-Elemente, die im Portal gespeichert sind.
Alle im Fenster Eigenschaften bearbeiteten Eigenschaften werden aktualisiert, wenn Sie auf OK klicken. Erfolgt der Zugriff auf das .dlpk-Element über den Bereich Katalog in Ihrem Portal, wird das Portal-Element aktualisiert.
Informationen zum Erstellen eines .dlpk finden Sie unter Freigeben eines Deep-Learning-Modellpakets.