ディープ ラーニングを使用したピクセルの分類 (Classify Pixels Using Deep Learning) (Image Analyst)

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

サマリー

入力ラスターにトレーニング済みディープ ラーニング モデルを実行して、有効な各ピクセルにクラス ラベルを割り当てた分類済みラスターを作成します。

このツールは、トレーニング済みのモデル情報を含んでいるモデル定義ファイルを必要とします。 モデルは、[ディープ ラーニング モデルのトレーニング (Train Deep Learning Model)] ツールを使用するか、TensorFlow、PyTorch、または Keras などのサードパーティのトレーニング ソフトウェアによって、トレーニングできます。 モデル定義ファイルには、Esri モデル定義 JSON ファイル (*.emd) またはディープ ラーニング モデル パッケージを使用できます。モデル定義ファイルは、各オブジェクトを処理するために呼び出される Python ラスター関数のパス、およびトレーニング済みのバイナリ ディープ ラーニング モデル ファイルのパスを含む必要があります。

使用法

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

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

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

  • Esri Python ラスター関数の GitHub ページ Python ラスター関数の構造に、このツールの使用例が記載されています。 また、GitHub リポジトリの例と手順に従って、カスタム Python モジュールを記述することもできます。

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

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

  • 次のサンプル コードは、Esri モデル定義ファイル (*.emd) を使用します。

    {
        "Framework":"TensorFlow",
        "ModelConfiguration":"deeplab",
        "ModelFile":"\\Data\\ImgClassification\\TF\\froz_inf_graph.pb",
        "ModelType":"ImageClassification",
        "ExtractBands":[0,1,2],
        "ImageHeight":513,
        "ImageWidth":513,
        "Classes" : [
            {
                "Value":0,
                "Name":"Evergreen Forest",
                "Color":[0, 51, 0]
             },
             {
                "Value":1,
                "Name":"Grassland/Herbaceous",
                "Color":[241, 185, 137]
             },
             {
                "Value":2,
                "Name":"Bare Land",
                "Color":[236, 236, 0]
             },
             {
                "Value":3,
                "Name":"Open Water",
                "Color":[0, 0, 117]
             },
             {
                "Value":4,
                "Name":"Scrub/Shrub",
                "Color":[102, 102, 0]
             },
             {
                "Value":5,
                "Name":"Impervious Surface",
                "Color":[236, 236, 236]
             }
        ]
    }
  • このツールの実行要件および発生する可能性のある問題の詳細については、「ディープ ラーニングに関するよくある質問」をご参照ください。

パラメーター

ラベル説明データ タイプ
入力ラスター

分類対象の入力ラスター データセット。 この入力には、モザイク データセット、イメージ サービス、または画像のフォルダー内の単一のラスターまたは複数のラスターを指定することができます。

Raster Dataset; Raster Layer; Mosaic Layer; Image Service; MapServer; Map Server Layer; Internet Tiled Layer; Folder
モデル定義

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

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

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

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

Value Table
処理モード

モザイク データセットまたはイメージ サービス内のすべてのラスター アイテムを処理する方法を指定します。 入力ラスターがモザイク データセットまたはイメージ サービスである場合、このパラメーターが適用されます。

  • モザイク画像として処理 —モザイク データセットまたはイメージ サービス内のすべてのラスター アイテムがモザイク化され、処理されます。 これがデフォルトです。
  • すべてのラスター アイテムを個別に処理 —モザイク データセットまたはイメージ サービス内のすべてのラスター アイテムが、個別の画像として処理されます。
String
出力フォルダー
(オプション)

出力分類ラスターが格納されるフォルダー。モザイク データセットは、このフォルダー内の分類されたラスターを使用して生成されます。

このパラメーターは、入力ラスターが画像のフォルダー、またはすべてのアイテムが個別に処理されるモザイク データセットである場合に必須です。デフォルトは、プロジェクト フォルダー内のフォルダーです。

Folder

戻り値

ラベル説明データ タイプ
出力分類ラスター

分類されたラスターの名前、または分類されたラスターを含むモザイク データセットの名前。

Raster

ClassifyPixelsUsingDeepLearning(in_raster, in_model_definition, {arguments}, processing_mode, {out_classified_folder})
名前説明データ タイプ
in_raster

分類対象の入力ラスター データセット。 この入力には、モザイク データセット、イメージ サービス、または画像のフォルダー内の単一のラスターまたは複数のラスターを指定することができます。

Raster Dataset; Raster Layer; Mosaic Layer; Image Service; MapServer; Map Server Layer; Internet Tiled Layer; Folder
in_model_definition

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

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

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

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

Value Table
processing_mode

モザイク データセットまたはイメージ サービス内のすべてのラスター アイテムを処理する方法を指定します。 入力ラスターがモザイク データセットまたはイメージ サービスである場合、このパラメーターが適用されます。

  • PROCESS_AS_MOSAICKED_IMAGEモザイク データセットまたはイメージ サービス内のすべてのラスター アイテムがモザイク化され、処理されます。 これがデフォルトです。
  • PROCESS_ITEMS_SEPARATELYモザイク データセットまたはイメージ サービス内のすべてのラスター アイテムが、個別の画像として処理されます。
String
out_classified_folder
(オプション)

出力分類ラスターが格納されるフォルダー。モザイク データセットは、このフォルダー内の分類されたラスターを使用して生成されます。

このパラメーターは、入力ラスターが画像のフォルダー、またはすべてのアイテムが個別に処理されるモザイク データセットである場合に必須です。デフォルトは、プロジェクト フォルダー内のフォルダーです。

Folder

戻り値

名前説明データ タイプ
out_classified_raster

分類されたラスターの名前、または分類されたラスターを含むモザイク データセットの名前。

Raster

コードのサンプル

ClassifyPixelsUsingDeepLearning (ディープ ラーニングを使用したピクセルの分類) の例 1 (Python ウィンドウ)

次の例では、ClassifyPixelsUsingDeepLearning ツールを使用して、カスタム ピクセル分類に基づいてラスターを分類しています。

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

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

out_classified_raster = ClassifyPixelsUsingDeepLearning
     ("c:\\classifydata\\moncton_seg.tif", "c:\\classifydata\\moncton_sig.emd", 
     "padding 0; batch_size 16", "PROCESS_AS_MOSAICKED_IMAGE")
Out_classified_raster.save("c:\\classifydata\\classified_moncton.tif")
ClassifyPixelsUsingDeepLearning (ディープ ラーニングを使用したピクセルの分類) の例 2 (スタンドアロン スクリプト)

次の例では、ClassifyPixelsUsingDeepLearning ツールを使用して、カスタム ピクセル分類に基づいてラスターを分類しています。

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

"""
Usage: ClassifyPixelsUsingDeepLearning(in_raster,out_classified_raster, 
       in_classifier_definition, {arguments}, {processing_mode})
                      
"""

# Set local variables
in_raster = "c:\\classifydata\\moncton_seg.tif"
in_model_definition = "c:\\classifydata\\moncton_sig.emd"
model_arguments = "padding 0; batch_size 16"
processing_mode = "PROCESS_AS_MOSAICKED_IMAGE"

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

# Execute 
Out_classified_raster = ClassifyPixelsUsingDeepLearning(in_raster, 
                        in_model_definition, model_arguments, processing_mode)
Out_classified_raster.save("c:\\classifydata\\classified_moncton.tif")

関連トピック