ディープ ラーニングの準備
衛星画像を自動的に分類するようにモデルをトレーニングするには、コンピューター上に適切なディープ ラーニング ライブラリが存在する必要があります。 まず、ご使用のシステムの設定とライブラリが適切であることを確認する必要があります。次に、Landsat 8 画像をダウンロードし、画像のどこにマングローブが存在するかを示すトレーニング ラベルを作成します。 最後に、これらのラベルをエクスポートして、ピクセル分類ディープ ラーニング モデルをトレーニングします。
チュートリアル データをセットアップし、ダウンロードします。
ご使用のコンピューターがディープ・ラーニングに適したセットアップかどうかを確認してから、このチュートリアルに必要なデータをダウンロードします。 これには Landsat 8 画像および国連の Global Mangrove Watch から提供されたマングローブの森の位置情報が含まれています。
- ディープ ラーニング ツールを使用する前に、コンピューターの準備ができていることを確認してください。
注意:
ディープ ラーニング ツールを ArcGIS Pro で使用するには、正しいディープ ラーニング ライブラリがコンピューター上にインストールされている必要があります。 これらのファイルがインストールされていない場合は、ArcGIS Pro が閉じていることを確認して、「ArcGIS Pro でのディープ ラーニングの準備」に記載された手順に従います。 これらの手順では、お使いのコンピューター ハードウェアとソフトウェアでディープ ラーニング ワークフローを実行できるかどうかを確認する方法と他の有用なヒントについても説明します。 インストールが完了したら、このチュートリアルを続行できます。
- このチュートリアル用の Classify_Mangroves_Tutorial_Data.zip ファイルをコンピューター上の適切な場所にダウンロードしてその内容を展開します。
- [ファイル エクスプローラー] で、[Classify_Mangroves_Tutorial_Data] を開きます。 Classify Mangroves を開きます。
- Classify Mangroves ArcGIS Pro プロジェクト ファイルをダブルクリックします。
ArcGIS Pro が開き、インドのムンバイ地域のマップが表示されます。
- リボンの [表示] タブをクリックします。 [ウィンドウ] グループで、[カタログ ウィンドウ] ボタンをクリックします。
[カタログ] ウィンドウが表示されます。
- [カタログ] ウィンドウで、[フォルダー] を展開します。 Classify Mangroves を展開します。
これがプロジェクトのファイル ディレクトリです。
- Landsat 8 imagery フォルダーを展開し、Landsat imagery 2016 フォルダーを展開します。
Landsat 画像が一連のファイルとして提供されています。
注意:
米国地質調査所 (USGS) の EarthExplorer アプリから追加の Landsat 8 画像をダウンロードできます。Global Mangrove Watch からマングローブの追加の位置情報をダウンロードできます。
- LC08_L2SP_148047_20160128_20200907_02_T1_MTL.txt アイテムを展開します。
注意:
これはフォルダー内の 2 つ目のアイテムであり、人工衛星アイコンが付いています。
各種 Landsat 製品が表示され、これらをマップに追加できます。 カラー画像 Surface Reflectance を使用します。
- Surface Reflectance を右クリックして [現在のマップに追加] を選択します。
- [統計情報の計算] ウィンドウが表示されたら、[はい] をクリックします。
統計情報が計算された後、この Landsat 画像がマップと [コンテンツ] ウィンドウに追加されます。
- [コンテンツ] ウィンドウで、Surface Reflectance_LC08_L2SP_148047_20160128_20200907_02_T1_MTL レイヤーをダブルクリックします。
[レイヤー プロパティ] ウィンドウが表示されます。 レイヤーの名前を変更して短くします。
- [一般] タブの [名前] に、「Surface Reflectance 2016」と入力します。
次に、Landsat 画像の解像度を確認します。 ディープ ラーニング モデルのトレーニングを準備する場合には解像度が重要です。
- [レイヤー プロパティ] ウィンドウで、[ソース] タブをクリックします。
- [ラスター情報] を展開します。
[X セル サイズ] と [Y セル サイズ] から、このラスターの解像度が 30 x 30 であることがわかります。 次に、セル サイズの計測単位を確認します。
- [空間参照] を展開します。
[距離単位] の値が [メートル] になっています。 このラスターの解像度は 30 メートルです。 つまり、この Landsat 画像の各ピクセルは 30 メートル四方の地表を表しています。
- [OK] をクリックします。
- [クイック アクセス ツールバー] で、[保存] をクリックします。
ArcGIS Pro プロジェクトをダウンロードし、これに Landsat 8 画像を追加しました。 次に、これらのデータセットを使用して、マングローブの森の自動分類に使用されるモデルをトレーニングします。
ディープ ラーニング モデルのトレーニング
ディープ ラーニング モデルをトレーニングするには、画像の分類に使用可能な形式に GIS データを変換する必要があります。 最初に、2016 年の画像を使用して、マングローブの位置を手動でマークします。 このようなマークされた位置をラベルと呼びます。 次に、識別したこれらのラベルを使用してモデルをトレーニングします。 モデルが作成された後、このモデルを 2021 年の画像に適用してマングローブの森を自動的に分類します。
注意:
マングローブの位置情報は国連から提供されています。 提供されているデータセットを使用することも、以下の手順に従って独自のラベルを作成することもできます。 提供されているマングローブのデータセットを使用する場合、このチュートリアルの「トレーニング データのエクスポート」セクションに進んでください。
トレーニング ラベルの準備
最初に、ラベルを作成します。 これらのラベルは、画像の中の、マングローブがあることがわかっている領域です。 これらは画像にポリゴンを手動でデジタイズ (描画) することによって作成できます。
- リボンの [マップ] タブをクリックします。 [ナビゲーション] グループで、[ブックマーク] をクリックして [Mangroves] を選択します。
マングローブの領域がマップに表示されます。
- リボンの [画像] タブをクリックします。 [画像分類] グループで [分類ツール] をクリックして、[トレーニング サンプル マネージャー] を選択します。
[画像分類] ウィンドウが表示されます。 このウィンドウでは、このモデルを使用して画像内で分類するさまざまなフィーチャごとにクラスを作成できます。 マングローブに使用するクラスを追加します。 このクラスはカスタム スキーマに保存されます。
- [画像分類] ウィンドウで、[スキーマの新規作成] をクリックします。
デフォルト スキーマが削除されます。
- [新しいクラスの追加] ボタンをクリックします。
注意:
[新しいクラスの追加] ボタンが見えていない場合、[画像分類] ウィンドウの幅を広げます。
最初に、このクラスに名前を付けます。
- [名前] に、「mangrove」と入力します。
次に、このクラスに値を割り当てます。 モデルをトレーニングする際にこの値が読み込まれます。 マングローブには値 1 を定義します。
- [値] に、「1」と入力します。
最後に、このクラスに色を指定します。 画像にマングローブの領域をデジタイズする際にはこの色を使用します。 このプロジェクトの画像では黒が見やすいです。
- [色] で、[黒] を選択します。
- [OK] をクリックします。
新しいスキーマで mangrove クラスを使用できるようになりました。 使用する前に、ここで行った変更をスキーマに保存します。
- [新しいスキーマ] の上にある、[保存] をクリックします。
- [名前] に、「Mangrove classification」と入力します。
- [説明] に、「Schema used to label mangroves from Landsat 8 imagery」と入力します。
- [出力場所] で、Classify Mangroves フォルダーを参照し、[OK] をクリックします。
- [保存] をクリックします。
新しいスキーマと mangrove クラスが保存されました。
- プロジェクトを保存します。
スキーマが保存され、他のユーザーやプロジェクトで使用できるようになりました。
トレーニング ラベルの作成
新しいラベル クラスを作成した後は、これを使用して、マップ上のマングローブの森の領域をデジタイズします。
- Mangrove classification の下にある、mangrove をクリックします。
このクラスがアクティブになります。 次に、画像上のマングローブの領域をデジタイズする方法を選択します。
- [ポリゴン] ツールをクリックします。
mangrove クラスと適切な描画ツールを選択しました。 次に、画像上のマングローブの領域をマークしていきます。
- マップ上で、1 回クリックしてマングローブの領域の定義を開始します。 続けてクリックして頂点をいくつか追加して閉じた領域を作成します。 1 つ目の領域の描画が完了したらダブルクリックします。
注意:
デジタイズ中にポリゴンをキャンセルするには、Esc キーを押します。
完成したフィーチャには黒色のアウトラインが表示されます。
最終モデルで最適な結果が得られるように、できるだけ多くのマングローブの領域をデジタイズすることをお勧めします。 さらに、デジタイズする領域にはマングローブの森だけが含まれているようにする必要があります。
画像からのマングローブの領域の定義を続けます。 ラベルのデジタイズが完了したら、結果をジオデータベースに保存します。
- [画像分類] ウィンドウで、[クラス] の上の [保存] をクリックします。
ポリゴンをフィーチャクラスとして保存するよう求められます。 これらをプロジェクトのデフォルトのジオデータベースに保存します。
- [現在のトレーニング サンプルの保存] ウィンドウの [プロジェクト] で、[データベース] を展開します。 Classify Mangroves.gdb をクリックします。
- [名前] に「mangrove」と入力し、[保存] をクリックします。
デジタイズした領域が保存されました。 次に、マップからトレーニング サンプルを削除します。
- [画像分類] ウィンドウを閉じます。
[トレーニング サンプル マネージャー] ウィンドウが表示され、編集内容を保存するかどうかがたずねられます。
- [はい] をクリックします。
新しいフィーチャクラスが表示されるためには、ジオデータベースを更新する必要があります。
- [カタログ] ウィンドウで、[データベース] を展開します。 Classify Mangroves.gdb を展開します。
- Classify Mangroves.gdb を選択し、F5 キーを押します。
ジオデータベースが更新され、mangrove レイヤーがフィーチャクラスとして表示されます。 ただし、モデルをトレーニングするにはこのデータを適切な形式に変換する必要があります。
トレーニング データのエクスポート
トレーニング データが作成されたので、[ディープ ラーニング用のトレーニング データをエクスポート (Export Training Data For Deep Learning)] ジオプロセシング ツールを使用して、ディープ ラーニングに使用可能な形式にこのデータを変換します。 このプロセスの出力を画像チップと呼びます。 Landsat 画像がこれらのチップ (小さいタイル) に分割されて、モデルのトレーニングに使用されます。 この 1 つ目のジオプロセシング ツールは、これらのチップの生成方法を決定します。
- リボンで、[コマンド検索] に、「ディープ ラーニング用のトレーニング データをエクスポート」と入力します。 検索結果のリストで、[ディープ ラーニング用のトレーニング データをエクスポート (Export Training Data For Deep Learning)] を選択します。
[ジオプロセシング] ウィンドウが表示されます。 最初に、トレーニングに使用する画像を選択します。
- [入力ラスター] で、Surface Reflectance 2016 を選択します。
次に、トレーニング データを格納するフォルダーを作成します。
- [出力フォルダー] で、Classify Mangroves フォルダーを参照します。 Classify Mangroves を右クリックして [フォルダー] を選択します。
- フォルダー名として、「MangroveTrainingData」と入力します。
- このフォルダーを選択し、[OK] をクリックします。
次に、前の手順で作成した、画像上のマングローブの領域を定義するフィーチャクラスを選択します。
- [入力フィーチャクラス、分類ラスター、またはテーブル] で、Classify Mangroves ジオデータベースを参照し、mangrove フィーチャクラスを選択します。
注意:
トレーニング サンプル マネージャーで独自の mangrove フィーチャクラスを作成しなかった場合、MangroveForest フィーチャクラスを選択します。
- [OK] をクリックします。
- [クラス値フィールド] で、[Classvalue] を選択します。
注意:
MangroveForest フィーチャクラスを使用している場合、[pxlval] フィールドを選択します。
次のパラメーター セット [タイル サイズ] は、デフォルト値のままにします。 ただし、これらの値を使用して、このツールによって作成されるチップのサイズを調整できます。 デフォルト サイズは 256 x 256 ピクセルです。 [ストライド] では、作成されるチップ間の重なりの大きさを指定します。 デフォルトでは、各チップは 128 ピクセル (50 パーセント) だけ重なります。 重なりが大きくなるにしたがい、作成されるチップの数が増えます。
このツールの最後のパラメーターは [メタデータ形式] です。 このパラメーターでは、生成可能なディープ ラーニング モデルのタイプを指定します。 マングローブのピクセル分類を行っているため、[分類済みタイル] 形式を選択します。
- [メタデータ形式] で、[分類済みタイル] を選択します。
最後に、トレーニング データの出力セル サイズを 30 メートルに設定します。 これは Landsat 8 画像と同じ解像度です。
- [ディープ ラーニング用のトレーニング データをエクスポート] で、[環境] タブをクリックします。
- [ラスター解析] の [セル サイズ] に、「30」と入力します。
- [実行] をクリックします。
ジオプロセシング ツールはピクセル分類用の適切な形式を使用して、画像がチップにスライスされます。 ほとんどのコンピューターではメモリに画像全体が一度に収まらないため、スライスする必要があります。 さらに、デジタイズした領域に基づいて、画像内のマングローブの領域が特定されます。
次に、ツールの出力を確認します。
- [カタログ] ウィンドウで、MangroveTrainingData フォルダーと images フォルダーを展開します。
これらの画像ファイルは作成されたチップです。
- 000000000.tif ファイルを右クリックして [現在のマップに追加] を選択します。
- [統計情報の計算] ウィンドウが表示されたら、[はい] をクリックします。
- [コンテンツ] ウィンドウで、000000000.tif を右クリックして [レイヤーの全体表示] を選択します。
タイルがマップ上に表示されます。 これは Landsat 画像の小さなピースです。
注意:
以下の画像では、MangrovesForest フィーチャクラスが [ディープ ラーニング用のトレーニング データをエクスポート (Export Training Data For Deep Learning)] ツールの入力として使用されています。 マングローブの領域を独自にデジタイズした場合、チップは異なる外観になります。 マングローブの森を表す白色の領域があるチップが見つかるまで、必要に応じていくつかのチップを追加します。
モデルのトレーニング
これまでの手順で、マングローブの領域をデジタイズして、トレーニングに使用可能な形式にエクスポートしました。 次に、モデルをトレーニングします。
注意:
コンピューターのハードウェアによっては、モデルのトレーニングに数時間かかることがあります。 コンピューターに専用のグラフィックス処理装置 (GPU) が搭載されていることが推奨されます。 モデルをトレーニングしたくない場合、Classify Mangroves フォルダーにディープ ラーニング パッケージがすでに用意されているため、次の「ディープ ラーニング モデルの配置」セクションに進んでもかまいません。
- リボンの [コマンド検索] に、「ディープ ラーニング モデルのトレーニング」と入力します。 検索結果のリストで、[ディープ ラーニング モデルのトレーニング (Train Deep Learning Model)] を選択します。
[ジオプロセシング] ウィンドウが表示されます。 最初にトレーニング データを選択してから、ディープ ラーニング モデルのパラメーターをいくつか設定します。
- [入力トレーニング データ] で、Classify Mangroves フォルダーを参照し、MangroveTrainingData フォルダーをクリックします。 [OK] をクリックします。
次に、ディープ ラーニング モデルの保存場所を選択します。
- [出力モデル] で、Classify Mangroves フォルダーを参照します。 新しいフォルダーを作成して MangroveClassifier という名前を付けます。
- MangroveClassifier フォルダーを選択し、[OK] をクリックします。
次に、モデルが実行される反復回数 (エポック) を指定します。
- [最大エポック] で、値が 20 になっていることを確認します。
前の手順でエクスポートしたトレーニング データの形式に基づいて、ピクセル分類に固有のモデル タイプを設定します。
- [モデル パラメーター] を展開し、[モデル タイプ] が [U-Net (ピクセル分類)] に設定されていることを確認します。
U-Net はセマティック セグメンテーションを使用してラスター内のピクセルを分類するディープ ラーニング モデルです。 このモデルは土地被覆分類に使用されます。
次に、1 回のトレーニングで処理されるトレーニング サンプルの数を設定します。 バッチ サイズが大きくなるにしたがい、トレーニング データの処理時間が短くなります。
- [バッチ サイズ] に、「16」と入力します。
次に、パラメーターを変更して、20 回のエポックすべてでトレーニングが実行されるようにします。
- [高度な設定] を展開し、[モデルが改善しなくなったら停止] チェックボックスをオフにします。
最後に、GPU が搭載されている場合、コンピューターの GPU 上でこのツールを実行するように設定して高速で処理されるようにします。 そうでない場合、次の手順はスキップしてください。
- コンピューターに GPU が搭載されている場合、[環境] タブをクリックします。 [プロセッサー タイプ] で、[GPU] を選択します。
- [実行] をクリックします。
注意:
モデルが実行に失敗した場合、必要に応じて [バッチ サイズ] パラメーターを調整します。 大きいバッチ サイズを処理できるかどうかは、コンピューターの GPU に基づきます。 高性能 GPU が搭載されている場合、一度に最大で 64 個のトレーニング サンプルを処理できます。 高性能 GPU でない場合、このパラメーターを 8、4、または 2 に設定してツールを再実行する必要があります。
ツールの実行中はトレーニングの進行状況が表示されます。
- [詳細の表示] をクリックします。
[詳細] ウィンドウが表示されます。
- [メッセージ] タブをクリックします。
実行された 20 回のエポックそれぞれについて、[メッセージ] にこのモデルのパフォーマンスが表示されます。 具体的には、モデルの精度が向上している (1 に近づいている) のがわかります。
注意:
このツールが実行されるたびにモデルは異なる方法でトレーニングされるため、モデルのメッセージは上の図とは異なる場合があります。
- [ディープ ラーニング モデルのトレーニング] ウィンドウを閉じます。
このジオプロセシング ツールが完了したら、出力を確認します。
- ファイル エクスプローラーで、プロジェクトのフォルダーを参照します。 MangroveClassifier フォルダーを開きます。
このフォルダーには、画像の分類に使用可能な、次のような多数の出力が含まれています。
- MangroveClassifier.pth はトレーニング済みモデルであり、通常は PyTorch 形式で保存されています。
- MangroveClassifier.emd はモデル定義ファイルであり、モデルのタイル サイズ、クラス、モデル タイプに関する情報が含まれています。
- model_metrics.html には、使用されている学習率およびモデルの最終的な精度に関する詳細が含まれています。
- MangroveClassifier.dlpk はモデル出力フォルダーに格納されているすべてのファイルから成る完全なパッケージであり、トレーニング済みモデル、モデル定義ファイル、およびモデル メトリクス ファイルが含まれています。 このパッケージは、他のユーザーがアクセス可能なアイテムとして ArcGIS Online および ArcGIS Enterprise で共有できます。
model_metrics ファイルでモデルのパフォーマンスを確認します。
- model_metrics ファイルを開きます。
デフォルトの Web ブラウザーが表示されます。 このページには、モデルに関する情報と、このモデルが入力トレーニング データを使用してマングローブをどの程度分類できたかが表示されます。
[トレーニング ロスと整合チェック ロス] セクションには、モデルをトレーニングしたときに発生したエラーの量がグラフで表示されます。 モデルが実行されたときに、一部の入力データを使用してモデルがトレーニングされ、一部の入力データを使用してモデルの整合チェック (モデルをテストしてその精度を調査) が行われています。 20 回のエポックの間に処理される画像の数が増えるにつれてこれらの値が小さくなることが理想的です。
[モデルの解析] には、各クラスのデータの精度が表示されます。 このモデルには実際には 2 つのクラス (マングローブ用と NoData 用) があります。 精度の値が高いということは、そのモデルの結果の信頼度が高いことを意味します。
最後に、このページにはいくつかの比較用サンプル チップが表示されます。左側の [グランド トゥルース] には元のマングローブ トレーニング データが表示され、右側の [予測] にはモデルの予測が表示されます。 予測が元のグランド トゥルースとぴったり一致していることが理想的です。
- Web ブラウザーの [model_metrics] ページを閉じます。
- ファイル エクスプローラーを閉じます。
モデルを配置する前に、GPU のキャッシュを削除して、2021 年の Landsat 画像を分類するために十分なメモリを確保します。 コンピューターに GPU が搭載されていない場合、この手順はスキップしてかまいません。
- ArcGIS Pro の [カタログ] ウィンドウで、[ツールボックス] を展開します。 Classify Mangroves.tbx を展開します。
このツールボックスで提供されているスクリプトには入力がありません。
- [キャッシュの削除] スクリプトを開き、[実行] をクリックします。
- プロジェクトを保存します。
2016 年に撮影された Landsat 8 画像からマングローブの領域をデジタイズすることで、トレーニング モデルを作成しました。 この後、mangrove フィーチャクラスを作成して、ディープ ラーニング モデルのトレーニングに適した形式に変換し、これを使用してディープ ラーニング パッケージを作成しました。 次に、新しいモデルを使用して、2021 年に撮影された Landsat 8 画像内のマングローブを自動的に分類します。
モデルの適用
ディープ ラーニング モデルが作成された後は、これを繰り返し使用して対象地域内の土地被覆を簡単に分類できます。 作成したモデルを使用して、元のトレーニング データと同じ地理範囲にあるマングローブを分類します。 ただし、Landsat 画像はより最近のものになります。
ディープ ラーニング モデルの配置
次に、2021 年の Landsat 画像を取得し、ディープ ラーニング モデルを使用して画像を推測 (分類) し、マングローブの範囲を調べます。
注意:
前のモジュールでモデルをトレーニングしなかった場合、Classify Mangroves フォルダー内にディープ ラーニング パッケージが用意されています。
画像の分類は GPU 使用率の高いプロセスであり、コンピューターのハードウェアによっては、完了するのにしばらく時間がかかります。 Classify Mangroves.gdb 内にマングローブの位置の分類ラスターが用意されています。 画像を分類しない場合、「結果についての調査」セクションに進んでください。
- [コンテンツ] ウィンドウで、Surface Reflectance 2016 レイヤーを削除します。
- [カタログ] ウィンドウで、Landsat 8 imagery フォルダーを展開します。 Landsat imagery 2021 フォルダーを展開します。
- LC08_L2SP_148047_20201224_20210310_02_T1_MTL.txt ファイルを展開します。
注意:
これはフォルダー内の 2 つ目のアイテムであり、人工衛星アイコンが付いています。
- Surface Reflectance ラスターをマップに追加します。 統計情報を計算するかたずねられた場合、[はい] をクリックします。
- [コンテンツ] ウィンドウで、Surface Reflectance_LC08_L2SP_148047_20201224_20210310_02_T1_MTL レイヤーの名前を Surface Reflectance 2021 に変更します。
- Surface Reflectance 2021 を右クリックして [レイヤーの全体表示] を選択します。
2021 年の画像がマップに配置され、分類する準備が整いました。 [ディープ ラーニングを使用したピクセルの分類 (Classify Pixels Using Deep Learning)] ジオプロセシング ツールを使用して、ディープ ラーニング モデルをこの画像に適用します。
- リボンの [コマンド検索] に、「ディープ ラーニングを使用したピクセルの分類」と入力します。 検索結果のリストで、[ディープ ラーニングを使用したピクセルの分類 (Classify Pixels Using Deep Learning)] を選択します。
- [入力ラスター] で、Surface Reflectance 2021 を選択します。
- [出力ラスター データセット] に、「MangroveExtent2021」と入力します。
- [モデル定義] で、MangroveClassifier フォルダーを参照します。 MangroveClassifier ディープ ラーニング パッケージをクリックします。
注意:
ディープ ラーニング モデルをトレーニングしなかった場合、Classify Mangroves フォルダーを参照し、Deep learning package フォルダーを開きます。 MangroveClassifier をクリックします。
- [OK] をクリックします。
必要に応じて、この他のモデル引数を設定することでモデルを改善できます。 これらのパラメーターはモデルをトレーニングしたときのものが継承されています。
- [引数] で、[batch_size] に「16」と入力します。
最後に、ツールの環境を設定します。
- [環境] タブをクリックします。
- [ラスター解析] の [セル サイズ] に、「30」と入力します。
- [プロセッサー タイプ] で、[プロセッサー タイプ] を [GPU] に設定します。
- [実行] をクリックします。
注意:
バッチ サイズを 16 に設定できるかどうかは、GPU によります。 ツールが実行に失敗した場合、このパラメーターを 8、4、または 2 に変更してみてください。
ツールが終了すると、結果がマップに追加されます。
注意:
モデルの精度によって、結果は異なります。 色も異なる場合があります。
結果についての調査
マングローブの被覆の変化を比較する前に、モデルの結果が画像とどの程度一致しているかを調べます。
注意:
前のセクションで [ディープ ラーニングを使用したピクセルの分類 (Classify Pixels Using Deep Learning)] ツールを実行しなかった場合、結果が用意されています。 [カタログ] ウィンドウで、Classify Mangroves.gdb を展開します。 MangroveExtent2021 ラスターをマップに追加します。
- [Mangroves] ブックマークに移動します。
- [コンテンツ] ウィンドウで、MangroveExtent2021 の名前を Mangrove Extent 2021 に変更し、このレイヤーが選択された状態のままにします。
- リボンの [ラスター レイヤー] タブをクリックします。 [比較] グループの [スワイプ] をクリックします。
[スワイプ] ツールを使用して、マップをクリックして移動することで、レイヤーを隠してその下にあるレイヤーが見えるようにすることができます。
- マップ上でドラッグして Mangrove Extent 2021 レイヤーの下にある Surface Reflectance 2021 レイヤーが見えるようにします。
マップをスワイプして 2 つのレイヤーを比較することで、モデルの結果を簡単に視覚化できます。
注意:
画面上のポインターを置いている場所に応じて、縦方向または横方向にスワイプできます。
次に進む前に、マップ内を移動可能なマップ操作ツールに戻します。
- リボンの [マップ] タブをクリックします。 [ナビゲーション] グループの [マップ操作] ボタンをクリックします。
- プロジェクトを保存します。
トレーニングを行ってディープ ラーニング ワークフローを使用するプロセスが完了したので、これらの結果を 2016 年のマングローブの範囲と比較します。
変化の検出
マングローブの森が減少または拡大している状況とその場所について理解を深めるため、2016 年と 2021 年のマングローブの範囲についてラスター解析を実行して、これらの森が拡大しているか減少しているかを調べます。
トレーニング ラベルのラスター化
マングローブの被覆が変化している場所を調べるには、両方のマングローブ レイヤーがラスター形式になっている必要があります。 ディープ ラーニング モデルからの出力レイヤーはすでにラスター化されていますが、Global Mangrove Watch から提供されている 2016 年のマングローブの範囲のデータはラスター化されていません。 この 2016 年のマングローブのポリゴン レイヤーをラスターに変換します。
- [コンテンツ] ウィンドウで、Mangrove Forest レイヤーをオンにし、Mangrove Extent 2021 レイヤーをオフにします。
2016 年のマングローブの被覆のアウトラインが表示されます。
このレイヤーをラスターに変換します。
- リボンの [画像] タブをクリックします。 [解析] グループで [ラスター関数] ボタンをクリックします。
[ラスター関数] ウィンドウが表示されます。 ラスター関数を使用して、ラスター データセットを作成して解析できます。
- 検索ボックスに、「フィーチャのラスター化」と入力します。 Enter キーを押します。
- [変換] の下の、[フィーチャのラスター化] をクリックします。
[フィーチャのラスター化] ラスター関数が表示されます。 最初に、出力ラスターの範囲と解像度を設定するラスターを選択します。
- [ラスター] で、Surface Reflectance 2021 を選択します。
次に、ラスターに変換するポリゴン レイヤーを選択します。
- [入力フィーチャ] で、Mangrove Forest を選択します。
各ポリゴン フィーチャをマングローブとして分類するフィールドに値 1 を設定します。
- [フィールド] で、[pxlval] を選択します。
- [新しいレイヤーの作成] をクリックします。
- Mangrove Forest レイヤーをオフにします。
2016 年のマングローブの森の新しいラスター レイヤーがマップに追加されます。
- Rasterize Features_Surface Reflectance 2021 の名前を Mangrove Extent 2016 に変更します。
マングローブの範囲の比較
2016 年と 2021 年のマングローブの範囲を表す 2 つのラスターが用意された後は、構築済みテンプレート内の一連のラスター関数を使用して、2 つのマングローブの森の範囲を比較し、森が拡大したか、減少したか、変化していないかを調べます。 テンプレートを実行する前に、その動作を確認します。
最初に、ラスター関数テンプレートをインポートします。
- [ラスター関数] ウィンドウで、検索を消去します。
- [カスタム] タブをクリックします。
- [Custom1] をポイントし、[関数のインポート] をクリックします。
- Classify Mangroves フォルダーを参照します。 Compute Mangrove Cover Change ラスター関数テンプレートを選択します。 [OK] をクリックします。
このテンプレートが [Custom1] の下に追加されます。
- [Custom1] の下の [Compute Mangrove Cover Change] を右クリックします。 [編集] をクリックします。
[関数エディター] ウィンドウが開き、Compute Mangrove Cover Change テンプレートが表示されます。
このテンプレートは左側の緑色のエレメントから開始しています。 これらは比較対象の 2 つのマングローブ ラスターを表しています。 どちらのラスターも Is Null ラスター関数にリンクしています。 これは入力ラスターを読み取って、マングローブとして分類されている領域と、データなしとして分類されている領域を特定します。 次に、Con ラスター関数によって、データなしの領域が変換されて値が 0 になります。 マングローブはこれ以降も値が 1 のままとなります。この値は、このチュートリアルの前の手順でトレーニング サンプルを構築したときに設定したものです。 この時点では、まだ 2 つのラスター (2016 年のラスターと 2021 年のラスター) がありますが、これらはバイナリ ラスターになっており、マングローブの領域には値 1 が割り当てられ、マングローブ以外の領域には値 0 が割り当てられています。 最後の [変化の計算] 関数によって、2016 年のラスターから 2021 年のマングローブ ラスターが差し引かれます。 マングローブの領域とマングローブ以外の領域が 0 と 1 に変換されたため、出力では、マングローブの被覆が拡大した領域 (値 1)、マングローブの被覆が減少した領域 (値 -1)、変化していない領域 (値 0) が明らかになります。
- [関数エディター] ウィンドウを閉じます。
- [ラスター関数] ウィンドウで、Compute Mangrove Cover Change テンプレートをクリックします。
ラスター関数が表示されます。 ジオプロセシング ツールと同じように実行するようにこのツールを設定します。
- [Is Null] の下で、[2016 Mangroves] を [Mangrove Extent 2016] に設定します。
- [Is Null] の下で、[2021 Mangroves] を [Mangrove Extent 2021] に設定します。
- [新しいレイヤーの作成] をクリックします。
新しいレイヤーがマップに追加されます。 マングローブの被覆が拡大した領域が紫色で表示され、マングローブが減少した領域が緑色で表示されています。 白色の領域は変化がない領域です。 わかりやすくするためにシンボルを調整します。
注意:
ディープ ラーニング モデルの結果によって結果は異なります。
- [コンテンツ] ウィンドウで、Compute Mangrove Cover Change_Mangrove Extent 2016_Mangrove Extent 2021 の名前を Mangrove Cover Change に変更します。
- Mangrove Cover Change レイヤーを右クリックして [シンボル] をクリックします。
[シンボル] ウィンドウが表示されます。 次に、シンボルを構成し、値が 0 の白色の領域を削除します。
- [マスク] タブをクリックします。
- [背景値の表示] チェックボックスをオンにします。
マップのシンボルが更新されます。
- [コンテンツ] ウィンドウで、Mangrove Extent 2016 レイヤーをオフにします。
最終結果が表示されますが、画像では見づらくなっています。 画像の透過表示を変更して結果を見やすくします。
- [コンテンツ] ウィンドウで Surface Reflectance 2021 レイヤーを選択します。
- リボンの [ラスター レイヤー] タブをクリックします。 [効果] グループで [透過表示] に「50」と入力して Enter を押します。
これで最終結果が見やすくなりました。
この解析の結果では、2016 年から 2021 年の間にマングローブの被覆が拡大した領域と減少した領域が示されます。 適切なシンボルを選択することでこのパターンが明らかになり、これらの土地被覆の変化がわかりやすく示されます。
注意:
サンプルのエクスポート、モデルのトレーニング、およびディープ ラーニング モデルの配置は ArcGIS Notebooks と ArcGIS API for Python および arcgis.learn モジュールを使用して行うこともできます。 ノートブック環境でこれらのジオプロセシング ツールを使用した画像処理のサンプルを確認するには、[カタログ] ウィンドウを開いて [ノートブック] フォルダーを展開します。 このチュートリアルで適用したものと同じプロセスを使用する 4 つのサンプル ノートブックが表示されます。
このチュートリアルでは、画像を使用してディープ ラーニング モデルを作成してから、これを適用しました。 最初に、トレーニング データセットを作成し、これをピクセル分類形式に変換しました。 Landsat 8 画像内のマングローブを認識するようにモデルをトレーニングしました。 次に、より最近の画像にこのモデルを適用しました。 最後に、マングローブの森の変化がマップに表示され、この樹種が拡大している場所と減少している場所が明らかになりました。 これらの結果を参考にして、マングローブの再生と保全の取り組みを計画することができます。 さらに、ディープ ラーニング モデルを使用して、世界中のマングローブ生育地を分類できます。
Esri の ArcGIS Living Atlas では、マングローブの分類以外にも、画像の分類とオブジェクトの検出のプロセスを迅速化する多数の事前トレーニング済みモデルが提供されています。 これらのモデルは無料でダウンロードでき、互換性のある画像入力に直接配置できます。 これらの事前トレーニング済みモデルを独自のトレーニング データで微調整することもでき、通常は、この方がモデルを最初からトレーニングするよりも時間がかかりません。
他のチュートリアルについては、チュートリアル ギャラリーをご覧ください。