Objekte mit Deep Learning erkennen (Raster Analysis)

Zusammenfassung

Führt ein trainiertes Deep-Learning-Modell auf einem Eingabe-Raster zur Erstellung einer Feature-Class aus, die die identifizierten Objekte enthält. Die Feature-Class kann im Portal als gehosteter Feature-Layer freigegeben werden. Bei den Features kann es sich um Rahmen oder Polygone um die gefundenen Objekte oder um Punkte im Mittelpunkt der Objekte handeln.

Abbildung

Abbildung des Werkzeugs "Objekte mit Deep Learning erkennen"

Verwendung

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

  • Wenn das Werkzeug ausgeführt wird, ruft der RA-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.

  • Der Eingabemodell-Parameter verwendet nur ein Deep-Learning-Paketelement (.dlpk) 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.

  • Verwenden Sie den Parameter Non Maximum Suppression, um doppelte Features in der Objekterkennung zu identifizieren und entfernen.

  • Weitere Informationen zu Deep Learning finden Sie unter Deep Learning in ArcGIS Pro.

Parameter

BeschriftungErläuterungDatentyp
Eingabe-Raster

Das Eingabebild für die Ermittlung von Objekten. Hierbei kann es 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

Beim Eingabemodell kann es sich um eine Datei oder URL eines Paketelements (.dlpk) aus dem Portal handeln.

File
Ausgabename

Der Name des Ausgabe-Feature-Service von erkannten Objekten.

String
Modellargumente
(optional)

Die Funktionsmodellargumente werden 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 Feinabstimmung der Empfindlichkeit an. Die Namen der Argumente werden vom Werkzeug durch Lesen des Python-Moduls im RA-Server aufgefüllt.

Value Table
Non Maximum Suppression
(optional)

Gibt an, ob die Non Maximum Suppression durchgeführt wird, wenn doppelte Objekte erkannt werden und das doppelte Feature mit einem niedrigeren Konfidenzwert entfernt wird.

  • Deaktiviert: Alle erkannten Objekte sind in der Ausgabe-Feature-Class enthalten. Dies ist die Standardeinstellung.
  • Aktiviert: Erkannte doppelte Objekte werden entfernt.

Boolean
Feld für die Konfidenzpunktzahl
(optional)

Das Feld im Feature-Service, das die Konfidenzpunktzahlen enthält, die von der Objekterkennungsmethode als Ausgabe verwendet werden.

Dieser Parameter wird benötigt, wenn der Parameter Non Maximum Suppression aktiviert ist.

String
Klassenwertefeld
(optional)

Der Name des Klassenwertefeldes im Feature-Service.

Wenn kein Feldname angegeben wurde, wird das Feld Classvalue oder Value verwendet. Wenn diese Felder nicht vorhanden sind, werden alle Datensätze als zu einer Klasse gehörend identifiziert.

String
Max. Überlappungsrate
(optional)

Die maximale Überlappungsrate für zwei überlappende Features, die als Verhältnis von Schnittfläche zu Vereinigungsfläche definiert ist. Die Standardeinstellung ist 0.

Double
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
Ausgabe-Objekte

Der Ausgabe-Feature-Service.

Feature Class

arcpy.ra.DetectObjectsUsingDeepLearning(inputRaster, inputModel, outputName, {modelArguments}, {runNMS}, {confidenceScoreField}, {classValueField}, {maxOverlapRatio}, {processingMode})
NameErläuterungDatentyp
inputRaster

Das Eingabebild für die Ermittlung von Objekten. Hierbei kann es 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

Beim Eingabemodell kann es sich um eine Datei oder URL eines Paketelements (.dlpk) aus dem Portal handeln.

File
outputName

Der Name des Ausgabe-Feature-Service von erkannten Objekten.

String
modelArguments
[modelArguments,...]
(optional)

Die Funktionsmodellargumente werden 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 Feinabstimmung der Empfindlichkeit an. Die Namen der Argumente werden vom Werkzeug durch Lesen des Python-Moduls im RA-Server aufgefüllt.

Value Table
runNMS
(optional)

Gibt an, ob die Non Maximum Suppression durchgeführt wird, wenn doppelte Objekte erkannt werden und das doppelte Feature mit einem niedrigeren Konfidenzwert entfernt wird.

  • NO_NMSAlle erkannten Objekte sind in der Ausgabe-Feature-Class enthalten. Dies ist die Standardeinstellung.
  • NMSErkannte doppelte Objekte werden entfernt.
Boolean
confidenceScoreField
(optional)

Das Feld im Feature-Service, das die Konfidenzpunktzahlen enthält, die von der Objekterkennungsmethode als Ausgabe verwendet werden.

Dieser Parameter wird benötigt, wenn das Schlüsselwort NMS für den Parameter runNMS verwendet wird.

String
classValueField
(optional)

Der Name des Klassenwertefeldes im Feature-Service.

Wenn kein Feldname angegeben wurde, wird das Feld Classvalue oder Value verwendet. Wenn diese Felder nicht vorhanden sind, werden alle Datensätze als zu einer Klasse gehörend identifiziert.

String
maxOverlapRatio
(optional)

Die maximale Überlappungsrate für zwei überlappende Features, die als Verhältnis von Schnittfläche zu Vereinigungsfläche definiert ist. Die Standardeinstellung ist 0.

Double
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

Der Ausgabe-Feature-Service.

Feature Class

Codebeispiel

DetectObjectsUsingDeepLearning_ra – Beispiel 1 (Python-Fenster)

In diesem Beispiel wird basierend auf der Objekterkennung mithilfe des Werkzeugs DetectObjectsUsingDeepLearning im Portal ein gehosteter Feature-Layer erstellt.

import arcpy
arcpy.DetectObjectsUsingDeepLearning_ra(
        "https://myserver/rest/services/Farm/ImageServer",
        "https://myportal/sharing/rest/content/items/itemId", "detectedTrees",
"score_threshold 0.6;padding 0", "NO_NMS")
DetectObjectsUsingDeepLearning – Beispiel 2 (eigenständiges Skript)

In diesem Beispiel wird basierend auf der Objekterkennung mithilfe des Werkzeugs DetectObjectsUsingDeepLearning im Portal ein gehosteter Feature-Layer erstellt.

#---------------------------------------------------------------------------
# Name: DetectObjectsUsingDeepLearning_example02.py
# Requirements: ArcGIS Image Server
# Import system modules
import arcpy
# Set local variables
inImage = "https://myserver/rest/services/coconutFarmImage/ImageServer"
inModel = "https://myportal/sharing/rest/content/items/itemId"
outName = "detectedTrees"
modelArgs = "score_threshold 0.6;padding 0"
runNMS = "NMS"
confScoreField = "Confidence"
classVField = "Class"
maxOverlapRatio = 0.15 
# Execute Detect Objects Using raster analysis tool
arcpy.DetectObjectsUsingDeepLearning_ra(inImage, inModel, outName, modelArgs,
runNMS, confScoreField, ClassVField, maxOverlapRatio)

Lizenzinformationen

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

Verwandte Themen