ArcGIS のディープ ラーニング モデル

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

ディープ ラーニング モデルは、トレーニング サンプルとディープ ラーニング ニューラル ネットワークを使用して、オブジェクト検出、ピクセル分類、変化の検出、オブジェクト分類などのさまざまなタスクを実行するようトレーニングされるコンピューター モデルです。

ArcGIS ではディープ ラーニング モデルを次の 3 つのカテゴリにグループ化できます。

  • ArcGIS 事前トレーニング済みモデル
  • ArcGIS を使用してトレーニングされたモデル
  • カスタム モデル

ArcGIS 事前トレーニング済みモデル

ArcGIS 事前トレーニング済みモデルは、画像および点群データセットから地理特性をデジタイズおよび抽出するタスクを自動化します。

フットプリントのデジタイズや土地被覆マップの生成など、未加工データからフィーチャを手動で抽出する作業は時間を要します。 ディープ ラーニングはプロセスを自動化し、これらのタスクを完了するために必要な手作業を最小限にします。 ただし、ディープ ラーニング モデルのトレーニングは、大量のデータ、コンピューティング リソース、ディープ ラーニングの知識を必要とするので、複雑になる場合があります。

ArcGIS の事前トレーニング済みモデルを使用すると、ディープ ラーニング モデルのトレーニングに時間と労力を費やさずにすみます。 ArcGIS モデルは、さまざまな地域のデータでトレーニングされています。 新しい画像が利用可能になると、フィーチャを抽出して、マッピング、視覚化、および解析のための GIS データセットのレイヤーを生成できます。 事前トレーニング済みモデルは、ArcGIS アカウントを持つユーザーであれば、ArcGIS Living Atlas of the World で使用できます。

ArcGIS を使用してトレーニングされたモデル

さまざまな理由で、独自のモデルのトレーニングが必要になる場合があります。 このようなシナリオの例としては、利用可能な ArcGIS 事前トレーニング済みモデルを、対象地域とは異なる地理領域でトレーニングする場合があります。 このような状況では、[ディープ ラーニング モデルのトレーニング (Train Deep Learning Model)] ツールを利用できます。 独自のモデルをトレーニングする場合、追加の手順が必要になりますが、通常、特定の対象地域とユース ケースで最適の結果が得られます。 このツールは、[ディープ ラーニング用のトレーニング データをエクスポート (Export Training Data For Deep Learning)] ツールからの出力を使用してディープ ラーニング モデルをトレーニングします。 どちらのツールも、最も一般的なディープ ラーニング メタデータ形式およびモデル アーキテクチャをサポートしています。

各種のメタデータ形式の詳細については、[ディープ ラーニング用のトレーニング データをエクスポート (Export Training Data For Deep Learning)] ツールのドキュメントをご参照ください。 さまざまなモデル タイプの詳細については、[ディープ ラーニング モデルのトレーニング (Train Deep Learning Model)] ツールのドキュメントをご参照ください。

カスタム モデル

ArcGIS のディープ ラーニング モデル推論は、Python ラスター関数フレームワークの上位に実装されます。 ArcGIS の外部でトレーニングされたディープ ラーニング モデルの多くは ArcGIS で推論に使用できますが、そのためには、推論関数をカスタイズし、モデルをサポートする正しいパッケージをインストールする必要があります。 raster-deep-learning リポジトリでは、ArcGIS のディープ ラーニング Python ラスター関数のガイダンスのほか、カスタム Python ラスター関数を使用して追加のディープ ラーニング モデルを ArcGIS に統合する方法に関するガイダンスを提供しています。 このようなモデルはカスタム モデルと見なされます。

ディープ ラーニング モデルのコンテンツ

ArcGIS でトレーニングされた一般的なモデルには、下記のフォルダーとファイル (下図を参照) が含まれています。

モデルのフォルダー構造

  • loss_graph.png - 処理されたバッチのトレーニングと検証の損失を表示します。 これは model_metrics.html ファイルで使用されます。
  • show_results.png - モデルのサンプル結果を表示します。 これは model_metrics.html ファイルで使用されます。
  • training_validation_loss.json - 1 エポックあたりのトレーニングと検証の損失を表示します。
  • model_metrics.html - 学習率、トレーニングと検証の損失、サンプル結果など、トレーニング済みモデルに関する情報が含まれます。
  • model_name.pth - モデルの重みが含まれます。

モデル アーキテクチャによっては、モデルのフォルダーに ModelConfiguration.py などの追加のサポート ファイルが含まれる場合があります。

Esri モデル定義ファイル

