Skip To Content

Deep Learning in der Raster-Analyse

Mit ArcGIS Image Server 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 Layer nichtlinearer Verarbeitung für die in einem Modell beschriebene Feature-Identifizierung und Mustererkennung verwendet werden. Deep-Learning-Modelle können für die Objektermittlung und Bildklassifizierung in ArcGIS Image Server integriert werden. In ArcGIS Pro werden mit dem Trainingsgebiet-Manager-Klassifizierungswerkzeug Trainingsgebiete von relevanten Features oder Objekten erstellt und dann in ein Format für den Einsatz im Deep-Learning-Framework konvertiert. Diese Trainingsgebiete werden zum Trainieren des Modells durch einen Daten- oder Bildwissenschaftler mithilfe eines externen Deep-Learning-Frameworks verwendet. Das trainierte Modell und die Modelldefinitionsdatei (und optional eine Skriptdatei für die Python-Raster-Funktion) werden gepackt und als DLPK-Element (Deep-Learning-Paket) freigegeben. Dieses wird dann zum Ausführen der Raster-Analyse-Inferenzwerkzeuge verwendet. Die Inferenzwerkzeuge extrahieren bestimmte Features oder klassifizieren die Pixel in den Bilddaten. Das DLPK-Element kann mehrmals als Eingabe für die Raster-Analyse-Werkzeuge verwendet werden. Dies erleichtert das Bewerten mehrerer Bilder an unterschiedlichen Orten und in unterschiedlichen Zeiträumen, nachdem das Modell trainiert wurde.

Deep-Learning-Workflow

Workflow-Element 1

Erstellen Sie mit dem Trainingsgebiet-Manager in ArcGIS Pro Trainingsgebiete, und verwenden Sie das Raster-Analyse-Werkzeug Trainingsdaten für Deep Learning exportieren in ArcGIS REST API oder ArcGIS API for Python, um die Daten für den Data Scientist vorzubereiten.

Workflow-Element 2

Der Datenwissenschaftler entwickelt mithilfe der Trainingsdaten Modelle unter Verwendung eines externen Deep-Learning-Frameworks.

Workflow-Element 3

Der Datenwissenschaftler liefert ein Deep-Learning-Paket, das aus der Modelldefinitionsdatei und dem trainierten Modell und/oder einem Python-Skript besteht, zurück an die ArcGIS Image Server-Raster-Analyseumgebung.

Workflow-Element 4

Erstellen Sie ein DLPK-Element (Deep-Learning-Paket), und geben Sie es für das Portal frei. Führen Sie mit dem DLPK-Element das Werkzeug Objekte mit Deep Learning ermitteln oder das Werkzeug Pixel mit Deep Learning klassifizieren aus, um eine Ausgabe zu generieren.

Workflow-Element 5

Sie können die ArcGIS API for Python nutzen, um das Modell mit einem Deep-Learning-Framework zu trainieren.

Features und Funktionen

Mithilfe von Werkzeugen für die Deep-Learning-Raster-Analyse können Sie zusätzlich zu den Standardklassifizierungsmethoden des maschinellen Lernens weitere Methoden nutzen.

  • Verwenden Sie Convolutional Neural Networks für die Bildklassifizierung.
  • Verwenden Sie ein Deep-Learning-Modell, um Bildpixel zu klassifizieren oder Objekte wie z. B. Flugzeuge, Bäume, Fahrzeuge, Gewässer und Erdöl-Bohrplätze zu ermitteln.
  • Integrieren Sie externe Deep-Learning-Frameworks, einschließlich Keras, TensorFlow, CNTK und PyTorch.
  • Verwenden Sie eine Modelldefinitionsdatei mehrmals, um Änderungen im Zeitverlauf oder Objekte in unterschiedlichen Interessenbereichen zu ermitteln.
  • Generieren Sie eine Polygon-Feature-Class, in der ermittelte Objekte angezeigt werden, die für zusätzliche Analysen oder Workflows verwendet werden sollen.
  • Die Deep-Learning-Inferenzwerkzeuge können die CPU für die verteilte Verarbeitung verwenden oder, sofern verfügbar, die leistungsstarke GPU auf den einzelnen Serverknoten.

Erste Schritte mit Deep Learning

Die Erstellung und der Export der Trainingsgebiete nimmt ein kompetenter Bildanalyst in ArcGIS vor, da gute Kenntnisse der Bildklassifizierungs-Workflows erforderlich sind. Das Training des Deep-Learning-Modells erfolgt mit einem Deep-Learning-Framework außerhalb von ArcGIS durch einen Data Scientist oder eine Person mit Erfahrung im Trainieren von Deep-Learning-Modellen. Nachdem das Modell trainiert und in einer Esri Modelldefinitionsdatei (.emd) definiert wurde, geben Sie ein DLPK-Element für Portal for ArcGIS frei und führen die Raster-Analyse-Werkzeuge aus, um über Map Viewer, ArcGIS API for Python, ArcGIS REST API oder ArcGIS Pro Objekte zu ermitteln oder Pixel zu klassifizieren. In manchen Fällen können alle drei Schritte von einem Analysten durchgeführt werden, der über Erfahrung in Deep-Learning-Modellen und der ArcGIS-Bildklassifizierung verfügt.

