Objekte mit Deep Learning klassifizieren (Raster Analysis)

Zusammenfassung

Führt ein trainiertes Deep-Learning-Modell in einem Eingabe-Raster und einer optionalen Feature-Class aus und erstellt eine Feature-Class oder Tabelle, in der jedem Eingabeobjekt oder -Feature eine Klassen- oder Kategoriebeschriftung zugewiesen ist.

Abbildung

Objekte mit Deep Learning klassifizieren - Abbildung

Verwendung

  • Die Python-Umgebung des Raster-Analyse-Servers muss mit der passenden Deep-Learning-Framework-Python-API wie TensorFlow, CNTK oder einer vergleichbaren Anwendung konfiguriert werden.

  • Wenn dieses Werkzeug ausgeführt wird, ruft der Raster-Analyse-Server eine Deep-Learning-Python-API eines Drittanbieters (wie TensorFlow oder CNTK) auf und verwendet zum Verarbeiten der einzelnen Raster-Kacheln die angegebene Python-Raster-Funktion.

  • Das Eingabemodell dieses Werkzeugs übernimmt nur ein Deep-Learning-Paketelement (eine .dlpk-Datei) aus dem Portal.

  • Nachdem das Eingabemodell ausgewählt oder angegeben wurde, ruft das Werkzeug die Modellargumentinformationen vom Raster-Analyse-Server ab. Das Werkzeug kann diese Informationen möglicherweise nicht abrufen, wenn das Eingabemodell ungültig ist oder der Raster-Analyse-Server nicht ordnungsgemäß mit dem Deep-Learning-Framework konfiguriert wurde.

Parameter

BeschriftungErläuterungDatentyp
Eingabe-Raster

Das zu klassifizierende Eingabebild. Bei dem Bild kann sich um die URL für einen Image-Service, einen Raster-Layer, einen Kartenserver-Layer oder einen gekachelten Internet-Layer handeln.

Raster Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer; String
Eingabemodell

Das Deep-Learning-Modell, das für die Klassifizierung von Objekten im Eingabebild verwendet wird. Bei der Eingabe handelt es sich um die URL eines Deep-Learning-Paketelements (.dlpk), das den Pfad zur binären Datei des Deep-Learning-Modells, den Pfad der zu verwendenden Python-Raster-Funktion und sonstige Parameter wie die bevorzugte Kachelgröße oder den bevorzugten Abstand enthält.

File
Ausgabename

Der Name des Feature-Service, der die klassifizierten Objekte enthält.

String
Eingabe-Features
(optional)

Der Feature-Service, der die Position jedes zu klassifizierenden und zu beschriftenden Objekts oder Features identifiziert. Jede Zeile in dem Eingabe-Feature-Service repräsentiert ein einzelnes Objekt oder Feature.

Wenn kein Eingabe-Feature angegeben ist, wird jedes Eingabebild als einzelnes Objekt klassifiziert. Wenn das Eingabebild oder die Eingabebilder einen Raumbezug verwenden, ist die Ausgabe des Werkzeugs eine Feature-Class, in der die Ausdehnung jedes Bildes als Begrenzungsgeometrie für jede beschriftete Feature-Class verwendet wird. Wenn das Eingabebild oder die Eingabebilder keinen Raumbezug verwenden, ist die Ausgabe des Werkzeugs eine Tabelle mit den Bild-ID-Werten und Klassenbeschriftungen für jedes Bild.

Feature Layer; Map Server Layer; String
Modellargumente
(optional)

Die für die Klassifizierung zu verwendenden Funktionsmodellargumente. Diese sind in der Python-Raster-Funktionsklasse definiert, die vom Eingabemodell referenziert wird. Hier geben Sie zusätzliche Deep-Learning-Parameter und Argumente für Experimente und Verfeinerungen wie den Konfidenzschwellenwert zur Anpassung der Empfindlichkeit an. Die Namen der Argumente werden vom Werkzeug durch das Python-Modul auf dem Raster-Analyse-Server ausgefüllt.

Value Table
Klassen-Beschriftungsfeld
(optional)

Der Name des Feldes für die Klassen- oder Kategoriebeschriftung in der Ausgabe-Feature-Class.

Falls kein Feldname angegeben ist, wird das neue Feld ClassLabel in der Ausgabe-Feature-Class generiert.

String
Verarbeitungsmodus
(optional)

Legt fest, wie alle Raster-Elemente in einem Mosaik-Dataset oder Image-Service verarbeitet werden. Dieser Parameter findet Anwendung, wenn es sich beim Eingabe-Raster um ein Mosaik-Dataset oder einen Image-Service handelt.

  • Als mosaikiertes Bild verarbeitenAlle Raster-Elemente im Mosaik-Dataset oder Image-Service werden zusammen mosaikiert und verarbeitet. Dies ist die Standardeinstellung.
  • Alle Raster-Elemente separat verarbeitenAlle Raster-Elemente im Mosaik-Dataset oder Image-Service werden als separate Bilder verarbeitet.
String

Abgeleitete Ausgabe

BeschriftungErläuterungDatentyp
Ausgabeobjekte

Das Ausgabe-Feature-Set.

Feature Set

arcpy.ra.ClassifyObjectsUsingDeepLearning(inputRaster, inputModel, outputName, {inputFeatures}, {modelArguments}, {classLabelField}, {processingMode})
NameErläuterungDatentyp
inputRaster

Das zu klassifizierende Eingabebild. Bei dem Bild kann sich um die URL für einen Image-Service, einen Raster-Layer, einen Kartenserver-Layer oder einen gekachelten Internet-Layer handeln.

