ディープ ラーニングを使用して変化を検出 (Detect Change Using Deep Learning) (Image Analyst)

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

サマリー

トレーニング済みのディープ ラーニング モデルを実行して、2 つのラスター間の変化を検出します。

このツールは、トレーニング済みのモデル情報を含んでいるモデル定義ファイルを必要とします。 モデル定義ファイルには、Esri モデル定義 JSON ファイル (.emd) またはディープ ラーニング モデル パッケージを使用できます。モデル定義ファイルは、各オブジェクトを処理するために呼び出される Python ラスター関数のパス、およびトレーニング済みのバイナリ ディープ ラーニング モデル ファイルのパスを含む必要があります。

使用法

  • このツールの入力は、前の時間の画像と最新の時間の画像の 2 つの画像です。 出力は、2 つのラスター入力間の変化を示す分類ラスター データセットになります。

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

    ArcGIS Pro のディープ ラーニング フレームワークを使用するようにコンピューターを設定するには、「ArcGIS 用のディープ ラーニング フレームワークのインストール」をご参照ください。

  • このツールは、サードパーティのディープ ラーニング Python API (TensorFlow、PyTorch、Keras など) を呼び出し、指定された Python ラスター関数を使用して、各オブジェクトを処理します。

  • [モデル定義] パラメーター値には、Esri モデル定義 JSON ファイル (.emd)、JSON 文字列、またはディープ ラーニング モデル パッケージ (.dlpk) を指定することができます。 JSON 文字列は、このツールがサーバーで使用されている場合に便利で、*.emd ファイルをアップロードする代わりに JSON 文字列を貼り付けることができます。 *.dlpk ファイルはローカルに格納する必要があります。

  • ミニバッチ サイズ、パディング サイズなど、追加の入力パラメーターが必要な場合があります。

  • モデル定義の JSON ファイル (.emd) については、下記のサンプルをご参照ください。

    モデル定義の JSON ファイルのサンプル

    
    {
       "Framework": "",
       "ModelConfiguration":" ",
       "ModelFile":"",
       "InferenceFunction":"",
       "ModelType":"",
       "ImageHeight":256,
       "ImageWidth":256,
       "ExtractBands":[0,1,2],
       "CropSizeFixed": 1,
       "BlackenAroundFeature": 1,
          "Classes": [
          {
             "Value": 0,
                "Name": "Building",
                "Color": [255, 0, 0]
               	}
       ]
    }

  • バッチ サイズを大きくすると、ツールのパフォーマンスが向上しますが、バッチ サイズが増加するにつれて、使用されるメモリ量が増加します。 メモリ不足エラーが発生した場合は、より小さなバッチ サイズを使用してください。 batch_size 値を調整するには、[引数] パラメーターを使用します。

  • バッチ サイズは 1、4、9、16、25、64 などの平方数になります。 入力値が完全な平方数でない場合は、最も大きな平方数が使用されます。 たとえば、6 という値を指定した場合は、バッチ サイズが 4 に設定されます。

  • このツールの実行要件および発生する可能性のある問題の詳細については、「ディープ ラーニングに関するよくある質問」をご参照ください。

  • ディープ ラーニングの詳細については、「ArcGIS Pro のディープ ラーニング」をご参照ください。

パラメーター

ラベル説明データ タイプ
From ラスター

変化前の入力ラスター。

Raster Dataset; Raster Layer; Mosaic Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer
To ラスター

変化後の入力ラスター。

Raster Dataset; Raster Layer; Mosaic Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer
出力分類ラスター

変化を示す出力分類ラスター。

Raster Dataset
モデル定義

[モデル定義] パラメーター値には、Esri モデル定義 JSON ファイル (.emd)、JSON 文字列、またはディープ ラーニング モデル パッケージ (.dlpk) を指定することができます。 JSON 文字列は、このツールがサーバーで使用されている場合に便利で、*.emd ファイルをアップロードする代わりに JSON 文字列を貼り付けることができます。 *.dlpk ファイルはローカルに格納する必要があります。

これには、ディープ ラーニング バイナリ モデル ファイルへのパス、使用される Python ラスター関数へのパス、および他のパラメーター (望ましいタイル サイズやゼロ詰めなど) が含まれます。

File; String
引数
(オプション)

