Zusammenfassung
Erstellen einer Esri Classifier Definition (.ecd)-Datei mithilfe der Definition für die Klassifikation mit Support Vector Machine.
Verwendung
Mit dem SVM-Klassifikator steht eine moderne, leistungsfähige Methode für die geordnete Klassifizierung zur Verfügung, mit der sich eine segmentierte Raster-Eingabe oder ein Standardbild verarbeiten lassen. Dies ist eine relativ neue Klassifizierungsmethode, die von Forschern rege genutzt wird.
Für die Eingabe von Standardbildern akzeptiert das Werkzeug Multiband-Bilddaten mit beliebiger Bit-Tiefe. Dabei erfolgt die SVM-Klassifizierung auf Grundlage der Trainings-Feature-Datei auf Pixelbasis.
Indexbild und zugeordnete Segmentattribute von segmentierten Rastern, deren Eigenschaft "Privater Schlüssel" auf Segmented festgelegt ist, berechnet das Werkzeug aus dem RGD-segmentierten Raster. Die Berechnung der Attribute erfolgt zwecks Generierung der Classifier Definition-Datei, die in einem separaten Klassifizierungswerkzeug verwendet werden kann. Die Attribute des jeweiligen Segments lassen sich aus einem beliebigen von Esri unterstützten Bild berechnen.
Gegenüber herkömmlichen Klassifizierungsmethoden hat das SVM-Klassifizierungswerkzeug einige Vorteile vorzuweisen:
- Der SVM-Klassifikator kann sehr große segmentierte Bilder verarbeiten, deren Attributtabelle eine enorme Größe annehmen kann. Dies ist besonders hilfreich für hochauflösende Bilddaten.
- Er ist weniger anfällig für Rauschen, korrelierte Bänder oder eine unausgewogene Anzahl oder Größe von Training-Sites in der jeweiligen Klasse.
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.
Segmentattribute sind nur dann aktiviert, wenn eine der Raster-Layer-Eingaben ein segmentiertes Bild ist.
Syntax
TrainSupportVectorMachineClassifier (in_raster, in_training_features, out_classifier_definition, {in_additional_raster}, {max_samples_per_class}, {used_attributes})
Parameter | Erläuterung | Datentyp |
in_raster | Wählen Sie das Raster-Dataset aus, das klassifiziert werden soll. Als Eingabe eignet sich am besten 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. Steht kein segmentiertes Raster zur Verfügung, können Sie ein beliebiges von Esri unterstütztes Raster-Dataset verwenden. | Raster Dataset | Mosaic Dataset | Raster Layer | Mosaic Layer | Image Service Layer |
in_training_features | Die Trainingsgebiet-Feature-Class muss in ArcMap erstellt worden sein. In Python gibt es dafür keine Erstellmöglichkeit. | Feature Layer | Raster Catalog Layer |
out_classifier_definition | Dies ist eine JSON-Datei, die Attributinformationen, Statistiken, Hyperebenenvektoren und 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 segmentiertes Bild, ein Multispektralbild oder ein DEM, um Attribute und weitere erforderliche Informationen für die Klassifizierung zu erzeugen. | Raster Dataset | Mosaic Dataset | Raster Layer | Mosaic Layer | Image Service Layer |
max_samples_per_class (optional) | Die maximale Anzahl von Beispielen, die zum Definieren der jeweiligen Klasse verwendet wird. Empfehlenswert ist ein Standardwert von 100, 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 SEGMENTED 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
TrainSupportVectorClassifier – Beispiel 1 (Python-Fenster)
In diesem Python-Beispiel wird zum Klassifizieren eines segmentierten Rasters der SVM-Klassifikator verwendet.
import arcpy
from arcpy.sa import *
arcpy.gp.TrainSupportVectorMachineClassifier(
"c:/test/moncton_seg.tif", "c:/test/train.gdb/train_features",
"c:/output/moncton_sig_SVM.ecd", "c:/test/moncton.tif", "10",
"COLOR;MEAN;STD;COUNT;COMPACTNESS;RECTANGULARITY")
TrainSupportVectorClassifier – Beispiel 2 (eigenständiges Skript)
In diesem Python-Skript wird zum Klassifizieren eines segmentierten Rasters der SVM-Klassifikator verwendet.
# Import system modules
import arcpy
from arcpy.sa import *
# Set local variables
inSegRaster = "c:/test/moncton_seg.tif"
train_features = "c:/test/train.gdb/train_features"
out_definition = "c:/output/moncton_sig.ecd"
in_additional_raster = "c:/moncton.tif"
maxNumSamples = "10"
attributes = "COLOR;MEAN;STD;COUNT;COMPACTNESS;RECTANGULARITY"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
#Execute
arcpy.gp.TrainSupportVectorMachineClassifier(
inSegRaster, train_features, out_definition,
in_additional_raster, maxNumSamples, attributes)
Umgebung
Lizenzierungsinformationen
- ArcGIS for Desktop Basic: Erfordert Spatial Analyst
- ArcGIS for Desktop Standard: Erfordert Spatial Analyst
- ArcGIS for Desktop Advanced: Erfordert Spatial Analyst