Skip To Content

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

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

概要

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

トレーニング済みディープ ラーニング モデル パッケージは、Esri モデル定義 (*.emd) JSON ファイルで構成されています。このファイルには、各ラスター タイルを処理するために呼び出される Python ラスター関数へのパスと、TensorFlow や CNTK などのサードパーティ製トレーニング ソフトウェアから作成された、トレーニング済みバイナリ ディープ ラーニング モデル ファイルへのパスが含まれています。

使用法

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

  • Python 環境の変更またはクローン化については、Python Package Manager をご参照ください。

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

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

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

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

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

    {
        "Framework":"TensorFlow",
        "ModelConfiguration":"deeplab",
        "InferenceFunction":"C:\\DeepLearning\\ImageClassifier.py",
        "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]
             }
        ]
    }

構文

ClassifyPixelsUsingDeepLearning (in_raster, in_model_definition, {arguments})
パラメーター説明データ タイプ
in_raster

分類する入力画像。

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

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

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

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

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

Value Table

戻り値

名前説明データ タイプ
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")

ClassifyPixelsUsingDeepLearning("c:/classifydata/moncton_seg.tif",
     "c:/classifydata/moncton.tif", "c:/classifydata/moncton_sig.emd")
ClassifyPixelsUsingDeepLearning (ディープ ラーニングを使用したピクセルの分類) の例 2 (スタンドアロン スクリプト)

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

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

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

# Set local variables
in_raster = "c:/classifydata/moncton_seg.tif"
out_classified_raster = "c:/classifydata/moncton.tif"
in_model_definition = "c:/classifydata/moncton_sig.emd"


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

# Execute 
ClassifyPixelsUsingDeepLearning("c:/classifydata/moncton_seg.tif",
     "c:/classifydata/moncton.tif", "c:/classifydata/moncton_sig.emd", 
     "padding 2")

ライセンス情報

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

関連トピック