Skip To Content

ラスター解析でのディープ ラーニング

ArcGIS Image Server では、統計的分類法または機械学習分類法によって、リモート センシング画像を分類することができます。ディープ ラーニングとは機械学習の一種であり、複数レイヤーの非線形処理によって、モデルで説明されるフィーチャの識別やパターン認識を行います。ディープ ラーニング モデルを ArcGIS Image Server に統合し、オブジェクト検出と画像分類を行えます。ArcGIS Pro で、分類トレーニング サンプル マネージャー ツールを使用して対象のフィーチャまたはオブジェクトのトレーニング サンプルが生成された後に、ディープ ラーニング フレームワークで使用される形式に変換されます。これらのトレーニング サンプルは、データ サイエンティストやイメージ サイエンティストがサードパーティのディープ ラーニング フレームワークを使用してモデルをトレーニングする際に使用されます。トレーニングされたモデルは、モデル定義ファイル (およびオプションの python ラスター関数スクリプト ファイル) と一緒にパッケージ化され、ディープ ラーニング パッケージ (dlpk) アイテムとして共有されます。このアイテムは、ラスター解析推論ツールの実行に使用されます。推論ツールは、特定のフィーチャの抽出か、画像のピクセルの分類に使用されます。dlpk アイテムはラスター解析ツールへの入力として複数回使用することができるため、モデルをトレーニングした後に、複数の場所や期間にまたがる複数の画像も簡単に評価できます。

ディープ ラーニング ワークフロー

ワークフロー アイテム 1

ArcGIS Proトレーニング サンプル マネージャーを使用してトレーニング サンプルを作成し、ArcGIS REST API または ArcGIS API for Python[ディープ ラーニング用のトレーニング データをエクスポート (Export Training Data for Deep Learning)] ラスター解析ツールを使用してデータ サイエンティスト向けのデータを準備します。

ワークフロー アイテム 2

データ サイエンティストが、トレーニング データを使用し、サードパーティのディープ ラーニング フレームワークを使用するモデルを開発します。

ワークフロー アイテム 3

データ サイエンティストがディープ ラーニング パッケージを提供します。これは、モデル定義ファイルとトレーニング済みのモデル、および Python スクリプトで構成されるもので、ArcGIS Image Server のラスター解析環境に戻されます。

ワークフロー アイテム 4

ディープ ラーニング パッケージ (*.dlpk) アイテムを作成し、ポータルに共有します。dlpk アイテムを使用して、[ディープ ラーニングを使用したオブジェクトの検出 (Detect Objects Using Deep Learning)] ツールか [ディープ ラーニングを使用したピクセルの分類 (Classify Pixels Using Deep Learning)] ツールを実行し、出力を生成します。

ワークフロー アイテム 5

ArcGIS API for Python を利用し、ディープ ラーニング フレームワークでモデルのトレーニングを行うこともできます。

特長と機能

ディープ ラーニング ラスター解析ツールでは、標準的な機械学習分類法以上のものを使用できます。

  • 畳み込みニューラル ネットワークを使用して画像分類を行います。
  • ディープ ラーニング モデルを使用し、画像ピクセルの分類や、航空機、樹木、車両、水域、油田などのオブジェクトを検出します。
  • Keras、TensorFlow、CNTK、PyTorch などの外部のディープ ラーニング フレームワークを統合します。
  • モデル定義ファイルを複数回にわたって使用し、経時的な変化を検出したり、複数の対象地域のオブジェクトを検出したりします。
  • ポリゴン フィーチャクラスを生成して検出されたオブジェクトを表示し、追加の解析やワークフローで使用します。
  • ディープ ラーニング推論ツールは、分散処理に CPU を使用することも、各サーバー ノードで強力な GPU を使用することもできます (利用可能な場合のみ)。

ディープ ラーニングを始める

