トレーニング済みモデルを使用して点群を分類 (Classify Point Cloud Using Trained Model) (3D Analyst)

サマリー

ディープ ラーニング モデルを使用して点群を分類します。

使用法

  • このツールには、ディープ ラーニング フレームワークのインストールが必要です。

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

  • このツールは、デフォルトで、すべてのポイントを入力点群に分類します。 入力点群の既存のクラス コードが適切に分類される場合は、[既存のクラス コードの処理] および [既存のクラス コード] パラメーターを使用して、編集または保持するクラス コードを指定することで、それらのポイントを必ず変更対象から除外します。

    ディープ ラーニングによる点群分類の詳細

  • 入力点群は、分類モデルの開発に使用されるトレーニング データと同じ属性を持つ必要があります。 たとえば、トレーニング済みモデルが強度属性を使用した場合、処理対象の点群も強度値を持つ必要があります。 また、点の密度と分布も、モデルのトレーニングで使用されたデータと同様である必要があります。

  • 入力点群の空間参照が投影座標系を使用していない場合は、出力座標系の環境を使用して、ポイントの分類で使用される投影座標系を定義することができます。

  • モデルは、特定のポイント数と一連の属性を含む特定サイズのブロック単位で点群データを処理するようにトレーニングされます。 入力点群は、モデルで定義されたブロックに分割して処理されます。 複数のブロックを指定した時間に処理できます。 一緒に処理されるブロックのセットはバッチと呼ばれます。 バッチ サイズは、推論操作中に使用されるコンピューター リソースの容量を制御します。 点群の処理に CPU を使用できますが、CUDA 対応の NVIDIA GPU を使用すると効率よく推論を実行できます。 同時に処理されるブロックの数を制御して、[バッチ サイズ] パラメーターで値を指定することにより消費される GPU メモリの容量を制限できます。 コンピューターのリソースを超えるバッチ サイズを指定するのは避けてください。 ツールの実行前と実行時に利用可能な GPU メモリは、NVIDIA の System Management Interface (SMI) ユーティリティを使用して確認できます。 これは、GPU の NVIDIA ドライバーとともに自動的にインストールされるコマンド ライン ユーティリティです。 このアプリケーションは GPU の使用量を追跡します。 ツールの実行中に使用可能なメモリの量を制御するには、小さなバッチ サイズで点群データのサブセットを評価することを検討し、目的の使用量に達するまでこの値を徐々に増やします。 それ以外の場合は、ツールを使用して、GPU のメモリの使用を自動的に最大化できます。

  • 相対高度属性を使用して入力モデルがトレーニングされた場合、[参照サーフェス] パラメーターは必須です。 ラスター サーフェスが基準高度として使用され、そこから各ポイントの相対高度が内挿されます。 これによって得られるモデルの追加情報を使用して、各オブジェクトを容易に区別することができます。 このパラメーターで指定するラスター サーフェスは、モデルの作成に使用されたトレーニング データで使用されているラスターと同じデータのタイプを表している必要があります。 ほとんどの場合、これは地表分類ポイントから作成されたラスターになります。 地表フィルターを適用して [LAS データセット → ラスター (LAS Dataset to Raster)] ツールを使用することによって、LAS データセット内の地表分類ポイントからラスター サーフェスを生成することができます。 地表サーフェスは、[点群 → ラスター (Point Cloud To Raster)] ツールを使用して点群シーン レイヤーから生成することもできます。 入力点群から生成されないラスター サーフェスも使用できますが、ラスターの Z 値が点群の Z 値と適切に対応していることを確認する必要があります。

  • 入力モデルが、トレーニング データから除外された特定のクラスのポイントでトレーニングされている場合、[除外されるクラス コード] パラメーターを使用して、このモデルによって評価される一連のポイントから、それらのポイントが除外されるようにします。 所定のモデルの目的に有用なコンテキストを提供しないクラスを除外することで、評価されるポイントの数が減るため、モデルのトレーニングと適用の速度が向上します。 たとえば、建物を表すポイントは、通常は、信号機、電線、自動車などのオブジェクトを表すポイントとは関連性がありません。 建物のポイントは、[LAS の建物分類 (Classify LAS Building)] ツールを使用して確実に分類することもできます。 モデルの作成に使用されたトレーニング データから、建物を表すクラス 6 のポイントが除外された場合、入力点群でも建物ポイントを分類してこれらをこのツールで除外する必要があります。

