Preparar clasificador de máquina de vectores de soporte (Image Analyst)

Disponible con una licencia de Spatial Analyst.

Disponible con licencia de Image Analyst.

Resumen

Genera un archivo de definición de clasificador de Esri (.ecd) utilizando la definición de clasificación de Máquina de vectores de soporte (SVM).

Uso

  • El clasificador SVM es un potente método de clasificación supervisado. Es idóneo para entradas de ráster segmentadas, pero también permite manejar imágenes estándar. Es un método de clasificación que se suele utilizar en la comunidad de investigación.

  • Para las entradas de imagen estándar, la herramienta acepta imágenes de varias bandas con cualquier profundidad de bit y realiza la clasificación de SVM por píxel, según el archivo de entidades de entrenamiento de entrada.

  • Para los rásteres segmentados, que tienen establecida la propiedad clave en Segmentada, la herramienta calcula la imagen de índice y los atributos de segmento asociados del ráster segmentado RGB. Se calculan los atributos para generar el archivo de definición de clasificador que se va a utilizar en una herramienta de clasificación aparte. Los atributos de cada segmento se pueden calcular desde cualquier imagen compatible con Esri.

  • El uso del clasificador SVM en lugar del método de clasificación de máxima probabilidad supone varias ventajas:

    • El clasificador SVM necesita menos muestras y no requiere que las muestras estén distribuidas normalmente.
    • Es menos susceptible al ruido, a las bandas correlacionadas y al desequilibrio entre la cantidad o el tamaño de los sitios de entrenamiento dentro de cada clase.

  • Se acepta como entrada cualquier ráster compatible con Esri, incluidos productos de ráster, rásteres segmentados, mosaicos, servicios de imágenes o datasets ráster genéricos. Los rásteres segmentados deben tener 8 bits y 3 bandas.

  • Para crear el archivo de muestra de entrenamiento, utilice el panel Administrador de muestras de entrenamiento del menú desplegable Herramientas de clasificación.

  • El parámetro Atributos de segmento solo está habilitado si una de las entradas de capa ráster es una imagen segmentada.

  • Para clasificar datos ráster de series temporales utilizando el algoritmo Clasificación y detección de cambios continuas (CCDC), ejecute primero la herramienta Analizar cambios usando CCDC y utilice el ráster de análisis de cambios de salida como ráster de entrada para esta herramienta de entrenamiento.

    Los datos de muestra de entrenamiento se deben haber recopilado en varios momentos mediante el Administrador de muestras de entrenamiento. El valor de dimensión de cada muestra aparece en un campo de la clase de entidad de muestra de entrenamiento, que se especifica en el parámetro Campo de valor de dimensión.

Sintaxis

TrainSupportVectorMachineClassifier(in_raster, in_training_features, out_classifier_definition, {in_additional_raster}, {max_samples_per_class}, {used_attributes}, {dimension_value_field})
ParámetroExplicaciónTipo de datos
in_raster

El dataset ráster a clasificar.

La entrada preferente es un dataset ráster segmentado de 3 bandas y 8 bits en el cual todos los píxeles del mismo segmento tienen el mismo color. La entrada también puede ser un ráster segmentado en escala de grises de 1 banda y 8 bits. Si no hay disponible ningún ráster segmentado, puede utilizar cualquier dataset ráster compatible con Esri.

Raster Layer; Mosaic Layer; Image Service; String
in_training_features

La capa o archivo de muestra de entrenamiento que delinea los sitios de entrenamiento.

Estos pueden ser shapefiles o clases de entidad que contengan las muestras de entrenamiento. Los siguientes nombres de campo son obligatorios en el archivo de muestra de entrenamiento:

  • classname: un campo de texto que indique el nombre de la categoría de clase
  • classvalue: un campo de tipo entero largo que contenga el valor entero para cada categoría de clase

Feature Layer
out_classifier_definition

El archivo JSON de salida que contiene información de atributos, estadísticas, vectores de hiperplano y otra información requerida por el clasificador. Se crea un archivo .ecd.

File
in_additional_raster
(Opcional)

Se incorporan datasets ráster secundarios, como una imagen multiespectral o un DEM, para generar atributos y otra información requerida por la clasificación. Este parámetro es opcional.

Raster Layer; Mosaic Layer; Image Service; String
max_samples_per_class
(Opcional)

El número máximo de muestras que se van a utilizar para definir cada clase.

Se recomienda el valor predeterminado de 500 cuando las entradas son rásteres no segmentados. Un valor igual o menor que 0 significa que el sistema siempre utilizará todas las muestras de los sitios de entrenamiento para preparar el clasificador.

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

Especifica los atributos a incluir en la tabla de atributos asociada con el ráster de salida.

  • COLORLos valores de color RGB se derivan del ráster de entrada segmento por segmento.
  • MEANEl número digital (DN) medio se deriva de la imagen de píxeles opcional, segmento por segmento.
  • STDLa desviación estándar se deriva de la imagen de píxeles opcional, segmento por segmento.
  • COUNTEl número de píxeles que forman el segmento, por segmento.
  • COMPACTNESSEl grado de compactibilidad o circularidad de un segmento, por segmento. Los valores van de 0 a 1, donde 1 corresponde a un círculo.
  • RECTANGULARITYEl grado de rectangularidad del segmento, por segmento. Los valores van de 0 a 1, donde 1 corresponde a un rectángulo.

Este parámetro solo está habilitado si la propiedad clave Segmentado se establece en true en el ráster de entrada. Si la única entrada en la herramienta es una imagen segmentada, los atributos predeterminados son COLOR, COUNT, COMPACTNESS y RECTANGULARITY. Si se incluye un in_additional_raster como entrada junto a la imagen segmentada, también están disponibles los atributos MEAN y STD.

String
dimension_value_field
(Opcional)

Contiene valores de dimensión de la clase de entidad de muestra de entrenamiento de entrada.

Este parámetro es necesario para clasificar una serie temporal de datos ráster con la salida ráster de análisis de cambios de la herramienta Analizar cambios usando CCDC.

Field

Muestra de código

Ejemplo 1 de TrainSupportVectorMachineClassifier (ventana de Python)

En este ejemplo de Python se utiliza el clasificador de SVM para clasificar un ráster segmentado.

import arcpy
from arcpy.ia import *

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

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")
Ejemplo 2 de TrainSupportVectorMachineClassifier (script independiente)

En este script de Python se utiliza el clasificador de SVM para clasificar un ráster segmentado.

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

""" 'TrainSupportVectorMachineClassifier(in_raster, in_training_features, out_classifier_definition, {in_additional_raster}, 
                                  {max_num_samples_per_class}, {used_attributes})
"""

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

#Execute
TrainSupportVectorMachineClassifier(inSegRaster, train_features, out_definition, in_additional_raster, 
                             maxNumSamples, attributes)
Ejemplo 3 de TrainSupportVectorMachineClassifier (script independiente)

Este script de Python utiliza el clasificador SVM para clasificar un ráster multidimensional de serie temporal utilizando la salida de la herramienta Analizar cambios usando CCDC.

# 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"
additional_raster = ''
attributes = None
dimension_field = "DateTime"

# Execute
arcpy.ia.TrainSupportVectorMachineClassifier(
    in_changeAnalysisRaster, train_features, out_definition, 
	additional_raster, attributes, dimension_field)

Información de licenciamiento

  • Basic: Requiere Image Analyst or Spatial Analyst
  • Standard: Requiere Image Analyst or Spatial Analyst
  • Advanced: Requiere Image Analyst or Spatial Analyst

Temas relacionados