SVM による分類器定義ファイルの作成 (Train Support Vector Machine Classifier) (Spatial Analyst)

Spatial Analyst のライセンスで利用可能。

Image Analyst ライセンスで利用できます。

概要

Support Vector Machine (SVM) 分類定義を使用して、Esri 分類器定義ファイル (*.ecd) を作成します。

使用法

  • SVM 分類器は、教師付き分類方法です。SVM 分類器は、セグメント ラスター入力に適していますが、標準的な画像を処理することもできます。研究分野で一般的に使用される分類方法です。

  • 標準的な画像入力の場合、このツールは任意のビット深度のマルチバンド画像を受け入れ、入力トレーニング フィーチャ ファイルに基づいてピクセル ベースで SVM 分類を実行します。

  • セグメント ラスターの場合、キー プロパティが [セグメント化] に設定されており、このツールは RGB セグメント ラスターからインデックス画像と、関連するセグメント属性を計算します。これらの属性は、別の分類ツールで使用される分類器定義ファイルを生成するために計算されます。各セグメントの属性は、Esri でサポートされている画像から計算できます。

  • 最尤法類方法ではなく SVM 分類器を使用すると、いくつかのメリットがあります。

    • SVM 分類器に必要なサンプル数は少なく、サンプルが正規分布である必要はありません。
    • これは、ノイズ、相関性のあるバンド、および各クラス内のトレーニング サイトの不釣り合いな数やサイズに左右されません。

  • ラスター製品、セグメント化されたラスター、モザイク、イメージ サービス、または一般的なラスター データセットなど、Esri でサポートされているラスターは入力として受け入れられます。セグメント ラスターは 3 バンドの 8 ビット ラスターである必要があります。

  • トレーニング サンプル ファイルを作成するには、[分類ツール] ドロップダウン メニューから [トレーニング サンプル マネージャー] ウィンドウを使用します。

  • [セグメント属性] パラメーターは、ラスター レイヤー入力のうちのいずれかがセグメント画像である場合にのみ、有効になります。

  • CCDC (Continuous Change Detection and Classification) アルゴリズムを使用して時系列ラスター データを分類するには、2 ステップのプロセスが必要です。最初に [CCDC を使用した変更の解析 (Analyze Changes Using CCDC)] ツールを実行します。このツールは、Image Analyst エクステンション ライセンスにより使用できます。次に、その結果を、このトレーニング ツールの入力として使用します。

    トレーニング サンプル データは、トレーニング サンプル マネージャーを使用して、複数回収集されている必要があります。各サンプルのディメンション値は、トレーニング サンプル フィーチャクラスのフィールドにリストされており、[ディメンション値フィールド] パラメーターで指定されます。

構文

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 ビット セグメント ラスター データセットをお勧めします。ここでは、同じセグメント内のすべてのピクセルは同じ色を持ちます。入力は、1 バンドの 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
(オプション)

マルチスペクトル画像や DEM などの補助ラスター データセットを取り入れると、分類の属性やその他の必要な情報を生成できます。このパラメーターはオプションです。

Raster Layer; Mosaic Layer; Image Service; String
max_samples_per_class
(オプション)

各クラスを定義するために使用するサンプルの最大数。

入力がセグメント ラスターでない場合は、デフォルトの値 500 を推奨します。0 以下の値は、システムが分類器をトレーニングするためにトレーニング サイトのすべてのサンプルを使用することを意味します。

Long
used_attributes
[used_attributes;used_attributes,...]
(オプション)

出力ラスターに関連付けられた属性テーブルに含める属性を指定します。

  • COLORRGB カラー値は、入力ラスターからセグメント単位で取得されます。
  • MEANセグメント単位でオプションのピクセル画像から得られた平均デジタル ナンバー (DN)。
  • STD標準偏差は、セグメント単位でオプションのピクセル画像から得られます。
  • COUNTセグメント単位で、セグメントで構成されるピクセル数。
  • COMPACTNESSセグメント単位で、セグメントがコンパクトまたは円形である程度。値の範囲は 0 ~ 1。1 は円形です。
  • RECTANGULARITYセグメント単位で、セグメントが矩形である程度。値の範囲は 0 ~ 1。1 は矩形です。

このパラメーターは、入力ラスターで [セグメント化] キー プロパティを true に設定した場合にのみ有効になります。このツールへの入力が、セグメント画像のみである場合、デフォルトの属性は COLORCOUNTCOMPACTNESS、および RECTANGULARITY になります。セグメント画像とともに in_additional_raster が入力として含まれている場合、MEAN および STD 属性も使用できます。

String
dimension_value_field
(オプション)

入力トレーニング サンプル フィーチャクラスのディメンション値が含まれます。

このパラメーターは、Image Analyst ツールボックスの [CCDC を使用した変更の解析 (Analyze Changes Using CCDC)] ツールから得られた変更分析ラスター出力を使用して時系列のラスター データを分類するために必要です。

Field

コードのサンプル

TrainSupportVectorMachineClassifier (SVM による分類器定義ファイルの作成) の例 1 (Python ウィンドウ)

この Python の例は、SVM 分類器を使用して、セグメント化されたラスターを分類しています。

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")
TrainSupportVectorMachineClassifier (SVM による分類器定義ファイルの作成) の例 2 (スタンドアロン スクリプト)

この Python スクリプトは、SVM 分類器を使用して、セグメント化されたラスターを分類しています。

# 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"

#Execute
arcpy.gp.TrainSupportVectorMachineClassifier(
    inSegRaster, train_features, out_definition, 
    in_additional_raster, maxNumSamples, attributes)
TrainSupportVectorMachineClassifier (SVM による分類器定義ファイルの作成) の例 3 (スタンドアロン スクリプト)

この Python スクリプトは、[CCDC を使用した変更の解析 (Analyze Changes Using CCDC)] ツールの出力を使って時系列の多次元ラスターを分類するため、SVM 分類器を使用しています。

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

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


# Set local variables
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.sa.TrainSupportVectorMachineClassifier(
    in_changeAnalysisRaster, train_features, out_definition, 
	additional_raster, attributes, dimension_field)

ライセンス情報

  • Basic: 次のものが必要 Spatial Analyst または Image Analyst
  • Standard: 次のものが必要 Spatial Analyst または Image Analyst
  • Advanced: 次のものが必要 Spatial Analyst または Image Analyst

関連トピック