Mit der Image Analyst-Lizenz verfügbar.
Zusammenfassung
Führt ein trainiertes Deep-Learning-Modell auf einem Eingabe-Raster zur Erstellung einer Feature-Class aus, die die gefundenen Objekte enthält. Bei den Features kann es sich um Rahmen oder Polygone um die gefundenen Objekte oder um Punkte im Mittelpunkt der Objekte handeln.
Dieses Werkzeug erfordert eine Modelldefinitionsdatei, die Informationen zum trainierten Modell enthält. Das Modell kann mit dem Werkzeug Deep-Learning-Modell trainieren oder einer Training-Software von Drittanbietern wie TensorFlow, PyTorch oder Keras trainiert werden. Bei der Modelldefinitionsdatei kann es sich um eine Esri Modelldefinitionsdatei als JSON (.emd) oder ein Deep-Learning-Modellpaket handeln. Sie muss den Pfad zur Python-Raster-Funktion, die zur Verarbeitung der einzelnen Objekte aufgerufen werden soll, sowie den Pfad zur binären Datei des trainierten Deep-Learning-Modells enthalten.
Verwendung
Sie müssen die dem jeweiligen Deep-Learning-Framework entsprechende Python-API (z. B. TensorFlow, PyTorch oder Keras) in der Python-Umgebung von ArcGIS Pro installieren, da sonst beim Hinzufügen der Esri Model Definition-Datei zum Werkzeug ein Fehler auftritt. Fordern Sie die entsprechenden Framework-Informationen vom Ersteller der Esri Model Definition-Datei an.
Informationen zum Einrichten des Computers für Deep-Learning-Frameworks in ArcGIS Pro finden Sie unter Installieren von Deep-Learning-Frameworks for ArcGIS.
Mit diesem Werkzeug wird eine Deep-Learning-Python-API eines Drittanbieters (wie TensorFlow, PyTorch oder Keras) aufgerufen und die angegebene Python-Raster-Funktion zum Verarbeiten der einzelnen Objekte verwendet.
Beispielanwendungsfälle für dieses Werkzeug finden Sie auf der Esri GitHub-Seite zu Python-Raster-Funktionen. Sie können auch benutzerdefinierte Python-Module entwickeln, indem Sie den Beispielen und Anweisungen folgen.
Bei dem Parameterwert für die Esri Model Definition kann es sich um eine Esri Model Definition-Datei als JSON, (.emd), eine JSON-Zeichenfolge oder ein Deep-Learning-Modellpaket (.dlpk) 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. Die .dlpk-Datei muss lokal gespeichert werden.
Unten finden Sie ein Beispiel für die .emd-Datei.
{ "Framework" :"TensorFlow", "ModelConfiguration": "ObjectDetectionAPI", "ModelFile": ".\\CoconutTreeDetection.model", "ModelType": "ObjectDetection", "ImageHeight": 850, "ImageWidth": 850, "ExtractBands": [0,1,2], "ImageSpaceUsed": "MAP_SPACE" "Classes": [ { "Value": 0, "Name": "CoconutTree", "Color": [0, 255, 0] } ] }
Verwenden Sie den Parameter Non Maximum Suppression, um doppelte Features in der Objekterkennung zu identifizieren und entfernen.
Das Werkzeug kann Eingabebilddaten im Kartenraum oder mit Pixelabstand verarbeiten. Bilddaten im Kartenraum liegen in einem kartenbasierten Koordinatensystem vor. Bilddaten mit Pixelabstand liegen im unverarbeiteten Bildraum ohne Drehung oder Verzerrung vor. Das Bezugssystem kann beim Generieren der Trainingsdaten im Werkzeug Trainingsdaten für Deep Learning exportieren mithilfe des Parameters Bezugssystem angegeben werden. Wird das Modell mit der Training-Software eines Drittanbieters trainiert, müssen Sie das Bezugssystem in der Datei .emd mithilfe des Parameters ImageSpaceUsed angeben, für den Sie MAP_SPACE oder PIXEL_SPACE festlegen können.
Bei dem Eingabe-Raster kann es sich um ein einzelnes Raster, mehrere Raster oder eine Feature-Class mit angehängten Bildern handeln. Weitere Informationen zu Anlagen finden Sie unter Hinzufügen oder Entfernen von Dateianlagen.
Weitere Informationen zu den Voraussetzungen für die Ausführung dieses Werkzeugs und eventuell dabei auftretenden Problemen finden Sie unter Häufig gestellte Fragen zu Deep Learning.
Weitere Informationen zu Deep Learning finden Sie unter Deep Learning in ArcGIS Pro.
Syntax
DetectObjectsUsingDeepLearning(in_raster, out_detected_objects, in_model_definition, {arguments}, {run_nms}, {confidence_score_field}, {class_value_field}, {max_overlap_ratio}, {processing_mode})
Parameter | Erklärung | Datentyp |
in_raster | Das Eingabebild für die Ermittlung von Objekten. Bei der Eingabe kann es sich um ein oder mehrere Raster in einem Mosaik-Dataset, Image-Service oder Bildordner handeln. Eine Feature-Class mit Bildanlagen wird ebenfalls unterstützt. | Raster Dataset; Raster Layer; Mosaic Layer; Image Service; MapServer; Map Server Layer; Internet Tiled Layer; Folder; Feature Layer; Feature Class |
out_detected_objects | Die Ausgabe-Feature-Class, die Geometrien enthält, die die im Eingabebild ermittelten Objekte umkreisen. | Feature Class |
in_model_definition | Beim Parameterwert in_model_definition kann es sich um eine Esri Model Definition-Datei als JSON (.emd), eine JSON-Zeichenfolge oder ein Deep-Learning-Modellpaket (.dlpk) 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. Die .dlpk-Datei muss lokal gespeichert werden. Sie enthält den Pfad zur binären Datei des Deep-Learning-Modells, den Pfad zu der zu verwendenden Python-Raster-Funktion sowie andere Parameter wie etwa die bevorzugte Kachelgröße oder den bevorzugten Abstand. | File; String |
arguments [arguments,...] (optional) | Die in der Python-Raster-Funktionsklasse definierten Funktionsargumente. 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 Lesen des Python-Moduls aufgefüllt. | Value Table |
run_nms (optional) | Gibt an, ob eine Non Maximum Suppression durchgeführt wird, bei der doppelte Objekte erkannt und doppelte Features mit einem niedrigeren Konfidenzwert entfernt werden.
| Boolean |
confidence_score_field (optional) | Der Name für das Feld in der Feature-Class, 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 run_nms verwendet wird. | String |
class_value_field (optional) | Der Name des Klassenwertefeldes in der Eingabe-Feature-Class. 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_overlap_ratio (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 |
processing_mode (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.
| String |
Codebeispiel
In diesem Beispiel wird eine Feature-Class basierend auf der Objekterkennung erstellt.
# Import system modules
import arcpy
from arcpy.ia import *
# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")
DetectObjectsUsingDeepLearning("c:/detectobjects/moncton_seg.tif",
"c:/detectobjects/moncton_seg.shp", "c:/detectobjects/moncton.emd",
"padding 0; threshold 0.5; batch_size 4", "NO_NMS", "Confidence",
"Class", 0, "PROCESS_AS_MOSAICKED_IMAGE")
In diesem Beispiel wird eine Feature-Class basierend auf der Objekterkennung erstellt.
# Import system modules
import arcpy
from arcpy.ia import *
"""
Usage: DetectObjectsUsingDeepLearning( in_raster, out_detected_objects,
in_model_definition, {arguments}, {run_nms}, {confidence_score_field},
{class_value_field}, {max_overlap_ratio}, {processing_mode})
"""
# Set local variables
in_raster = "c:/classifydata/moncton_seg.tif"
out_detected_objects = "c:/detectobjects/moncton.shp"
in_model_definition = "c:/detectobjects/moncton_sig.emd"
model_arguments = "padding 0; threshold 0.5; batch_size 4"
run_nms = "NO_NMS"
confidence_score_field = "Confidence"
class_value_field = "Class"
max_overlap_ratio = 0
processing_mode = "PROCESS_AS_MOSAICKED_IMAGE"
# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")
# Execute
DetectObjectsUsingDeepLearning( in_raster, out_detected_objects,
in_model_definition, model_arguments, run_nms, confidence_score_field,
class_value_field, max_overlap_ratio, processing_mode)
Umgebungen
Lizenzinformationen
- Basic: Erfordert Image Analyst
- Standard: Erfordert Image Analyst
- Advanced: Erfordert Image Analyst