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

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

サマリー

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

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

使用法

  • このツールの入力は、以前の画像と最近の画像の 2 つの画像です。 出力は、2 つの入力ラスター間の変化を示す分類済みラスター データセットです。

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

    ArcGIS AllSource のディープ ラーニング フレームワークを使用するようにコンピューターを設定するには、「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 に設定されます。

  • このツールは、複数の GPU をサポートおよび使用します (使用可能な場合)。 特定の GPU を使用するには、[GPU ID] 環境を指定します。 GPU ID が設定されていない場合、ツールは使用可能なすべての GPU を使用します。 これがデフォルトです。

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

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

パラメーター

ラベル説明データ タイプ
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")

関連トピック