Esri モデル定義ファイル (.emd) は、トレーニングされたディープ ラーニング モデルを記述する JSON 形式ファイルです。 このファイルには、推論ツールの実行に必要なモデル定義パラメーターが含まれており、モデルをトレーニングしたデータ サイエンティストが変更する必要があります。 次の表に示すように、このファイルには必須のパラメーターとオプションのパラメーターがあります。

.emd ファイルの作成と検証が終了したら、推論において複数回使用できるようになります。このとき、入力画像が元のモデル入力と同じセンサーから取り込まれることと、検出されるクラスやオブジェクトが同じである必要があります。 たとえば、Sentinel-2 衛星画像を使用して油田を検出するモデルで定義された .emd ファイルは、Sentinel-2 画像を使用する複数の対象地域および日付にわたって油田を検出するために使用できます。

すべての推論ツールで共通して使用されるパラメーターを以下の表に示します。 また、[CropSizeFixed] パラメーターや [BlackenAroundFeature] パラメーターなど、特定のツールでのみ使用されるパラメーターもあります。これらのパラメーターは、[ディープ ラーニングを使用したオブジェクトの分類 (Classify Objects Using Deep Learning)] ツールでのみ使用されます。

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

Framework

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

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

  • TensorFlow
  • Keras
  • PyTorch
サポートされているフレームワークのリストをご参照ください。

モデルが、サポートされているフレームワークのリストにないディープ ラーニング フレームワークを使用してトレーニングされている場合、トレーニング済みモデルでは、カスタム推論関数 (Python モジュール) が必要であり、InferenceFunctionPython モジュール パスに設定する必要があります。

ModelConfiguration

モデル構成の名前。

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

  • TensorFlow
    • ObjectDetectionAPI
    • DeepLab
  • Keras
    • MaskRCNN

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

ModelType

モデルのタイプ。 次のようなオプションがあります。

  • ImageClassification - ピクセルを分類します。
  • ObjectDetection - オブジェクトまたはフィーチャを検出します。
  • ObjectClassification - オブジェクトとフィーチャを分類します。

ModelFile

トレーニングしたディープ ラーニング モデル ファイルへのパス。 ファイル形式は、モデルのフレームワークによって異なります。 たとえば、TensorFlow の場合、モデル ファイルは .pb ファイルです。

説明

モデルに関する情報。 モデル情報には、トレーニングしたモデルについて説明したあらゆる情報を含めることができます。 たとえば、モデル番号やモデル名、モデルの作成日時、パフォーマンスの精度などがあります。

InferenceFunction

(オプション)

推論関数のパス。

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

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

SensorName

(オプション)

トレーニング サンプルの生成元から画像を収集するために使用するセンサーの名前。

RasterCount

(オプション)

トレーニング サンプルを生成するために使用したラスターの数。

BandList

(オプション)

ソース画像で使用されるバンドのリスト。

ImageHeight

(オプション)

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

ImageWidth

(オプション)

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

ExtractBands

(オプション)

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

クラス

(オプション)

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

DataRange

(オプション)

スケーリングまたは正規化を前処理で行った場合の、データ値の範囲。

ModelPadding

(オプション)

推論の入力画像に追加する埋め込みの量。

BatchSize

(オプション)

モデルの各反復処理で使用されるトレーニング サンプルの数。

PerProcessGPUMemoryFraction

(オプション)

モデルの各反復処理で割り当てられる GPU メモリの割合。 デフォルトは 0.95 つまり 95% です。

MetaDataMode

(オプション)

画像チップに使用されるメタデータ ラベルの形式。

ImageSpaceUsed

(オプション)

モデルのトレーニングに使用される参照システムのタイプ。 次のようなオプションがあります。

  • MAP_SPACE
  • PIXEL_SPACE

WellKnownBandNames

(オプション)

各入力バンドの名前 (バンド インデックス順)。 バンドは、他のツールでもこれらの名前で参照されるようになります。

AllTileStats

トレーニング データの各バンドの統計情報

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

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

次に、構成内に追加のオプション パラメーターがあるモデル定義ファイルの例を示します。

