ArcGIS Pro でディープ ラーニング モデルを 0 から作成しよう!

ArcGIS Proでディープラーニングモデルをゼロから作成する方法を紹介する記事のサムネイル画像

はじめに

ディープ ラーニングは画像の特徴を学習し分類することで、複雑な地表の違いを高精度に捉えられるため、土地被覆分類の精度向上に有効な技術です。本記事では、Image Analyst エクステンションのディープ ラーニング ツールを使用し、Sentinel-2 画像を対象に土地被覆分類を行う方法を紹介します。

※本記事でご紹介するツールの使用には ArcGIS Pro の Image Analyst エクステンションが必要です。

ディープ ラーニング ワークフローの概要

開始する前に、ワークフローを正しく理解しておくことが極めて重要です。以下の図に示すように、最初のステップで ①トレーニング データの準備を行います。次に ②モデルのトレーニング、最後に ③作成したモデルを使用しての解析処理という流れになります。詳細については、ArcGIS Proにおけるディープ ラーニングに関する公式ウェブサイトをご参照ください。以下では、内容を簡単に説明します。

ディープラーニングワークフローの概要図

事前準備

ディープ ラーニング モデルのトレーニングは多くのデータを使用することで精度よいモデルを作成することができます。高品質なモデルには質の高いトレーニング サンプルが不可欠です。開始する前に、十分な時間とデータを確保しておきましょう。

実行環境の準備

事前準備の詳細な方法については「ArcGIS Pro で行うディープ ラーニング」を参考に設定してください。

Sentinel-2 の衛星画像データ

Sentinel-2 データは、欧州宇宙機関 (ESA) が提供する Copernicus Browser のウェブサイトから無料で入手できます。土地被覆分類では、雲量 30 %未満のデータ取得が推奨されます。

ダウンロードしたデータについては、データ提供元の利用規約を確認の上ご利用ください。

解析手順

①トレーニング データの準備

モデルをトレーニングするために、トレーニング データを作成します。まず [トレーニング サンプル マネージャー] で分類ポリゴンを作成し、フィーチャごとにラベル付けを行います。このままでは学習に使えないため、次に [ディープ ラーニング用のトレーニング データをエクスポート]ツールでトレーニング可能な形式へ変換します。出力フォルダ内に画像が生成されていれば、問題なく次のステップに進めます。

データの入力

  1. ArcGIS Pro でプロジェクトを作成し、Sentinel-2 データを追加します。 [BOA_Reflectance] を選択したら右クリックして、[現在のマップに追加] をクリックします。
衛星データを追加ボタン

トレーニング サンプル マネージャー

  1. 追加したラスター画像を選択したら、[画像] タブ → [分類ツール] → [トレーニング サンプル マネージャー] をクリックします。
  2. [画像分類] ウィンドウが開いたら、[スキーマの新規作成] ボタンをクリックします。
    スキーマの新規作成ボタン
  3. 新しいスキーマを選択し、右クリックして [新しいクラスの追加] を作成します。
    新しいクラスの追加ボタン
  4. 次に、[新しいクラスの追加] ウィンドウがクラスの [名前] と [値] を入力します。[色] はドロップダウン メニューから任意で選択し、[OK] をクリックしてウィンドウを閉じます。
    新しいクラスの追加 ウィンドウ
  5. 手順③から④を繰り返し、土地被覆分類に必要なクラスを作成します。
    土地被覆分類例表
  6. [画像分類] ウィンドウでクラスを選択し、[フリーハンド] ボタンをクリックします。
    フリーハンドボタン
  7. ラスター画像上で分類したい地物を指定し、ポリゴンを描画します。
  8. 完了したら [保存] をクリックし、「クラス」を保存します。保存したファイルは次のステップで使用します。
    フリーハンド保存ボタン

ディープ ラーニング 用のトレーニング データをエクスポート

  1. [解析] タブをクリックし、[ジオプロセシング] を開いたら、[Image Analyst ツール] → [ディープ ラーニング] → [ディープ ラーニング用のトレーニング データをエクスポート] ツールをクリックします。
    ディープ ラーニング 用のトレーニング データをエクスポート ツール
  2. [ディープ ラーニング用のトレーニング データをエクスポート] ウィンドウの [パラメーター] セクションで、それぞれ以下のように設定します。
    • [入力ラスター]:「BOA_Reflectance」と設定します
    • [出力フォルダ]:「Export」と設定します
    • [入力フィーチャクラス分類ラスターまたはテーブル]:「クラス」と設定します
    • [クラス値フィールド]:「Classvalue」を設定します
    • [メタデータ形式]:「分類済みタイル」を設定します
    [実行] をクリックします。
    ディープ ラーニング トレーニング データをエクスポート ツールの設定

②モデルのトレーニング

