ディープ ラーニングを使用して変化を検出 (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 に設定されます。

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

  • ディープ ラーニングの詳細については、「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
引数
(オプション)

Python ラスター関数クラスに定義される関数の引数。 ここでは、実験や調整のための追加のディープ ラーニング パラメーターおよび引数 (感度を調整するための信頼性の閾値など) をリストします。 引数の名前は、Python モジュールを読み取ることによって入力されます。

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,...]
(オプション)

Python ラスター関数クラスに定義される関数の引数。 ここでは、実験や調整のための追加のディープ ラーニング パラメーターおよび引数 (感度を調整するための信頼性の閾値など) をリストします。 引数の名前は、Python モジュールを読み取ることによって入力されます。

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

関連トピック