ディープ ラーニングを使用したオブジェクトの分類 (Classify Objects Using Deep Learning) (ラスター解析)

サマリー

入力ラスターとオプションのフィーチャクラスに対してトレーニング済みディープ ラーニング モデルを実行し、各入力オブジェクトまたはフィーチャにクラス ラベルまたはカテゴリ ラベルを割り当てたフィーチャクラスまたはテーブルを作成します。

ディープ ラーニングを使用したオブジェクトの分類 (Classify Objects Using Deep Learning) ツールの図

使用法

  • ラスター解析サーバーの Python 環境が、適切なディープ ラーニング フレームワーク Python API (TensorFlow、CNTK など) を使用して構成されている必要があります。

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

  • このツールの入力モデルは、ポータルからのディープ ラーニング パッケージ (*.dlpk ファイル) アイテムだけを受け取ります。

  • 入力モデルの選択または指定後、ツールはラスター解析サーバーからモデル引数の情報を取得します。入力モデルが無効であったり、ラスター解析サーバーがディープ ラーニング フレームワークによって適切に構成されていなかったりすると、ツールはこうした情報を取得できません。

パラメーター

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

分類する入力イメージ。 このイメージには、イメージ サービスの URL、ラスター レイヤー、イメージ サービス、マップ サーバー レイヤー、またはインターネット タイル レイヤーを指定できます。

Raster Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer; String
入力モデル

入力イメージ内のオブジェクトを分類するために使用されるディープ ラーニング モデル。 この入力は、ディープ ラーニング バイナリ モデル ファイルへのパス、使用される Python ラスター関数へのパス、および他のパラメーター (望ましいタイル サイズやゼロ詰めなど) が含まれるディープ ラーニング パッケージ (*.dlpk) アイテムの URL です。

File
出力名

分類されたオブジェクトを含むフィーチャ サービスの名前。

String
入力フィーチャ
(オプション)

分類されラベル付けされる各オブジェクトまたはフィーチャの位置を識別するフィーチャ サービス。 入力フィーチャ サービスの各行は、単一のオブジェクトまたはフィーチャを表します。

入力フィーチャ サービスが指定されない場合、各入力画像は単一オブジェクトとして分類されます。 入力画像が空間参照を使用する場合、このツールからの出力はフィーチャクラスとなり、各画像の範囲が各ラベル付きフィーチャクラスの境界ジオメトリとして使用されます。 入力画像が空間参照されていない場合、このツールからの出力は、各画像の画像 ID 値とクラス ラベルを含むテーブルとなります。

Feature Layer; Map Server Layer; String
モデル引数
(オプション)

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

Value Table
クラス ラベル フィールド
(オプション)

出力フィーチャクラス内のクラスまたはカテゴリ ラベルを含むフィールドの名前。

フィールド名を指定しないと、出力フィーチャクラスに ClassLabel という名前の新しいフィールドが生成されます。

String
処理モード
(オプション)

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

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

派生した出力

ラベル説明データ タイプ
出力オブジェクト

出力フィーチャ セット。

Feature Set

arcpy.ra.ClassifyObjectsUsingDeepLearning(inputRaster, inputModel, outputName, {inputFeatures}, {modelArguments}, {classLabelField}, {processingMode})
名前説明データ タイプ
inputRaster

分類する入力イメージ。 このイメージには、イメージ サービスの URL、ラスター レイヤー、イメージ サービス、マップ サーバー レイヤー、またはインターネット タイル レイヤーを指定できます。

Raster Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer; String
inputModel

入力イメージ内のオブジェクトを分類するために使用されるディープ ラーニング モデル。 この入力は、ディープ ラーニング バイナリ モデル ファイルへのパス、使用される Python ラスター関数へのパス、および他のパラメーター (望ましいタイル サイズやゼロ詰めなど) が含まれるディープ ラーニング パッケージ (*.dlpk) アイテムの URL です。

File
outputName

分類されたオブジェクトを含むフィーチャ サービスの名前。

String
inputFeatures
(オプション)

分類されラベル付けされる各オブジェクトまたはフィーチャの位置を識別するフィーチャ サービス。 入力フィーチャ サービスの各行は、単一のオブジェクトまたはフィーチャを表します。

入力フィーチャ サービスが指定されない場合、各入力画像は単一オブジェクトとして分類されます。 入力画像が空間参照を使用する場合、このツールからの出力はフィーチャクラスとなり、各画像の範囲が各ラベル付きフィーチャクラスの境界ジオメトリとして使用されます。 入力画像が空間参照されていない場合、このツールからの出力は、各画像の画像 ID 値とクラス ラベルを含むテーブルとなります。

Feature Layer; Map Server Layer; String
modelArguments
[modelArguments,...]
(オプション)

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

Value Table
classLabelField
(オプション)

出力フィーチャクラス内のクラスまたはカテゴリ ラベルを含むフィールドの名前。

フィールド名を指定しないと、出力フィーチャクラスに ClassLabel という名前の新しいフィールドが生成されます。

String
processingMode
(オプション)

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

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

派生した出力

名前説明データ タイプ
outObjects

出力フィーチャ セット。

Feature Set

コードのサンプル

ClassifyObjectsUsingDeepLearning (ディープラーニングを使用したオブジェクトの分類) の例 1 (Python ウィンドウ)

この例では、ラスター解析配置でディープ ラーニングを使用して、分類モデルに基づいてラスター内のフィーチャを分類し、ラスターをポータルでホスト イメージ レイヤーとして公開します。

import arcpy

arcpy.ClassifyObjectsUsingDeepLearning_ra(
	"https://myserver/rest/services/Buildings/ImageServer", 
	"https://myserver/rest/services/Hosted/BuildingFootprints/FeatureServer/0",
	"https://myportal/sharing/rest/content/items/itemId", "BuildingDamage",
	"batch_size 4", "ClassLabel","PROCESS_AS_MOSAICKED_IMAGE")
ClassifyObjectsUsingDeepLearning (ディープ ラーニングを使用したオブジェクトの分類) の例 2 (スタンドアロン スクリプト)

この例では、ラスター解析配置でディープ ラーニングを使用して、分類モデルに基づいてラスター内のフィーチャを分類し、ラスターをポータルでホスト イメージ レイヤーとして公開します。

#---------------------------------------------------------------------------
# Name: ClassifyObjectsUsingDeepLearning_example02.py
# Requirements: ArcGIS Image Server
# Import system modules
import arcpy

# Set local variables
inputRaster = "https://myserver/rest/services/Buildings/ImageServer"
inputFeatures = "https://myserver/rest/services/Hosted/BuildingFootprints/FeatureServer/0"
inputModel = "https://myportal/sharing/rest/content/items/itemId"
outputName = "BuildingDamage"
modelArguments = "batch_size 4"
classLabelField = "ClassLabel"
processingMode = "PROCESS_AS_MOSAICKED_IMAGE"

# Execute Classify Objects Using Deep Learning 
arcpy.ClassifyObjectsUsingDeepLearning_ra(inputRaster, inputFeatures, 
	inputModel, outputName, modelArguments, classLabelField , processingMode)