Sie müssen die dem jeweiligen Deep-Learning-Framework entsprechende ArcGIS API for Python (TensorFlow, CNTK, PyTorch oder Keras) in der Python 3-Umgebung von ArcGIS Server installieren, da sonst beim Hinzufügen des DLPK-Elements zum Werkzeug ein Fehler auftritt. Fordern Sie die entsprechenden Framework-Informationen vom Ersteller der Esri-Modelldefinitionsdatei an.

Hilfe für die Installation finden Sie in der Dokumentation des Frameworks. Hilfestellungen bei der Konfiguration und Bereitstellung von ArcGIS Enterprise für die Raster-Analyse finden Sie in der Hilfedokumentation.

  1. Erstellen und exportieren Sie Trainingsgebiete.
    1. Verwenden Sie den Trainingsgebiet-Manager in ArcGIS Pro, 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 Raster-Analyse-Werkzeug Trainingsdaten für Deep Learning exportieren aus, um die Quellbilddaten und -trainingsgebiete in Deep-Learning-Trainingsdaten zu konvertieren. Die Quellbilddaten sind möglicherweise ein Image-Service. Die Ausgabe des Werkzeugs ist die Zeichenfolge für den Data Store, in dem die Ausgabe-Bildschnipsel, -beschriftungen und -Metadatendateien gespeichert werden. Das Werkzeug gibt außerdem eine .emd-Vorlagendatei aus, die vom Datenwissenschaftler gefüllt wird.
  2. Trainieren Sie das Deep-Learning-Modell.
    1. Verwenden Sie die oben in Schritt 1 generierten Bildschnipsel, um ein Modell mit einem Deep-Learning-Framework wie TensorFlow, CNTK, PyTorch oder Keras zu trainieren.
    2. Aktualisieren Sie die .emd-Datei mit dem Namen des Deep-Learning-Frameworks, der Modellkonfiguration und weiteren optionalen Eigenschaften. Informationen über die erforderlichen und optionalen Parameter in der .emd-Datei finden Sie unten im Abschnitt Esri Modelldefinitionsdatei.
  3. Führen Sie die Raster-Analyse-Inferenzwerkzeuge über Map Viewer, ArcGIS API for Python, ArcGIS REST API oder ArcGIS Pro aus.
    1. Verwenden Sie das Raster-Analyse-Werkzeug Objekte mit Deep Learning ermitteln oder Pixel 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, enthält, werden diese Variablen im Dialogfeld für die Benutzereingabe des ArcGIS Pro- oder Map Viewer-Raster-Analyse-Werkzeugs 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.

      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.

      Hinweis:

      Das Deep-Learning-Framework muss auf den Computern für den Raster-Analyse-Service installiert werden, damit die Inferenzwerkzeuge ausgeführt werden können. Der Grund dafür ist, dass die Inferenzlogik in der Python-API für das Framework integriert ist und für die Berechnung erforderlich ist.

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 Datenwissenschaftler, der das Modell trainiert hat, geändert werden. Die Datei enthält erforderliche und optionale Parameter, wie in der folgenden Tabelle beschrieben.

Parameter der ModelldefinitionsdateiErklärung

Framework

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

Es werden drei Deep-Learning-Frameworks unterstützt:

  • TensorFlow
  • CNTK
  • Keras
  • PyTorch

InferenceFunction

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

CNTK

Keras

PyTorch

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.

ModelFile

Der Pfad zu einer Datei für ein trainiertes Deep-Learning-Modell. Da viele Modell-Framework-Dateiformate auf Protokollpuffern basieren, ist das trainierte Deep-Learning-Modell eine .pb-Datei. Es werden jedoch auch andere Dateiformate unterstützt.

ModelType

Der Typ des Modells. Folgende Typen sind möglich:

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

InferenceFunction

(optional)

Der Pfad der Inferenzfunktion.

Eine Inferenzfunktion kann die Datei mit den trainierten Modelldaten auswerten und stellt die Inferenzlogik bereit. In den ArcGIS-Raster-Analyse-Werkzeugen für Deep-Learning werden sechs Inferenzfunktionen unterstützt:

  • Objekte ermitteln für TensorFlow
  • Pixel klassifizieren für Tensor Flow
  • Objekte ermitteln für CNTK
  • Pixel klassifizieren für CNTK
  • Objekte ermitteln für Keras
  • Objekte ermitteln 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.

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.

Im folgenden Beispiel für eine Modelldefinitionsdatei (.emd) wird eine Standard-Modellkonfiguration verwendet:

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

DLPK-Element (Deep-Learning-Paket)

Deep-Learning-Raster-Analyse-Werkzeuge erfordern ein Deep-Learning-Paket (.dlpk) als Eingabe. Ein Deep-Learning-Modellpaket besteht aus der JSON-Datei mit der Esri Modelldefinition (.emd), der binären Datei des Deep-Learning-Modells und optional aus der zu verwendenden Python-Raster-Funktion.

Wenn alle Komponenten bereit sind, können Sie alle Dateien in einer .zip-Datei komprimieren und die .zip-Datei als DLPK-Element in Ihr Portal hochladen. Weitere Informationen finden Sie unter Hinzufügen von Dateien von Ihrem Computer. Sie können auch die Dateierweiterung .zip in .dlpk ändern, damit der DLPK-Elementtyp beim Hinzufügen des Elements automatisch erkannt wird.