トレーニング済みモデルを使用して点群からオブジェクトを検出 (Detect Objects From Point Cloud Using Trained Model) (3D Analyst)

サマリー

ディープ ラーニング モデルを使用して、点群で捕捉されたオブジェクトを検出します。

トレーニング済みモデルを使用して点群からオブジェクトを検出ツールの図

使用法

  • このツールには、Deep Learning Essentials のインストールが必要です。これは、点群を分類するためのニューラル アーキテクチャを含む複数のニューラル ネットワーク ソリューションを提供します。

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

  • オブジェクト検出モデルは分類対象の入力点群を必要としません。 ただし、評価対象の点群は、モデルのトレーニングに使用される点群データとほぼ同じ特性を持っていなければなりません。 たとえば、地上の点群についてトレーニングされた、自動車を分類するオブジェクト検出モデルは、別の地上測量の点群には適していても、航空 LIDAR 測量から収集された点群では十分に機能しないことがあります。

  • このモデルはさまざまなオブジェクトを識別し、その一部はオーバーラップしている場合があります。 これらの検出を調整するには、信頼度スコア閾値とオーバーラップ閾値の 2 つの主な閾値が使用されます。 信頼度スコアは 0.0 ~ 1.0 の数値であり、オブジェクトが正しく識別されている可能性がどの程度であるかを示します。 スコアが高いほど確実性が高くなり、閾値を設定することで、一定の信頼度を下回る検出を除外することができます。

    複数の類似するオブジェクトの境界四角形がオーバーラップしている場合、オーバーラップ閾値がさらに重要になります。 この測定値では共通部分に対する交差部分 (IoU) の比率が使用され、これはオーバーラップする境界四角形の交差部分の体積を共通部分の体積で割ることによって計算されます。 IoU がオーバーラップ閾値を超えるオブジェクトのうち、信頼度スコアが最も高いものだけが維持されます。 最も関連性の高い検出だけを最終出力に含めるようにするには、Non-Maximum Suppression (NMS) アルゴリズムを使用します。

  • 相対高度属性を使用して入力モデルがトレーニングされた場合、[参照サーフェス] パラメーターは必須です。 ラスター サーフェスが基準高度として使用され、そこから各ポイントの相対高度が内挿されます。 これによって得られるモデルの追加情報を使用して、各オブジェクトを容易に区別することができます。 このパラメーターで指定するラスター サーフェスは、モデルの作成に使用されたトレーニング データで使用されているラスターと同じデータのタイプを表している必要があります。 ほとんどの場合、これは地表分類ポイントから作成されたラスターになります。 地表フィルターを適用して [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 または Portal for ArcGIS から公開されているオブジェクト検出モデルを指定できます。

File; String
ターゲット オブジェクト

入力点群で識別されるオブジェクト、および検出されたオブジェクトの承認に使用される信頼度閾値とオーバーラップ閾値。

  • [オブジェクト コード] - トレーニングされたモデルによって識別されるオブジェクトを表すコード。
  • [信頼度] - オブジェクトが識別されるときの信頼度閾値 (スケール 0.0 ~ 1.0)。 値が大きいほど、識別の条件を満たすオブジェクトは少なくなります。 この閾値を 1.0 に設定した場合、オブジェクトの検出で 100% の確度が求められるため、オブジェクトが識別される可能性は実質的にほぼなくなります。 特定のオブジェクトを出力から除外するには、その信頼度閾値を 1.0 に設定します。
  • [オーバーラップ] - オーバーラップ閾値によって、オーバーラップする複数のオブジェクトが識別された場合に維持されるオブジェクトを選択できます。 オーバーラップ閾値は、オーバーラップする境界四角形の交差部分と共通部分の比率を表します。 複数のオブジェクトがオーバーラップし、オーバッラップ閾値を超えている場合、信頼度が高い方のオブジェクトが維持されます。

Value Table
出力オブジェクト フィーチャ

入力点群から検出されたオブジェクトを囲む境界四角形を含む出力マルチパッチ フィーチャ。

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

入力点群から同時に処理されるブロックの数。 値が指定されていない場合、一度に 1 つのブロックが処理されます。

Long
処理境界

処理される対象地域を定義するポリゴン フィーチャ。

Feature Layer
参照サーフェス

各ポイントの相対高度の計算に使用されるラスター サーフェス。 このパラメーターは、参照高度ラスター サーフェスを使用してトレーニングされたことを示す相対高度属性が入力モデルに含まれている場合、このパラメーターは必須です。

Raster Layer
除外クラス

入力点群からのオブジェクト検出処理で除外されるポイントのクラスコード。 特定のクラス コードのポイントを除外してモデルがトレーニングされている場合、最適な結果を得るには、入力点群で同じオブジェクト クラスのポイントを識別して除外する必要があります。

Long

arcpy.ddd.DetectObjectsFromPointCloudUsingTrainedModel(in_point_cloud, in_trained_model, target_objects, out_features, {batch_size}, boundary, reference_height, excluded_class_codes)
名前説明データ タイプ
in_point_cloud

オブジェクトの検出に使用される点群。

LAS Dataset Layer
in_trained_model

使用されるオブジェクト検出モデル。 Esri モデル定義ファイル (.emd)、ディープ ラーニング パッケージ (.dlpk)、ArcGIS Online または Portal for ArcGIS から公開されているオブジェクト検出モデルを指定できます。

File; String
target_objects
[target_objects,...]

入力点群で識別されるオブジェクト、および検出されたオブジェクトの承認に使用される信頼度閾値とオーバーラップ閾値。

  • オブジェクト コード - トレーニングされたモデルによって識別されるオブジェクトを表すコード。
  • 信頼度 - オブジェクトが識別されるときの信頼度閾値 (スケール 0.0 ~ 1.0)。 値が大きいほど、識別の条件を満たすオブジェクトは少なくなります。 この閾値を 1.0 に設定した場合、オブジェクトの検出で 100% の確度が求められるため、オブジェクトが識別される可能性は実質的にほぼなくなります。 特定のオブジェクトを出力から除外するには、その信頼度閾値を 1.0 に設定します。
  • オーバーラップ - オーバーラップ閾値によって、オーバーラップする複数のオブジェクトが識別された場合に維持されるオブジェクトを選択できます。 オーバーラップ閾値は、オーバーラップする境界四角形の交差部分と共通部分の比率を表します。 複数のオブジェクトがオーバーラップし、オーバッラップ閾値を超えている場合、信頼度が高い方のオブジェクトが維持されます。

Value Table
out_features

入力点群から検出されたオブジェクトを囲む境界四角形を含む出力マルチパッチ フィーチャ。

Feature Class
batch_size
(オプション)

入力点群から同時に処理されるブロックの数。 値が指定されていない場合、一度に 1 つのブロックが処理されます。

Long
boundary

処理される対象地域を定義するポリゴン フィーチャ。

Feature Layer
reference_height

各ポイントの相対高度の計算に使用されるラスター サーフェス。 このパラメーターは、参照高度ラスター サーフェスを使用してトレーニングされたことを示す相対高度属性が入力モデルに含まれている場合、このパラメーターは必須です。

Raster Layer
excluded_class_codes
[excluded_class_codes,...]

入力点群からのオブジェクト検出処理で除外されるポイントのクラスコード。 特定のクラス コードのポイントを除外してモデルがトレーニングされている場合、最適な結果を得るには、入力点群で同じオブジェクト クラスのポイントを識別して除外する必要があります。

Long

コードのサンプル

DetectObjectsFromPointCloudUsingTrainedModel の例 (Python ウィンドウ)

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

import arcpy
arcpy.env.workspace = 'C:/data/detect_cars'
arcpy.ddd.DetectObjectsFromPointCloudUsingTrainedModel('2018_survey.lasd', 'cars.emd',
                                                       [(1, 0.7, 0.4)], 'Cars_in_Point_Cloud.shp',
                                                       10, 'study_area_boundary.shp',
                                                       'dem.tif', [2, 6, 7, 18])