点群トレーニング データの準備 (Prepare Point Cloud Training Data) (3D Analyst)

サマリー

点群を分類するための PointCNN モデルをトレーニングし、検証するためのデータを生成します。

使用法

  • 対象オブジェクトに対してポイントが適切に分類されているかどうか、入力点群を確認します。 分類モデルの品質は、トレーニングと検証に使用されるデータの品質に依存します。 点群の分類を改善する必要がある場合は、ポイント分類を対話形式で編集することを検討してください。

    対話的な LAS 分類編集の詳細

  • 点群トレーニング データは、*.pctd 拡張子が付いたディレクトリによって定義されます。このディレクトリには 2 つのサブディレクトリがあり、1 つは分類モデルのトレーニングに使用されるデータが格納されており、もう 1 つはトレーニング済みモデルの検証に使用されるデータが格納されています。 入力点群はトレーニングに使用されるデータのソースを示すため、常に指定する必要があります。 トレーニング用にエクスポートするポイントを制限するため、トレーニング境界を任意で定義できます。 検証データも必須で、以下のいずれかの手順を実行することで指定できます。

    • 検証点群を指定する。 このデータセットは、入力点群とは異なるポイント セットを参照する必要があります。
    • 検証境界を使用して検証点群を指定する。 これにより、検証境界と重複する検証点群の部分から、検証データが作成されます。
    • 検証点群を使用せずにトレーニング境界と検証境界を指定する。 これにより、トレーニング境界と交差する入力点群の部分からトレーニング データが作成されます。検証点群は、検証境界と交差する入力点群の部分から作成されます。 境界フィーチャは互いに重複してはいけません。
  • 点群分類モデルをトレーニングする場合、分類の対象となるオブジェクトとその周辺のコンテキストを十分に捕捉できるブロック サイズを使用して、トレーニング データと検証データをエクスポートします。 適正な分類のために必要なコンテキストを得るうえで十分な周辺データがあれば、ブロック サイズはオブジェクト全体を捕捉する必要はありません。 ブロックに含まれているポイント数が、指定されたポイント制限よりも多い場合は、同じ位置に対して複数のブロックが作成されます。 たとえば、[ブロック ポイント制限] パラメーター値が 10,000 であり、あるブロックに 22,000 個のポイントが含まれている場合は、ブロックごとのサンプリングが均一になるよう 10,000 個のポイントを含むブロックが 3 つ作成されます。 一部のポイントは 2 つのブロックで繰り返されますが、すべてのポイントは少なくとも 1 つのブロックに格納されます。

  • ポイント制限を超過するブロックが多数作成されないよう、大きいブロック サイズとブロック ポイント制限は指定しないでください。 特定のブロック サイズのポイント数は、[LAS ポイント統計をラスターに出力 (LAS Point Statistics As Raster)] ツールを使用して、[方法] パラメーターに [点群] オプションを使用する出力ラスターを生成することで、概算できます。 ラスターのセル サイズは、目的のブロック サイズと一致する必要があります。 このラスターの画像ヒストグラムを検証すると、特定のブロック サイズに収まるブロック数を把握し、それに応じてポイント制限を調整できます。

    [ブロック ポイント制限] パラメーター値は、ディープ ラーニング モデルのトレーニングに使用される、コンピューターの専用 GPU メモリ容量も考慮する必要があります。ディープラーニングモデルの学習に使用するコンピュータの専用 GPU メモリ容量も考慮する必要があります。 トレーニング時のメモリ割り当ては、モデルのトレーニングに使用される属性数、ブロックあたりのポイント数、反復バッチで処理されるブロックの総数によって異なります。 モデルを効果的にトレーニングするために、大きいブロック サイズとポイント制限が必要である場合は、トレーニング ステップでバッチ サイズを小さくすることで、より多くのポイントを処理できるようになります。

  • トレーニング データに対応するため、十分なディスク容量がある場所に出力が書き込まれるようにしてください。 このツールは、部分的に重複する非圧縮の HDF5 ファイルのブロックを作成します。このファイルによって各ポイントが 4 つのブロックに複製されます。 ポイント上限を超過したブロックでは、一部のポイントが 4 回以上重複することがあります。 結果的に生成されるトレーニング データは、ソース点群データの 3 倍以上のディスク容量を占めることがあります。

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

パラメーター

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

トレーニング データの作成に使用される点群。検証点群が指定されない場合は、検証データを作成することもあります。 この場合、トレーニング境界と検証境界の両方を定義する必要があります。

