Image Analyst ライセンスで利用できます。
Spatial Analyst のライセンスで利用可能。
画像分類は、土地被覆カテゴリなどの情報クラスを、マルチバンド リモート センシング画像から抽出するプロセスです。 このワークフローは、事前処理から、セグメンテーション、トレーニング サンプルの選択、トレーニング、分類、および精度の評価に進む、複数のステップを含んでいます。 各ステップは反復的であることができ、各プロセスは、入力画像、分類スキーマ、分類方法、期待される結果、および許容精度に関する深い知識を必要とします。
分類ウィザード
分類ウィザードを使用すると、ユーザーは画面の案内に従って、初めから終わりまで、分類ワークフロー全体を段階的に進んでいくことができます。 分類ウィザードは、ベスト プラクティスおよび簡略化されたユーザー エクスペリエンスで構成されたガイド付きのワークフローを提供するため、ステップを見落とすことなく画像分類を実行できます。 上級ユーザーの場合は、[画像分類] グループの [分類ツール] ドロップダウン リストで使用可能なツールを個別に使用することができます。 それらのツールは、分類ウィザードに含まれているツールと同じです。
分類ウィザードは、[画像] タブの [画像分類] グループにあります。 [コンテンツ] ウィンドウで、分類するためのラスター データセットを選択して [画像] タブを表示し、2D マップで作業していることを確認します。 アクティブなマップが 3D シーンである場合、またはハイライト表示された画像がマルチバンド画像でない場合、分類ウィザードは無効化されます。
構成
[画像] タブで [分類ウィザード] ボタン をクリックしてウィザードを開き、ドッキングします。 最初のページは [構成] ページです。このページでは、分類プロジェクトを設定します。 ここで設定されるパラメーターは、その後のウィザード ページで利用できる手順および機能を決定します。
分類方法
画像を分類するために使用する方法に関して、2 つのオプションがあります。
オプション名 | 説明 |
---|---|
教師なし | 分類の結果は、トレーニング サンプルを使用しないで決定されます。 ISO クラスター分類器に基づいて、ピクセルまたはセグメントが統計的にクラスに割り当てられます。 ピクセルは、スペクトル特性および空間特性に基づいてクラスにグループ化されます。 計算するクラス数を入力し、分類が完了した後に、個々のクラスが識別されてマージされます。 |
教師付き | 分類の結果は、提供されたトレーニング サンプルによって決まります。 トレーニング サンプルは、画像内の分類するすべてのクラスの代表的サイトです。 それらのサイトは、フィーチャごとに、対応するクラス名と共にポイント フィーチャクラスまたはポリゴン フィーチャクラスとして格納され、ソース データおよび期待される結果に関するユーザーの知識に基づいて作成されるか、選択されます。 画像内の他のすべてのピクセルは、トレーニング サンプルの特性を使用して分類されます。 これがデフォルトのオプションです。 |
分類タイプ
教師付き分類および教師なし分類の両方に使用するための、分類のタイプに関する 2 つのオプションがあります。
オプション名 | 説明 |
---|---|
ピクセル ベース | 分類は、ピクセルごとに実行され、個々のピクセルのスペクトル特性が、割り当て先のクラスを決定します。 近傍のピクセルの特性は、ピクセルに基づく方法では考慮されません。 この方法は、従来の分類方法と考えられ、分類された画像において、ごま塩状の効果をもたらすことができます。 |
オブジェクト ベース | 分類は、局所的な近傍のピクセルに対して実行され、セグメンテーションと呼ばれるプロセスを使用して一緒にグループ化されます。 セグメンテーションは、ピクセルをオブジェクトにグループ化するときに、色と形状の両方の特性を考慮します。 セグメンテーションから生じるオブジェクトは、現実世界のフィーチャによく似ており、よりきれいな分類結果を生成します。 これがデフォルトのオプションです。 |
分類スキーマ
分類スキーマは、教師付き分類に使用するクラスの数およびタイプを決定します。 スキーマは、階層的であること (つまり、サブラクスを含むクラスが存在すること) ができます。 たとえば、常緑樹林および落葉樹林のサブクラスを含んでいる森林の分類を指定することができます。 スキーマは、JSON 構文を使用する Esri の分類スキーマ ファイル (*.ecs) に保存されます。 分類スキーマを指定する方法は、次のオプションから選択できます。
- 既存のスキーマを参照します。
- トレーニング サンプルを表す既存のフィーチャクラスからスキーマを生成する。 既存のトレーニング サンプル データセットを参照する予定である場合に、これを選択します。
- スキーマを既存のラスター分類マップから生成する。
- 北米の National Land Cover Dataset からのデフォルト スキーマを使用する。 カスタム スキーマを作成する場合に、このオプションを選択し、[トレーニング サンプル マネージャー] ページでデフォルト スキーマを変更します。
出力場所
これは、[分類ウィザード] で作成されたすべての出力を格納するワークスペースまたはディレクトリです。出力には、トレーニング データ、セグメント化された画像、カスタム スキーマ、精度評価情報、および分類結果が含まれます。
注意:
[分類 ウィザード] を使用して作成されたすべての中間ファイルは、ユーザーの temp ディレクトリに格納されます。 このディレクトリは、通常 C:\Windows\Temp ですが、オペレーティング システムおよびアクセス権によっては、異なることがあります。
セグメント化された画像
これは、[分類タイプ] として [オブジェクト ベース] 分類を選択した場合にのみ使用できるオプションです。 セグメント化された画像がすでに作成されている場合、既存のデータセットを参照できます。 そうでない場合は、セグメント化された画像を次のページのステップで作成します。
注意:
セグメント ラスターがまだ作成されていない場合、分類器をトレーニングする前に、セグメント ラスターが作成されます。 これは、コンピューターに負荷がかかる処理であり、セグメント ラスター データセットの作成には、かなり時間がかかることがあります。 大規模なデータセットの場合、あらかじめセグメント ラスターを作成し、分類プロジェクトを構成するときに、そのセグメント ラスターを入力として指定することを強くお勧めします。
トレーニング サンプル
これは、[分類方法] として [教師付き] を選択した場合にのみ使用できるオプションです。 [分類ツール] ドロップダウン リストで [トレーニング サンプル マネージャー] を使用してトレーニング サンプルを作成することができ、または既存のトレーニング サンプル ファイルを指定することができます。 これは、トレーニング サンプルを含んでいるシェープファイルまたはフィーチャクラスのいずれかであることができ、分類スキーマと一致していなければなりません。 トレーニング サンプル ファイルには、次のフィールド名が必要です。
- classname— クラス カテゴリ名を示すテキスト フィールド
- classvalue— 各クラス カテゴリの整数値を含む long integer フィールド
注意:
ArcGIS Desktop で [画像分類] ツールバーを使用して作成されたトレーニング サンプルがサポートされています。
参照データセット
分類結果の精度を評価する場合は、参照データセットを指定する必要があります。 参照データは、既知の位置およびクラス値を含むフィーチャで構成され、現場での調査、既存の分類マップまたラスター土地ベース、あるいは高解像度の画像を使用して収集できます。 画像分類の結果は、精度評価のために参照データと比較されます。 参照データセット内のクラスは、分類スキーマに一致している必要があります。
参照データの形式は、次のいずれかです。
- 分類済み画像であるラスター データセット。
- ポリゴン フィーチャクラスまたはシェープファイル。 フィーチャクラスの属性テーブルの形式はトレーニング サンプルに一致している必要があります。 これを確実に行うために、[トレーニング サンプル マネージャー] ツールを使用して、参照データセットを作成できます。
- ポイント フィーチャクラスまたはシェープファイル。 この形式は、[精度評価ポイントの作成 (Create Accuracy Assessment Points)] ツールの出力と一致している必要があります。 既存のファイルを使用中に、そのファイルを適切な形式に変換したい場合は、[精度評価ポイントの作成 (Create Accuracy Assessment Points)] ジオプロセシング ツールを使用します。
セグメンテーション
このページは、[分類タイプ] として [オブジェクト ベース] を選択し、[構成] ページで既存のセグメンテーション ラスター データセットを指定しなかった場合にのみ使用できます。 セグメンテーションは、[オブジェクト ベース] の分類ワークフローの主要コンポーネントです。 このプロセスは、色が類似していて、特定の形状特性を持つ隣接ピクセルをまとめてグループ化します。
オブジェクトへの画像のセグメンテーション方法を制御するパラメーターには、次の 3 つがあります。
- [スペクトル詳細度] - 画像内のフィーチャのスペクトル差に与える重要度を設定します。
有効な値の範囲は 1.0 ~ 20.0 です。 より詳細な分類が必要な場合は、大きい値が適切です。その場合、多少類似するスペクトル特性を持っているフィーチャが、異なるクラスに分類されます。 たとえば、森林に覆われたシーンでスペクトル詳細度の値を大きくすると、個々の樹木をはっきりと区別できるようになります。
値を小さくすると、画像の詳細がより滑らかになります。 たとえば、屋根の上の機器についての詳細を含まずに、建物の屋根を分類することに興味がある場合、小さい [スペクトル詳細度] の値を使用します。
- [空間的詳細度] - 画像内のフィーチャ間の近接性に与える重要度を設定します。 有効な値の範囲は 1 ~ 20 です。 対象のフィーチャが小さく、一緒にクラスタリングされているシーンの場合、高い値が適しています。 小さい値を指定すると、空間的に滑らかな出力が作成されます。 たとえば、都市のシーンでは、空間的詳細度の値を小さくして不透水性の地表を分類したり、[空間的詳細度] の値を大きくして建物や道路を個別のクラスとして分類したりすることができます。
- [最小セグメント サイズ (ピクセル)] - このサイズより小さいセグメントを、それらに最もよく適合する隣接セグメントとマージします。 この値は、プロジェクトの最小マッピング単位に関係しています。
セグメントを画像の上に重なるポリゴンとして表示する場合、[セグメント境界線のみを表示] オプションを使用できます。
[表示設定] タブの [効果] グループにある [スワイプ] ツールを使用して、セグメント化された画像を元画像と比較します。 パラメーターを変更することによってセグメンテーションを動的に再実行し、マップを画面移動およびズームして、結果を調べます。 セグメント化された画像に問題がなければ、[次へ] をクリックします。
注意:
プレビューは、現在画面上にあるピクセルを処理するラスター関数に基づき、解像度を表示するためリサンプリングされます。これにより、プレビューと実際に保存された結果には若干の違いが生じることがあります。
トレーニング サンプル マネージャー
このページは、[分類方法] として [教師付き] を選択した場合にのみ使用できます。
このページが開くと、スキーマ管理セクションが上部に表示され、[構成] ページで選択したスキーマが自動的に読み込まれます。 このページでクラスを新規作成するか、既存のクラスを削除して、スキーマをカスタマイズできます。 最高レベルの親クラスを新規作成するには、スキーマの名前を選択してから、[新しいクラスの追加] ボタンをクリックします。 サブクラスを作成するには、親クラスを選択してから、[新しいクラスの追加] をクリックします。 サブクラスは親クラスにまとめられます。 いずれかのクラスを右クリックして、クラス プロパティを編集します。
このページの下部のセクションには、クラスごとのすべてのトレーニング サンプルが表示されます。 画像内の土地被覆クラスごとに、代表的な領域 (つまり、トレーニング サンプル) を選択できます。 トレーニング サンプルは、位置情報 (ポリゴン) および関連する土地被覆クラスを含んでいます。 画像分類アルゴリズムは、フィーチャクラスとして保存されたトレーニング サンプルを使用して、画像全体の土地被覆クラスを識別します。 [構成] ページでトレーニング サンプル データセットを指定した場合、ここで、トレーニング サンプルがリスト表示されます。
トレーニング サンプルを表示し、それらを追加したり、グループ化したり、削除することによって、管理できます。 トレーニング サンプルを個別に削除することができ、またはそれらを選択して一緒にグループ化し、[削除] ボタンをクリックすることもできます。 トレーニング サンプルを選択すると、マップ上でそのサンプルが選択されます。 テーブル内のトレーニング サンプルをダブルクリックすると、マップ内のそのサンプルにズームします。
トレーニング サンプルを作成する手順:
- スキーマ マネージャーで、トレーニング サンプルを収集するクラスを選択します。
- スケッチ ツールの 1 つを選択するか、セグメント ピッカーを使用して、トレーニング サンプルの収集を開始します。
- セグメント ピッカーを使用するには、セグメント化された画像が [コンテンツ] ウィンドウに存在する必要があります。 [コンテンツ] ウィンドウにセグメント レイヤーが複数ある場合は、トレーニング サンプルの収集元にするセグメント レイヤーをドロップダウン リストから選択します。
- マップ上をクリックして、セグメントをトレーニング サンプルとして追加します。
- クラスを表す個別のトレーニング サンプルが、トレーニング サンプル マネージャーにリスト表示されます。 それらのトレーニング サンプルを整理するには、複数のトレーニング サンプルを選択し、[たたむ] ボタンをクリックして、1 つのクラスの見出しに結合します。
注意:
トレーニング サンプル テーブルに、各クラスを定義するサンプルの数がリスト表示されます。 トレーニング サンプルを収集するためにセグメント ピッカーを使用した場合、サンプルの数は、クラスを定義するために選択したセグメントの数になります。 セグメントの数がサンプルの合計数を表すため、最尤法などの統計分類器を使用する場合、これを覚えておくことは重要です。 たとえば、クラスのトレーニング サンプルとして、8 つのセグメントが収集された場合、それは、信頼できる分類のための統計的に有意なサンプル数ではないことがあります。 しかし、同じトレーニング サンプルをピクセルとして収集した場合、トレーニング サンプルは、数百個または数千個のピクセルで表されることがあり、これは統計的に有意なサンプル数です。
トレーニング サンプル テーブルには、すべてのクラスを表しているピクセルの合計数と比較して、クラスを表しているピクセルのパーセンテージがリスト表示されます。 このパーセンテージは、最尤法などの統計分類器を使用する場合に重要です。 ランダム ツリーや SVM (Support Vector Machine) などの、ノンパラメトリックな機械学習分類器を使用する場合、トレーニング サンプルの数およびパーセンテージはあまり重要ではありません。
Train
下の表に記載されているいずれかの分類方法を選択します。
分類器 | 説明 |
---|---|
ISO クラスター (ISO Cluster) | [ISO クラスターによる分類器 (ISO Cluster classifier)] は、K 平均手法を使用して教師なし分類を実行します。 この分類器は、属性テーブルが大きくなりがちな非常に大きなセグメント画像を処理することができます。 また、このツールはサードパーティ アプリケーションからのセグメント RGB ラスターを入力として使用することもできます。 このツールは、Esri がサポートしているラスター ファイルで機能するばかりでなく、セグメント ラスター データセットでも機能します。 [構成] ページで [分類方法] として [教師なし] を選択した場合、これが使用できる唯一の [分類器] です。 |
K 最近隣内挿法 | [K 最近隣内挿法による分類器 (K-Nearest Neighbor classifier)] は、K 最近隣内挿法による分類を実行し、近傍の多数投票によってピクセルを分類します。 トレーニング プロセスで、トレーニング サンプルがそれぞれのクラスに割り当てられます。 K は定義された近傍数で、投票で使用されます。 |
最尤法 | [最尤法による分類器 (Maximum Likelihood classifier)] は、画像分類を行うための従来のパラメトリックな手法です。 信頼できる結果を得るために、各クラスは、正規分布を有する統計的に有意なトレーニング サンプル数によって表される必要があり、各クラスを表しているトレーニング サンプルの相対数が類似している必要があります。 |
ランダム ツリー | [ランダム ツリーによる分類器 (Random Trees classifier)] は、過剰適合を低減し、セグメント化された画像やその他の補助ラスター データセットに加えて、マルチスペクトル画像を操作できる画像分類の高度な機械学習手法です。 標準的な画像入力の場合、このツールは任意のビット深度のマルチバンド画像を受け入れ、入力トレーニング サンプル ファイルに基づいてピクセル ベースでランダム ツリー分類 (ランダム フォレスト分類とも呼ばれる) を実行します。 [オブジェクト ベース] の分類を実行する場合、分類器のトレーニングで使用される [セグメント属性] のいずれかまたはすべてを選択できます。 |
SVM (Support Vector Machine) | [SVM (Support Vector Machine) 分類器 (Support Vector Machine classifier)] は、優れた高度な機械学習分類方法であり、セグメント ラスター入力や標準的な画像を処理できます。 これは、ノイズ、相関性のあるバンド、および各クラス内のトレーニング サイトの不釣り合いな数やサイズに左右されません。 この分類方法は、広く使用されています。 [オブジェクト ベース] の分類を実行する場合、分類器のトレーニングで使用される [セグメント属性] のいずれかまたはすべてを選択できます。 |
[実行] をクリックすると、分類器がトレーニングされます。
トレーニングの実行が完了した後に、[表示設定] タブで [スワイプ] ツールを使用して、元画像と共に結果を視覚的に確認できます。 [前へ] をクリックして設定を調整することによって、または異なる分類器を選択して実行することによって、異なる設定を使用して結果を比較したり、異なる分類器を使用することができます。 その後、[スワイプ] ツールを使用するか、[コンテンツ] ウィンドウでレイヤーのオン/オフを切り替えることによって、異なる分類の結果を比較することができます。 分類の結果に問題がなければ、[次へ] をクリックします。
分類
[実行] をクリックして、分類の結果を指定した出力ディレクトリまたはプロジェクトのデータベースに保存します。 必要に応じて、[出力クラス定義ファイル] (*.ecd) を保存できます。
クラスの割り当て
このページは、[分類方法] として [教師なし] を選択した場合にのみ表示されます。 指定したクラスの数に応じて、元画像のピクセルまたはセグメントの特性を使用して、複数のクラスが作成されました。 ここで、使用している分類スキーマに基づいて、各クラスに意味を割り当てる必要があります。 [クラスの割り当て] ページの上部に、スキーマ内のクラスのリストが表示されており、下部に、生成されたクラスを表示しているテーブルがあります。
- ページの上部にあるスキーマ リストからクラスを選択します。
- [割り当て] ツールをクリックしてから、スキーマ クラスに割り当てる分類マップ上のクラスを選択します。 クラスの割り当て中は、基になる画像を表示して、[新しいクラス] が有効に機能することを確認できます。 L キーを押すと、分類された画像の透過表示を切り替えることができます。 テーブルを調べてみると、[古いクラス] が、そのクラスの割り当て先のクラスによって更新されていることがわかります。 クラスの色が更新されて、スキーマに反映されます。
元画像が表示されるように、[コンテンツ] ウィンドウで分類マップをオフにした場合、グレーの屋根や芝生などの、画像内のフィーチャをクリックすることができ、それによって、分類マップ内の対応するクラスの再割り当てを続行します。
クラスのマージ
教師付き分類を実行した後に、複数のクラスをより広いクラスにマージすることができます。 元のクラス名が、[クラスのマージ] ページの [古いクラス] 列にリスト表示されます。 クラス全体を変更する場合は、このページで変更できますが、変更先のクラスは、使用しているスキーマの親クラスに限定されます。 たとえば、このページでは、落葉樹を森林に変更できますが、落葉樹を水域に変更することはできません。 この種の編集、つまり、個々のフィーチャの変更を行うには、[再分類] ページを使用する必要があります。
精度評価
画像分類の結果は、精度評価のために、[構成] ページで指定した [参照データ] と比較されます。 参照データセットの分類スキーマは、分類された画像の分類スキーマに一致する必要があります。
ランダム ポイント数
生成されるランダムなポイントの合計数。
サンプリング処理やクラスの数に応じて、実際の数値はこれを超える場合がありますが、この数値を下回ることはありません。 ランダムに生成されたポイントのデフォルト数は 500 です。
サンプリング処理
使用するサンプリング方式を指定します。
- 階層別ランダム - 各クラス内にランダムに分散したポイントを作成します。各クラスには、相対的な面積に比例した、多数のポイントが含まれています。 これがデフォルトです。
- 均等階層別ランダム - 各クラス内にランダムに分散したポイントを作成します。各クラスのポイント数は同じです。
- ランダム - 画像全体にランダムに分散したポイントを作成します。
対角解析
精度は 0 ~ 1 の範囲で表します。1 は 100% の精度を意味します。 色の範囲は薄い青から濃い青への変化で表します。青色が濃いほど、精度が高いことを意味します。 対角に沿った値は、クラス割り当ての全体的精度を表します。
非対角解析
対角とは異なり、非対角にあるセルは、オミッションおよびコミッションに基づくエラーを示します。 オミッションのエラーは、分類において真のクラスが除外されるか、減少するように、分類された画像内の正しいクラスから除外されたピクセルまたはセグメントを指します。 コミッションのエラーは、クラスへのピクセルの不正な分類を指し、したがって、クラスのサイズを誤って増やします。 あるクラス内のオミッションのエラーは、別のクラス内のコミッションのエラーとして数えられます。
実際のエラー マトリックスの値を調べる場合は、プロジェクトまたは出力フォルダーに保存された出力混同行列を読み込んで開きます。 このエラー レポートは、クラスごとにユーザーおよびプロデューサー誤差を示し、全体的精度の Kappa 統計量の一致率を含んでいます。 詳細については、「精度評価」をご参照ください。
画像分類の精度が自分の目的にとって許容できるものであると決定した後に、[分類ウィザード] の最後のページに進むことができます。 許容できない場合は、トレーニング サンプルを再作成するか、パラメーターを調整するか、または異なる分類を使用するか、あるいは異なる参照データを使用してテストすることを検討できます。
再分類
画像の分類後、分類結果に小さいエラーが存在することがあります。 このようなエラーに対処するには、多くの場合、トレーニング サイトを再作成して分類の各ステップを再実行するよりも、最終的な分類画像を編集する方がより簡単な方法です。 [再分類] ページを使用して、分類画像内の個別のフィーチャまたはオブジェクトに対して編集を行うことができます。 これは、分類プロセスで生じたエラーの所在をはっきりさせるための後処理ステップです。 行ったすべての変更は [編集ログ] に表示され、行った編集のいずれかをオンまたはオフにするオプションがあります。 画像を再分類してエラーをクリーンナップするときに、基になる画像を表示して、オブジェクトが有効に機能することを確認できます。 L キーを押すと、分類された画像の透過表示を切り替えることができます。
- 再分類のための [現在のクラス] および [新しいクラス] を選択します。
- 領域内のオブジェクトまたはクラスを再分類します。
- [オブジェクトの再分類] ツール を使用すると、分類済み画像の上に円が描画されます。 その円の生成元になるセグメントが、新しいクラスに変更されます。
- [領域内の再分類] ツール を使用すると、分類済み画像の上にポリゴンが描画されます。 このポリゴン内の現在のクラスが、新しいクラスに変更されます。
- 編集ログを使用して、維持する編集内容または破棄する編集内容を確認し、[構成] ページで設定した [出力場所] に格納される [最終的な分類データセット] に名前を付けます。