次に、[ディープ ラーニング モデルのトレーニング] ツールによって、作成したトレーニング データを用いてモデルをトレーニングさせます。[ディープ ラーニング モデルのトレーニング] ツールを使うことで、トレーニング用のサンプルを生成し、モデルをトレーニングできます。出力は、ディープ ラーニング モデル ファイル (*.dlpk) が含まれたフォルダとして保存されます。

ディープ ラーニング モデルのトレーニング

  1. [解析] タブをクリックし、[ジオプロセシング] を開いたら、[Image Analyst ツール] → [ディープ ラーニング] → [ディープ ラーニング モデルのトレーニング] ツールをクリックします。
    ディープ ラーニング モデルのトレーニング ツール
  2. [ディープ ラーニング モデルのトレーニング] ウィンドウの [パラメーター] セクションで、それぞれ以下のように設定します。
    • [入力トレーニング データ]:「Export」と設定します
    • [出力フォルダ]:「Train_results」と設定します
    • [モデル タイプ]:「U-net (ピクセル分類)」を設定します
    • [高度な設定]: [バックボーン モデル] に「ResNet-34」を設定します
    • [モデルの改善が見込めなくなった時点で停止] のチェックボックスをオフにします
    • [モデルの固定] のチェックボックスをオフにします

    [実行] をクリックします。

    ディープラーニング モデルのトレーニング ツールの設定

③モデルの利用

[ディープ ラーニングを使用したピクセルの分類] ツールを用いて、トレーニング済みのモデル (*.dlpk) を適用し、土地分類を実行します。出力は、分類結果が反映されたラスター データとなります。ここでは、選択したラスターに対してモデルを適用することが目的です。

※出力結果が期待通りでない場合は、①トレーニング データの準備に戻り、誤分類されたクラスに対して新しいサンプルを追加しましょう。すべてやり直す必要はなく、誤りのある箇所に絞って修正するのがポイントです。

ディープ ラーニングを使用したピクセルの分類

  1. [Image Analyst ツール] → [ディープ ラーニング] → [ディープ ラーニングを使用したピクセルの分類] ツールをクリックします。
    ディープ ラーニングを使用したピクセルの分類ツール
  2. [ディープ ラーニングを使用したピクセルの分類] ウィンドウの [パラメーター] セクションで、それぞれ以下のように設定します。
    • [入力ラスター]:「BOA_Reflectance」と設定します
    • [出力ラスター データセット]:「Classification」と設定します
    • [モデル定義]:「Train_results.dlpk」と設定します
    [実行] をクリックします。
    ディープ ラーニングを使用したピクセルの分類ツールの設定

※「Train_results.dlpk」ファイルは、前のステップで作成した「Train_results」フォルダ内に保存されています。

解析結果

分類画像と元の衛星画像を比較すると、水域と都市域は比較的高い精度で分類されていました。これは、これらのクラスが対象地域の主要な構成要素であり、比較的広い面積を占めているためと考えられます。 一方で、小さなフィーチャでは精度が低下する傾向が見られました。今回の裸地クラスは、野球場や未耕作地などを用いて作成しましたが、対象となるフィーチャの面積が小さいため、十分な精度で分類できませんでした。

ディープ ラーニングを使用したピクセルの分類ツールを作成した分類画像

また、常緑植生と落葉植生は、衛星画像上ではそれぞれ緑色と茶色に見えるため、比較的区別しやすいクラスです。分類結果でも、面積の大きいフィーチャでは、常緑植生 (緑) と落葉植生 (ピンク) が正しく分類されていました。ただし、フィーチャが小さいほど精度は低下するため、モデルを使用する際にはこの限界に注意が必要です。

常緑植生と落葉植生の分類画像_精度が低例

さらに、精度が低かった例も見られました。都市域が非常に小さい場合には、一部の農地が都市域として誤分類されました。また、大気の影響によって明るく見える森林が、都市域として誤分類されることもありました。

常緑植生と落葉植生の分類画像_精度が低例

このような誤分類の要因としては、解像度の不足やトレーニング データの不足が考えられます。解像度が低いと、細かなフィーチャの形状や境界を十分に捉えることが難しくなります。そのため、本モデルでは小さな区画ではなく、未耕作地全体や大きな野球場など、面積の大きいフィーチャを優先してポリゴンを作成しました。一方で、高解像度のドローン データを用いることで、より詳細な情報を取得できるため、分類精度の向上が期待できます。

おわりに

今回は、ゼロからディープ ラーニング モデルを作成し、土地被覆分類を行う方法をご紹介しました。この方法は、対象地域や解析ニーズに応じて柔軟に応用できます。ディープ ラーニング モデルの活用例も多数ありますので、関連リンクもぜひご覧ください。

関連リンク

フォローする