Классификатор опорных векторов с обучением (Image Analyst)

Доступно с лицензией Spatial Analyst.

Доступно с лицензией Image Analyst.

Краткая информация

Создает файл определения классификатора Esri (.ecd) с использованием определения классификации Метода опорных векторов (SVM).

Использование

  • Классификатор SVM - мощный способ классификации с обучением. Он отлично подходит для сегментированных входных растров, но может работать и со стандартными изображениями. Это метод классификации, который широко используется исследователями.

  • Для стандартных входных изображений, инструмент принимает многоканальные изображения любой битовой глубины и выполняет попиксельную классификацию SVM на основе входного файла обучающего класса пространственных объектов.

  • Для сегментированных растров, ключевое свойство которых задано как Сегментированный, инструмент вычисляет индексное изображение и связанные атрибуты сегмента из сегментированного растра RGB. Атрибуты вычисляются для создания файла определения классификатора, который должен быть использован в отдельном инструменте классификации. Атрибуты для каждого сегмента могут быть вычислены для любого, поддерживаемого Esri изображения.

  • У классификатора SVM есть ряд преимуществ по сравнению с классификатором методом максимального правдоподобия:

    • Для классификатора SVM необходимо гораздо меньше выборок, и для него не требуется нормальное распределение выборок.
    • Данный метод менее восприимчив к шуму, коррелированным каналам и несбалансированному количеству и размеру обучающих местоположений в пределах каждого класса.

  • Любой поддерживаемый Esri растр принимается в качестве входных данных, включая растровые продукты, сегментированные растры, мозаики, сервисы изображений или наборы растровых данных в общих форматах. Сегментированные растры должны быть 8-битными с 3 каналами.

  • Чтобы создать файл обучающей выборки, используйте панель Менеджер обучающей выборки из ниспадающего меню Инструменты классификации.

  • Параметр Атрибуты сегмента активен только в том случае, когда одним из входных растровых слоёв является сегментированное изображение.

  • Чтобы классифицировать растровые данные временных рядов с помощью алгоритма Непрерывное определение и классификаций изменений (CCDC), сначала запустите инструмент Анализировать изменения с помощью инструмента CCDC. Затем используйте выходной растр анализа изменений в качестве входного растра для данного обучающего инструмента.

    Обучающие выборки данных должны быть собраны за несколько раз с помощью Менеджера обучающих выборок. Значение размерности для каждой выборки указано в поле в векторном классе обучающих выборок, которое задано параметром Поле значения размерности.

Параметры

ПодписьОписаниеТип данных
Входной растр

Набор растровых данных для классификации.

Предпочтительными входными данными является 3-х канальный 8-битный сегментированный набор растровых данных, в котором все пикселы в том же сегменте имеют тот же цвет. Входными данными может также являться одноканальный 8-битный сегментированный растр в шкале серых оттенков. Если сегментированный растр недоступен, то вы можете использовать любой поддерживаемый Esri набор растровых данных.

Raster Layer; Mosaic Layer; Image Service; String
Входной файл обучающей выборки

Выберите файл обучающей выборки или слой, который определяет районы обучающей выборки.

Это могут быть либо шейп-файлы, либо классы объектов, которые содержат обучающие выборки. В файле обучающей выборки должны быть поля со следующими именами:

  • classname – текстовое поле с указанием имени категории класса.
  • classvalue – поле типа long integer, содержащее целочисленное значение для каждой категории класса.

Feature Layer
Выходной файл определения классификатора

Выходной файл формата JSON будет содержать информацию об атрибутах, статистику, гиперплоскостные векторы и другую информацию, необходимую для классификатора. Будет создан файл .ecd.

File
Дополнительный входной растр
(Дополнительный)

Вспомогательные наборы растровых данных, такие как мультиспектральный снимок или ЦМР, будут добавлены для создания атрибутов и другой необходимой для классификатора информации. Это дополнительный параметр.

Raster Layer; Mosaic Layer; Image Service; String
Максимальное число образцов в классе
(Дополнительный)

Максимальное число образцов в классе, которые будут использоваться для определения каждого класса.

Когда входными данными являются несегментированные растры, то рекомендуется использовать значение по умолчанию 500. Значение, которое меньше или равно 0, означает, что система будет использовать все образцы из обучающих местоположений для обучения классификатора.

Long
Используемые атрибуты сегментов
(Дополнительный)

Укажите атрибуты, которые будут включены в связанную с выходным растром таблицу атрибутов.

Это параметр активен только в тех случаях, когда для входного растра выбран ключевой параметр Сегментированный. Если для входных данных инструмента используется только сегментированное изображение, то атрибутами по умолчанию будут Конвергированный цвет, Число пикселов, Компактность и Прямоугольность. Если в качестве входных данных вместе с сегментированным изображением также используется значение Дополнительный входной растр, то тогда также будут доступны атрибуты Среднее число и Стандартное отклонение.

  • Конвергированный цветЗначения цвета RGB будут получены из входного растра на основе каждого сегмента. Это также называется цвет средней хроматичности.
  • Среднее числоСредний цифровой номер (DN) будет получен из дополнительного пиксельного изображения, на основе каждого сегмента.
  • Среднеквадратичное отклонениеСтандартное отклонение будет получено из дополнительного пиксельного изображения, на основе каждого сегмента.
  • Число пикселовЧисло пикселов, составляющих сегмент, на основе каждого сегмента.
  • КомпактностьСоединяет сегменты, которые были разрезаны границами листов в процессе сегментации. Значения находятся в диапазоне от 0 до 1, где 1 соответствует кругу.
  • ПрямоугольностьСтепень, определяющая, насколько сегмент является прямоугольным, на основе каждого сегмента. Значения находятся в диапазоне от 0 до 1, где 1 соответствует прямоугольнику.
