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

サマリー

入力ラスターにトレーニング済みディープ ラーニング モデルを実行して、識別したオブジェクトを含むフィーチャクラスを作成します。フィーチャクラスはポータル内でホスト フィーチャ レイヤーとして共有できます。フィーチャには、検出されたオブジェクトの周囲の境界四角形やポリゴン、またはオブジェクトの中心のポイントを指定できます。

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

使用法

  • ラスター解析 (RA) サーバーの Python 環境は、適切なディープ ラーニング フレームワークの Python API (Tensorflow や CNTK など) によって構成する必要があります。

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

  • [入力モデル] パラメーターは、ポータルからのディープ ラーニング パッケージ (*.dlpk) アイテムのみを使用します。

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

  • オブジェクト検出から重複フィーチャを特定して削除するには、[Non Maximum Suppression] パラメーターを使用します。

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

パラメーター

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

オブジェクトの検出に使用される入力画像。 これは、イメージ サービスの URL、ラスター レイヤー、イメージ サービス、マップ サーバー レイヤー、インターネット タイル レイヤーのどれでも構いません。

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

入力モデルには、ポータルからのディープ ラーニング パッケージ (*.dlpk) アイテムのファイルまたは URL を指定できます。

File
出力名

検出オブジェクトの出力フィーチャ サービスの名前。

String
モデル引数
(オプション)

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

Value Table
Non Maximum Suppression
(オプション)

Non Maximum Suppression を実行するかどうか指定します。これは、重複オブジェクトを特定し、信頼値が低い方の重複フィーチャを削除するものです。

  • オフ - すべての検出オブジェクトが出力フィーチャクラスに含まれます。 これがデフォルトです。
  • オン - 重複する検出オブジェクトが削除されます。

Boolean
信頼度スコア フィールド
(オプション)

オブジェクト検出方法の出力として使用される、信頼度スコアを含むフィーチャ サービス内のフィールド。

このパラメーターは、[Non Maximum Suppression] パラメーターをオンにした場合に必要です。

String
クラス値フィールド
(オプション)

フィーチャ サービス内のクラス値フィールドの名前。

フィールド名が指定されていない場合、Classvalue または Value フィールドが使用されます。 これらのフィールドが存在しない場合、すべてのレコードが 1 つのクラスに属するものとして識別されます。

String
最大オーバーラップ率
(オプション)

2 つの重複したフィーチャの最大オーバーラップ率。結合領域に対する交差領域の比率として定義されます。 デフォルトは 0 です。

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

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

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

派生した出力

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

出力フィーチャ サービス。

Feature Class

arcpy.ra.DetectObjectsUsingDeepLearning(inputRaster, inputModel, outputName, {modelArguments}, {runNMS}, {confidenceScoreField}, {classValueField}, {maxOverlapRatio}, {processingMode})
名前説明データ タイプ
inputRaster

オブジェクトの検出に使用される入力画像。 これは、イメージ サービスの URL、ラスター レイヤー、イメージ サービス、マップ サーバー レイヤー、インターネット タイル レイヤーのどれでも構いません。

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

入力モデルには、ポータルからのディープ ラーニング パッケージ (*.dlpk) アイテムのファイルまたは URL を指定できます。

File
outputName

検出オブジェクトの出力フィーチャ サービスの名前。

String
modelArguments
[modelArguments,...]
(オプション)

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

Value Table
runNMS
(オプション)

Non Maximum Suppression を実行するかどうか指定します。これは、重複オブジェクトを特定し、信頼値が低い方の重複フィーチャを削除するものです。

  • NO_NMSすべての検出オブジェクトが出力フィーチャクラスに含まれます。 これがデフォルトです。
  • NMS重複する検出オブジェクトが削除されます。
Boolean
confidenceScoreField
(オプション)

オブジェクト検出方法の出力として使用される、信頼度スコアを含むフィーチャ サービス内のフィールド。

このパラメーターは、runNMS パラメーターに NMS キーワードを使用した場合に必要です。

String
classValueField
(オプション)

フィーチャ サービス内のクラス値フィールドの名前。

フィールド名が指定されていない場合、Classvalue または Value フィールドが使用されます。 これらのフィールドが存在しない場合、すべてのレコードが 1 つのクラスに属するものとして識別されます。

String
maxOverlapRatio
(オプション)

2 つの重複したフィーチャの最大オーバーラップ率。結合領域に対する交差領域の比率として定義されます。 デフォルトは 0 です。

Double
processingMode
(オプション)

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

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

派生した出力

名前説明データ タイプ
outObjects

出力フィーチャ サービス。

Feature Class

コードのサンプル

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

この例では、DetectObjectsUsingDeepLearning ツールを使用して、オブジェクト検出に基づいてポータル内にホスト フィーチャ レイヤーを作成します。

import arcpy
arcpy.DetectObjectsUsingDeepLearning_ra(
        "https://myserver/rest/services/Farm/ImageServer",
        "https://myportal/sharing/rest/content/items/itemId", "detectedTrees",
"score_threshold 0.6;padding 0", "NO_NMS")
DetectObjectsUsingDeepLearning (ディープ ラーニングを使用したオブジェクトの検出) の例 2 (スタンドアロン スクリプト)

この例では、DetectObjectsUsingDeepLearning ツールを使用して、オブジェクト検出に基づいてポータル内にホスト フィーチャ レイヤーを作成します。

#---------------------------------------------------------------------------
# Name: DetectObjectsUsingDeepLearning_example02.py
# Requirements: ArcGIS Image Server
# Import system modules
import arcpy
# Set local variables
inImage = "https://myserver/rest/services/coconutFarmImage/ImageServer"
inModel = "https://myportal/sharing/rest/content/items/itemId"
outName = "detectedTrees"
modelArgs = "score_threshold 0.6;padding 0"
runNMS = "NMS"
confScoreField = "Confidence"
classVField = "Class"
maxOverlapRatio = 0.15 
# Execute Detect Objects Using raster analysis tool
arcpy.DetectObjectsUsingDeepLearning_ra(inImage, inModel, outName, modelArgs,
runNMS, confScoreField, ClassVField, maxOverlapRatio)

関連トピック