Zusammenfassung
Erzeugen einer Esri Classifier Definition (.ecd)-Datei anhand der Random Trees-Klassifizierung.
Random Trees-Klassifikator ist ein leistungsstarkes Bildklassifizierungsverfahren, das gegen Überanpassung beständig ist und für segmentierte Bilder und andere Zusatz-Raster-Datasets eingesetzt werden kann. Für die Eingabe von Standardbildern akzeptiert das Werkzeug Multiband-Bilddaten mit beliebiger Bittiefe. Dabei erfolgt die Random Trees-Klassifizierung auf Grundlage der Eingabe-Trainings-Feature-Datei auf Pixel- oder Segmentbasis.
Verwendung
Random Trees ist eine Sammlung von einzelnen Entscheidungsstrukturen, bei denen jede Struktur aus verschiedenen Beispielen und Teilmengen der Trainingsdaten erstellt wird. Das Konzept des Aufrufs dieser Entscheidungsstrukturen besteht darin, dass für jedes klassifizierte Pixel eine Reihe von Entscheidungen in der Reihenfolge ihrer Bedeutung getroffen wird. Wenn Sie ein Diagramm aus den Pixeln erstellen, sieht es aus wie eine Verzweigung. Wenn Sie das gesamte Dataset klassifizieren, bilden die Verzweigungen eine Struktur. Diese Methode wird als "Random Trees" bezeichnet, da Sie das Dataset tatsächlich mehrmals basierend auf einer zufälligen Teilauswahl von Trainingspixeln klassifizieren, was zu vielen Entscheidungsstrukturen führt. Um eine endgültige Entscheidung zu treffen, verfügt jede Struktur über eine Stimme. Dieser Prozess dient zur Reduzierung einer Überanpassung. Random Trees ist ein überwachter Machine Learning-Klassifikator, der auf der Konstruktion einer Vielzahl von Entscheidungsstrukturen basiert, indem zufällige Teilmengen von Variablen für jede Struktur ausgewählt und die häufigste Strukturausgabe als Gesamtklassifizierung verwendet wird. Random Trees korrigiert die Wahrscheinlichkeit der Überanpassung an die Trainingsgebietdaten der Entscheidungsstrukturen. Bei dieser Methode wird eine Reihe von Strukturen nach einer Analogie, einem Forest, erstellt und eine Abweichung unter den Strukturen erzeugt, indem die Trainingsgebietdaten vor dem Anpassen der einzelnen Strukturen in einen nach dem Zufallsprinzip ausgewählten Teilraum projiziert werden. Die Entscheidung an jedem Knoten wird durch ein zufälliges Verfahren optimiert.
Indexbild und damit verbundene Segmentattribute von segmentierten Rastern (Schlüssel ist auf Segmentiert festgelegt) berechnet das Werkzeug aus dem RGD-segmentierten Raster. Die Berechnung der Attribute erfolgt zwecks Generierung der Klassifikatordefinitionsdatei, die in einem separaten Klassifizierungswerkzeug verwendet werden kann. Die Attribute des jeweiligen Segments lassen sich aus einem beliebigen von Esri unterstützten Bild berechnen.
Als Eingabe werden beliebige von Esri unterstützte Raster akzeptiert, darunter Raster-Produkte, segmentierte Raster, Mosaike, Image-Services oder generische Raster-Datasets. Die segmentierten Raster müssen 8-Bit-Raster mit 3 Bändern sein.
Verwenden Sie zum Erstellen der Trainingsgebietdatei den Trainingsgebiet-Manager auf der Werkzeugleiste Bildklassifizierung. Weitere Informationen zum Verwenden der Werkzeugleiste Bildklassifizierung finden Sie unter Was ist Bildklassifizierung?
Der Parameter Segmentattribute ist nur dann aktiviert, wenn eine der Raster-Layer-Eingaben ein segmentiertes Bild ist.
Syntax
TrainRandomTreesClassifier (in_raster, in_training_features, out_classifier_definition, {in_additional_raster}, {max_num_trees}, {max_tree_depth}, {max_samples_per_class}, {used_attributes})
Parameter | Erläuterung | Datentyp |
in_raster | Wählen Sie das Raster-Dataset aus, das klassifiziert werden soll. Sie können jedes von Esri unterstützte Raster-Dataset verwenden. Die Optionen umfassen ein segmentiertes 3-Band, 8-Bit-Raster-Dataset, bei dem alle Pixel desselben Segments dieselbe Farbe aufweisen. Auch ein 1-Band-, 8-Bit-Graustufen-segmentiertes Raster kann als Eingabe dienen. | Raster Layer; Mosaic Layer; Image Service; String |
in_training_features | Wählen Sie die Trainingsgebietdatei bzw. den Trainingsgebiet-Layer aus, der Ihre Training-Sites abgrenzt. Ihre Trainingsgebiete können entweder in Shapefiles oder in Feature-Classes enthalten sein. | Feature Layer; Raster Catalog Layer |
out_classifier_definition | Eine JSON-Datei, die Attributinformationen, Statistiken oder weitere für den Klassifikator erforderliche Daten enthält. Es wird eine Datei mit der Erweiterung .ecd erstellt. | File |
in_additional_raster (optional) | Integrieren Sie optional Zusatz-Raster-Datasets, wie ein Multispektralbild oder ein DEM, um Attribute und weitere erforderliche Informationen für die Klassifizierung zu erzeugen. | Raster Layer; Mosaic Layer; Image Service; String |
max_num_trees (optional) | Die maximale Anzahl von Strukturen im Forest. Wenn die Anzahl der Strukturen erhöht wird, führt dies zu höheren Genauigkeitsraten, obgleich sich diese Verbesserung nicht weiter verändert. Die Anzahl der Strukturen erhöht die Verarbeitungszeit linear. | Long |
max_tree_depth (optional) | Die maximale Tiefe jeder Struktur im Forest. Tiefe ist ein Synonym für die Anzahl der Regeln, die jede Struktur erstellen darf, um zu einer Entscheidung zu kommen. Strukturen können die Tiefe dieser Einstellung nicht überschreiten. | Long |
max_samples_per_class (optional) | Die maximale Anzahl von Beispielen, die zum Definieren der jeweiligen Klasse verwendet wird. Empfehlenswert ist ein Standardwert von 1000, wenn es sich bei den Eingaben um unsegmentierte Raster handelt. Ein Wert kleiner oder gleich 0 bedeutet, dass zum Trainieren des Klassifikators alle in den Training-Sites enthaltenen Beispiele verwendet werden. | Long |
used_attributes [used_attributes;used_attributes,...] (optional) | Geben Sie die Attribute an, die in die dem Ausgabe-Raster zugeordnete Attributtabelle aufgenommen werden sollen.
Dieser Parameter ist nur aktiviert, wenn die Schlüsseleigenschaft Segmentiert auf das Eingabe-Raster festgelegt ist. Wenn die einzige Eingabe für das Werkzeug ein segmentiertes Bild ist, lauten die Standardattribute COLOR, COUNT, COMPACTNESS und RECTANGULARITY. Wenn ein in_additional_raster ebenfalls als Eingabe mit einem segmentierten Bild einbezogen wird, sind die Optionen MEAN und STD verfügbar. | String |
Codebeispiel
TrainRandomTreesClassifier – Beispiel 1 (Python-Fenster)
Dies ist ein Python-Beispiel für das Werkzeug TrainRandomTreesClassifier.
import arcpy
from arcpy.sa import *
TrainRandomTreesClassifier("c:/test/moncton_seg.tif",
"c:/test/train.gdb/train_features",
"c:/output/moncton_sig_SVM.ecd",
"c:/test/moncton.tif", "50", "30", "1000",
"COLOR;MEAN;STD;COUNT;COMPACTNESS;RECTANGULARITY")
TrainRandomTreesClassifier – Beispiel 2 (eigenständiges Skript)
Dies ist ein Python-Skriptbeispiel für das Werkzeug TrainRandomTreesClassifier.
# Import system modules
import arcpy
from arcpy.sa import *
# Set local variables
inSegRaster = "c:/test/cities_seg.tif"
train_features = "c:/test/train.gdb/train_features"
out_definition = "c:/output/cities_sig.ecd"
in_additional_raster = "c:/cities.tif"
maxNumTrees = "50"
maxTreeDepth = "30"
maxSampleClass = "1000"
attributes = "COLOR;MEAN;STD;COUNT;COMPACTNESS;RECTANGULARITY"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute
TrainRandomTreesClassifier(inSegRaster, train_features,
out_definition, in_additional_raster, maxNumTrees,
maxTreeDepth, maxSampleClass, attributes)
Umgebungen
Lizenzinformationen
- ArcGIS Desktop Basic: Erfordert Spatial Analyst
- ArcGIS Desktop Standard: Erfordert Spatial Analyst
- ArcGIS Desktop Advanced: Erfordert Spatial Analyst