String
Поле значения измерения
(Дополнительный)

Содержит значения измерений во входном классе объектов обучающей выборки.

Этот параметр требуется для классификации растровых данных временных рядов с помощью выходного растра анализа изменений из инструмента Анализ изменений с помощью CCDC.

Field

TrainSupportVectorMachineClassifier(in_raster, in_training_features, out_classifier_definition, {in_additional_raster}, {max_samples_per_class}, {used_attributes}, {dimension_value_field})
ИмяОписаниеТип данных
in_raster

Набор растровых данных для классификации.

Предпочтительными входными данными является 3-х канальный 8-битный сегментированный набор растровых данных, в котором все пикселы в том же сегменте имеют тот же цвет. Входными данными может также являться одноканальный 8-битный сегментированный растр в шкале серых оттенков. Если сегментированный растр недоступен, то вы можете использовать любой поддерживаемый Esri набор растровых данных.

Raster Layer; Mosaic Layer; Image Service; String
in_training_features

Выберите файл обучающей выборки или слой, который определяет районы обучающей выборки.

Это могут быть либо шейп-файлы, либо классы объектов, которые содержат обучающие выборки. В файле обучающей выборки должны быть поля со следующими именами:

  • classname – текстовое поле с указанием имени категории класса.
  • classvalue – поле типа long integer, содержащее целочисленное значение для каждой категории класса.

Feature Layer
out_classifier_definition

Выходной файл формата JSON будет содержать информацию об атрибутах, статистику, гиперплоскостные векторы и другую информацию, необходимую для классификатора. Будет создан файл .ecd.

File
in_additional_raster
(Дополнительный)

Вспомогательные наборы растровых данных, такие как мультиспектральный снимок или ЦМР, будут добавлены для создания атрибутов и другой необходимой для классификатора информации. Это дополнительный параметр.

Raster Layer; Mosaic Layer; Image Service; String
max_samples_per_class
(Дополнительный)

Максимальное число образцов в классе, которые будут использоваться для определения каждого класса.

Когда входными данными являются несегментированные растры, то рекомендуется использовать значение по умолчанию 500. Значение, которое меньше или равно 0, означает, что система будет использовать все образцы из обучающих местоположений для обучения классификатора.

Long
used_attributes
[used_attributes;used_attributes,...]
(Дополнительный)

Укажите атрибуты, которые будут включены в связанную с выходным растром таблицу атрибутов.

  • COLORЗначения цвета RGB будут получены из входного растра на основе каждого сегмента. Это также называется цвет средней хроматичности.
  • MEANСредний цифровой номер (DN) будет получен из дополнительного пиксельного изображения, на основе каждого сегмента.
  • STDСтандартное отклонение будет получено из дополнительного пиксельного изображения, на основе каждого сегмента.
  • COUNTЧисло пикселов, составляющих сегмент, на основе каждого сегмента.
  • COMPACTNESSСоединяет сегменты, которые были разрезаны границами листов в процессе сегментации. Значения находятся в диапазоне от 0 до 1, где 1 соответствует кругу.
  • RECTANGULARITYСтепень, определяющая, насколько сегмент является прямоугольным, на основе каждого сегмента. Значения находятся в диапазоне от 0 до 1, где 1 соответствует прямоугольнику.

Это параметр активен только в тех случаях, когда для входного растра выбран ключевой параметр Сегментированный (Segmented). Если для входных данных инструмента используется только сегментированное изображение, то атрибутами по умолчанию будутCOLOR, COUNT, COMPACTNESS и RECTANGULARITY. Если в качестве входных данных вместе с сегментированным изображением также используется in_additional_raster, то тогда также будут доступны атрибуты MEAN и STD.

String
dimension_value_field
(Дополнительный)

Содержит значения измерений во входном классе объектов обучающей выборки.

Этот параметр требуется для классификации растровых данных временных рядов с помощью выходного растра анализа изменений из инструмента Анализ изменений с помощью CCDC.

Field

Пример кода

TrainSupportVectorMachineClassifier пример 1 (окно Python)

Данный пример окна Python использует классификатор SVM для классификации сегментированного растра.

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")
TrainSupportVectorMachineClassifier пример 2 (автономный скрипт)

Данный скрипт Python использует классификатор SVM для классификации сегментированного растра.

# 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)
TrainSupportVectorMachineClassifier пример 3 (автономный скрипт)

Этот скрипт Python использует классификатор SVM для классификации многомерных растров временных серий с использованием результата работы инструмента Анализировать изменения с помощью 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)

Информация о лицензиях

  • Basic: Обязательно Image Analyst или Spatial Analyst
  • Standard: Обязательно Image Analyst или Spatial Analyst
  • Advanced: Обязательно Image Analyst или Spatial Analyst

Связанные разделы