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 generiert, anschließend mit dem Werkzeug Objekte für Deep Learning beschriften beschriftet und dann in ein Format für den Einsatz im Deep-Learning-Framework konvertiert. Diese Trainingsgebiete werden zum Trainieren des Modells mit dem Raster-Analyse-Werkzeug Deep-Learning-Modell trainieren oder der ArcGIS API for Python 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 Werkzeug Objekte für Deep Learning beschriften 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

Trainieren Sie ein Deep-Learning-Modell mit dem Raster-Analyse-Werkzeug Deep-Learning-Modell trainieren. Sie können die ArcGIS REST API nutzen, um das Modell mit einem Deep-Learning-Framework zu trainieren. Das Ausgabe-Deep-Learning-Paket (*.dlpk), bestehend aus der Modelldefinitionsdatei und dem trainierten Deep-Learning-Modell und/oder Python-Skript, wird als Deep-Learning-Modellpaket-Element für das Portal freigegeben.

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.

Führen Sie mit dem DLPK-Element auf dem Portal das Werkzeug Objekte mit Deep Learning ermitteln, das Werkzeug Pixel mit Deep Learning klassifizieren oder das Werkzeug Objekte mit Deep Learning klassifizieren aus, um eine Ausgabe zu generieren.

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 und Objekterkennung.
  • Mit einem Deep-Learning-Modell können Sie Bildpixel klassifizieren und Objekte wie z. B. Flugzeuge, Bäume, Fahrzeuge, Gewässer, Gebäude und Erdöl-Bohrplätze ermitteln oder klassifizieren.
  • Integrieren Sie externe Deep-Learning-Frameworks, einschließlich PyTorch, Keras, TensorFlow und CNTK.
  • Verarbeiten Sie eine Raster-Sammlung während der Modell-Inferenz, 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(n) GPU(s) auf den einzelnen Serverknoten.
  • Sie können mehrere GPUs pro Serverknoten verwenden, um Deep-Learning-Inferenzaufträge mit den in ArcGIS vordefinierten Modellkonfigurationen auszuführen, darunter TensorFlow Object Detection API und DeepLab, Keras MaskRCNN, PyTorch fastai Single Shot Detector.
  • Wenn das Eingabe-Raster eine entsprechende Transformation des Kartenraums in den Bildraum enthält, können Trainings-Bildschnipsel mit dem Werkzeug "Trainingsdaten für Deep Learning exportieren" in den Bildraum exportiert werden.

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 Deep-Learning-Modell kann in ArcGIS mit dem Raster-Analyse-Werkzeug "Deep-Learning-Modell trainieren" oder der ArcGIS API für Python "arcgis.learn" trainiert werden. Das Deep-Learning-Modell kann alternativ außerhalb von ArcGIS mit einer externen Deep-Learning-API trainiert werden. Sobald das Modell trainiert ist, wird das DLPK-Element in Portal for ArcGIS hinzugefügt und ist bereit für Modellinferenz-Tasks. Führen Sie die Raster-Analyse-Werkzeuge aus, um Objekte aus Map Viewer, ArcGIS API for Python, ArcGIS REST API oder ArcGIS Pro zu erkennen und klassifizieren oder Pixel zu klassifizieren.

Hinweis:

Momentan steht der Workflow zum Klassifizieren von Objekten im Map Viewer nicht zur Verfügung, er ist jedoch über alle anderen Clients verfügbar.

Der gesamte Deep-Learning-Workflow kann von einem Analysten durchgeführt werden, der über Erfahrung in Deep-Learning-Modellen und der ArcGIS-Bildklassifizierung verfügt.

Es wird auch eine separate Deep-Learning-Setupanwendung bereitgestellt, mit der die jeweiligen Deep-Learning-Framework-APIs (TensorFlow, Keras, PyTorch und alle anderen erforderlichen Python-Bibliotheken) in der Standardumgebung "arcgispro-py3" von ArcGIS Image Server installiert werden. Dies ist die Voraussetzung für die Ausführung von Deep-Learning-Tasks auf ArcGIS Image Server.

Hilfestellungen bei der Konfiguration und Bereitstellung von ArcGIS Enterprise für die Raster-Analyse finden Sie in der Hilfedokumentation. Beachten Sie auch die weiteren Schritte zur Konfiguration Ihres Raster-Analyse-Servers für die Verwendung mehrerer GPUs pro Serverknoten.

  1. Erstellen und exportieren Sie Trainingsgebiete.
    1. Verwenden Sie das Werkzeug Objekte für Deep Learning beschriften 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 dem Raster-Analyse-Werkzeug Deep-Learning-Modell trainieren zu trainieren. Alternativ können Benutzer auch Deep-Learning-Modelle mit der ArcGIS API für Python "arcgis.learn" oder mit externen Deep-Learning-Framework-APIs trainieren.
    2. Wenn das Deep-Learning-Modell mit dem Raster-Analyse-Werkzeug "Deep-Learning-Modell trainieren" trainiert wird, ist die Ausgabe ein Deep-Learning-Modellpaket-Element, das auf dem Portal veröffentlicht wird. Das Deep-Learning-Modellpaket (.dlpk) kann im nächsten Schritt direkt verwendet werden.
    3. Wenn das Modell mit einer externen Deep-Learning-Framework-API trainiert wird, müssen Benutzer die .emd-Datei mit dem Namen des Deep-Learning-Frameworks, der Modellkonfiguration, anderen optionalen Eigenschaften und optional einer benutzerdefinierten Funktion 'Python-Raster' für die Modellinferenz aktualisieren. 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 die Raster-Analyse-Werkzeuge Objekte mit Deep Learning ermitteln, Objekte mit Deep Learning klassifizieren 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.

      Die Ausgabe des Werkzeugs Objekte mit Deep Learning ermitteln und des Werkzeugs Objekte mit Deep Learning klassifizieren ist eine Feature-Class, in der die vom Modell ermittelten oder klassifizierten 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
  • ObjectClassification: Zur Klassifizierung 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 klassifizieren 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.

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.

Klassen

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

Hinweis:

Alle im Deep-Learning-Modellpaket enthaltenen Dateien müssen auf der Ebene des Stammordners komprimiert werden.