トレーニング サンプルの作成とエクスポートは、画像分類ワークフローに関する専門的な知識が必要となるため、経験豊富なイメージ アナリストが ArcGIS 内で行います。ディープ ラーニング モデルは、データ サイエンティストやディープ ラーニング モデルのトレーニングの実績がある人物によって、ArcGIS の外部でディープ ラーニング フレームワークを使用してトレーニングされます。Esri モデル定義ファイル (*.emd) でモデルをトレーニングおよび定義したら、dlpk アイテムを Portal for ArcGIS に共有してラスター解析ツールを実行し、オブジェクトを検出したり、Map ViewerArcGIS API for PythonArcGIS REST API、または ArcGIS Pro からピクセルを分類したりできます。場合によっては、ディープ ラーニング モデルと ArcGIS 画像分類の経験がある 1 人のアナリストが、3 つのステップをすべて完了することもあります。

ArcGIS API for Python Python 3 環境に適切なディープ ラーニング フレームワークの ArcGIS Server (TensorFlow、CNTK、PyTorch、Keras) をインストールする必要があります。インストールしない場合、dlpk アイテムをツールに追加するとエラーが発生します。Esri モデル定義ファイルの作成者から適切なフレームワーク情報を入手します。

インストールのヘルプについてはフレームワークのマニュアルをご参照ください。構成および配置については、ヘルプ ドキュメント「ArcGIS Enterprise をラスター解析用に構成して配置」をご参照ください。

  1. トレーニング サンプルを作成し、エクスポートします。
    1. ArcGIS Proトレーニング サンプル マネージャーを使用して、分類スキーマを選択または作成します。
    2. クラス カテゴリか対象フィーチャのトレーニング サイト サンプルを作成します。トレーニング サンプル ファイルを保存します。
    3. [ディープ ラーニング用のトレーニング データをエクスポート (Export Training Data for Deep Learning)] ラスター解析ツールを実行し、ソース画像とトレーニング サンプルをディープ ラーニング トレーニング データに変換します。ソース画像はイメージ サービスの場合もあります。ツールの出力は、出力画像チップ、ラベル、およびメタデータ ファイルが格納されたデータ ストア文字列です。また、*.emd のテンプレート ファイルも追加で出力されます。このファイルはデータ サイエンティストが設定します。
  2. ディープ ラーニング モデルをトレーニングします。
    1. 上記の手順 1 で生成される画像チップを使用し、TensorFlow、CNTK、PyTorch、Keras などのディープ ラーニング フレームワークでモデルをトレーニングできます。
    2. *.emd ファイルの名前をディープ ラーニング フレームワーク、モデルの構成、その他の任意のオプション プロパティで更新します。*.emd ファイルの必須パラメーターおよび任意のパラメーターの詳細については、以下の「Esri モデル定義ファイル」のセクションをご参照ください。
  3. Map ViewerArcGIS API for PythonArcGIS REST API、または ArcGIS Pro から、推論ラスター解析ツールを実行します。
    1. [ディープ ラーニングを使用したオブジェクトの検出 (Detect Objects Using Deep Learning)] または [ディープ ラーニングを使用したピクセルの分類 (Classify Pixels Using Deep Learning)] ラスター解析ツールを使用し、画像を処理します。トレーニングされたモデルに、追加の変数 (パディング、感度を微調整するための信頼しきい値など) を含むカスタム Python ラスター関数が組み込まれている場合、これらの変数は ArcGIS Pro または Map Viewer ラスター解析ツールのダイアログ ボックスに表示され、ユーザーによる入力を行えるようになっています。文字列や数値などのデータ型は、Python ラスター関数で指定されます。追加の推論パラメーターは 2 つまでに限定することをお勧めします。

      [ディープ ラーニングを使用したオブジェクトの検出 (Detect Objects Using Deep Learning)] ツールを実行すると、モデルが検出したオブジェクトを示すフィーチャクラスが出力されます。また、[ディープ ラーニングを使用したピクセルの分類 (Classify Pixels Using Deep Learning)] ツールでは、分類されたラスターが出力されます。

      備考:

      推論ツールを実行するには、ディープ ラーニング モデル フレームワークをラスター解析サービス コンピューター上にインストールする必要があります。推論のロジックはフレームワークの Python API に組み込まれており、計算に必要だからです。

Esri モデル定義ファイル

*.emd ファイルは、トレーニングされたディープ ラーニング モデルを説明する JSON ファイルです。これには、推論ツールの実行に必要なモデル定義パラメーターが含まれており、モデルをトレーニングしたデータ サイエンティストが手を加えます。次のテーブルに示すように、必須のパラメーターと任意のパラメーターがあります。