パラメーター

ラベル説明データ タイプ
ターゲット点群

分類される点群。

LAS Dataset Layer
入力モデル定義

点群の分類で使用される、入力 Esri モデル定義ファイル (*.emd) またはディープ ラーニング パッケージ (*.dlpk)。 ArcGIS Online または ArcGIS Living Atlas で公開されている、ディープ ラーニング パッケージの URL も使用できます。

File; String
ターゲット分類

入力点群の分類で使用されるトレーニング済みモデルのクラス コード。 サブセットが指定されていない限り、デフォルトにより入力モデルのすべてのクラスが使用されます。

String
既存のクラス コードの処理
(オプション)

入力点群の編集可能ポイントを定義する方法を指定します。

  • すべてのポイントを編集
  • 選択したポイントを編集
  • 選択したポイントを保持
String
既存のクラス コード
(オプション)

[既存のクラス コードの処理] パラメーターの値に基づいて、ポイントが編集されるクラス、または元のクラス コード指定が保持されるクラス。

Long
統計情報の計算
(オプション)

LAS データセットで参照されている .las ファイルの統計情報を計算するかどうかを指定します。 統計情報を計算することで、.las ファイルごとの空間インデックスが提供され、解析と表示のパフォーマンスが向上します。 また統計によって、分類コードやリターン情報などの LAS 属性の表示が .las ファイルに存在する値に制限されるので、フィルターとシンボルのエクスペリエンスも強化されます。

  • オン - 統計情報を計算します。 これがデフォルトです。
  • オフ - 統計情報を計算しません。
Boolean
処理境界

入力点群で処理されるポイントのサブセットを定義するポリゴン境界。 境界フィーチャの外側のポイントは評価されません。

Feature Layer
ピラミッドの更新
(オプション)

クラス コードが変更された後に、LAS データセットのピラミッドを更新するかどうかを指定します。

  • オン - LAS データセットのピラミッドを更新します。 これがデフォルトです。
  • オフ - LAS データセットのピラミッドを更新しません。
Boolean
参照サーフェス
(オプション)

点群データの各ポイントの相対高度値を指定するために使用されるラスター サーフェス。 ラスターとオーバーラップしないポイントは、解析から除外されます。

Raster Layer
除外されるクラス コード
(オプション)

処理から除外されるクラス コード。 0 ~ 255 の範囲内の任意の値を指定できます。

Long
バッチ サイズ
(オプション)

推論操作中に、同時に処理される点群データ ブロックの数。 一般的に、バッチ サイズを大きくするとデータの処理が高速になりますが、コンピューターのリソースに対して大きすぎるバッチ サイズを使用することは避けてください。 GPU を使用する場合、利用可能な GPU メモリは、コンピューターが処理できるバッチ サイズの最も一般的な制約になります。 所定のブロックによって使用されるメモリは、モデルのブロック ポイント制限と必要なポイント属性によって異なります。 利用可能な GPU メモリの確認および GPU メモリ使用量の評価の詳細については、使用方法セクションに記載されている NVIDIA SMI コマンド ライン ユーティリティを使用します。

特定のアーキテクチャでは、バッチ サイズを指定しない場合、最適なバッチ サイズが計算されます。 GPU を使用する場合、最適なバッチ サイズは、特定のデータのブロックにより消費されるメモリの量およびツールの実行時に自由に使用できる GPU メモリの量に基づきます。 推論に CPU を使用する場合、各ブロックは CPU スレッド上で処理され、最適なバッチ サイズは、利用可能な未使用の CPU スレッドの半分になるように計算されます。

Long

派生した出力

ラベル説明データ タイプ
出力点群

ディープ ラーニング モデルによって分類された点群。

Feature Layer

arcpy.ddd.ClassifyPointCloudUsingTrainedModel(in_point_cloud, in_trained_model, output_classes, {in_class_mode}, {target_classes}, {compute_stats}, boundary, {update_pyramid}, {reference_height}, {excluded_class_codes}, {batch_size})
名前説明データ タイプ
in_point_cloud

分類される点群。

LAS Dataset Layer
in_trained_model

点群の分類で使用される、入力 Esri モデル定義ファイル (*.emd) またはディープ ラーニング パッケージ (*.dlpk)。 ArcGIS Online または ArcGIS Living Atlas で公開されている、ディープ ラーニング パッケージの URL も使用できます。

