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

サマリー

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

使用法

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

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

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

    • 検証点群を指定します。 このデータセットは、入力点群とは異なるポイント セットを参照する必要があります。
    • 検証境界を使用して検証点群を指定します。 これにより、検証境界と重複する検証点群の部分から、検証データが作成されます。
    • 検証点群を使用せずにトレーニング境界と検証境界を指定します。 これにより、トレーニング境界と交差する入力点群の部分からトレーニング データが作成されます。検証点群は、検証境界と交差する入力点群の部分から作成されます。 境界フィーチャは互いに重複してはいけません。
  • 入力点群は、ほぼ均一な点密度であるべきです。 点群を評価し、オーバーラップしているフライト ラインの調査やアイドリング中の地上測量スキャナーによって収集されたエリアなど、点密度が高い場所が含まれているかどうかを判断します。 オーバーラップしているフライト ラインを持つ航空機 LIDAR の場合、[LAS オーバーラップの分類 (Classify LAS Overlap)] ツールを使用してオーバーラップするポイントをフラグし、より一貫性のあるポイント分布を実現できます。 オーバーサンプリングされたホット スポットを含むその他のタイプの点群は、[LAS の間引き (Thin LAS)] ツールを使用して通常の分布に間引くことができます。

  • 点群内のポイントは、そのクラス コードによってトレーニング データから除外でき、処理されるポイント数を減らすことでモデルのトレーニングのパフォーマンスを向上することができます。 除外されたポイントは、容易に分類できるクラスに属している必要があり、モデルのトレーニングの対象となるオブジェクトに対して必ずしも十分なコンテキストを提供するわけではありません。 オーバーラップまたはノイズとして分類されるポイントは、除外することを検討してください。 地表に分類されたポイントも、トレーニング データの生成時に地表からの高さが計算されていれば除外できます。

  • 参照高さの情報をトレーニング データに組み込むと、トレーニング プロセスに追加属性を提供できます。 これは、[参照サーフェス] パラメーターでラスターを指定することで行われます。 このラスターは、重複する各ポイントの相対高度属性を取得するために使用されます。 属性は、各ポイントの Z 値を取り、共一次内挿法によってラスターから取得した高さを差し引くことで算出されます。 この情報を含めることで、ラスター サーフェスからの相対高度の範囲が明確なオブジェクトを区別することができます。 また、ニューラル ネットワークが方向リレーションシップを推論するための根拠にもなります。 たとえば、電線のトレーニングを行っており、参照サーフェスとして地表面の標高ラスターを使用している場合、電線ポイントは地面から特定の相対高度の範囲内に収まる可能性が高くなります。 さらに、参照高さが地表面の標高に基づく場合、地表ポイントの存在が対象オブジェクトを特定するうえで有用なコンテキストを提供しない場合に、トレーニング データから地表ポイントを除外する理由になります。 ニューラル ネットワークは、トレーニング中に与えられたすべてのデータの分類を学習しようとします。 高品質な地表分類は [LAS の地表分類 (Classify LAS Ground)] ツールによって行えるため、地表ポイントを他のクラスと区別するためにニューラル ネットワークをトレーニングする必要はありません。 通常はクラス 2、場合によってはクラス 8 およびクラス 20 として表される地表ポイントは、[除外されるクラス コード] パラメーターにリストすることで除外できます。 一般的に、地表ポイントは LIDAR 調査で捕捉したポイント総数のおよそ半分を占めるため、ニューラル ネットワークはトレーニング データをよりすばやく処理できるようになります。

  • [参照サーフェス] パラメーターへの入力として使用されるラスター サーフェスは、地表の分類済みポイントなど LAS ポイントのサブセットから生成できます。この場合は、LAS データセットをフィルタリングし、[LAS データセット → ラスター (LAS Dataset To Raster)] ツールを使用します。 分類コード、戻り値、分類フラグの任意の組み合わせを使用して、LAS データセットからのポイントの任意のサブセットをフィルター処理することができます。 ポイント フィルターは、LAS データセット レイヤーのプロパティ ダイアログまたは [LAS データセット レイヤーの作成 (Make LAS Dataset Layer)] ツールを使用して適用できます。 ラスター サーフェスは、[点群 → ラスター (Point Cloud To Raster)] ツールを使用して点群シーン レイヤーから生成することもできます。

  • [除外されるクラス コード] パラメーターを使用すると、対象のオブジェクトを特定する方法を推論するうえで役立つコンテキストを提供しないクラス コードに関連付けられたポイントを省略できます。 これらを省略することで、評価されるポイント数が減るため、トレーニング プロセスの速度が向上します。 たとえば、建物の分類済みポイントは、信号機、電線、その他のアセットなどのオブジェクトの分類モデルのトレーニングには重要ではないことが一般的です。 建物のポイントは、[LAS の建物分類 (Classify LAS Building)] ツールを使用して確実に分類することもできます。 建物を表すクラス 6 を除外クラスとして指定すると、建物ポイントがトレーニング データから除外されます。 除外されたクラスでトレーニングしたモデルを使用する点群では、モデルを適用する前に、これらのクラスを分類しておく必要があります。 これらのクラスは、[トレーニング済みモデルを使用して点群を分類 (Classify Point Cloud Using Trained Model)] および [点群トレーニング データの評価 (Evaluate Point Cloud Training Data)] ツールの [除外されるクラス コード] パラメーターにもリストする必要があります。そうすることで、モデルのトレーニングに使用したデータの特性に一致する点群を使用し、モデルが分類を推論できるようになります。

  • ブロック ポイント制限は、データのブロック サイズと平均ポイント間隔を反映する必要があります。 特定のブロック内のポイント数は、[方法] パラメーターを [ポイント数] オプションに設定し、目的のブロック サイズを出力ラスターのセル サイズに設定した [LAS ポイント統計をラスターに出力 (LAS Point Statistics As Raster)] ツールを使用して近似できます。 このラスターの画像ヒストグラムでは、データセット全体のブロックごとのポイント分布を示します。 ヒストグラムが、広範囲のばらつきを持つ多数のブロックを示している場合、不規則にサンプリングされたデータが存在し、密度の高いポイントの集まり (ホット スポット) が潜在的に含まれることを示している可能性があります。 ブロックにブロック ポイント制限以上のポイントが含まれている場合、そのブロックはすべてのポイントがトレーニング データに反映されるよう複数回にわたって作成されます。 たとえば、ポイント制限が 10,000 で、あるブロックに 22,000 ポイントが含まれる場合、各ブロックで均一なサンプリングが実施されるよう、10,000 ポイントのブロックが 3 つ作成されます。 ほとんどのブロックの名目上のポイント数を大幅に上回るブロック ポイント制限も回避する必要があります。 アーキテクチャーによっては、ポイント制限を満たすために、データがアップサンプリングされます。 こうした理由から、トレーニング データ内のほとんどのブロックを網羅すると推定されるポイント数に近いブロック サイズとブロック ポイント制限を使用してください。 トレーニング データが作成されると、ツールのメッセージ ウィンドウにヒストグラムが表示され、その画像がトレーニング データと検証データを格納するフォルダーに保存されます。 このヒストグラムを確認することで、ブロック サイズとポイント制限の適切な組み合わせが指定されたかどうかを判断できます。 値が最適ではないポイント制限を示している場合、[ブロック ポイント制限] パラメーターに対してより適切な値を指定し、ツールを再実行します。

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

