モデルのトレーニング
土地利用土地被覆 (LULC) 分類は、リモート センシング画像に基づいて、広い地理範囲の土地利用および土地被覆に関する一般的なカテゴリの概要を示します。 環境モニタリング、資源管理、生物多様性の保全、災害リスクの低減、気候変動の分析など、さまざまな側面で極めて重要な役割を果たします。 土地利用に関する変化の体系的な監視、資源の効率的な割り当て、生息地保護、災害が起こりやすい地域の特定、気候変動の影響評価を容易にします。
[AutoDL を使用したトレーニング] ツールを使用して、複数のモデルのトレーニングと最善モデルの特定を行い、合成開口レーダー (SAR) 画像の土地被覆を分類します。
データのダウンロードと内容確認
まず、使用するトレーニング データが含まれるプロジェクトをダウンロードします。
- AutoDL_tutorial.ppkx パッケージをダウンロードします。
コンピューターに [AutoDL_tutorial.ppkx] ファイルがダウンロードされます。
注意:
.ppkx ファイルは、ArcGIS Pro プロジェクト パッケージです。これには、ArcGIS Pro で開くことができるマップ、データ、その他のファイルが含まれます。 .ppkx ファイルの管理の詳細については、このガイドをご参照ください。
プロジェクト パッケージのサイズは約 4.3GB であるため、ダウンロードにはしばらく時間がかかります。
- コンピューター上で、ダウンロードしたファイルを選択します。
注意:
お使いの Web ブラウザーによっては、ダウンロードを開始する前に、ファイルの場所を選択するよう求めるメッセージが表示される場合があります。 ほとんどのブラウザーでは、デフォルトでコンピューターのダウンロード フォルダーがダウンロード先の場所になります。
- [AutoDL_tutorial.ppkx] プロジェクト パッケージをダブルクリックします。
注意:
パッケージ化されたプロジェクトが [ドキュメント] フォルダーに展開されます。 このプロセスでは、圧縮されたプロジェクトおよびデータが新しい場所に展開されるため、しばらく時間がかかります。 プロジェクトのパスは C:\Users\username\Documents\ArcGIS\Packages\AutoDL_tutorial_7bd31e のようになります。 最後のフォルダー名の末尾数桁はランダムに生成されます。
プロジェクトの元の状態から開始する場合は、このフォルダーの名前を変更するか、フォルダーを削除して [AutoDL_tutorial.ppkx] プロジェクト パッケージ ファイルをダブルクリックし、プロジェクトのコピーを作成できます。
注意:
ArcGIS Pro へのアクセス権限または組織アカウントがない場合は、ソフトウェア アクセスのオプションをご参照ください。
[AutoDL を使用したトレーニング] ツールでは、ArcGIS Pro バージョン 3.2 以降が必要です。
- プロンプトが表示されたら、ArcGIS Online 組織アカウントでサイン インします。
ドイツの一部を示すマップが表示されます。 [LULCRaster2018.tif] イメージ レイヤーが地形図ベースマップの上に表示されます。
[LULCRaster.tif] レイヤーは、レベル 1 の LULC クラスを示す、分類されたラスターです。 この分類システムでは、地表を市街地、農地、森林、水域、湿地帯などの一般的な土地利用および土地被覆タイプに大まかにカテゴリ分類します。 最も基本的な分類レベルとして機能し、大規模な解析向けに主要な土地カテゴリの概要を提供します。
- リボン上の [マップ] タブの [ナビゲーション] セクションで、[ブックマーク] をクリックしてから [Speyer] ブックマークを選択します。
マップ上で [LULCRaster2018.tif] レイヤーの南西部が拡大表示されます。
このレイヤーでは、森林と農地のある、川に近い市街地が表示されます。
- [コンテンツ] ウィンドウで、[LULCRaster2018.tif] レイヤーをオフにし、[SARImagery2018.tif] レイヤーをオンにします。
[SARImagery2018.tif] レイヤーは、リモート センシングされた 2018 年の Sentinel-1 Ground Range Detected (GRD) SAR 画像から導き出されたものです。 このレイヤーは座標精度が 10 メートルで、3 バンドの TIFF 形式として保存されています。
注意:
元の SAR 画像は、分析の準備を行うためにダウンロードおよび処理されました。 元は VV および VH の 2 つの偏波バンドで構成されており、ダウンロードされ、[バンド演算] ラスター関数を使用して VV/VH から導出されたバンドが作成されました。 このバンドは、VH バンドによって分割された VV バンドで構成されています。 このバンド割り当ては、散乱の振舞いの違いを強調してくれるため有益で、これを利用してサーフェス特性に関する推測をすることができます。 この処理の後、[コンポジット バンド] ジオプロセシング ツールを使用して 8 ビット符号なしピクセル深度の VV、VH、および VV/VH コンポジットが作成されました。
地球上のあらゆる場所の Sentinel-1 GRD データを無料でダウンロードできる Web サイトの 1 つが、ASF Data Search Vertex の Web サイトです。
Sentinel-1 データは定期的に収集されるため、さまざまな画像を比較して時間の経過に伴う変化を検出できます。
この画像のすべてのピクセルをレベル 1 の LULC クラスに手作業で分類するのは、時間がかかり、面倒なプロセスです。 ディープ ラーニング モデルでは、画像の LULC 分類を自動化できるため、新しいデータを定期的に取得し、分類して、以前の画像からの変化を検出するのに役立てることができます。 このチュートリアルでは、このワークフローを使用して、土地利用土地被覆データを 1 年ごとに更新できるかどうか、また時間の経過に伴う変化を特定して報告できるかどうかを判断するためのプロセスを試します。
トレーニング データの探索
プロジェクト パッケージには、最善モデルをトレーニングし、特定するために使用するトレーニング サンプルが含まれます。 これらのサンプルは、ディープ ラーニング用のトレーニング データをエクスポート ツールを使用して作成されました。 このデータを準備する手順は本チュートリアルの範囲外です。 その方法の詳細については、こちらをご参照ください。
- リボンの [表示] タブをクリックします。 [ウィンドウ] セクションで、[カタログ ウィンドウ] をクリックします。
- [カタログ] ウィンドウで、[フォルダー]、[AutoDL_tutorial] フォルダー、[trainingdata] フォルダーの順に展開します。
[trainingdata] フォルダーには、使用するトレーニング データが含まれています。
[images] フォルダーには、ディープ ラーニング用のトレーニング データをエクスポート ツールを使用して [SARImagery2018.tif] レイヤーから抽出された画像チップが含まれます。
[labels] フォルダーには、分類された土地被覆タイプを示すラベル画像が含まれます。
ディープ ラーニング モデルをトレーニングしてこの画像を分類するには、画像チップおよび一致するラベルをモデルに提示することが必要です。これにより、どのクラスがどの SAR バンド割り当てと関連付けられているのかを、モデルが学習できます。
複数のモデルのトレーニング
ディープ ラーニングの課題の 1 つが、使用するモデル アーキテクチャを決定することです。 モデルを選択し、トレーニングするこのプロセスは、混乱が生じて時間がかかることがあります。モデルの強みと弱みはさまざまで、異なる入力とパラメーターが必要になるためです。 [AutoDL を使用したトレーニング] ツールでは、トレーニングするモデル アーキテクチャのセットを選択できます。 その後、モデル アーキテクチャをトレーニングおよびテストして、どのモデルが最善だったかを報告します。
[AutoDL を使用したトレーニング] ツールは、トレーニング パイプラインを構築し、トレーニング プロセスの多くを自動化することで、ディープ ラーニング モデルのセットをトレーニングします。 ここには、データ拡張、モデル選択、ハイパーパラメーター調整、バッチ サイズ推論が含まれます。 その出力には、他の画像を分類するために [AI モデルを使用したフィーチャの抽出] ツールまたは [ディープ ラーニングを使用したピクセルの分類] ツールで使用できるトレーニング データおよびトレーニングされたディープ ラーニング モデル パッケージ (.dlpk ファイル) に関する最善モデルのパフォーマンス指標が含まれます。
注意:
ディープ ラーニング ツールを ArcGIS Pro で使用するには、正しいディープ ラーニング ライブラリがコンピューター上にインストールされている必要があります。 これらのファイルがインストールされていない場合は、プロジェクトを保存し、ArcGIS Pro を終了して、「ArcGIS Pro でのディープ ラーニングの準備」に記載された手順に従います。 これらの手順では、お使いのコンピューター ハードウェアとソフトウェアでディープ ラーニング ワークフローを実行できるかどうかを確認する方法と他の有用なヒントについても説明します。 完了したら、プロジェクトを再度開いてチュートリアルを続行できます。
- リボンの [解析] タブの [ジオプロセシング] セクションで、[ツール] をクリックします。
- [ジオプロセシング] ウィンドウの検索ボックスに「train using autodl」と入力します。 検索結果で、[AutoDL を使用したトレーニング] ツールをクリックします。
- [AutoDL を使用したトレーニング] ツール ウィンドウの [入力トレーニング データ] で、[参照] ボタンをクリックします。 [フォルダー]、[AutoDL_tutorial] フォルダーの順に参照し、[trainingdata] フォルダーをクリックして [OK] をクリックします。
- [出力モデル] で [参照] ボタンをクリックします。 [AutoDL_tutorial] フォルダーを参照し、「ClassifiedSARLULC」と入力して、[保存] をクリックします。
これにより、出力されたトレーニング済みモデルを含めるための新しいフォルダーが作成されます。
次に、ツールでモデルのトレーニングを行う時間を指定します。
- [合計時間制限 (時間)] に、「4」と入力します。
ツールは最長 4 時間このタスクについて作業します。 コンピューターの GPU に応じて、この時間全体を使用する場合も、あるいはこれよりも短い時間でタスクを完了する場合もあります。
トレーニング データの形式に基づいて、ピクセル分類に固有の、サポートされるニューラル ネットワークのリストが表示されます。
- [高度な設定] セクションを展開します。
- [ニューラル ネットワーク] で、[複数追加] をクリックします。
[ニューラル ネットワーク] リストが表示されます。
- 次のニューラル ネットワークをオンにします。
- HRNet
- PSPNetClassifier
- UnetClassifier
- [追加] をクリックします。
上記のニューラル ネットワークが、[AutoDL を使用したトレーニング] ツールによってトレーニングおよび評価されるネットワークのリストに追加されます。
これらはセマンティック セグメンテーションを使用してラスター内のピクセルを分類するニューラル ネットワークです。 一般的に、土地被覆の分類に使用されます。
- [評価済みモデルの保存] チェックボックスをオンにします。
[AutoDL を使用したトレーニング] ツールで、3 つのモデルについて、4 時間のトレーニングと評価を実行するように指定しました。
注意:
適切な GPU を備えたコンピューターをご使用の場合は、ツールを実行して 3 つのモデルを以後 4 時間トレーニングし、評価することができます。 GPU およびディープ ラーニング プロセスでの GPU の使用方法の詳細については、「ArcGIS Pro でのディープ ラーニングの準備」チュートリアルの「GPU の利用可能性の確認」セクションをご参照ください。 必要に応じて、トレーニングのステップをスキップし、ツールの出力がすべて含まれる、準備されたフォルダーを確認することができます。 モデルのトレーニング プロセスを実行しない場合は、次の 4 つのステップを読み、次のセクション「モデルのトレーニング結果の確認」から再開してください。
- [環境] タブをクリックします。
- [プロセッサー タイプ] セクションの [GPU ID] に、「0」と入力します。
CUDA 対応 GPU の GPU ID が異なる場合は、その ID 番号を使用してください。 お使いのコンピューターに複数の GPU がある場合、この必要が生じる場合があります。
- 必要に応じて、[実行] をクリックします。
このプロセスは最長 4 時間実行されます。
ツールの実行時に、プロセスのステータスに関するメッセージを表示できます。
- [AutoDL を使用したトレーニング] ウィンドウの下部で、[詳細の表示] をクリックします。
- [メッセージ] タブをクリックします。
プロセスが完了すると、[メッセージ] ウィンドウに出力を表示できます。
トレーニング プロセスで、ツールはトレーニング データセットの 10% をランダムで選択して検証のために確保し、残りの 90% でモデルをトレーニングします。 トレーニングが進む中で、モデルは推定された値が検証データセットの値とどの程度一致するかを計算します。 テーブルに、各モデルのパフォーマンスが集計されます。 1 つには、検証サンプルのランダムな選択が理由で、このツールを使用した場合のトレーニング モデルは決定論的ではありません。 またこのツールは、実行のたびに初期条件もランダムに設定します。 詳細については、このツールのヘルプをご参照ください。 同じトレーニング データのセットを指定した場合でも、最善モデルとして別のモデルが選択されることがあり、このテーブルに異なる値が表示されます。
テーブルには、トレーニング ロスと検証ロスの両方の列が含まれます。 トレーニング ロスはモデルの学習度を表します。 検証ロスは、モデルの学習内容が検証セットに対してどの程度パフォーマンスを発揮したのか、すなわち実質的に学習の一般化の度合いを表します。 この 2 つの尺度の値が低い場合、トレーニング パフォーマンスが高いことを示すため、このケースでは UnetClassifier モデルがトレーニング ロスと検証ロスに関して最善のパフォーマンスを発揮したことになります。
PSPNetClassifier モデルは正確度の値に関して他のモデルよりも高い値を示しました。 正確度に関しては、値が高いほど高い性能を示します。
正確度と Dice はモデルがどの程度正確にピクセルを分類したかを示す尺度です。 PSPNetClassifier モデルは正確度も他のモデルより高い値を示していました。
学習率はニューラル ネットワークのトレーニングで使用されるハイパーパラメーターです。 この値を指定しなかった場合は、トレーニング ツールにより値が計算されます。 ツールは、速度と品質を比較考量しながら、学習率の最適化を試行します。 結果としてテーブルに表示される学習率の値は、上級ユーザーがモデルのトレーニングの継続を希望し、この追加のトレーニングでの学習率の値の選択に関してガイダンスが必要になる場合に主な関心対象となります。
時間列は、各モデルのトレーニング所要時間を示します。 他のモデルに比べて、最初のモデルがより長時間であることがわかります。 これは、最初のモデルではオーバーヘッドのデータ処理が行われ、後続のモデルではそれが再利用されるためです。
バックボーンは、デフォルトのモデルのバックボーンです。 [AutoDL モード] パラメーターを [基本] ではなく [高度] に設定した場合、複数のバックボーンが試行されることがあります。
- [メッセージ] ウィンドウを閉じます。
モデルのトレーニング結果の確認
ダウンロードしたプロジェクト パッケージには、[AutoDL を使用したトレーニング] ツールの結果の圧縮フォルダーが含まれます。 これらの結果を確認します。
- [カタログ] ウィンドウで、[フォルダー]、[AutoDL_tutorial] の順に参照します。 [userdata] フォルダーを右クリックして [パスのコピー] を選択します。
- Microsoft File Explorer で、パスをパス ボックスに貼り付けます。
パスは C:\Users\username\Documents\ArcGIS\Packages\AutoDL_tutorial_7bd31e\userdata のようになります。
このフォルダーには 2 つの圧縮アーカイブが含まれています。 [LULCClassifierModel.zip] アーカイブには、先に指定した設定で [AutoDL を使用したトレーニング] ツールを実行して生成された結果が含まれます。
[TrainingData.zip] アーカイブには、トレーニング データを作成するために使用したデータが含まれます。
- [LULCClassifierModel.zip] アーカイブを右クリックし、[すべて展開] を選択します。
- [抽出] をクリックします。
- [LULCClassifierModel] フォルダーを開きます。
このフォルダーには、ツールの実行による複数の出力が含まれます。 これらには以下のものが含まれます。
- [ModelCharacteristics] は [README.html] ファイルで使用されている画像を含むフォルダーです。
- [models] は、トレーニング データのサブセットで評価された、トレーニング済みのすべてのモデルが含まれるフォルダーです。
- [ArcGISImageClassifier] は、Python スクリプトと、トレーニング プロセスの画像の分類に使用されるコードです。
- [ClassifiedSARLULC.dlpk] は、トレーニング済みモデル、モデルの定義ファイル、モデルの指標ファイルなど、モデル出力フォルダーに保存されているすべてのファイルが含まれる完全なパッケージです。 このパッケージは、他のユーザーが使用できるトレーニング済みモデル アイテムとして ArcGIS Online および ArcGIS Enterprise で共有できます。
- [ClassifiedSARLULC.emd] はモデル定義ファイルであり、モデルのタイル サイズ、クラス、モデル タイプなどに関する情報が含まれています。
- [ClassifiedSARLULC.pth] は事前トレーニング済みの加重ファイルであり、通常は PyTorch 形式で保存されます。
- [model_metrics.html] は、使用されている学習率とトレーニング済みモデルの正確度に関する詳細が含まれる HTML ページです。
- [README.html] は、モデルの評価と最善モデルの正確度に関する詳細が含まれる HTML ページです。
- [README.html] ファイルをダブルクリックします。
ブラウザー タブでページが開きます。 このページには、最善モデルに関する情報と、このモデルと他のモデルとの比較、このモデルが入力トレーニング データからどの程度 LULC を分類できたかが表示されます。
[トレーニング ロスと整合チェック ロス] セクションには、モデルをトレーニングしたときに発生したエラーの量がグラフで表示されます。 ツールが実行されたときに、入力データの 90% を使用してモデルがトレーニングされ、10% を使用してモデルの検証が行われ、その正確度が決定されています。 利用可能な時間の間に処理される画像 (バッチ) の数が増加するにつれてこれらのロス値が減少し、収束することが理想的です。
注意:
検証サンプルはトレーニング画像チップのセットからランダムに選択されるため、また一部のハイパーパラメーターがランダムに設定されてトレーニングが開始されるため、トレーニング ロスおよび検証ロスの指標は、同じトレーニング データセットの場合でも、ツールの実行のたびに異なる場合があります。
このグラフでは、処理された画像の最初の 60 バッチについて、[検証] のラインで示されたエラーが高い値であるものの、各バッチでかなり変化していることがわかります。 60 バッチより後では、[検証] プロセスのエラーの量が減少して変化の幅が小さくなっていますが、例外的に 120 でピークに達しています。 [トレーニング] のラインは、エラーの量がより緩やかに減少していることを示しています。
[モデルの解析] セクションには、各クラスのデータの精度が表示されます。 このモデルには実際には 5 つのクラス (土地被覆用に 4 つと NoData 用に 1 つ) があります。 精度の値が高いということは、そのモデルの結果の信頼度が高いことを意味します。 ディープ ラーニング ツールの精度および正確度の統計の解釈については、こちらをご参照ください。
最後に、このページにはいくつかの比較用サンプル チップが表示されます。左側の [グランド トゥルース] には元の LULC トレーニング データが表示され、右側の [予測] にはモデルの予測が表示されます。 予測が元のグランド トゥルースとぴったり一致していることが理想的です。
- Web ブラウザーの [README] ページを閉じます。
- [クイック アクセス] ツールバーで [プロジェクトの保存] ボタンをクリックします。
2018 年に撮影された Sentinel 1 画像の LULC 分類のためのディープ ラーニング モデルをトレーニングし、そのタスクに最善のモデルは UnetClassifier アーキテクチャに基づくことを特定しました。 次に、このモデルを使用して、2024 年に撮影された Sentinel 1 画像内の土地被覆を自動的に分類します。
モデルの適用
ディープ ラーニング モデルが作成された後は、これを使用して、異なる日に撮影された同様のデータにおける土地被覆を簡単に分類できます。 これにより、土地被覆の経時的な変化を監視できます。 たとえば、作成したモデルを採用して使用し、同じ地理範囲で 2024 年に撮影された Sentinel-1 画像を分類します。
トレーニング済みモデルを使用した新しい画像の分類
次に、ディープ ラーニング モデルを使用して、2024 年に収集された Sentinel-1 画像を、[ディープ ラーニングを使用したピクセルの分類] ツールを用いて分類します。
- ArcGIS Pro で、[Deploy Model] マップ タブをクリックします。
[Deploy Model] マップに [SARImagery2024.tif] レイヤーが表示されます。
- [ジオプロセシング] ウィンドウの [戻る] ボタンをクリックします。
- 検索ボックスに「classify pixels using deep learning」と入力します。 検索結果で、[ディープ ラーニングを使用したピクセルの分類] ツールをクリックします。
- [ディープ ラーニングを使用したピクセルの分類] ツールの [入力ラスター] パラメーターで、[SARImagery2024.tif] を選択します。
- [出力ラスター データセット] で、「ClassifiedLULC2024」と入力します。
- [モデル定義] で、[参照] ボタンをクリックして [ClassifiedSARLULC] フォルダーを参照します。 [ClassifiedSARLULC.dlpk] ディープ ラーニング パッケージをクリックします。
注意:
お使いのコンピューターでモデルをトレーニングしなかった場合は、プロジェクトで提供されるトレーニング済みのモデルを使用できます。 プロジェクトのフォルダー構造で、userdata\ClassifiedSARLULC\ClassifiedSARLULC フォルダーを参照し、[ClassifiedSARLULC.dlpk] ディープ ラーニング パッケージをクリックします。
ツールによってディープ ラーニング パッケージが読み込まれると、モデルの [引数] テーブルが表示されます。 デフォルトの値をそのまま使用します。 8 GB 以上の専用 VRAM を備えたコンピューターをご使用の場合は、バッチ サイズを 8 または 16 に増やすことで、処理時間を短縮することができます。 GPU の VRAM が 8 GB 未満の場合、バッチ サイズを 2 に減らさなければならない場合があります。
- [環境] タブをクリックします。
- [ラスター解析] セクションの [セル サイズ] に、「10」と入力します。
SAR データのセル サイズは、モデルがトレーニングされたセル サイズと完全には一致しないため、出力のセル サイズが 10 となるように指定できます。
- [プロセッサー タイプ] で、[GPU] を選択します。
この画像を分類するプロセスには 40 分以上かかる場合があります。 必要に応じて、ツールの実行をスキップし、プロジェクト パッケージで提供されているツール出力を表示することもできます。
- [プロセッサー タイプ] セクションの [GPU ID] に、「0」と入力します。
CUDA 対応 GPU の GPU ID が異なる場合は、その ID 番号を使用してください。 お使いのコンピューターに複数の GPU がある場合、この必要が生じる場合があります。
- 必要に応じて、[実行] をクリックします。
ツールを実行した場合、完了したら、マップ上の結果を表示します。
注意:
画像クラスの色はランダムに割り当てられます。 お好みの設定になるように色を変更できます。 クラス シンボルを右クリックして、カラー パレットで希望の色を選択します。
- ツールを実行しなかった場合は、[結果] マップ タブをクリックしてツールの結果を表示します。
分類された画像が表示されます。
注意:
ディープ ラーニングは決定論的処理ではないため、取得した結果は若干異なる可能性があります。
2024 年のラスターを 2018 年のラスターと比較して、土地利用の経時的変化を大縮尺で検出することができます。 ディープ ラーニング モデルのトレーニングが完了したので、毎年、あるいはより高頻度で新しい SAR 画像に適用することができます。 このトレーニング済みモデルは、土地被覆の経時的な変化の監視において、効果的なワークフローの一部になる可能性があります。
- Ctrl + S を押して、プロジェクトを保存します。
このチュートリアルでは、[AutoDL を使用したトレーニング] ツールを使用して複数のモデルをトレーニングし、Sentinel-1 SAR 画像の土地被覆を分類して、最善モデルを自動的に特定しました。 次に、より最近の画像にトレーニング済みの最善モデルを適用しました。
注意:
Esri は、ArcGIS Living Atlas で、画像の分類とオブジェクトの検出のプロセスを迅速化する 60 以上の事前トレーニング済みモデルを提供しています。 これらのモデルは無料でダウンロードでき、対応している画像入力に直接配置できます。 これらの事前トレーニング済みモデルを独自のトレーニング データで微調整することもでき、通常は、この方がモデルを最初からトレーニングするよりも時間がかかりません。 例については、「ディープ ラーニング事前トレーニング済みモデルを使用したオブジェクトの検出」および「SAR データとディープ ラーニングを使用した洪水のマッピング」のチュートリアルをご参照ください。ディープ ラーニングに関するその他のチュートリアルについては、こちらのチュートリアル シリーズをご参照ください。
ディープ ラーニング ワークフロー向けに SAR 画像を準備する手順の詳細については、こちらのチュートリアルをご参照ください。