データのダウンロードと内容確認
まず始めに、このチュートリアルを通してトレーニングと点群データの分類に使用するデータが含まれている 3 つの .zip ファイルをダウンロードします。 データをダウンロードして抽出した後は、ArcGIS Pro で LAS データセット ファイルの内容を確認してシンボル表示します。
データのダウンロード
このチュートリアルを完了するために必要なすべてのデータが、これからダウンロードする 3 つの .zip ファイルに含まれています。
- データをダウンロードする前に、ディープ ラーニング ライブラリがインストールされており、コンピューターの準備が完了していることを確認してください。
注意:
ディープ ラーニング ツールを ArcGIS Pro で使用するには、正しいディープ ラーニング ライブラリがコンピューター上にインストールされている必要があります。 これらのファイルがインストールされていない場合は、ArcGIS Pro が閉じていることを確認して、「ArcGIS Pro でのディープ ラーニングの準備」に記載された手順に従います。 これらの手順では、お使いのコンピューター ハードウェアとソフトウェアでディープ ラーニング ワークフローを実行できるかどうかを確認する方法と他の有用なヒントについても説明します。 インストールが完了したら、このチュートリアルを続行できます。
- コンピューターで、[ファイル エクスプローラー]を開きます。
- C:\ ドライブに、「LearnArcGIS」という名前のフォルダーを作成します。 LearnArcGIS フォルダー内に、[DL] という名前のもう 1 つのフォルダーを作成します。
この [C:\LearnArcGIS\DL] フォルダーに、このチュートリアルのすべてのデータと出力を保存します。
- 次の .zip ファイルをダウンロードします。
- smalldata.zip - 小さいトレーニング データセットとトレーニング境界、小さい検証データセットと検証境界、DEM ラスターが含まれています。
- testdata.zip - テスト データセット、処理境界、DEM ラスターが含まれています。
- results.zip - 大きいデータセットからのトレーニング結果が含まれています。大きいデータセットでモデルをトレーニングする代わりにこの結果を使用できます。
- ファイルがダウンロードされたら、各 .zip ファイルを [LearnArcGIS/DL] フォルダーに抽出します。
注意:
.zip ファイルを抽出するには、このファイルを右クリックして [すべて展開] を選択し、[LearnArcGIS\DL] フォルダーを参照します。
これらのフォルダーには、データの準備とトレーニングに使用するさまざまな情報が含まれています。 フォルダー内の主なファイルとして LAS ファイルがあります。 LAS ファイルは、航空機 LIDAR データを格納する業界標準のバイナリ形式です。 LAS データセットを使用すると、LAS ファイルをネイティブ形式ですばやく簡単に調べて、LAS ファイル内の LIDAR データの詳細な統計情報とエリア カバレッジを取得することができます。 results フォルダーには、24 GB の GPU が搭載されたコンピューター上で大きいデータセットを使用してトレーニングされたモデルが含まれています。 このチュートリアルの最後のセクションで、このトレーニング済みモデルを使用して LAS データセットを分類します。
次に、ArcGIS Pro でダウンロードしたデータの内容を確認します。
トレーニング データと検証データの表示
ArcGIS Pro プロジェクトを作成し、小さいトレーニング データと検証データを表示します。
- ArcGIS Pro を起動します。
- 必要に応じて、ArcGIS 組織のアカウントにサイン インします。
注意:
ArcGIS Pro へのアクセス権限または組織アカウントがない場合は、ソフトウェア アクセスのオプションをご参照ください。
- [新しいプロジェクト] で [ローカル シーン] をクリックします。
- [新しいプロジェクト] ダイアログボックスで、[名前] に「Powerline Classification with DL」と入力します。 [場所] で、[参照] をクリックします。 [C:\LearnArcGIS] を参照し、[DL] フォルダーをクリックして、[OK] をクリックします。 [このローカル プロジェクトのフォルダーを作成] チェックボックスをオフにします。
- [OK] をクリックします。
- [カタログ] ウィンドウで、[フォルダー] を展開し、[DL] を展開します。
注意:
[カタログ] ウィンドウが表示されていない場合は、リボンの [表示] をクリックし、[ウィンドウ] グループで [カタログ ウィンドウ] をクリックします。
ダウンロードしてこの場所に抽出したデータ フォルダーが表示されます。
最初に、[smalldata] フォルダー内のファイルを確認し、データセットの統計情報を更新して適切なクラス コードが表示されるようにします。
- [カタログ] ウィンドウで [smalldata] フォルダーを展開します。 [train_small.lasd] を右クリックして [プロパティ] を選択します。
- [LAS データセット プロパティ] ウィンドウで、[統計情報] タブをクリックします。
このデータセットにはいくつかのクラス コードが含まれています。
- [1 - 未分類] は、未分類のポイント、主に、地表より上にあるが高植生や建物より低い植生または物体を表しています。
- [2 - 地表] は地表を表しています。
- [5 - 高植生] は樹木などの高い植生を表しています。
- [6 - 建物] は建物やその他の構造物を表しています。
- [7 - ノイズ] は低点を表しています。
- [14 - 電線] は実際の電線を表しています。
- [15 - 送電塔] は送電塔を表しています。
クラス コード 14 の [電線] について調査します。 ここでの目的は、電線に相当する LIDAR ポイントを検出するようにモデルをトレーニングして、樹木に近接する電線による山火事の危険性を正しく評価できるようにすることです。
ウィンドウの下部に、1 つのファイルの統計情報が最新でないか存在しないことを知らせるメッセージが表示されています。 この問題を解決して、シーンに正しいクラス コードが表示されるようにします。
- [更新] をクリックします。
統計情報が最新の状態になったことを知らせるメッセージが表示されます。
統計情報が最新になったので、クラス コードに従ってレイヤーのスタイルを設定します。
- [OK] をクリックします。
- [カタログ] ウィンドウで、[train_small.lasd] を右クリックして [現在のマップに追加] を選択します。
LAS データセット レイヤーがシーンに表示されます。
小さいデータセットの LAS ファイルの統計情報を更新した後は、モデルの検証に使用する LAS データセット [val_small.lasd] について同じ手順を実行します。
- [カタログ] ウィンドウで、[val_small.lasd] のプロパティを開き、統計情報を更新して [OK] をクリックします。 [val_small.lasd] を現在のマップに追加します。
- シーンで、ポインターをドラッグしながら V キーや C キーを押してシーンを傾けたり画面移動したりして、3D でデータセットを確認します。
[train_small.lasd] はモデルのトレーニングに使用し、[val_small.lasd] はトレーニング プロセス中の過剰適合を防止するためにトレーニング済みモデルを検証するときに使用します。
次に、各 LAS データセット レイヤーのシンボルを更新して、クラス コードごとに異なる色で表示されるようにします。 まずは、[train_small.lasd] レイヤーから始めます。
- [コンテンツ] ウィンドウで、[train_small.lasd] レイヤーをクリックして選択します。 リボンの [LAS データセット レイヤー] タブをクリックします。
- [LAS データセット レイヤー] タブの [描画] グループで、[シンボル] のドロップダウン メニューをクリックし、[クラス] を選択します。
[シンボル] ウィンドウが表示され、[train_small.lasd] レイヤーがそのクラス コードに従ってシンボル表示されます。
注意:
LAS データセット レイヤーに空白がある場合、キャッシュに問題がある可能性があります。 LAS データセットのプロパティを開き、[キャッシュ] を選択し、[キャッシュの削除] をクリックしてこれを修正するか、ArcGIS Pro を閉じて開くとこれが自動的に修正されます。
- [コンテンツ] ウィンドウで、[val_small.lasd] をクリックします。 [LAS データセット レイヤー] タブで、[シンボル] のドロップダウン メニューをクリックして [クラス] を選択します。
[val_small.lasd] レイヤーがそのクラス コードに従ってシンボル表示されました。
注意:
LAS データセットが大きい場合、他のレイヤーより時間がかかることがあります。 表示時間を短縮するため、[LAS データセットのピラミッドを構築] ツールを使用してピラミッドを構築できます。 このツールは、レンダリング パフォーマンスを最適化する LAS データセットの表示キャッシュを作成または更新します。
- リボンの上にある[クイック アクセス] ツールバーで [保存] をクリックして、プロジェクトを保存します。
次に、確認した 2 つのデータセットを使用してモデルをトレーニングします。
小さいデータセットを使用したモデルのトレーニング
このモジュールでは、小さいデータセットを使用して、分類モデルのトレーニングのプロセスを実行します。 このデータセットには、より高い精度の分類モデルのトレーニングに必要な数のポイントが含まれていないため、生成される分類モデルの精度が低くなる可能性があります。 このセクションでは、モデルをトレーニングするプロセスについて説明します。このチュートリアルの後半では、多数のサンプリング ポイントでトレーニングされたモデルを使用して、LAS データセットを分類して電線を可視化します。
トレーニング データセットの準備
LAS データセットをモデルのトレーニングに直接使用することはできません。 LAS データセットを小さいトレーニング ブロックに変換する必要があります。 ArcGIS Pro の [点群トレーニング データの準備] ジオプロセシング ツールを使用して、LAS ファイルをブロックにエクスポートします。
ここでの目的は、電線に相当するポイントを識別して分類するようにモデルをトレーニングすることです。 LAS 点群データのすべてのポイントを確認する必要はありません。 電線の周囲の領域にあるポイントだけを確認する必要があります。 用意されている境界データ [bnd_train_small] および [bnd_val_small] を使用して、トレーニング ブロックに変換するポイントを指定します。 以下のグラフは、電線周囲のトレーニングと検証の境界を示しています。
- リボンの [解析] タブをクリックします。 [ジオプロセシング] グループで、[ツール] をクリックします。
[ジオプロセシング] ウィンドウが表示されます。
- [ジオプロセシング] ウィンドウで、[点群トレーニング データの準備] ツールを検索し、開きます。
注意:
このツールには ArcGIS 3D Analyst extension が必要です。 - [点群トレーニング データの準備] ツールで、次のパラメーターを設定します。
- [入力点群] で、[train_small.lasd] を選択します。
- [トレーニング境界フィーチャ] で、[参照] をクリックして [C:\LearnArcGIS\DL\smalldata\boundaries.gdb] を参照し、[bnd_train_small] を選択して [OK] をクリックします。
- [検証点群] で、val_small.lasd を選択します。
- [検証境界フィーチャ] で、[参照] をクリックして [C:\LearnArcGIS\DL\smalldata\boundaries.gdb] を参照し、[bnd_val_small] を選択して [OK] をクリックします。
- [参照サーフェス] で、[参照] をクリックして [C:\LearnArcGIS\DL\smalldata] を参照します。 [dem_small.tif] をクリックして、[OK] をクリックします。
DEM ラスターは、地表からのポイントの相対高度の計算に使用します。 すべてのトレーニング データ、検証データ、処理境界の入力が完了しました。
次に、除外するクラス コードを指定します。
- [除外されるクラス コード] に、「2」と入力します。 [他を追加] ボタンをクリックして、「7」と入力します。
地表 (クラス 2) とノイズ (クラス 7) のポイントは、トレーニング データから除外されます。 通常、地表ポイントは全ポイントの大部分を占めているため、地表ポイントを除外することでトレーニング プロセスがより高速になります。
- [クラス コードによるブロックのフィルタリング] は空白のままにします。
- [出力トレーニング データ] で、[参照] をクリックして [C:\LearnArcGIS\DL\results] を参照します。 [名前] に、「training_data_small.pctd」と入力します。
注意:
出力ファイルの拡張子 .pctd は、点群トレーニング データを意味しています。
- [保存] をクリックします。
- [点群トレーニング データの準備] ツールで、続けて次のパラメーターを入力します。
- [ブロック サイズ] に、「82」と入力します。 [不明] で、ドロップダウン メニューをクリックし、単位として [米国測量フィート] を選択します。
- [ブロック ポイント制限] は、デフォルトの [8192] のままにします。
[ブロック サイズ] と [ブロック ポイント制限] は、1 つのブロック内のポイントの数を制御します。 この 2 つのパラメーターの値を設定する際には、平均ポイント間隔、対象オブジェクト、使用可能な専用 GPU メモリ、バッチ サイズを考慮することが重要です。 一般的に、ブロック サイズは最小のサブサンプリング量で対象オブジェクトをキャプチャするのに十分な大きさである必要があります。
[ブロック サイズ] を 82 フィート (約 25 メートル)、[ブロック ポイント制限] を 8192 に設定して作業を始めます。82 フィートは電線のジオメトリをキャプチャするのに適切なブロック サイズです。 出力で、ブロック ポイント制限として 8,192 が適切であるかどうかを確認します。 ほとんどのブロックに 8,192 個以上のポイントが含まれている場合、ブロック ポイント制限を引き上げてサブサンプリングを減らす必要があります。
注意:
大きなデータの場合、[点群トレーニング データの準備] ツールを実行する前に、[LAS ポイント統計をラスターに出力] ツールを使用してヒストグラムを生成し、適切なブロック サイズとブロック ポイント制限を決定することをお勧めします。 このツールを使用するには、方法として [ポイント数] を選択し、サンプリング タイプとして [セル サイズ] を選択し、[ブロック サイズ] の値を変えてテストします。
- [実行] をクリックします。
ツールが完了すると、ウィンドウの下部に確認メッセージが表示されます。
- [詳細の表示] をクリックします。
メッセージ タブに、ブロック ポイント数に関する 2 つのヒストグラムが表示されます。1 つはトレーニング データのもので、もう 1 つは検証データのものです。
両方のヒストグラムから、ほとんどすべてのブロックのポイント数が 8,000 未満であることがわかります。このことから 82 フィートのブロック サイズとデフォルトの 8,192 のブロック ポイント制限がこれらのデータセットに適していることを確認できます。
- [点群トレーニング データの準備] ウィンドウを閉じます。
- Windows で、[ファイル エクスプローラー] を開き、[C:\LearnArcGIS\DL\results] を参照します。 [results] フォルダーに [training_data_small.pctd] フォルダーが含まれています。
- [training_data_small.pctd] をダブルクリックしてこのフォルダーを開きます。
出力ファイルには [train] と [val] の 2 つのサブフォルダーがあり、エクスポートされたトレーニング データと検証データがそれぞれ含まれています。
- 各フォルダーを開いてその内容を確認します。
各フォルダーには、[Statistics.json] ファイル、[ListTable.h5]、[BlockPointCountHistogram.png] ファイルと、[Data_x.h5] ファイルが含まれている [0] フォルダーが表示されます。
[ListTable.h5] ファイルと [Data_x.h5] ファイルには、ポイントの情報 (xyz およびリターン番号や強度などの属性) がブロックに分けて整理されています。
トレーニング データの準備が完了したので、ブロックを使用してディープ ラーニングで分類モデルをトレーニングします。
分類モデルのトレーニング
次に、[点群分類モデルのトレーニングを実行] ジオプロセシング ツールを使用して、small トレーニング データセットを使用して電線分類のモデルをトレーニングします。 結果は、このツールを実行するたびに異なり、コンピューターの構成によっても異なる場合があります。
- ArcGIS Pro の [ジオプロセシング] ウィンドウで、戻る矢印をクリックします。 [点群分類モデルのトレーニングを実行] ツールを検索して開きます。
- [点群分類モデルのトレーニングを実行] ツールで、次のパラメーターを設定します。
- [入力トレーニング データ] で、[参照] をクリックします。 [C:\LearnArcGIS\DL\results] を参照し、[training_data_small.pctd] をダブルクリックします。
- [事前トレーニング済みモデル] は空白のままにします。
- [モデル アーキテクチャ] では、デフォルトの [RandLA-Net] をそのまま使用します。
注意:
分類モデルのトレーニングに RandLA-Net アーキテクチャを使用します。 RandLA-Net は、ランダム サンプリングを使用してメモリ使用量と計算コストを削減し、ローカル フィーチャ集約を使用して広範な近傍から有用なフィーチャを維持します。
- [属性選択] で、[強度] と [相対高度] のチェックボックスをクリックします。
注意:
電線の強度は他のフィーチャと比べて低いため、強度は電線を識別するのに効果的な属性です。 通常、電線の相対高度は特定の範囲内にあるため、電線を他のフィーチャから分離するために相対高度も使用します。
- [出力モデルの場所] で、[results] フォルダーを参照します。 これをクリックし、[OK] をクリックします。
- [出力モデル名] に、「Powerline_classification_model_small_data」と入力します。
- [ブロックごとの最小ポイント数] に、「1000」と入力します。
トレーニング中に [ブロックごとの最小ポイント数] を 1000 に設定することで、ポイント数が 1,000 未満のブロックはスキップされます。 ポイント数が少ないブロックは、電線ポイントがない境界に存在することが見込まれます。 トレーニングでこのようなブロックをスキップすることで、トレーニング時間が短縮され、モデルの学習が効率化します。 このパラメーターはトレーニング データ ブロックにのみ適用され、検証データ ブロックには適用されません。
- [クラスの管理] を展開します。
- [クラス再分類] の下の [現在のクラス] で、[14] を選択します。 [再分類されたクラス] で、[14] を選択します。
クラス 14 は、点群内で分類して位置を特定する電線を表しています。
- 次の行の [現在のクラス] で [その他] を選択し、[再分類されたクラス] で [1] を選択します。
[クラス再分類] を指定しても、分類コード 14 は変わりません。つまり、LAS データセット内の電線としてすでに分類されているポイントは電線のままとなります。 その他のクラス コード (1、5、15) はすべてクラス コード 1 に再分類されます。 生成されたトレーニング データにはクラスが 1 と 14 の 2 つしか含まれていないため、シーンで電線を簡単に識別することができます。
- [クラスの説明] で、設定されているクラス コードとクラスの説明をそのまま使用します。
- [トレーニング パラメーター] を展開します。 [モデル選択基準] で、デフォルトの [再現率] をそのまま使用します。
[モデル選択基準] では、最終モデルの決定に使用する統計的基礎を指定します。 デフォルトの [再現率] では、すべてのクラス コードで再現率のマクロ平均が最高になるモデルが選択されます。 各クラス コードの再現率の値は、この値で分類されるべきすべてのポイント (期待陽性) に対する、正しく分類されたポイント (真陽性) の比率として計算されます。 各クラスの再現率の値は、検証データ内のこのクラスのすべてのリファレンス ポイントに対する、このクラスの正しく予測されたポイントの比率となります。 たとえば、クラス コード 14 の再現率の値は、検証データ内のすべての電線リファレンス ポイントに対する、正しく予測された電線ポイントの比率です。
- [エポックの最大数] に、「10」と入力します。
各エポックはニューラル ネットワークによって学習されたトレーニング データ全体の完全なサイクルです (つまり、トレーニング データ全体がニューラル ネットワークを通って前方/後方に 1 回渡されます)。 時間を節約するため、10 回のエポックでモデルをトレーニングします。
- [エポック当たりの反復 (%)] で、デフォルトの [100] をそのまま使用します。
[エポック当たりの反復 (%)] パラメーターを 100 のままにすることで、各エポックですべてのトレーニング データが渡されるようになります。
注意:
各エポックで渡すトレーニング データの割合を選択することもできます。 少数のバッチをランダムに選択することで各エポックの完了時間を短縮するには、このパラメーターを 100 以外の値に設定します。 ただし、これによってモデルが収束するまでのエポックの回数が増える可能性があります。 このパラメーターは、ツールのメッセージ ウィンドウでモデルのメトリクスを速やかに確認したい場合に役立ちます。
- [学習率方法] で、デフォルトの [1 サイクル学習率] をそのまま使用します。
- [学習率] に、「0.005」と入力します。
注意:
[学習率] を空白のままにし、最適な学習率が自動的に検出されるようにすることもできます。
- [バッチ サイズ] に、「6」と入力します。
[バッチ サイズ] では、一度に処理するブロックの数を指定します。 トレーニング データは複数のバッチに分割されます。 たとえば、[バッチ サイズ] の値が 20 に設定されている場合、1,000 個のブロックが 50 個のバッチに分割され、1 回のエポックでバッチが 50 個ずつ処理されます。 ブロックをバッチに分割することで、プロセスで消費される GPU メモリが減ります。
注意:
8 GB のグラフィックス カードでは、バッチ サイズ 20 をお勧めします。 CUDA のメモリ不足エラーが発生した場合は、より小さいバッチ サイズを使用する必要があります。
- [モデルの改善がなくなった時点でトレーニングを停止] チェックボックスをオフにします。
このチェックボックスをオフにすることで、10 回のエポックでトレーニングを実行できます。 オンにした場合、指定した最大エポック数に関係なく、数回のエポックの後でモデルの改善がなくなった時点でトレーニングが停止します。
- [実行] をクリックします。
注意:
システムに応じて、このツールの実行にかかる時間は異なります。 8 GB の専用メモリが搭載された NVIDIA Quadro RTX 4000 GPU では、このツールの実行に約 20 分かかります。 ツールの実行中に、その進行状況を監視できます。
- [ジオプロセシング] ウィンドウの下部で、[詳細の表示] をクリックします。
[点群分類モデルのトレーニングを実行 (3D Analyst ツール)] ウィンドウが開き、[パラメーター] タブに、このツールの実行に使用されたパラメーターが表示されます。
- [メッセージ] タブをクリックします。
注意:
ツールの実行中にジオプロセシング メッセージが表示されます。 ツールが完了すると、ジオプロセシング メッセージに各エポックの結果が表示されます。
注意:
メッセージの情報は、お使いの GPU とシステム設定に応じて、図に示されている例とは異なる場合があります。
このツールでは以下の情報がレポートされます。
- トレーニングで使用された GPU。
- トレーニングで使用されたトレーニング データ ブロックの数 (トレーニングでは 1,000 個以上のポイントが含まれているトレーニング データ ブロックだけが使用されます)。
- 検証で使用された検証データ ブロックの数 - 検証ではすべての検証データ ブロックが使用されます。
- エポック当たりの反復 - トレーニング データ ブロックの数をバッチ サイズで割った値。
このツールは、各エポックについて [トレーニング ロス]、[検証損失]、[正確度]、[精度]、[再現率]、[F1 スコア]、かかった [時間] をレポートします。
各エポックの進行に伴い、トレーニング ロスと検証損失の値が小さくなり、これはモデルが学習していることを示しています。
10 回のエポック後には、[再現率] の最高値が 0.98 を上回ります。
このモデルは精度が低いモデルです。このモデルは小さいデータセットでトレーニングされているので、これは想定内の結果です。 これらの結果から、より良い結果を得るためには別のデータセットでより多くのサンプル ポイントが必要であることがわかります。
- [点群分類モデルのトレーニングを実行] ウィンドウを閉じます。
トレーニングの出力の確認
次に、分類モデルのトレーニングの結果を確認します。
- [ファイル エクスプローラー]で、[C:\LearnArcGIS\DL\results] を参照します。
トレーニング データセットと検証データセットにはそれぞれ、サブフォルダーが 2 つあります。 1 つはモデル フォルダーで、もう 1 つはチェックポイント フォルダーです。
- [Powerline_classification_model_small_data] フォルダーを展開し、[Model Characteristics] フォルダーを展開します。
[Powerline_classification_model_small_data] フォルダーには、エポック 9 の保存済みモデルが含まれています。 モデル フォルダーには、複数のファイルが含まれています。 それらの中で、.pth ファイルはモデル ファイルで、.emd ファイルは Esri モデル定義ファイル (JSON 形式の構成ファイル) です。 [model_metrics.htm] には、学習ロスのグラフが含まれています。 .dlpk ファイルは、ディープ ラーニング モデル パッケージです。 これは圧縮ファイルで、ArcGIS Online で共有できます。
[Model Characteristics] フォルダーには、ロスのグラフとグランド トゥルースおよび予測結果のグラフが含まれています。
- [results] フォルダーに戻ります。 [Powerline_classification_model_small_data.checkpoints] フォルダーを開いてその内容を表示します。
[Powerline_classification_model_small_data.checkpoints] フォルダーには [models] フォルダーがあり、エポックの各チェックポイントのモデルと 2 つの .csv ファイルが含まれています。 トレーニング ツールの実行中に、エポックが終了するたびにチェックポイントが 1 つ作成されています。 各チェックポイントには .pth ファイルと .emd ファイルが含まれています。
- [Powerline_classification_model_small_data.checkpoints] フォルダーで、[Powerline_classification_model_small_data_Epoch_Statistics] Microsoft Excel ファイルを開いて統計情報を表示します。
この CSV ファイルが Excel で開きます。
注意:
大きな数字を科学表記法に変換するか確認する Microsoft Excel ウィンドウが表示された場合は、[変換] をクリックします。
これは、ツールのメッセージで表示されたものと同じテーブルです。
[Powerline_classification_model_small_data_Statistics] ファイルには、各エポックの後の各クラスの精度、再現率、F1 スコアの値が含まれています。 場合によっては、メトリクス全体が最良であるモデルが、特定のクラス コードの分類で最適な結果が得られるモデルではないことがあります。 特定のクラス コードの分類のみを目的としている場合、そのクラス コードで最良のメトリクスになるチェックポイント モデルを使用するようにしてください。 Excel で統計情報を表示することで、列を並べ替えて、再現率の値が最も高いエポックを簡単に見つけることができます。 少数のサンプリング ポイントを使用してモデルをトレーニングしました。 次に、多数のサンプリング ポイントを使用してトレーニングされたモデルを使用して、LAS データセットを分類します。
トレーニング済みモデルを使用した LAS データセットの分類
トレーニング済みモデルを使用して、300 万個以上のポイントが含まれている LAS データセットを分類します。 トレーニング済みモデルを使用して LAS データセットを分類することで、リスク評価分析の分析範囲内で電線を特定できます。 このモデルをトレーニングしたときに、[未分類] と [電線] の 2 つの分類コードが指定されています。 点群内のポイントを電線として分類し、その他を未分類とすることで、電線がはっきりと識別されるため、データセットがより価値のあるものとなります。
モデルの結果の確認と最良のエポックの選択
大きいデータセットを使用した、提供されているモデルのトレーニング結果を確認します。 電線の再現率の最も高い値を調べます。
- [ファイル エクスプローラー]を開き、[C:\LearnArcGIS\DL\results] を参照します。
これらのフォルダーには、24 GB の専用 GPU メモリが搭載されたコンピューターを使用して大きいデータをトレーニングしたときの結果が含まれています。
- [Powerline_classification_model_large_data.checkpoints] フォルダーを開き、[Powerline_classification_model_large_data_Statistics] をダブルクリックして Excel で統計情報を表示します。
このファイルが Excel で開きます。
- Excel で、列の区切り線をダブルクリックして、すべてのテキストが見えるように列の幅を広げます。
[Recall] 列で並べ替えて [Wire Conductor] の最も大きい値を調べ、そのエポックを LAS データセットの分類に使用します。 [Wire Conductor] の [Recall] の値が最も大きいエポックを分類で使用する必要があります。
- [Recall] 列ヘッダーをクリックしてその列全体をハイライトします。
- リボンの [編集] セクションで、[並べ替えとフィルター] をクリックし、[大きい順に並べ替え] を選択します。
- 開いた [並べ替えの前に] ウィンドウで、[並べ替え] をクリックします。
スプレッドシートの行が並べ替えられて、[Wire Conductor] の最も大きい値を確認できます。
- [CLASS_CODE] が [14] で [CLASS_Description] が [Wire Conductor] である 1 つ目の行 (行 23) を特定します。
これは [Wire Conductor] で再現率の値が最も高い [0.993655113] になっており、エポック 18 で発生しています。
電線クラス コードの再現率の値が最も高く、最良の結果が得られるため、LAS データセットを分類する際には、エポック (チェックポイント) 18 を使用します。
トレーニング済みモデルを使用した電線の分類
次に、トレーニング済みモデルを使用して、テスト データセット内の電線を分類します。 処理境界を適用して、その境界内のポイントだけを分類します。
- ArcGIS Pro を元に戻します。
- [カタログ] ウィンドウで、[フォルダー] を展開し、[DL] を展開し、[testdata] を展開します。 [test.lasd] のプロパティを開き、統計情報を更新します。 [OK] をクリックします。
- [test.lasd] を右クリックして [新しく追加] を選択し、[ローカル シーン] を選択します。
[test.lasd] LAS データセットがローカル シーンに表示されます。
- [コンテンツ] ウィンドウで、[test.lasd] をクリックして選択します。 リボンの [LAS データセット レイヤー] タブをクリックし、[シンボル] のドロップダウン矢印をクリックして [クラス] を選択します。
クラス コードを使用して [test.lasd] LAS データセットが描画されます。
地表ポイント (クラス 2) と低ノイズ ポイント (クラス 7) はすでに分類されています。 残りのポイントは未分類です (クラス 1)。
- [ジオプロセシング] ウィンドウで、[トレーニング済みモデルを使用して点群を分類] ツールを検索して開きます。
- [ターゲット点群] で、ドロップダウン メニューをクリックして [test.lasd] を選択します。
- [入力モデル定義] で、[参照] をクリックします。 [C:\LearnArcGIS\DL\results\Powerline_classification_model_large_data.checkpoints\models\checkpoint_2023-03-28_18-21-34_epoch_18] フォルダーを参照して開きます。 [checkpoint_2023-03-28_18-21-34_epoch_18.emd] をクリックし、[OK] をクリックします。
注意:
[入力モデル定義] では、.emd ファイル、.dlpk ファイル、または ArcGIS Online か ArcGIS Living Atlas of the World で共有されているモデルの URL を選択できます。
モデル定義ファイルを選択すると、[ターゲット分類] パラメーターが表示されます。
[バッチ サイズ] を空白のままにし、使用可能な GPU メモリに基づいて最適なバッチ サイズが自動的に計算されるようにします。
- [処理境界] で、C:\LearnArcGIS\DL\testdata\boundaries.gdb を参照し、bnd_test をダブルクリックします。
[処理境界] を選択した場合、このツールは提供されたトレーニング済みモデルを使用して境界内のポイントだけを分類します。
- [参照サーフェス] で、[参照] ボタンをクリックし、[C:\LearnArcGIS\DL\testdata] を参照します。 [dem_test.tif] をクリックし、[OK] をクリックします。
注意:
電線分類モデルは、境界と参照サーフェスを使用し、特定のクラス コードを除外してトレーニングされているため、[トレーニング済みモデルを使用して点群を分類] ツールにも同じパラメーターを設定する必要があります。
- [除外されるクラス コード] で、「2」と「7」を追加します。
クラス コード 2 と 7 は、分類から除外されます。 モデルは残りのポイント (クラス 1) のみを分類します。 モデルが実行されると、電線として予測されたポイントにはクラス コードとして 14 が割り当てられ、それ以外のポイントのクラス コードは 1 のままになります。
- [実行] をクリックします。
ツールが実行されます。 次に、シンボルを更新して分類モデルの結果を表示します。
- [シンボル] ウィンドウで [値] の横の [詳細] をクリックし、[すべての値を追加] をクリックします。
シンボルが更新され、点群内の電線として分類されたポイントが黄色で表示されます。
- ローカル シーンでナビゲーション ツールとショートカットを使用して分類の結果を確認します。
トレーニング済みモデルを使用して精度の高い分類結果が得られています。 電線のポイントのほとんどすべてが正しく分類されています。 電柱はまだ未分類になっていることに注意してください。
このチュートリアルでは、ディープ ラーニングの手法を使用した点群分類のワークフローについて学習しました。 ディープ ラーニングの概念、トレーニング プロセスにおける整合チェック データの重要性、およびトレーニング済みモデルの品質を評価する方法について学びました。 さらに、[点群から電線を抽出] ツールを使用して 3D ラインを生成して電線をモデル化することができます。 [クリアランス サーフェスの生成] ツールを使用して、電線の周囲のクリアランス ゾーンを特定することもできます。 クリアランス ゾーン内のポイント (ほとんどは樹木) は、電線に近すぎることで停電や火災の原因となる可能性があります。 これらのツールによって、保険のリスク評価に重要な情報が提供されます。
他のチュートリアルについては、チュートリアル ギャラリーをご覧ください。