Raster Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer; String
inputModel

Das Deep-Learning-Modell, das für die Klassifizierung von Objekten im Eingabebild verwendet wird. Bei der Eingabe handelt es sich um die URL eines Deep-Learning-Paketelements (.dlpk), das den Pfad zur binären Datei des Deep-Learning-Modells, den Pfad der zu verwendenden Python-Raster-Funktion und sonstige Parameter wie die bevorzugte Kachelgröße oder den bevorzugten Abstand enthält.

File
outputName

Der Name des Feature-Service, der die klassifizierten Objekte enthält.

String
inputFeatures
(optional)

Der Feature-Service, der die Position jedes zu klassifizierenden und zu beschriftenden Objekts oder Features identifiziert. Jede Zeile in dem Eingabe-Feature-Service repräsentiert ein einzelnes Objekt oder Feature.

Wenn kein Eingabe-Feature angegeben ist, wird jedes Eingabebild als einzelnes Objekt klassifiziert. Wenn das Eingabebild oder die Eingabebilder einen Raumbezug verwenden, ist die Ausgabe des Werkzeugs eine Feature-Class, in der die Ausdehnung jedes Bildes als Begrenzungsgeometrie für jede beschriftete Feature-Class verwendet wird. Wenn das Eingabebild oder die Eingabebilder keinen Raumbezug verwenden, ist die Ausgabe des Werkzeugs eine Tabelle mit den Bild-ID-Werten und Klassenbeschriftungen für jedes Bild.

Feature Layer; Map Server Layer; String
modelArguments
[modelArguments,...]
(optional)

Die für die Klassifizierung zu verwendenden Funktionsmodellargumente. Diese sind in der Python-Raster-Funktionsklasse definiert, die vom Eingabemodell referenziert wird. Hier geben Sie zusätzliche Deep-Learning-Parameter und Argumente für Experimente und Verfeinerungen wie den Konfidenzschwellenwert zur Anpassung der Empfindlichkeit an. Die Namen der Argumente werden vom Werkzeug durch das Python-Modul auf dem Raster-Analyse-Server ausgefüllt.

Value Table
classLabelField
(optional)

Der Name des Feldes für die Klassen- oder Kategoriebeschriftung in der Ausgabe-Feature-Class.

Falls kein Feldname angegeben ist, wird das neue Feld ClassLabel in der Ausgabe-Feature-Class generiert.

String
processingMode
(optional)

Legt fest, wie alle Raster-Elemente in einem Mosaik-Dataset oder Image-Service verarbeitet werden. Dieser Parameter findet Anwendung, wenn es sich beim Eingabe-Raster um ein Mosaik-Dataset oder einen Image-Service handelt.

  • PROCESS_AS_MOSAICKED_IMAGEAlle Raster-Elemente im Mosaik-Dataset oder Image-Service werden zusammen mosaikiert und verarbeitet. Dies ist die Standardeinstellung.
  • PROCESS_ITEMS_SEPARATELYAlle Raster-Elemente im Mosaik-Dataset oder Image-Service werden als separate Bilder verarbeitet.
String

Abgeleitete Ausgabe

NameErläuterungDatentyp
outObjects

Das Ausgabe-Feature-Set.

Feature Set

Codebeispiel

ClassifyObjectsUsingDeepLearning – Beispiel 1 (Python-Fenster)

In diesem Beispiel werden Features in einem Raster basierend auf einem Klassifizierungsmodell mithilfe von Deep Learning in einer Raster-Analyse-Bereitstellung klassifiziert und das Raster als gehosteter Bilddaten-Layer im Portal veröffentlicht.

import arcpy

arcpy.ra.ClassifyObjectsUsingDeepLearning(
	"https://myserver/rest/services/Buildings/ImageServer", 
	"https://myserver/rest/services/Hosted/BuildingFootprints/FeatureServer/0",
	"https://myportal/sharing/rest/content/items/itemId", "BuildingDamage",
	"batch_size 4", "ClassLabel","PROCESS_AS_MOSAICKED_IMAGE")
ClassifyObjectsUsingDeepLearning – Beispiel 2 (eigenständiges Skript)

In diesem Beispiel werden Features in einem Raster basierend auf einem Klassifizierungsmodell mithilfe von Deep Learning in einer Raster-Analyse-Bereitstellung klassifiziert und das Raster als gehosteter Bilddaten-Layer im Portal veröffentlicht.

#---------------------------------------------------------------------------
# Name: ClassifyObjectsUsingDeepLearning_example02.py
# Requirements: ArcGIS Image Server
# Import system modules
import arcpy

# Set local variables
inputRaster = "https://myserver/rest/services/Buildings/ImageServer"
inputFeatures = "https://myserver/rest/services/Hosted/BuildingFootprints/FeatureServer/0"
inputModel = "https://myportal/sharing/rest/content/items/itemId"
outputName = "BuildingDamage"
modelArguments = "batch_size 4"
classLabelField = "ClassLabel"
processingMode = "PROCESS_AS_MOSAICKED_IMAGE"

# Execute Classify Objects Using Deep Learning 
arcpy.ra.ClassifyObjectsUsingDeepLearning(inputRaster, inputFeatures, 
	inputModel, outputName, modelArguments, classLabelField , processingMode)

Lizenzinformationen

  • Basic: Erfordert ArcGIS Image Server
  • Standard: Erfordert ArcGIS Image Server
  • Advanced: Erfordert ArcGIS Image Server