LAS Dataset Layer; File
ブロック サイズ

入力点群から作成された各 HDF5 タイルの 2 次元の高さと幅。 原則的に、ブロック サイズは対象オブジェクトとその周辺のコンテキストを捕捉するための十分な大きさが必要です。

Linear Unit
出力トレーニング データ

出力トレーニング データの場所と名前 (*.pctd)。

File
トレーニング境界フィーチャ
(オプション)

入力点群からポイントのサブセットを定義する境界ポリゴンで、ディープ ラーニング モデルのトレーニングに使用されます。

Feature Layer
検証点群
(オプション)

ディープ ラーニング モデルの検証に使用される点群のソース。 このデータセットは、トレーニング済みモデルの品質を担保するため、入力点群とは異なるポイント セットを参照する必要があります。 検証点群を指定しない場合、[トレーニング境界フィーチャ][検証境界フィーチャ] の両方のパラメーター値を指定する必要があります。

LAS Dataset Layer; File
検証境界フィーチャ
(オプション)

トレーニング済みモデルの検証に使用されるポイントのサブセットを定義するポリゴン フィーチャ。 検証点群を指定しない場合、ポイントは入力点群から取得されます。

Feature Layer
対象クラス コード
(オプション)

エクスポートされたトレーニング データ ブロックを、指定した値を含むものだけに制限するクラス コード。 このパラメーターに記されるいずれかのクラス コードを含むブロックについて、ブロックのすべてのポイントがエクスポートされます。

Long
ブロック ポイント制限
(オプション)

トレーニング データの各ブロックで許可されている最大ポイント数。 ブロックに含まれるポイント数がこの値を超過する場合は、トレーニング時にすべてのポイントが使用されるよう、同じ位置に対して複数のブロックが作成されます。

Long

arcpy.ddd.PreparePointCloudTrainingData(in_point_cloud, block_size, out_training_data, {training_boundary}, {validation_point_cloud}, {validation_boundary}, {class_codes_of_interest}, {block_point_limit})
名前説明データ タイプ
in_point_cloud

トレーニング データの作成に使用される点群。検証点群が指定されない場合は、検証データを作成することもあります。 この場合、トレーニング境界と検証境界の両方を定義する必要があります。

LAS Dataset Layer; File
block_size

入力点群から作成された各 HDF5 タイルの 2 次元の高さと幅。 原則的に、ブロック サイズは対象オブジェクトとその周辺のコンテキストを捕捉するための十分な大きさが必要です。

Linear Unit
out_training_data

出力トレーニング データの場所と名前 (*.pctd)。

File
training_boundary
(オプション)

入力点群からポイントのサブセットを定義する境界ポリゴンで、ディープ ラーニング モデルのトレーニングに使用されます。

Feature Layer
validation_point_cloud
(オプション)

ディープ ラーニング モデルの検証に使用される点群のソース。 このデータセットは、トレーニング済みモデルの品質を担保するため、入力点群とは異なるポイント セットを参照する必要があります。 検証点群を指定しない場合、training_boundaryvalidation_boundary の両方のパラメーター値を指定する必要があります。

LAS Dataset Layer; File
validation_boundary
(オプション)

トレーニング済みモデルの検証に使用されるポイントのサブセットを定義するポリゴン フィーチャ。 検証点群を指定しない場合、ポイントは入力点群から取得されます。

Feature Layer
class_codes_of_interest
[class_codes_of_interest,...]
(オプション)

エクスポートされたトレーニング データ ブロックを、指定した値を含むものだけに制限するクラス コード。 このパラメーターに記されるいずれかのクラス コードを含むブロックについて、ブロックのすべてのポイントがエクスポートされます。

Long
block_point_limit
(オプション)

トレーニング データの各ブロックで許可されている最大ポイント数。 ブロックに含まれるポイント数がこの値を超過する場合は、トレーニング時にすべてのポイントが使用されるよう、同じ位置に対して複数のブロックが作成されます。

Long

コードのサンプル

PreparePointCloudTrainingData (点群トレーニング データの準備) の例 (Python ウィンドウ)

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

import arcpy
arcpy.env.workspace = 'C:/data'
arcpy.ddd.PreparePointCloudTrainingData('training_source.lasd', '20 Meters', 'vegetation_training.pctd', 
                                        validation_point_cloud='validation_source.lasd')

ライセンス情報

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

関連トピック