パラメーター

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

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

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

入力点群から作成されるトレーニング データの各ブロックの直径。 一般的に、ブロック サイズは対象オブジェクトとその周辺コンテキストをキャプチャーするのに十分な大きさである必要があります。

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

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

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

モデルのトレーニングに使用される入力点群のポイントのサブセットを定義するポリゴン フィーチャ。 このパラメーターは、[検証点群] パラメーター値が指定されていない場合に必須です。

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

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

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

トレーニング プロセス中にモデルの検証に使用されるポイントのサブセットを定義するポリゴン フィーチャ。 検証点群が提供されない場合、ポイントは入力点群から取得され、[検証境界フィーチャ] パラメーターにはポリゴンが必要になります。

Feature Layer
クラス コードによるブロックのフィルタリング
(オプション)

エクスポートしたトレーニング データ ブロックを制限するために使用されるクラス コード。 このパラメーターにリストされる値を少なくとも 1 つ含むブロック内のすべてのポイントがエクスポートされます。ただし、[除外されるクラス コード] パラメーターで指定されたクラスか、Withheld としてフラグが立てられたポイントは除きます。 0 ~ 255 の範囲内の任意の値を指定できます。

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

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

Long
参照サーフェス
(オプション)

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

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

トレーニング データから除外されるクラス コード。 0 ~ 255 の任意の値を指定できます。

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}, {reference_height}, {excluded_class_codes})
名前説明データ タイプ
in_point_cloud

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

LAS Dataset Layer; File
block_size

入力点群から作成されるトレーニング データの各ブロックの直径。 一般的に、ブロック サイズは対象オブジェクトとその周辺コンテキストをキャプチャーするのに十分な大きさである必要があります。

Linear Unit
out_training_data

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

File
training_boundary
(オプション)

モデルのトレーニングに使用される入力点群のポイントのサブセットを定義するポリゴン フィーチャ。 このパラメーターは、validation_point_cloud パラメーター値が指定されていない場合に必須です。

Feature Layer
validation_point_cloud
(オプション)

ディープ ラーニング モデルの検証に使用される点群のソース。 このデータセットは、トレーニング済みモデルの品質を確保するために、入力点群とは異なるポイント セットを参照する必要があります。 検証点群が提供されない場合、training_boundary パラメーターと validation_boundary パラメーターにポリゴン フィーチャクラスを指定することで、入力点群を使用してトレーニング データセットと検証データセットを定義できます。

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

トレーニング プロセス中にモデルの検証に使用されるポイントのサブセットを定義するポリゴン フィーチャ。 検証点群が提供されない場合、ポイントは入力点群から取得され、training_boundary パラメーターにはポリゴンが必要になります。

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

エクスポートしたトレーニング データ ブロックを制限するために使用されるクラス コード。 このパラメーターにリストされる値を少なくとも 1 つ含むブロック内のすべてのポイントがエクスポートされます。ただし、excluded_class_codes パラメーターで指定されたクラスか、Withheld としてフラグが立てられたポイントは除きます。 0 ~ 255 の範囲内の任意の値を指定できます。

Value Table
block_point_limit
(オプション)

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

Long
reference_height
(オプション)

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

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

トレーニング データから除外されるクラス コード。 0 ~ 255 の任意の値を指定できます。

Long

コードのサンプル

PreparePointCloudTrainingData の例 (Python ウィンドウ)

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

import arcpy
arcpy.env.workspace = 'C:/data'
arcpy.ddd.PreparePointCloudTrainingData('training_source.lasd', '35 Meters', 'vegetation_training.pctd', 
                                        validation_point_cloud='validation_source.lasd', 
                                        class_codes_of_interest=[14, 15], block_point_limit=12000,
                                        reference_height='Ground_Elevation.tif', 
                                        excluded_class_codes=[2, 6, 8, 9, 20])

ライセンス情報

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

関連トピック