Deep Learning in der Erweiterung ArcGIS Image Analyst

Mit der Image Analyst-Lizenz verfügbar.

Über die Erweiterung ArcGIS Image Analyst können Sie Deep-Learning-Workflows mit Bilddaten in ArcGIS Pro durchführen. Mithilfe von Geoverarbeitungswerkzeugen können Sie Trainingsdaten aus Bilddaten vorbereiten, ein Modell für die Objekterkennung, Pixelklassifizierung oder Objektklassifizierung trainieren sowie Ergebnisse ausgeben und überprüfen.

Hinweis:

In diesem Thema wird Deep Learning für Bilddaten-Workflows mit Image Analyst beschrieben. Eine Übersicht aller Deep-Learning-Funktionen in ArcGIS Pro finden Sie unter Deep Learning in ArcGIS Pro.

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.

Hinweis:

Das Werkzeug Trainingsdaten für Deep Learning exportieren wird ebenfalls in der Erweiterung Spatial Analyst unterstützt.

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.

Im Bereich "Attribute" können Sie Ergebnisse einsehen und überprüfen. Die Genauigkeit berechnen Sie mit dem Werkzeug Genauigkeit für die Objekterkennung berechnen.

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 neuronale Faltungsnetzwerke (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 Modelldefinition kann es sich um eine Esri Modelldefinitionsdatei 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.

      The output of the Das Werkzeug Objekte mit Deep Learning erkennen gibt eine Feature-Class aus, in 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.

Nach dem Verwenden eines Deep-Learning-Modells ist es wichtig, dass Sie die Ergebnisse überprüfen und die Genauigkeit des Modells bewerten. Verwenden Sie den Bereich Attribute zum Überprüfen der Ergebnisse aus der objektbasierten Inferenz (Werkzeug Objekte mit Deep Learning klassifizieren oder Werkzeug Objekte mit Deep Learning erkennen). Sie können auch das Werkzeug Genauigkeit für die Objekterkennung berechnen verwenden, um eine Tabelle und einen Bericht für die Genauigkeitsbewertung zu generieren.

Grundlegende Informationen zu Deep-Learning-Anwendungen mit maschinellem Sehen finden Sie unter Einführung in Deep Learning.

Weitere Informationen zu den Voraussetzungen für die Ausführung der Geoverarbeitungswerkzeuge 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, angepasst werden. Die Datei enthält erforderliche und optionale Parameter, wie in der folgenden Tabelle beschrieben.

Nachdem die .emd-Datei fertig gestellt 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 ModelldefinitionsdateiErläuterung

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: Zur Klassifizierung 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 erkennen für TensorFlow
  • Pixel klassifizieren für Tensor Flow
  • Objekte erkennen für Keras
  • Objekte erkennen 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.

Klassen

(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 Sie in einer beliebigen Version von ArcGIS Pro öffnen. 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).
  • Description: Eine Beschreibung des Modells. Diese ist optional und kann bearbeitet werden.
  • Summary: 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 Portalelement aktualisiert.

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

Entwicklerressourcen

Neben den in ArcGIS Pro verfügbaren Geoverarbeitungswerkzeugen und Workflows können Sie für Deep-Learning-Tasks auch Skripte und Notebooks nutzen. Bei der Arbeit in ArcGIS REST API können Sie die Deep-Learning-Tasks verwenden, die mit dem Raster-Analyse-Service Tasks im Raster-Analyse-Service bereitgestellt werden. Diese Tasks entsprechen den verfügbaren Geoverarbeitungswerkzeugen, ermöglichen je nach Verarbeitungskonfiguration aber auch die verteilte Verarbeitung.

Bei der Arbeit in ArcGIS API for Python stehen Ihnen im arcgis.learn-Modul ArcGIS for Python API-Website zahlreiche zusätzliche Deep-Learning-Tasks zur Verfügung.

Verwandte Themen