[モデル定義] パラメーターからの情報が、このパラメーターの設定に使用されます。 これらの引数はモデル アーキテクチャによって異なります。 ArcGIS でトレーニングされたモデルでサポートされているモデル引数を次に示します。 ArcGIS 事前トレーニング済みモデルとカスタム ディープ ラーニング モデルでは、このツールでサポートされている追加の引数を利用できることがあります。

  • padding - 隣接するタイルの予測がブレンドされる画像タイルの境界のピクセル数。 出力を滑らかにすると同時にアーティファクトを減らすには、この値を大きくします。 パディングの最大値には、タイル サイズの値の半分を設定できます。 この引数はすべてのモデル アーキテクチャで使用できます。
  • batch_size - モデル推論の各ステップで処理された画像タイルの数。 これは、お使いのグラフィックス カードのメモリに応じて異なります。 この引数はすべてのモデル アーキテクチャで使用できます。

Value Table

DetectChangeUsingDeepLearning(from_raster, to_raster, out_classified_raster, in_model_definition, {arguments})
名前説明データ タイプ
from_raster

変化前の入力ラスター。

Raster Dataset; Raster Layer; Mosaic Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer
to_raster

変化後の入力ラスター。

Raster Dataset; Raster Layer; Mosaic Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer
out_classified_raster

変化を示す出力分類ラスター。

Raster Dataset
in_model_definition

in_model_definition パラメーター値には、Esri モデル定義 JSON ファイル (.emd)、JSON 文字列、またはディープ ラーニング モデル パッケージ (.dlpk) を指定することができます。 JSON 文字列は、このツールがサーバーで使用されている場合に便利で、*.emd ファイルをアップロードする代わりに JSON 文字列を貼り付けることができます。 *.dlpk ファイルはローカルに格納する必要があります。

これには、ディープ ラーニング バイナリ モデル ファイルへのパス、使用される Python ラスター関数へのパス、および他のパラメーター (望ましいタイル サイズやゼロ詰めなど) が含まれます。

File; String
arguments
[arguments,...]
(オプション)

in_model_definition パラメーターからの情報が、このパラメーターのデフォルト値の設定に使用されます。 これらの引数はモデル アーキテクチャによって異なります。 ArcGIS でトレーニングされたモデルでサポートされているモデル引数を次に示します。 ArcGIS 事前トレーニング済みモデルとカスタム ディープ ラーニング モデルでは、このツールでサポートされている追加の引数を利用できることがあります。

  • padding - 隣接するタイルの予測がブレンドされる画像タイルの境界のピクセル数。 出力を滑らかにすると同時にアーティファクトを減らすには、この値を大きくします。 パディングの最大値には、タイル サイズの値の半分を設定できます。 この引数はすべてのモデル アーキテクチャで使用できます。
  • batch_size - モデル推論の各ステップで処理された画像タイルの数。 これは、お使いのグラフィックス カードのメモリに応じて異なります。 この引数はすべてのモデル アーキテクチャで使用できます。

Value Table

コードのサンプル

DetectChangeUsingDeepLearning の例 1 (Python ウィンドウ)

この例では、ディープ ラーニング モデルを実行して、2 つの画像間の違いを見つけます。

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


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


DetectChangeUsingDeepLearning("c://detectchange//input_image1.tif", 
     "c://detectchange//input_image2.tif", "c://detectchange//output_difference.tif", 
     "c://detectchange/detectBuilding.emd", "padding 0;score_threshold 0.6;batch_size 4")
DetectChangeUsingDeepLearning の例 2 (スタンドアロン スクリプト)

この例では、ディープ ラーニング モデルを実行して、2 つの画像間の違いを見つけます。

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

""" 
Usage: DetectObjectsUsingDeepLearning(from_raster, to_raster, out_classified_raster, 
    in_model_definition, {model_arguments}) 
"""

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

# Set local variable
from_raster = r"c:/detectchange/input_image1.tif"
to_raster = r"c:/detectchange/input_image2.tif"
out_classified_raster = r"c:/detectchange/output_difference.tif"
in_model_definition = r"c:/ detectchange/detectbuilding.emd"

# arcpy.env.processorType = "GPU"
# arcpy.env.gpuId = 0

# Execute
DetectChangeUsingDeepLearning(from_raster, to_raster, out_classified_raster, 
    in_model_definition, "padding 0;score_threshold 0.6;batch_size 4")

ライセンス情報

  • Basic: 次のものが必要 Image Analyst
  • Standard: 次のものが必要 Image Analyst
  • Advanced: 次のものが必要 Image Analyst

関連トピック