モデル定義ファイルのパラメーター説明

フレームワーク

モデルのトレーニングに使用されるディープ ラーニング フレームワークの名前。

3 つのディープ ラーニング フレームワークがサポートされています。

  • TensorFlow
  • CNTK
  • Keras
  • PyTorch

InferenceFunction

ModelConfiguration

モデル構成の名前。

モデル構成は、モデルの入力と出力、推論ロジック、モデルの入力と出力に関する仮説を定義します。標準的な入力および出力構成、および推論ロジックを定義する、既存のオープン ソースのディープ ラーニング ワークフローもあります。ArcGIS はあらかじめ定義された、次のような構成をサポートしています。

TensorFlow

CNTK

Keras

PyTorch

事前定義された構成のいずれかを使用する場合、*.emd ファイルに構成の名前を入力します。カスタム構成を使用してディープ ラーニング モデルをトレーニングした場合、*.emd ファイルまたはカスタム Python ファイルで入力と出力を完全に説明する必要があります。

ModelFile

トレーニングしたディープ ラーニング モデル ファイルへのパス。モデル フレームワーク ファイル形式の多くはプロトコル バッファーに基づいているため、トレーニングされたディープ ラーニング モデルは *.pb ファイルです。ただし、他のファイル形式もサポートされています。

ModelType

モデルのタイプ。タイプは次のいずれかです。

  • ImageClassification - ピクセルの分類
  • ObjectDetection - オブジェクトまたはフィーチャの検出

InferenceFunction

(オプション)

推論関数のパス。

推論関数はトレーニングされたモデル データ ファイルを理解し、推論ロジックを提供します。ArcGIS のディープ ラーニング ラスター解析ツールでは、次の 6 つの推論関数がサポートされています。

  • TensorFlow 用オブジェクトの検出 (Detect Objects)
  • Tensor Flow 用ピクセルの分類 (Classify Pixels)
  • CNTK 用オブジェクトの検出 (Detect Objects)
  • CNTK 用ピクセルの分類 (Classify Pixels)
  • Keras 用オブジェクトの検出 (Detect Objects)
  • PyTorch 用オブジェクトの検出 (Detect Objects)
上記の推論関数のいずれかを使用した場合、*.emd ファイルで指定する必要はありません。サポートされていないディープ ラーニング モデル構成でモデルをトレーニングした場合、または特別な推論ロジックが必要である場合は、カスタム推論関数 (Python モジュール) とトレーニング済みモデルが必要になります。その場合は、[InferenceFunction] を Python モジュール パスに設定します。

ImageHeight

(オプション)

分類または処理される画像の行数。

ImageWidth

(オプション)

分類または処理される画像の列数。

ExtractBands

(オプション)

入力画像から抽出するバンド インデックスまたはバンド名。

クラス

(オプション)

出力クラス カテゴリまたはオブジェクトに関する情報。

次に、標準的なモデル構成を使用するモデル定義ファイル (*.emd) の例を示します。

{
    "Framework": "TensorFlow",
    "ModelConfiguration": "ObjectDetectionAPI",
    "ModelFile":"tree_detection.pb",
    "ModelType":"ObjectionDetection",
    "ImageHeight":850,
    "ImageWidth":850,
    "ExtractBands":[0,1,2],
    "Classes" : [
      {
        "Value": 0,
        "Name": "Tree",
        "Color": [0, 255, 0]
      }
    ]
}

ディープ ラーニング パッケージ (dlpk) アイテム

ディープ ラーニング ラスター解析ツールの入力には、ディープ ラーニング モデル パッケージ (dlpk) が必要です。ディープ ラーニング モデル パッケージは、Esri モデル定義 JSON ファイル (*.emd)、ディープ ラーニング バイナリ モデル ファイル、および使用されるオプションの Python ラスター関数から構成されます。

すべてのコンポーネントの準備が整ったら、すべてのファイルを 1 つの *.zip ファイルに圧縮し、*.zip ファイルを dlpk アイテムとしてポータルにアップロードできます。詳細については、「コンピューターからのファイルの追加」をご参照ください。アイテムを追加する際に dlpk アイテム タイプが自動的に検出されるよう、*.zip ファイル拡張子を *.dlpk に変更することもできます。