ディープ ラーニングを使用したピクセルの分類 (Image Analyst ツール)
サマリー
入力ラスターにトレーニング済みディープ ラーニング モデルを実行して、有効な各ピクセルにクラス ラベルを割り当てた分類済みラスターを作成します。
このツールは、トレーニング済みのモデル情報を含んでいるモデル定義ファイルを必要とします。 モデルは、ディープ ラーニング モデルのトレーニング ツールを使用するか、PyTorch などのサードパーティーのトレーニング ソフトウェアによって、トレーニングできます。 モデル定義ファイルには、Esri モデル定義 JSON ファイル (.emd) またはディープ ラーニング モデル パッケージを使用できます。モデル定義ファイルは、各オブジェクトを処理するために呼び出される Python ラスター関数のパス、およびトレーニング済みのバイナリー ディープ ラーニング モデル ファイルのパスを含む必要があります。
使用法
ArcGIS Pro Python 環境に適切なディープ ラーニング フレームワークの Python API (PyTorch など) をインストールする必要があります。インストールしない場合、Esri モデル定義ファイルをツールに追加するとエラーが発生します。 Esri モデル定義ファイルの作成者から適切なフレームワーク情報を入手します。
ArcGIS Pro のディープ ラーニング フレームワークを使用するようにコンピューターを設定するには、ArcGIS 用のディープ ラーニング フレームワークのインストール をご参照ください。
このツールは、サードパーティーのディープ ラーニング Python API (PyTorch など) を呼び出し、指定された Python ラスター関数を使用して、各オブジェクトを処理します。
Esri Python ラスター関数の GitHub ページ にこのツールの使用例が記載されています。 また、GitHub リポジトリーの例と手順に従って、カスタム Python モジュールを記述することもできます。
モデル定義 パラメーター値には、Esri モデル定義の JSON ファイル (.emd)、JSON 文字列、またはディープ ラーニング モデル パッケージ (.dlpk) を指定することができます。 JSON 文字列は、このツールがサーバーで使用されている場合に便利で、.emd ファイルをアップロードする代わりに JSON 文字列を貼り付けることができます。 .dlpk ファイルはローカルに格納する必要があります。
ディープ ラーニングの詳細については、ArcGIS Image Analyst エクステンションを使用したディープ ラーニング をご参照ください。
入力ラスターには、画像が添付された単一のラスター、複数のラスター、またはフィーチャクラスを使用できます。 添付ファイルの詳細については、添付ファイルの追加または削除 をご参照ください。
バッチ サイズを増やすと、ツールのパフォーマンスが向上します。ただし、バッチ サイズの増加に伴って、使用されるメモリー量も多くなります。 メモリー不足エラーが発生した場合は、より小さなバッチ サイズを使用してください。 batch_size 値を調整するには、引数 パラメーターを使用します。
バッチ サイズは、1、4、9、16、25、64 などの平方数です。 入力値が完全な平方数でない場合は、最も大きな平方数が使用されます。 たとえば、6 という値を指定した場合は、バッチ サイズが 4 に設定されます。
このツールは、複数の GPU をサポートおよび使用します (使用可能な場合)。 特定の GPU を使用するには、[GPU ID] 環境を指定します。 GPU ID が設定されていない場合、ツールは使用可能なすべての GPU を使用します。 これがデフォルトです。
- プロセッサー タイプ 環境が CPU に設定され、並列処理ファクター 環境が指定されていない場合、このツールでは 並列処理ファクター の値として 50% が使用されます。
パラメーター
|
ラベル
|
説明
|
データ タイプ
|
|
入力ラスター
|
分類される入力ラスター データセット。
この入力には、モザイク データセット、イメージ サービス、画像のフォルダー、または画像の添付ファイルを含むフィーチャクラス内の単一のラスターまたは複数のラスターを指定することができます。
|
Raster Dataset; Raster Layer; Mosaic Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer; Folder; Feature Layer; Feature Class
|
|
モデル定義
|
モデル定義 パラメーター値には、Esri モデル定義の JSON ファイル (.emd)、JSON 文字列、またはディープ ラーニング モデル パッケージ (.dlpk) を指定することができます。 JSON 文字列は、このツールがサーバーで使用されている場合に便利で、.emd ファイルをアップロードする代わりに JSON 文字列を貼り付けることができます。 .dlpk ファイルはローカルに格納する必要があります。
これには、ディープ ラーニング バイナリー モデル ファイルへのパス、使用される Python ラスター関数へのパス、および他のパラメーター (望ましいタイル サイズやゼロ詰めなど) が含まれます。
|
File; String
|
|
引数
(オプション)
|
モデル定義 パラメーターからの情報が、このパラメーターの設定に使用されます。 これらの引数は、モデル アークテクチャによって変わります。 ArcGIS でトレーニングされるモデルのサポート対象モデル引数は次のとおりです。 ArcGIS の事前トレーニング済みモデルとカスタム ディープ ラーニング モデルは、別途ツールがサポートする引数を持つ場合があります。
batch_size—モデル推論の各ステップで処理された画像タイルの数。 これは、お使いのグラフィックス カードのメモリーに応じて異なります。 この引数はすべてのモデル アーキテクチャーで使用できます。
direction—画像が 2 つのドメイン間で変換されます。 オプションは AtoB と BtoA です。 この引数は CycleGAN アーキテクチャーでのみ使用できます。 この引数の詳細については、CycleGAN の機能 をご参照ください。
merge_policy—拡張された予測のマージに関するポリシー。 使用可能なオプションは mean、max、および min です。 これは、テスト時間の延長が使用される場合に限り適用できます。 この引数は MultiTaskRoadExtractor および ConnectNet アーキテクチャーで使用できます。 モデルの .emd ファイルに IsEdgeDetection が存在する場合は、BDCNEdgeDetector、HEDEdgeDetector、および MMSegmentation アーキテクチャーも利用できます。
n_timestep—使用される時間ステップ数。 デフォルトは 200 です。 生成データの質に応じて増減することができます。 この引数は、Super Resolution with SR3 backbone モデル アーキテクチャーでのみサポートされます。
padding—隣接するタイルの予測がブレンドされる画像タイルの境界のピクセル数。 出力を滑らかにすると同時にアーティファクトを減らすには、この値を大きくします。 パディングの最大値には、タイル サイズの値の半分を設定できます。 この引数はすべてのモデル アーキテクチャーで使用できます。
predict_background—背景クラスを分類するかどうかを指定します。 true の場合、背景クラスも分類されます。 この引数は UNET、PSPNET、DeepLab、MMSegmentation、SAMLoRA アーキテクチャーで使用できます。
return_probability_raster—出力が確率ラスターであるかどうかを指定します。 true の場合、出力は確率ラスターになります。 false の場合、出力はバイナリー分類ラスターになります。 デフォルトは false です。 モデルの .emd ファイルで ArcGISLearnVersion が 1.8.4 以降の場合、MultiTaskRoadExtractor および ConnectNet アーキテクチャーを利用できます。 ArcGISLearnVersion が 1.8.4 以降であり、モデルの .emd ファイルに IsEdgeDetection が存在する場合は、BDCNEdgeDetector、HEDEdgeDetector、および MMSegmentation アーキテクチャーも利用できます。
sampling_type—使用されるサンプリングのタイプ。 ddim と ddpm の 2 つのサンプリング タイプを使用できます。 デフォルトは ddim で、ddpm に比べて少ない時間ステップで結果が生成されます。 この引数は、Super Resolution with SR3 backbone モデル アーキテクチャーでのみサポートされます。
schedule—スケジュールのタイプを設定するオプションの文字列。 デフォルトのスケジュールは、トレーニングされたモデルと同じです。 この引数は、Super Resolution with SR3 backbone モデル アーキテクチャーでのみサポートされます。
test_time_augmentation—予測中にテスト時間の延長を実行するかどうかを指定します。 true の場合、入力画像の反転および回転バリアントの予測は、最終出力にマージされます。 この引数は UNET、PSPNET、DeepLab、HEDEdgeDetector、BDCNEdgeDetector、ConnectNet、MMSegmentation、MultiTaskRoadExtractor、および SAMLoRA アーキテクチャーで使用できます。
tile_size—予測のために画像が分割される画像タイルの幅と高さ。 この引数は CycleGAN アーキテクチャーでのみ使用できます。
thinning—予測されたエッジを細線化またはスケルトン化するかどうかを指定します。 オプションは True と False です。 モデルの .emd ファイルに IsEdgeDetection が存在する場合は、BDCNEdgeDetector、HEDEdgeDetector、および MMSegmentation アーキテクチャーを利用できます。
threshold—この閾値よりも信頼度スコアが高い予測が、結果に追加されます。 可能な値の範囲は 0 ~ 1.0 です。 モデルの .emd ファイルで ArcGISLearnVersion が 1.8.4 以降の場合、MultiTaskRoadExtractor および ConnectNet アーキテクチャーを利用できます。 ArcGISLearnVersion が 1.8.4 以降であり、モデルの .emd ファイルに IsEdgeDetection が存在する場合は、BDCNEdgeDetector、HEDEdgeDetector、および MMSegmentation アーキテクチャーも利用できます。
値テーブル列:
|
Value Table
|
|
処理モード
|
モザイク データセットまたはイメージ サービス内のすべてのラスター アイテムを処理する方法を指定します。 入力ラスターがモザイク データセットまたはイメージ サービスである場合、このパラメーターが適用されます。
|
String
|
|
出力フォルダー
(オプション)
|
出力分類ラスターが格納されるフォルダー。 モザイク データセットは、このフォルダー内の分類されたラスターを使用して生成されます。
このパラメーターは、入力ラスターが画像のフォルダー、またはすべてのアイテムが個別に処理されるモザイク データセットである場合に必須です。 デフォルトは、プロジェクト フォルダー内のフォルダーです。
|
Folder
|
|
出力フィーチャ
(オプション)
|
出力分類ラスターが格納されるフィーチャクラス。
このパラメーターは、入力ラスターが画像のフィーチャクラスの場合は必須です。
フィーチャクラスがすでに存在する場合、既存のフィーチャクラスに結果が追加されます。
|
Feature Class
|
|
添付ファイルの上書き
(オプション)
|
既存の画像添付ファイルを上書きするかどうかを指定します。
このパラメーターは、入力ラスター パラメーターの値が画像添付ファイルを含むフィーチャクラスの場合にのみ有効です。
|
Boolean
|
|
ピクセル空間の使用
(オプション)
|
マップ空間の画像に対して推論を実行するかどうかを指定します。
|
Boolean
|
戻り値
|
ラベル
|
説明
|
データ タイプ
|
|
出力ラスター データセット
|
結果を含むラスターまたはモザイク データセットの名前。
|
Raster
|
ClassifyPixelsUsingDeepLearning(in_raster, in_model_definition, {arguments}, processing_mode, {out_classified_folder}, {out_featureclass}, {overwrite_attachments}, {use_pixelspace})
|
名前
|
説明
|
データ タイプ
|
|
in_raster
|
分類される入力ラスター データセット。
この入力には、モザイク データセット、イメージ サービス、画像のフォルダー、または画像の添付ファイルを含むフィーチャクラス内の単一のラスターまたは複数のラスターを指定することができます。
|
Raster Dataset; Raster Layer; Mosaic Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer; Folder; Feature Layer; Feature Class
|
|
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 の事前トレーニング済みモデルとカスタム ディープ ラーニング モデルは、別途ツールがサポートする引数を持つ場合があります。
batch_size—モデル推論の各ステップで処理された画像タイルの数。 これは、お使いのグラフィックス カードのメモリーに応じて異なります。 この引数はすべてのモデル アーキテクチャーで使用できます。
direction—画像が 2 つのドメイン間で変換されます。 オプションは AtoB と BtoA です。 この引数は CycleGAN アーキテクチャーでのみ使用できます。 この引数の詳細については、CycleGAN の機能 をご参照ください。
merge_policy—拡張された予測のマージに関するポリシー。 使用可能なオプションは mean、max、および min です。 これは、テスト時間の延長が使用される場合に限り適用できます。 この引数は MultiTaskRoadExtractor および ConnectNet アーキテクチャーで使用できます。 モデルの .emd ファイルに IsEdgeDetection が存在する場合は、BDCNEdgeDetector、HEDEdgeDetector、および MMSegmentation アーキテクチャーも利用できます。
n_timestep—使用される時間ステップ数。 デフォルトは 200 です。 生成データの質に応じて増減することができます。 この引数は、Super Resolution with SR3 backbone モデル アーキテクチャーでのみサポートされます。
padding—隣接するタイルの予測がブレンドされる画像タイルの境界のピクセル数。 出力を滑らかにすると同時にアーティファクトを減らすには、この値を大きくします。 パディングの最大値には、タイル サイズの値の半分を設定できます。 この引数はすべてのモデル アーキテクチャーで使用できます。
predict_background—背景クラスを分類するかどうかを指定します。 true の場合、背景クラスも分類されます。 この引数は UNET、PSPNET、DeepLab、MMSegmentation、SAMLoRA アーキテクチャーで使用できます。
return_probability_raster—出力が確率ラスターであるかどうかを指定します。 true の場合、出力は確率ラスターになります。 false の場合、出力はバイナリー分類ラスターになります。 デフォルトは false です。 モデルの .emd ファイルで ArcGISLearnVersion が 1.8.4 以降の場合、MultiTaskRoadExtractor および ConnectNet アーキテクチャーを利用できます。 ArcGISLearnVersion が 1.8.4 以降であり、モデルの .emd ファイルに IsEdgeDetection が存在する場合は、BDCNEdgeDetector、HEDEdgeDetector、および MMSegmentation アーキテクチャーも利用できます。
sampling_type—使用されるサンプリングのタイプ。 ddim と ddpm の 2 つのサンプリング タイプを使用できます。 デフォルトは ddim で、ddpm に比べて少ない時間ステップで結果が生成されます。 この引数は、Super Resolution with SR3 backbone モデル アーキテクチャーでのみサポートされます。
schedule—スケジュールのタイプを設定するオプションの文字列。 デフォルトのスケジュールは、トレーニングされたモデルと同じです。 この引数は、Super Resolution with SR3 backbone モデル アーキテクチャーでのみサポートされます。
test_time_augmentation—予測中にテスト時間の延長を実行するかどうかを指定します。 true の場合、入力画像の反転および回転バリアントの予測は、最終出力にマージされます。 この引数は UNET、PSPNET、DeepLab、HEDEdgeDetector、BDCNEdgeDetector、ConnectNet、MMSegmentation、MultiTaskRoadExtractor、および SAMLoRA アーキテクチャーで使用できます。
tile_size—予測のために画像が分割される画像タイルの幅と高さ。 この引数は CycleGAN アーキテクチャーでのみ使用できます。
thinning—予測されたエッジを細線化またはスケルトン化するかどうかを指定します。 オプションは True と False です。 モデルの .emd ファイルに IsEdgeDetection が存在する場合は、BDCNEdgeDetector、HEDEdgeDetector、および MMSegmentation アーキテクチャーを利用できます。
threshold—この閾値よりも信頼度スコアが高い予測が、結果に追加されます。 可能な値の範囲は 0 ~ 1.0 です。 モデルの .emd ファイルで ArcGISLearnVersion が 1.8.4 以降の場合、MultiTaskRoadExtractor および ConnectNet アーキテクチャーを利用できます。 ArcGISLearnVersion が 1.8.4 以降であり、モデルの .emd ファイルに IsEdgeDetection が存在する場合は、BDCNEdgeDetector、HEDEdgeDetector、および MMSegmentation アーキテクチャーも利用できます。
値テーブル列:
|
Value Table
|
|
processing_mode
|
モザイク データセットまたはイメージ サービス内のすべてのラスター アイテムを処理する方法を指定します。 入力ラスターがモザイク データセットまたはイメージ サービスである場合、このパラメーターが適用されます。
|
String
|
|
out_classified_folder
(オプション)
|
出力分類ラスターが格納されるフォルダー。 モザイク データセットは、このフォルダー内の分類されたラスターを使用して生成されます。
このパラメーターは、入力ラスターが画像のフォルダー、またはすべてのアイテムが個別に処理されるモザイク データセットである場合に必須です。 デフォルトは、プロジェクト フォルダー内のフォルダーです。
|
Folder
|
|
out_featureclass
(オプション)
|
出力分類ラスターが格納されるフィーチャクラス。
このパラメーターは、入力ラスターが画像のフィーチャクラスの場合は必須です。
フィーチャクラスがすでに存在する場合、既存のフィーチャクラスに結果が追加されます。
|
Feature Class
|
|
overwrite_attachments
(オプション)
|
既存の画像添付ファイルを上書きするかどうかを指定します。
このパラメーターは、in_raster パラメーターの値が画像添付ファイルを含むフィーチャクラスの場合にのみ有効です。
|
Boolean
|
|
use_pixelspace
(オプション)
|
マップ空間の画像に対して推論を実行するかどうかを指定します。
|
Boolean
|
戻り値
|
名前
|
説明
|
データ タイプ
|
|
out_classified_raster
|
結果を含むラスターまたはモザイク データセットの名前。
|
Raster
|
コードのサンプル
ClassifyPixelsUsingDeepLearning の例 1 (Python ウィンドウ)
次の例では、ClassifyPixelsUsingDeepLearning 関数を使用して、カスタム ピクセル分類に基づいてラスターを分類しています。
# Import system modules
import arcpy
from arcpy.ia import *
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 *
# 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"
# Run
Out_classified_raster = ClassifyPixelsUsingDeepLearning(in_raster,
in_model_definition, model_arguments, processing_mode)
Out_classified_raster.save("c:\\classifydata\\classified_moncton.tif")
環境
セル サイズ, 現在のワークスペース, 範囲, 地理座標系変換, GPU ID, マスク, 出力座標系, 並列処理ファクター, プロセッサー タイプ, スクラッチ ワークスペース, スナップ対象ラスター
ライセンス情報
- Basic: Image Analyst が必要
- Standard: Image Analyst が必要
- Advanced: Image Analyst が必要