File; String
output_classes
[output_classes,...]

入力点群の分類で使用されるトレーニング済みモデルのクラス コード。 サブセットが指定されていない限り、デフォルトにより入力モデルのすべてのクラスが使用されます。

String
in_class_mode
(オプション)

入力点群の編集可能ポイントを定義する方法を指定します。

  • EDIT_ALL入力点群のすべてのポイントが編集されます。 これがデフォルトです。
  • EDIT_SELECTEDtarget_classes パラメーターでクラス コードが指定されたポイントのみが編集され、その他のすべてのポイントは変更されません。
  • PRESERVE_SELECTEDtarget_classes パラメーターでクラス コードが指定されたポイントが保持されます。残りのポイントは編集されます。
String
target_classes
[target_classes,...]
(オプション)

in_class_mode パラメーターの値に基づいて、ポイントが編集されるクラス、または元のクラス コード指定が保持されるクラス。

Long
compute_stats
(オプション)

LAS データセットで参照されている .las ファイルの統計情報を計算するかどうかを指定します。 統計情報を計算することで、.las ファイルごとの空間インデックスが提供され、解析と表示のパフォーマンスが向上します。 また統計によって、分類コードやリターン情報などの LAS 属性の表示が .las ファイルに存在する値に制限されるので、フィルターとシンボルのエクスペリエンスも強化されます。

  • COMPUTE_STATS統計情報を計算します。 これがデフォルトです。
  • NO_COMPUTE_STATS統計情報を計算しません。
Boolean
boundary

入力点群で処理されるポイントのサブセットを定義するポリゴン境界。 境界フィーチャの外側のポイントは評価されません。

Feature Layer
update_pyramid
(オプション)

クラス コードが変更された後に、LAS データセットのピラミッドを更新するかどうかを指定します。

  • UPDATE_PYRAMIDLAS データセットのピラミッドを更新します。 これがデフォルトです。
  • NO_UPDATE_PYRAMIDLAS データセットのピラミッドを更新しません。
Boolean
reference_height
(オプション)

点群データの各ポイントの相対高度値を指定するために使用されるラスター サーフェス。 ラスターとオーバーラップしないポイントは、解析から除外されます。

Raster Layer
excluded_class_codes
[excluded_class_codes,...]
(オプション)

処理から除外されるクラス コード。 0 ~ 255 の範囲内の任意の値を指定できます。

Long
batch_size
(オプション)

推論操作中に、同時に処理される点群データ ブロックの数。 一般的に、バッチ サイズを大きくするとデータの処理が高速になりますが、コンピューターのリソースに対して大きすぎるバッチ サイズを使用することは避けてください。 GPU を使用する場合、利用可能な GPU メモリは、コンピューターが処理できるバッチ サイズの最も一般的な制約になります。 所定のブロックによって使用されるメモリは、モデルのブロック ポイント制限と必要なポイント属性によって異なります。 利用可能な GPU メモリの確認および GPU メモリ使用量の評価の詳細については、使用方法セクションに記載されている NVIDIA SMI コマンド ライン ユーティリティを使用します。

特定のアーキテクチャでは、バッチ サイズを指定しない場合、最適なバッチ サイズが計算されます。 GPU を使用する場合、最適なバッチ サイズは、特定のデータのブロックにより消費されるメモリの量およびツールの実行時に自由に使用できる GPU メモリの量に基づきます。 推論に CPU を使用する場合、各ブロックは CPU スレッド上で処理され、最適なバッチ サイズは、利用可能な未使用の CPU スレッドの半分になるように計算されます。

Long

派生した出力

名前説明データ タイプ
out_point_cloud

ディープ ラーニング モデルによって分類された点群。

Feature Layer

コードのサンプル

ClassifyPointCloudUsingTrainedModel の例 (スタンドアロン スクリプト)

次のサンプルは、Python ウィンドウでこのツールを使用する方法を示しています。

import arcpy
arcpy.env.workspace = 'C:/data/'
arcpy.ddd.ClassifyPointCloudUsingTrainedModel(
    '2018_survey.lasd', 'electrical_infrastructure_classification.emd',
    [14, 15], 'EDIT_SELECTED', [0,1]
)

ライセンス情報

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

関連トピック