Random Trees-Klassifikator trainieren (Image Analyst)

Mit der Spatial Analyst-Lizenz verfügbar.

Mit der Image Analyst-Lizenz verfügbar.

Zusammenfassung

Generiert eine Esri Classifier Definition-Datei (.ecd) anhand der Random Trees-Klassifizierung.

Random Trees-Klassifikator ist ein 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

  • Die Methode der Random Trees-Klassifizierung ist eine Sammlung von einzelnen Entscheidungsstrukturen, bei denen jede Struktur aus verschiedenen Stichproben 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 für ein Pixel 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. Die Random Trees-Klassifizierungsmethode ist ein überwachter Klassifikator für das maschinelle Lernen, der auf der Konstruktion einer Vielzahl von Entscheidungsstrukturen basiert. Dabei werden zufällige Teilmengen von Variablen für jede Struktur ausgewählt, und die häufigste Strukturausgabe wird als Gesamtklassifizierung verwendet. Die Methode der Random Trees-Klassifizierung korrigiert die Wahrscheinlichkeit der Überanpassung an die Trainingsgebietdaten der Entscheidungsstrukturen. Bei dieser Methode wird eine Reihe von Strukturen erstellt und eine Abweichung unter den Strukturen erzeugt, indem die Trainingsgebietsdaten 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 RGB-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 und generische Raster-Datasets. Die segmentierten Raster müssen 8-Bit-Raster mit 3 Bändern sein.

  • Verwenden Sie zum Erstellen der Trainingsgebietdatei den Bereich Trainingsgebiet-Manager im Dropdown-Menü Klassifizierungswerkzeuge.

  • Der Parameter Segmentattribute ist nur dann aktiviert, wenn eine der Raster-Layer-Eingaben ein segmentiertes Bild ist.

  • Um mit dem CCDC-Algorithmus (Continuous Change Detection and Classification) eine Zeitserie von Raster-Daten zu klassifizieren, führen Sie zuerst das Werkzeug Veränderungen mit CCDC analysieren aus und verwenden das Ausgabe-Veränderungsanalyse-Raster als Eingabe-Raster für dieses Trainingswerkzeug.

    Die Trainingsgebietsdaten müssen zu mehreren Zeitpunkten mit dem Trainingsgebiet-Manager erfasst werden. Der Dimensionswert für jede Stichprobe wird in einem Feld in der Trainingsgebiet-Feature-Class aufgelistet, das im Parameter Dimensionswertefeld angegeben wird.

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}, {dimension_value_field})
ParameterErklärungDatentyp
in_raster

Das Raster-Dataset, das klassifiziert werden soll.

Sie können jedes von Esri unterstützte Raster-Dataset verwenden. Ein Option umfasst ein segmentiertes 3-Band, 8-Bit-Raster-Dataset, bei dem alle Pixel desselben Segments dieselbe Farbe aufweisen. Auch ein Einzelband-, 8-Bit-Graustufen-segmentiertes Raster kann als Eingabe dienen.

Raster Layer; Mosaic Layer; Image Service; String
in_training_features

Die Trainingsgebietdatei bzw. der Trainingsgebiet-Layer, der die Training-Sites abgrenzt.

Ihre Trainingsgebiete können entweder in Shapefiles oder in Feature-Classes enthalten sein. In der Trainingsgebiet-Datei werden die folgenden Feldnamen benötigt:

  • classname: Ein Textfeld, das den Namen der Klassenkategorie angibt.
  • classvalue: Ein "Long Integer"-Feld, das den ganzzahligen Wert für die einzelnen Klassenkategorien enthält.

Feature Layer
out_classifier_definition

Eine JSON-Datei, die Attributinformationen, Statistiken oder weitere Daten für den Klassifikator enthält. Es wird eine .ecd-Datei erstellt.

File
in_additional_raster
(optional)

Zusatz-Raster-Datasets, wie ein Multispektralbild oder ein DEM, werden integriert, um Attribute und weitere erforderliche Informationen für die Klassifizierung zu generieren. Dieser Parameter ist optional.

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 Stichproben verwendet werden.

Long
used_attributes
[used_attributes;used_attributes,...]
(optional)

Gibt die Attribute an, die in die dem Ausgabe-Raster zugeordnete Attributtabelle aufgenommen werden sollen.

  • COLORDie RGB-Farbwerte werden segmentbezogen aus dem Eingabe-Raster abgeleitet.
  • MEANDer durchschnittliche Digitalnummernwert (DN) ist aus dem optionalen Pixelbild segmentbezogen abgeleitet.
  • STDDie Standardabweichung ist aus dem optionalen Pixelbild segmentbezogen abgeleitet.
  • COUNTDie Anzahl der im Segment enthaltenen Pixel, segmentbezogen.
  • COMPACTNESSDer Grad der Kompaktheit oder Kreisförmigkeit eines Segments, segmentbezogen. Die Werte liegen zwischen 0 und 1, wobei 1 einem Kreis entspricht.
  • RECTANGULARITYDer Grad der Rechteckigkeit des Segments, segmentbezogen. Die Werte liegen zwischen 0 und 1, wobei 1 einem Rechteck entspricht.

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 als Eingabe mit einem segmentierten Bild einbezogen wird, sind die Attribute MEAN und STD ebenfalls verfügbar.

String
dimension_value_field
(optional)

Enthält Dimensionswerte in der Eingabe-Trainingsgebiet-Feature-Class.

Dieser Parameter ist erforderlich, um mit dem Veränderungsanalyse-Raster, das vom Werkzeug Veränderungen mit CCDC analysieren ausgegeben wird, eine Zeitserie von Raster-Daten zu klassifizieren.

Field

Codebeispiel

TrainRandomTreesClassifier – Beispiel 1 (Python-Fenster)

Dies ist ein Python-Beispiel für das Werkzeug TrainRandomTreesClassifier.

import arcpy
from arcpy.ia import *

# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")

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.ia 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 Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")

# Execute
TrainRandomTreesClassifier(inSegRaster, train_features,
                           out_definition, in_additional_raster, maxNumTrees,
                           maxTreeDepth, maxSampleClass, attributes)
TrainRandomTreesClassifier – Beispiel 3 (eigenständiges Skript)

In diesem Beispiel wird gezeigt, wie ein Random Trees-Klassifikator mit einem Veränderungsanalyse-Raster aus dem Werkzeug Veränderungen mit CCDC analysieren trainiert wird.

# Import system modules
import arcpy
from arcpy.ia import *

# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")


# Define input parameters
in_changeAnalysisRaster = "c:/test/LandsatCCDC.crf"
train_features = "c:/test/train.gdb/train_features"
out_definition = "c:/output/change_detection.ecd"
in_additional_raster = ""
maxNumTrees = 50
maxTreeDepth = 30
maxSampleClass = 1000
attributes = None
dimension_field = "DateTime"

# Execute
arcpy.ia.TrainRandomTreesClassifier(
	in_changeAnalysisRaster, train_features, out_definition, 
	in_additional_raster, maxNumTrees, maxTreeDepth, maxSampleClass, 
	attributes, dimension_field)

Lizenzinformationen

  • Basic: Erfordert Image Analyst oder Spatial Analyst
  • Standard: Erfordert Image Analyst oder Spatial Analyst
  • Advanced: Erfordert Image Analyst oder Spatial Analyst

Verwandte Themen