ArcGIS Image Server では、統計的分類法または機械学習分類法によって、リモート センシング画像を分類することができます。ディープ ラーニングとは機械学習の一種であり、複数レイヤーの非線形処理によって、モデルで説明されるフィーチャの識別やパターン認識を行います。ディープ ラーニング モデルを ArcGIS Image Server に統合し、オブジェクト検出と画像分類を行えます。ArcGIS Pro で、分類トレーニング サンプル マネージャー ツールを使用して対象のフィーチャまたはオブジェクトのトレーニング サンプルが生成された後に、ディープ ラーニング フレームワークで使用される形式に変換されます。これらのトレーニング サンプルは、データ サイエンティストやイメージ サイエンティストがサードパーティのディープ ラーニング フレームワークを使用してモデルをトレーニングする際に使用されます。トレーニングされたモデルは、モデル定義ファイル (およびオプションの python ラスター関数スクリプト ファイル) と一緒にパッケージ化され、ディープ ラーニング パッケージ (dlpk) アイテムとして共有されます。このアイテムは、ラスター解析推論ツールの実行に使用されます。推論ツールは、特定のフィーチャの抽出か、画像のピクセルの分類に使用されます。dlpk アイテムはラスター解析ツールへの入力として複数回使用することができるため、モデルをトレーニングした後に、複数の場所や期間にまたがる複数の画像も簡単に評価できます。
ArcGIS Pro でトレーニング サンプル マネージャーを使用してトレーニング サンプルを作成し、ArcGIS REST API または ArcGIS API for Python の [ディープ ラーニング用のトレーニング データをエクスポート (Export Training Data for Deep Learning)] ラスター解析ツールを使用してデータ サイエンティスト向けのデータを準備します。 | |
データ サイエンティストが、トレーニング データを使用し、サードパーティのディープ ラーニング フレームワークを使用するモデルを開発します。 | |
データ サイエンティストがディープ ラーニング パッケージを提供します。これは、モデル定義ファイルとトレーニング済みのモデル、および Python スクリプトで構成されるもので、ArcGIS Image Server のラスター解析環境に戻されます。 | |
ディープ ラーニング パッケージ (*.dlpk) アイテムを作成し、ポータルに共有します。dlpk アイテムを使用して、[ディープ ラーニングを使用したオブジェクトの検出 (Detect Objects Using Deep Learning)] ツールか [ディープ ラーニングを使用したピクセルの分類 (Classify Pixels Using Deep Learning)] ツールを実行し、出力を生成します。 | |
ArcGIS API for Python を利用し、ディープ ラーニング フレームワークでモデルのトレーニングを行うこともできます。 |
特長と機能
ディープ ラーニング ラスター解析ツールでは、標準的な機械学習分類法以上のものを使用できます。
- 畳み込みニューラル ネットワークを使用して画像分類を行います。
- ディープ ラーニング モデルを使用し、画像ピクセルの分類や、航空機、樹木、車両、水域、油田などのオブジェクトを検出します。
- Keras、TensorFlow、CNTK、PyTorch などの外部のディープ ラーニング フレームワークを統合します。
- モデル定義ファイルを複数回にわたって使用し、経時的な変化を検出したり、複数の対象地域のオブジェクトを検出したりします。
- ポリゴン フィーチャクラスを生成して検出されたオブジェクトを表示し、追加の解析やワークフローで使用します。
- ディープ ラーニング推論ツールは、分散処理に CPU を使用することも、各サーバー ノードで強力な GPU を使用することもできます (利用可能な場合のみ)。
ディープ ラーニングを始める
トレーニング サンプルの作成とエクスポートは、画像分類ワークフローに関する専門的な知識が必要となるため、経験豊富なイメージ アナリストが ArcGIS 内で行います。ディープ ラーニング モデルは、データ サイエンティストやディープ ラーニング モデルのトレーニングの実績がある人物によって、ArcGIS の外部でディープ ラーニング フレームワークを使用してトレーニングされます。Esri モデル定義ファイル (*.emd) でモデルをトレーニングおよび定義したら、dlpk アイテムを Portal for ArcGIS に共有してラスター解析ツールを実行し、オブジェクトを検出したり、Map Viewer、ArcGIS API for Python、ArcGIS REST API、または ArcGIS Pro からピクセルを分類したりできます。場合によっては、ディープ ラーニング モデルと ArcGIS 画像分類の経験がある 1 人のアナリストが、3 つのステップをすべて完了することもあります。
ArcGIS API for Python Python 3 環境に適切なディープ ラーニング フレームワークの ArcGIS Server (TensorFlow、CNTK、PyTorch、Keras) をインストールする必要があります。インストールしない場合、dlpk アイテムをツールに追加するとエラーが発生します。Esri モデル定義ファイルの作成者から適切なフレームワーク情報を入手します。
インストールのヘルプについてはフレームワークのマニュアルをご参照ください。構成および配置については、ヘルプ ドキュメント「ArcGIS Enterprise をラスター解析用に構成して配置」をご参照ください。
- トレーニング サンプルを作成し、エクスポートします。
- ArcGIS Pro でトレーニング サンプル マネージャーを使用して、分類スキーマを選択または作成します。
- クラス カテゴリか対象フィーチャのトレーニング サイト サンプルを作成します。トレーニング サンプル ファイルを保存します。
- [ディープ ラーニング用のトレーニング データをエクスポート (Export Training Data for Deep Learning)] ラスター解析ツールを実行し、ソース画像とトレーニング サンプルをディープ ラーニング トレーニング データに変換します。ソース画像はイメージ サービスの場合もあります。ツールの出力は、出力画像チップ、ラベル、およびメタデータ ファイルが格納されたデータ ストア文字列です。また、*.emd のテンプレート ファイルも追加で出力されます。このファイルはデータ サイエンティストが設定します。
- ディープ ラーニング モデルをトレーニングします。
- 上記の手順 1 で生成される画像チップを使用し、TensorFlow、CNTK、PyTorch、Keras などのディープ ラーニング フレームワークでモデルをトレーニングできます。
- *.emd ファイルの名前をディープ ラーニング フレームワーク、モデルの構成、その他の任意のオプション プロパティで更新します。*.emd ファイルの必須パラメーターおよび任意のパラメーターの詳細については、以下の「Esri モデル定義ファイル」のセクションをご参照ください。
- Map Viewer、ArcGIS API for Python、ArcGIS REST API、または ArcGIS Pro から、推論ラスター解析ツールを実行します。
- [ディープ ラーニングを使用したオブジェクトの検出 (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 に組み込まれており、計算に必要だからです。
- [ディープ ラーニングを使用したオブジェクトの検出 (Detect Objects Using Deep Learning)] または [ディープ ラーニングを使用したピクセルの分類 (Classify
Pixels Using Deep Learning)] ラスター解析ツールを使用し、画像を処理します。トレーニングされたモデルに、追加の変数 (パディング、感度を微調整するための信頼しきい値など) を含むカスタム Python ラスター関数が組み込まれている場合、これらの変数は ArcGIS Pro または Map Viewer ラスター解析ツールのダイアログ ボックスに表示され、ユーザーによる入力を行えるようになっています。文字列や数値などのデータ型は、Python ラスター関数で指定されます。追加の推論パラメーターは 2 つまでに限定することをお勧めします。
Esri モデル定義ファイル
*.emd ファイルは、トレーニングされたディープ ラーニング モデルを説明する JSON ファイルです。これには、推論ツールの実行に必要なモデル定義パラメーターが含まれており、モデルをトレーニングしたデータ サイエンティストが手を加えます。次のテーブルに示すように、必須のパラメーターと任意のパラメーターがあります。
モデル定義ファイルのパラメーター | 説明 |
---|---|
フレームワーク | モデルのトレーニングに使用されるディープ ラーニング フレームワークの名前。 3 つのディープ ラーニング フレームワークがサポートされています。
|
ModelConfiguration | モデル構成の名前。 モデル構成は、モデルの入力と出力、推論ロジック、モデルの入力と出力に関する仮説を定義します。標準的な入力および出力構成、および推論ロジックを定義する、既存のオープン ソースのディープ ラーニング ワークフローもあります。ArcGIS はあらかじめ定義された、次のような構成をサポートしています。 TensorFlow CNTK Keras PyTorch 事前定義された構成のいずれかを使用する場合、*.emd ファイルに構成の名前を入力します。カスタム構成を使用してディープ ラーニング モデルをトレーニングした場合、*.emd ファイルまたはカスタム Python ファイルで入力と出力を完全に説明する必要があります。 |
ModelFile | トレーニングしたディープ ラーニング モデル ファイルへのパス。モデル フレームワーク ファイル形式の多くはプロトコル バッファーに基づいているため、トレーニングされたディープ ラーニング モデルは *.pb ファイルです。ただし、他のファイル形式もサポートされています。 |
ModelType | モデルのタイプ。タイプは次のいずれかです。
|
InferenceFunction (オプション) | 推論関数のパス。 推論関数はトレーニングされたモデル データ ファイルを理解し、推論ロジックを提供します。ArcGIS のディープ ラーニング ラスター解析ツールでは、次の 6 つの推論関数がサポートされています。
|
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 に変更することもできます。