{
    "Framework": "PyTorch",
    "ModelConfiguration": "FasterRCNN",
    "ModelFile":"C:\\ModelFolder\\ObjectDetection\\river_detection.pb",
    "ModelType":"ObjectionDetection",
				"Description":"This is a river detection model for  imagery",
    "ImageHeight":448,
    "ImageWidth":448,
    "ExtractBands":[0,1,2,3],
				"DataRange":[0.1, 1.0],
				"ModelPadding":64,
				"BatchSize":8,
				"PerProcessGPUMemoryFraction":0.8,
				"MetaDataMode" : "PASCAL_VOC_rectangles",
				"ImageSpaceUsed" : "MAP_SPACE",
    "Classes" : [
      {
        "Value": 1,
        "Name": "River",
        "Color": [0, 255, 0]
      }
    ],
				"InputRastersProps" : {
						"RasterCount" : 1,
						"SensorName" : "Landsat 8",
						"BandNames" : [
								"Red",
								"Green",
								"Blue",
								"NearInfrared"
						]
				},
				"AllTilesStats" : [
      {
      		"BandName" : "Red",
      		"Min" : 1,
      		"Max" : 60419,
      		"Mean" : 7669.720049855654,
      		"StdDev" : 1512.7546387966217
      },
      {
      		"BandName" : "Green",
      		"Min" : 1,
      		"Max" : 50452,
      		"Mean" : 8771.2498195125681,
      		"StdDev" : 1429.1063589515179
      },
      {
      		"BandName" : "Blue",
      		"Min" : 1,
      		"Max" : 47305,
      		"Mean" : 9306.0475897744163,
      		"StdDev" : 1429.380049936676
      },
      {
      		"BandName" : "NearInfrared",
      		"Min" : 1,
      		"Max" : 60185,
      		"Mean" : 17881.499184561973,
      		"StdDev" : 5550.4055277121679
      }
    ],
}

ディープ ラーニング モデル パッケージ

ディープ ラーニング モデル パッケージ ディープ ラーニング モデル パッケージ (.dlpk) は、オブジェクト検出または画像分類のためにディープ ラーニング推論ツールを実行するのに必要なファイルおよびデータを含んでいます。 このパッケージを DLPK アイテムとしてポータルにアップロードし、ディープ ラーニング ラスター解析ツールの入力として使用できます。

ディープ ラーニング モデル パッケージは、Esri モデル定義ファイル (.emd) およびトレーニング済みモデル ファイルを含む必要があります。 トレーニング済みモデル ファイルの拡張子は、モデルをトレーニングするのに使用したフレームワークによって変わります。 たとえば、TensorFlow を使用してモデルをトレーニングした場合、モデル ファイルは .pb ファイルになり、Keras を使用してトレーニングされたモデル ファイルは、.h5 ファイルを生成します。 モデルをトレーニングするのに使用したモデル フレームワークおよびオプションに応じて、Python ラスター関数 (.py) または追加ファイルを含めることが必要になる場合があります。 複数のトレーニング済みモデル ファイルを 1 つのディープ ラーニング モデル パッケージに含めることができます。

ほとんどのパッケージは任意の ArcGIS Pro バージョンで開くことができます。 デフォルトでは、パッケージのコンテンツは、<User Documents>\ArcGIS\Packages フォルダーに格納されます。 この場所は、「共有とダウンロード オプション」で変更できます。 パッケージを開く際に使用された ArcGIS Pro バージョンがパッケージの機能をサポートしていない場合、その機能は利用できません。

.dlpk パッケージのプロパティの表示や編集、.dlpk パッケージに対するファイルの追加や削除を行うには、[カタログ] ウィンドウの .dlpk パッケージを右クリックし、[プロパティ] をクリックします。

カタログ ウィンドウでディープ ラーニング パッケージを開きます。

プロパティには、次の情報が含まれています。

  • [入力] - .emd ファイル、トレーニングされたモデル ファイル、および推論ツールの実行に必要なその他のファイル。
  • [フレームワーク] - モデルのトレーニングに使用するディープ ラーニング フレームワーク。
  • [モデル構成] - 実行されるモデル トレーニングのタイプ (オブジェクト検出、ピクセル分類、またはフィーチャ分類)。
  • [説明] - モデルの説明。 この情報はオプションで、編集可能です。
  • [概要] - モデルの簡単な概要。 この情報はオプションで、編集可能です。
  • [タグ] - パッケージの識別に使用するタグ。 この情報は、ポータルに格納されている .dlpk パッケージ アイテムで使用されます。

ディープ ラーニング パッケージ プロパティ

[プロパティ] ウィンドウで編集されたプロパティは、[OK] をクリックすると更新されます。 [カタログ] ウィンドウでポータルから .dlpk パッケージ アイテムにアクセスしている場合、ポータル アイテムが更新されます。

.dlpk パッケージの作成方法については、「ディープ ラーニング モデル パッケージの共有」をご参照ください。

関連トピック