システムの構成
ディープ ラーニング モデルを実行する前に、コンピューター システムをチェックし、グラフィックス カードの最新のドライバーをインストールする必要があります。また、ArcGIS Pro で使用するディープ ラーニング ライブラリがインストールされていることを確認する必要もあります。
グラフィックス カードのチェック
ディープ ラーニングを使用する際に実行されるプロセスでは、コンピューターのメモリが大量に消費されます。 ディープ ラーニング プロセスを実行するには、8 GB 以上の専用メモリが搭載された NVIDIA GPU が推奨されます。 グラフィックス カードの専用 GPU メモリをチェックするには、NVIDIA SMI ユーティリティを使用します。 「GPU とその機能の詳細については、ここをクリックしてください」。
- [スタート] メニューをクリックし、「コマンド」と入力します。 [コマンド プロンプト] をクリックして開きます。
[コマンド プロンプト] ウィンドウが表示されます。 最初に実行するコマンドは、NVIDIA-SMI ユーティリティがある場所にディレクトリを変更するコマンドです。
- [コマンド プロンプト] ウィンドウで、「cd」と入力し、スペースを追加し、「C:\Windows\system32」と入力するかコピーして貼り付けてから、Enter キーを押します。
注意:
お使いのコンピューターでの実行ファイルのパスは、グラフィックス カードがどのようにインストールされているかによって異なる場合があります。 NVIDIA は C:\Program Files\NVIDIA Corporation\NVSMI フォルダーにインストールされていることもあります。 C ドライブで nvidia-smi.exe を検索し、[コマンド プロンプト] で cd コマンドを使用してそのフォルダーにディレクトリを変更することができます。 正しいフォルダーに移動したら、nvidia-smi.exe ファイルを実行できます。
次に、専用 GPU メモリを検出する実行ファイルを実行します。
- [コマンド プロンプト] ウィンドウで、「nvidia-smi.exe」と入力するかコピーして貼り付けてから、Enter キーを押します。
このコマンドが実行され、コンピューターに搭載されている専用 GPU メモリの最大容量が表示されます。
コンピューターに応じて、表示される情報は異なる場合があります。 この例では、このレッスンの最小推奨値である 8 GB の GPU 専用メモリがコンピューターに搭載されています。
注意:
複数のグラフィックス カードがある場合、トレーニングと推測のプロセスで最適な GPU がディープ ラーニング ジオプロセシング ツールによって自動的に選択されます。
- グラフィックス カードの名前をメモし、[コマンド プロンプト] ウィンドウを閉じます。
この例では、グラフィックス カードの名前は Quadro RTX 4000 です。
グラフィックス カードの詳細を確認した後は、NVIDIA から最新のドライバーをダウンロードしてインストールします。
NVIDIA ドライバーの更新
次に、グラフィックス カードのドライバーを更新します。 古い GPU ドライバーはディープ ラーニング ツールが失敗する原因となるため、「システム要件を確認」し、ツールを実行する前にドライバーを更新するようにしてください。
- 「NVIDIA Driver Downloads」ページに移動します。
- [NVIDIA Driver Downloads] セクションで、お使いのグラフィックス カードに対応するオプションを選択します。 この例では、グラフィックス カードは Quadro RTX 4000 です。
- [Search] をクリックし、[Download] をクリックし、[Agree & Download] をクリックします。
- コンピューター上で、インストーラー ファイルを見つけて実行します。 システムに対する変更を許可するため [はい] をクリックし、[OK] をクリックしてインストーラーを実行します。
- NVIDIA インストーラー ウィンドウで、[Agree and Continue] をクリックし、デフォルトのインストール オプションをそのまま使用し、[Next] をクリックします。
- インストールが完了したら、[Close] をクリックします。
これで、ArcGIS Pro でディープ ラーニングにより画像を処理するために必要なドライバーが準備できました。 ただし、ArcGIS Pro が稼働するコンピューター上に、ディープ ラーニング ライブラリがインストールされている必要もあります。
注意:
ディープ ラーニング ツールを使用するには、正しいディープ ラーニング ライブラリがコンピューター上にインストールされている必要があります。 これらのファイルがインストールされていない場合は、プロジェクトを保存し、ArcGIS Pro を終了して、「ArcGIS 用のディープ ラーニング フレームワークのインストール」の手順に従います。 インストールが完了すると、プロジェクトを再度開いてレッスンを続行できます。
データのダウンロードと内容確認
次に、このレッスンを通してトレーニングと点群データの分類に使用するデータが含まれている 3 つの *.zip ファイルをダウンロードします。 データをダウンロードして抽出した後は、ArcGIS Pro で LAS データセット ファイルの内容を確認してシンボル表示します。
データのダウンロード
このレッスンを完了するために必要なすべてのデータが、これからダウンロードする 3 つの *.zip ファイルに含まれています。
- コンピューターで、ファイル エクスプローラーを開きます。
- C:\ ドライブに、LearnArcGIS という名前のフォルダーを作成します。 LearnArcGIS フォルダー内に、DL という名前のもう 1 つのフォルダーを作成します。
この C:\LearnArcGIS\DL フォルダーに、このレッスンのすべてのデータと出力を保存します。
- 次の *.zip ファイルをダウンロードします。
- smalldata.zip - 小さいトレーニング データセットとトレーニング境界および小さい整合チェック データセットと整合チェック境界が含まれています。
- testdata.zip - テスト データセットと処理境界。
- outputs.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 Enterprise にサイン インします。
注意:
ArcGIS Pro へのアクセス権限または組織アカウントがない場合は、ソフトウェア アクセスのオプションをご参照ください。
- [新規] および [空のテンプレート] の下で、[ローカル シーン] をクリックします。
- [新しいプロジェクトの作成] ダイアログ ボックスで、[名前] に「Powerline Classification with DL」と入力します。 [場所] で、[参照] をクリックして C:\LearnArcGIS を参照し、DL フォルダーをクリックして [OK] をクリックします。 [このプロジェクトのための新しいフォルダーを作成] チェックボックスをオフにします。
- [OK] をクリックします。
- [カタログ] ウィンドウで、[フォルダー] を展開し、DL を展開します。
注意:
[カタログ] ウィンドウが表示されていない場合は、リボンの [表示] をクリックし、[ウィンドウ] グループで [カタログ ウィンドウ] をクリックします。
ダウンロードしてこの場所に抽出したデータ フォルダーが表示されます。
最初に、small_data フォルダー内のファイルを確認し、データセットの統計情報を更新して適切なクラス コードが表示されるようにします。
- [カタログ] ウィンドウで、small_data フォルダーを展開します。 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 を現在のマップに追加します。
- シーンで、ポインターをドラッグしながら C キーや V キーを押してシーンを傾けたり画面移動したりして、3D でデータセットを確認します。
train_small.lasd はモデルのトレーニングに使用し、val_small.lasd はトレーニング プロセス中の過剰適合を防止するためにトレーニング済みモデルを整合チェックするときに使用します。
次に、各 LAS レイヤーのシンボルを更新して、分類コードごとに異なる色で表示されるようにします。 まずは、train_small.lasd レイヤーから始めます。
- [コンテンツ] ウィンドウで、train_small.lasd レイヤーをクリックして選択します。 リボンの [表示設定] タブをクリックします。
- [表示設定] タブの [描画] セクションで、[シンボル] ドロップダウン メニューをクリックし、[クラス] を選択します。
[シンボル] ウィンドウが表示され、train_small.lasd レイヤーがその分類コードに従ってシンボル表示されます。
注意:
LAS データセットに空白がある場合、キャッシュに問題があります。 LAS データセットのプロパティを開き、[キャッシュ] を選択し、[キャッシュの削除] をクリックしてこれを修正するか、ArcGIS Pro を閉じて開くとこれが自動的に修正されます。
- [コンテンツ] ウィンドウで、val_small.lasd をクリックします。 [表示設定] タブで、[シンボル] をクリックし、[クラス] を選択します。
val_small.lasd レイヤーがその分類コードに従ってシンボル表示されました。
注意:
LAS データセットが大きい場合、他のレイヤーより時間がかかることがあります。 表示時間を短縮するため、[LAS データセットのピラミッドを構築 (Build LAS Dataset Pyramid)] ツールを使用してピラミッドを構築できます。 このツールは、レンダリング パフォーマンスを最適化する LAS データセットの表示キャッシュを作成または更新します。
- リボンの上にあるクイック アクセス ツールバーで [保存] をクリックして、プロジェクトを保存します。
次に、確認したデータセットのいくつかを使用してモデルをトレーニングします。
小さいデータセットを使用したモデルのトレーニング
このセクションでは、小さいデータセットを使用して、分類モデルのトレーニングのプロセスを実行します。 このデータセットには、より高い精度の分類に必要な数のポイントが含まれていないため、生成される分類モデルの精度が低くなる可能性があります。 このセクションでは、モデルをトレーニングするプロセスについて説明します。このレッスンの後半では、多数のサンプリング ポイントでトレーニングされたモデルを使用して、LAS データセットを分類して電線を可視化します。
トレーニング データセットの準備
LAS データセットをモデルのトレーニングに直接使用することはできません。 LAS データセットを小さいトレーニング ブロックに変換する必要があります。 ArcGIS Pro の [点群トレーニング データの準備 (Prepare Point Cloud Training Data)] ジオプロセシング ツールを使用して、LAS ファイルをブロックにエクスポートします。
ここでの目的は、電線に相当するポイントを識別して分類するようにモデルをトレーニングすることです。 LAS 点群データのすべてのポイントを確認する必要はありません。 電線の周囲の領域にあるポイントだけを確認する必要があります。 用意されている境界データ bnd_train_small および bnd_val_small を使用して、トレーニング ブロックに変換するポイントを指定します。
- リボンの [解析] タブをクリックして、[ツール] をクリックします。
[ジオプロセシング] ウィンドウが表示されます。
- [ジオプロセシング] ウィンドウで、[点群トレーニング データの準備 (Prepare Point Cloud Training Data)] ツールを検索し、開きます。
注意:
このツールには ArcGIS 3D Analyst extension が必要です。 - [点群トレーニング データの準備 (Prepare Point Cloud Training Data)] ツールで、次のパラメーターを設定します。
- [入力点群] で、train_small.lasd を選択します。
- [トレーニング境界フィーチャ] で、[参照] をクリックして C:\LearnArcGIS\DL\small_data\boundaries.gdb を参照し、bnd_train_small を選択して [OK] をクリックします。
- [検証点群] で、val_small.lasd を選択します。
- [検証境界フィーチャ] で、[参照] をクリックして C:\LearnArcGIS\DL\small_data\boundaries.gdb を参照し、bnd_val_small を選択して [OK] をクリックします。
すべてのトレーニング レイヤー、境界レイヤー、整合チェック レイヤーの入力が完了しました。
- [出力トレーニング データ] で、[参照] をクリックして C:\LearnArcGIS\DL\results を参照します。 [名前] に、「training_data_small.pctd」と入力します。
注意:
出力ファイルの拡張子 *.pctd は、点群トレーニング データを意味しています。
- [保存] をクリックします。
- [点群トレーニング データの準備 (Prepare Point Cloud Training Data)] ツールで、続けて次のパラメーターを入力します。
- [ブロック サイズ] に、「82」と入力します。 [不明] で、ドロップダウン メニューをクリックし、単位として [フィート] を選択します。
- [ブロック ポイント制限] は、デフォルトの 8192 のままにします。
[ブロック サイズ] と [ブロック ポイント制限] は、1 つのブロック内のポイントの数を制御します。 この 2 つのパラメーターの値を設定する際には、平均ポイント間隔、対象オブジェクト、使用可能な専用 GPU メモリ、バッチ サイズを考慮することが重要です。 一般的に、ブロック サイズは最小のサブサンプリング量で対象オブジェクトをキャプチャするのに十分な大きさである必要があり、サイズが十分でない場合には元のデータのサイズを小さくします。
[ブロック サイズ] を 82 フィート (約 25 メートル)、[ブロック ポイント制限] を 8192 に設定して作業を始めます。82 フィートは電線のジオメトリをキャプチャするのに適切なブロック サイズです。 出力で、ブロック ポイント制限として 8,192 が適切であるかどうかを確認します。 ほとんどのブロックに 8,192 個以上のポイントが含まれている場合、ブロック ポイント制限を引き上げてサブサンプリングを減らす必要があります。
注意:
大きなデータの場合、[点群トレーニング データの準備 (Prepare Point Cloud Training Data)] ツールを実行する前に、[LAS ポイント統計をラスターに出力 (LAS Point Statistics As Raster)] ツールを使用してヒストグラムを生成し、適切なブロック サイズとブロック ポイント制限を決定することをお勧めします。 このツールを使用するには、方法として [ポイント数] を選択し、サンプリング タイプとして [セル サイズ] を選択し、[ブロック サイズ] の値を変えてテストします。
- [実行] をクリックします。
ツールが完了すると、ウィンドウの下部に確認メッセージが表示されます。
- 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 およびリターン番号や強度などの属性) がブロックに分けて整理されています。
- train フォルダーで、BlockPointCountHistogram.png をダブルクリックします。
BlockPointCountHistogram.png では、指定したブロック サイズ (82) に基づいたブロック ポイント数のヒストグラムが表示されます。
このヒストグラムから、ほとんどのブロックのポイント数が 8,192 未満であることがわかります。このことから 82 フィートの [ブロック サイズ] とデフォルトの 8,192 の [ブロック ポイント制限] がこのデータセットに適していることを確認できます。
トレーニング データの準備が完了したので、ブロックを使用してディープ ラーニングで分類モデルをトレーニングします。
分類モデルのトレーニング
次に、[点群分類モデルのトレーニングを実行 (Train Point Cloud Classification Model)] ジオプロセシング ツールを使用して、小さいトレーニング データセットを使用して電線分類のモデルをトレーニングします。 結果は、このツールを実行するたびに異なり、コンピューターの構成によっても異なる場合があります。
- ArcGIS Pro の [ジオプロセシング] ウィンドウで、戻る矢印をクリックします。 [点群分類モデルのトレーニングを実行 (Train Point Cloud Classification Model)] ツールを検索して開きます。
- [点群分類モデルのトレーニングを実行 (Train Point Cloud Classification Model)] ツールで、次のパラメーターを設定します。
- [入力トレーニング データ] で、[参照] をクリックします。 C:\LearnArcGIS\DL\results を参照し、training_data_small.pctd をダブルクリックします。
- [事前トレーニング済みモデル] は空白のままにします。
- [属性選択] で、ドロップダウン メニューをクリックして [強度] を選択します。
注意:
電線の強度は植生や地表と比べて低いため、これは電線を識別するのに効果的な属性です。
- [出力モデルの場所] で、results フォルダーを参照します。 これをクリックし、[OK] をクリックします。
- [出力モデル名] に、「Powerline_classification_model_small_data」と入力します。
- [ブロックごとの最小ポイント数] に、「2000」と入力します。
トレーニング中に [ブロックごとの最小ポイント数] を 2000 に設定することで、ポイント数が 2,000 未満のブロックはスキップされます。 ポイント数が少ないブロックは、電線ポイントがない境界に存在することが見込まれます。 トレーニングでこのようなブロックをスキップすることで、トレーニング時間が短縮され、モデルの学習が効率化します。 このパラメーターはトレーニング データ ブロックにのみ適用され、整合チェック データ ブロックには適用されません。
- [クラスの管理] を展開します。
- [クラス再分類] の下の [現在のクラス] で、14 を選択します。 [再分類されたクラス] で、14 を選択します。
クラス 14 は、点群内で分類して位置を特定する電線を表しています。
- 次の行の [現在のクラス] で [その他] を選択し、[再分類されたクラス] で 1 を選択します。
[クラス再分類] を指定しても、分類コード 14 は変わりません。つまり、LAS データセット内の電線としてすでに分類されているポイントは電線のままとなります。 その他の分類コードはすべてクラス コード 1 に再分類されます。 生成されたレイヤーにはシンボル化されたクラスが 1 と 14 の 2 つしか含まれていないため、シーンで電線を簡単に識別することができます。
- [クラスの説明] で、設定されているクラス コードとクラスの説明をそのまま使用します。
- [トレーニング パラメーター] を展開します。 [モデル選択基準] で、デフォルトの [再現率] をそのまま使用します。
[モデル選択基準] では、最終モデルの決定に使用する統計的基礎を指定します。 デフォルトの [再現率] では、すべてのクラス コードで再現率のマクロ平均が最高になるモデルが選択されます。 各クラス コードの再現率の値は、この値で分類されるべきすべてのポイント (期待陽性) に対する、正しく分類されたポイント (真陽性) の比率として計算されます。 各クラスの再現率の値は、整合チェック データ内のこのクラスのすべてのリファレンス ポイントに対する、このクラスの正しく予測されたポイントの比率となります。 たとえば、クラス コード 14 の再現率の値は、整合チェック データ内のすべての電線リファレンス ポイントに対する、正しく予測された電線ポイントの比率です。
- [エポックの最大数] に、「10」と入力します。
各エポックはニューラル ネットワークによって学習されたトレーニング データ全体の完全なサイクルです (つまり、トレーニング データ全体がニューラル ネットワークを通って前方/後方に 1 回渡されます)。 時間を節約するため、10 回のエポックでモデルをトレーニングします。
- [エポック当たりの反復 (%)] で、デフォルトの 100 をそのまま使用します。
[エポック当たりの反復 (%)] パラメーターを 100 のままにすることで、各エポックですべてのトレーニング データが渡されるようになります。
注意:
各エポックで渡すトレーニング データの割合を選択することもできます。 少数のバッチをランダムに選択することで各エポックの完了時間を短縮するには、このパラメーターを 100 以外の値に設定します。 ただし、これによってモデルが収束するまでのエポックの回数が増える可能性があります。 このパラメーターは、ツールのメッセージ ウィンドウでモデルのメトリクスを速やかに確認したい場合に役立ちます。
- [学習率] を空白のままにし、最適な学習率が自動的に選択されるようにします。
注意:
異なる学習率で試すことができます。 小さい値ではモデルのトレーニングの速度が低下することがあり、大きい値ではモデルが収束しない可能性があります。
- [バッチ サイズ] で、デフォルト値 2 を使用します。
[バッチ サイズ] では、一度に処理するブロックの数を指定します。 トレーニング データは複数のバッチに分割されます。 たとえば、[バッチ サイズ] の値が 2 に設定されている場合、1,000 個のブロックが 500 個のバッチに分割され、1 回のエポックでバッチが 500 個ずつ処理されます。 ブロックをバッチに分割することで、プロセスで消費される GPU メモリが減ります。
- [モデルの改善がなくなった時点でトレーニングを停止] チェックボックスをオフにします。
このチェックボックスをオフにすることで、10 回のエポックでトレーニングを実行できます。 オンにした場合、指定した最大エポック数に関係なく、数回のエポックの後でモデルの改善がなくなった時点でトレーニングが停止します。
- [実行] をクリックします。
注意:
システムに応じて、このツールの実行にかかる時間は異なります。 8 GB の専用メモリが搭載された NVIDIA Quadro RTX 4000 GPU では、このツールの実行に約 30 分かかります。 4 GB のメモリが搭載された GPU では、約 50 分かかります。 ツールの実行中に、その進行状況を監視できます。
- [ジオプロセシング] ウィンドウの下部で、[詳細の表示] をクリックします。
[点群分類モデルのトレーニングを実行 (3D Analyst ツール)] ウィンドウが開き、[パラメーター] タブに、このツールの実行に使用されたパラメーターが表示されます。
- [メッセージ] タブをクリックします。
注意:
ツールの実行中にジオプロセシング メッセージが表示されます。 ツールが完了すると、ジオプロセシング メッセージに各エポックの結果が表示されます。
注意:
メッセージの情報は、お使いの GPU とシステム設定に応じて、図に示されている例とは異なる場合があります。
このツールでは以下の情報がレポートされます。
- トレーニングで使用された GPU。
- トレーニングで使用されたトレーニング データ ブロックの数 (トレーニングでは 2,000 個以上のポイントが含まれているトレーニング データ ブロックだけが使用されます)。
- 整合チェックで使用された整合チェック データ ブロックの数 - 整合チェックではすべての整合チェック データ ブロックが使用されます。
- エポック当たりの反復 - トレーニング データ ブロックの数をバッチ サイズで割った値。
このツールは、最適な学習率を最初に計算してから、[トレーニング ロス]、[整合チェック ロス]、[正確度]、[精度]、[再現率]、[F1 スコア]、および各エポックにかかった [時間] をレポートします。
各エポックの進行に伴い、トレーニング ロスと整合チェック ロスの値が小さくなり、これはモデルが学習していることを示しています。 最終エポックでは、トレーニング ロスは低くなっていますが、整合チェック ロスは高くなっており、このトレーニングがトレーニング データに過剰適合していることを意味しています (つまり、このトレーニング済みモデルは新規の未知データに対して十分に般化していません)。
最終エポックでは、[再現率] の値が 0.80 を上回っています。
[再現率] の値が小さいということは、そのモデルの精度が低いことを示しています。このモデルは小さいデータセットでトレーニングされているので、これは想定内の結果です。 これらの結果から、より良い結果を得るためには別のデータセットでより多くのサンプル ポイントが必要であることがわかります。
トレーニングの出力の確認
次に、分類モデルのトレーニングの結果を確認します。
- ファイル エクスプローラーで、C:\LearnArcGIS\DL\results を参照します。
このフォルダーには、2 つのサブフォルダーがあります。 1 つはモデル フォルダーで、もう 1 つはチェックポイント フォルダーです。
- Powerline_classification_model_small_data フォルダーを展開し、Model Characteristics フォルダーを展開します。
Model Characteristics フォルダーには、ロスのグラフとグランド トゥルースおよび予測結果のグラフが含まれています。
- Model Characteristics フォルダーで、loss_graph をダブルクリックしてモデルのロスのグラフを表示します。
- results フォルダーに戻ります。 Powerline_classification_model_small_data.checkpoints フォルダーを開いてその内容を表示します。
Powerline_classification_model_small_data.checkpoints フォルダーには models フォルダーがあり、エポックの各チェックポイントのデータと、HTML 形式と CSV 形式の 2 つのファイル バージョンによる統計情報が含まれています。 トレーニング ツールの実行中に、エポックが終了するたびにチェックポイントが 1 つ作成されています。 各チェックポイントには *.pth ファイルと *.emd ファイルが含まれています。
- Powerline_classification_model_small_data.checkpoints フォルダーで、Powerline_classification_model_small_data_Statistics Microsoft Excel ファイルを開いて統計情報を表示します。
この CSV ファイルが Excel で開きます。
統計情報ファイルには、各エポックの後の各クラスの精度、再現率、F1 スコアの値が含まれています。 場合によっては、メトリクス全体が最良であるモデルが、特定のクラス コードの分類で最適な結果が得られるモデルではないことがあります。 特定のクラス コードの分類のみを目的としている場合、そのクラス コードで最良のメトリクスになるチェックポイント モデルを使用するようにしてください。 Excel で統計情報を表示することで、列を並べ替えて、再現率の値が最も高いエポックを簡単に見つけることができます。 少数のサンプリング ポイントを使用してモデルをトレーニングしました。 次に、多数のサンプリング ポイントを使用してトレーニングされたモデルを使用して、LAS データセットを分類します。
トレーニング済みモデルを使用した LAS データセットの分類
トレーニング済みモデルを使用して、200 万個以上のポイントが含まれている LAS データセットを分類します。 トレーニング済みモデルを使用して LAS データセットを分類することで、リスク評価分析の分析範囲内で電線を特定できます。 このモデルをトレーニングしたときに、[未分類] と [電線] の 2 つの分類コードが指定されています。 点群内のポイントを電線として分類し、その他を未分類とすることで、電線がはっきりと識別されるため、データセットがより価値のあるものとなります。
モデルの結果の確認と最良のエポックの選択
大きいデータセットを使用した、提供されているモデルのトレーニング結果を確認します。 電線の再現率の最も高い値を調べます。
- ファイル エクスプローラーを開き、C:\LearnArcGIS\DL\results を参照します。
これらのフォルダーには、24 GB の専用 GPU メモリが搭載されたコンピューターを使用して小さいデータと大きいデータをトレーニングしたときの結果が含まれています。
注意:
parameters ファイルと progress ファイルはトレーニングの結果ではなく、使用されたパラメーターとエポックの統計情報のスクリーン ショットがそれぞれ含まれています。
- 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] の値が [Wire Conductor] である 1 つ目の行 (行 25) を特定します。
これは [Wire Conductor] で再現率の値が最も高い 0.923336055 になっており、エポック 16 で発生しています。
電線クラス コードの再現率の値が最も高く、最良の結果が得られるため、LAS データセットを分類する際には、エポック (チェックポイント) 16 を使用します。
注意:
提供されているトレーニング済みモデルを使用して LAS データセットを分類します。 トレーニングを実行した場合、自分でトレーニングしたモデルを使用することもできます。 統計情報スプレッドシートで同じ手順に従って、電線の再現率の値が最も高いエポックを調べ、そのエポック ファイルを使用してデータを分類します。
トレーニング済みモデルを使用した電線の分類
次に、トレーニング済みモデルを使用して、テスト データセット内の電線を分類します。 処理境界を適用して、その境界内のポイントだけを分類します。
- ArcGIS Pro を元に戻します。
- [カタログ] ウィンドウで、[フォルダー] を展開し、DL を展開し、testdata を展開します。 test.lasd を右クリックして [新しく追加] を選択し、[ローカル シーン] を選択します。
test.lasd LAS データセットがローカル シーンに表示されます。
- 必要に応じて、[コンテンツ] ウィンドウで、test.lasd をクリックして選択します。 リボンの [表示設定] タブをクリックし、[シンボル] のドロップダウン矢印をクリックして [クラス] を選択します。
クラス コードを使用して test.lasd LAS データセットが描画されます。
現在のところ、このレイヤーにはクラス コードが 1 (未分類) のポイントだけが表示されているため、すべてのポイントが灰色になっています。
- [ジオプロセシング] ウィンドウで、[トレーニング済みモデルを使用して点群を分類] ツールを検索して開きます。
- [ターゲット点群] で、ドロップダウン メニューをクリックして test.lasd を選択します。
- [処理境界] で、C:\LearnArcGIS\DL\testdata\boundaries.gdb を参照し、bnd_test をダブルクリックします。
[処理境界] を選択した場合、このツールは提供されたトレーニング済みモデルを使用して境界内のポイントだけを分類します。
注意:
電線分類モデルは電線の周辺境界内のポイントを使用してトレーニングされているため、分類するテスト データセットにも同様の境界を適用する必要があります。
- [入力モデル定義] で、[参照] をクリックします。 C:\LearnArcGIS\DL\results\Powerline_classification_model_large_data.checkpoints\models\checkpoint_2021-10-05_18-54-53_epoch_16 を参照します。checkpoint_2021-10-05_18-54-53_epoch_16.emd をクリックして [OK] をクリックします。
注意:
[入力モデル定義] では、*.emd ファイル、*.dlpk ファイル、または ArcGIS Online か ArcGIS Living Atlas of the World で共有されているモデルの URL を選択できます。
モデル定義ファイルを選択すると、[ターゲット分類] パラメーターが表示されます。
- [ターゲット分類] の下の [1 未分類] チェックボックスをオフにします。
[1 未分類] チェックボックスをオフにすると、モデルが実行されたときに、電線として予測されたポイントにはクラス コードとして 14 が割り当てられ、それ以外のポイントのクラス コードは 1 のままになります。
- [実行] をクリックします。
ツールが実行されます。 次に、シンボルを更新して分類モデルの結果を表示します。
- [シンボル] ウィンドウを開きます。 [値] の横の [詳細] をクリックし、[すべての値を追加] をクリックします。
シンボルが更新され、点群内の電線として分類されたポイントが黄色で表示されます。
- ローカル シーンでナビゲーション ツールとショートカットを使用して分類の結果を確認します。
トレーニング済みモデルを使用して精度の高い分類結果が得られています。 電線のポイントのほとんどが正しく分類されています。 電柱はまだ未分類になっていることに注意してください。
このレッスンでは、ディープ ラーニングの手法を使用した点群分類のワークフローについて学習しました。 ディープ ラーニングの概念、トレーニング プロセスにおける整合チェック データの重要性、およびトレーニング済みモデルの品質を評価する方法について学びました。 さらに、[点群から電線を抽出] ツールを使用して 3D ラインを生成して電線をモデル化することができます。 [近接性による LAS ポイントの特定] ツールを使用して、電線から一定の距離内にある LIDAR ポイントを見つけることもできます。 これらのポイント (ほとんどは樹木) は、電線に近すぎることで停電や火災の原因となる可能性があります。 これらのツールによって、保険のリスク評価に重要な情報が提供されます。
他のチュートリアルについては、チュートリアル ギャラリーをご覧ください。