Skip To Content

モデルの微調整

区画エリア、画像、対象フィーチャに合わせて、Prithvi - 火災跡のセグメンテーション モデルを微調整できます。 新しいモデルをトレーニングする場合に比べ、モデルを微調整する方がトレーニング データや計算リソースが少なくて済み、時間も短縮できます。

利用可能な ArcGIS の事前トレーニング済みディープ ラーニング モデルで満足のいく結果が得られない場合は、モデルの微調整を行うことをお勧めします。 これは、対象地域がモデルの適用地域から外れている場合や、解像度、縮尺、季節性などの画像プロパティが異なる場合です。

ディープ ラーニング用のトレーニング データをエクスポート (Export Training Data For Deep Learning) ツールを使用し、トレーニング データを準備できます。 次に、ArcGIS Proディープ ラーニング モデルのトレーニング ツールを使用し、データ上でこのモデルを微調整できます。 モデルを微調整するには、次の手順に従います。

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

このモデルは、Harmonized Landsat 8 (HLSL30) または Harmonized Sentinel 2 (HLSS30) の 6 バンド コンポジットと、火災跡ラベルでトレーニングされます。 ディープ ラーニング用のトレーニング データをエクスポート ツールを使用し、モデルを微調整するためのトレーニング データを準備します。

  1. [解析] タブの [ツール] を参照します。
    ツール アイコン
  2. [ジオプロセシング] ウィンドウの [ツールボックス] タブをクリックし、[Image Analyst ツール] を選択し、[ディープ ラーニング] ツールセットの [ディープ ラーニング用のトレーニング データをエクスポート] ツールを参照します。
    ディープ ラーニング用のトレーニング データをエクスポート (Export Training Data For Deep Learning) ツール
  3. [パラメーター] タブで、次のように変数を設定します。
    1. [入力ラスター] - 6 バンド画像を選択します。 入力ラスターの詳細については、「画像の推奨構成」をご参照ください。
    2. [出力フォルダー] - コンピューター上の任意のディレクトリ。
    3. [入力フィーチャクラス、分類ラスター、またはテーブル] - 火災跡を表すラベル付きフィーチャクラスまたは分類ラスターを選択します。 フィーチャクラスの場合、名前を含む ClassName というテキスト フィールドと、ClassValue というもう 1 つのフィールドが含まれている必要があります。
    4. [クラス値フィールド] - 前のステップでフィーチャクラスが使用されている場合は、指定されたフィーチャクラス内の火災跡に割り当てられたクラス値を参照する ClassValue フィールドを追加します。
    5. [イメージ形式] - TIFF 形式
    6. [タイル サイズ X] - 224
    7. [タイル サイズ Y] - 224
    8. [ストライド X] ‐ 0
    9. [ストライド Y] ‐ 0
    10. [メタデータ形式] - 分類済みタイル
      ディープ ラーニング用のトレーニング データをエクスポート ツールのパラメーター
  4. [環境] タブで変数を設定します。
    1. [処理範囲] - ドロップダウン メニューから [現在の表示範囲]、または必要に応じて他の選択肢を選択します。
    2. [セル サイズ] - 値を目的のセル サイズに設定します。
      ディープ ラーニング用のトレーニング データをエクスポート ツールのパラメーター
  5. [実行] をクリックします。 処理が完了すると、エクスポートされたトレーニング データは指定したディレクトリに保存されます。

Prithvi - 火災跡のセグメンテーション モデルの微調整

ArcGIS API for Python の学習モジュールを使用し、モデルを微調整します。

  1. ディープ ラーニングの依存関係で構成される環境で [Python コマンド プロンプト] を開き、目的のディレクトリに移動して「jupyter-notebook」と入力します。
    Python コマンド プロンプト
  2. ブラウザーで [New] をクリックし、[Python 3 (ipykernel)] を選択して、ノートブックを作成します。
    jupyter notebook
  3. 次の関数を使用し、モデルを微調整します。
    1. arcgis.learn モジュールをインポート
    2. [prepare_data] - [ディープ ラーニング用のトレーニング データをエクスポート (Export Training Data For Deep Learning)] ツールでエクスポートしたトレーニング サンプルか、サポートされたデータセット形式のトレーニング サンプルからデータ オブジェクトを準備します。

      1. [path] - 前回のステップでエクスポートされたトレーニング データへのパスを指定します。
      2. [batch_size] - モデル推論の各ステップで処理された画像タイルの数を指定します。グラフィックス カードのメモリに依存します。

    3. MMSegmentation モデルを初期化し、変数名 (model など) に割り当てます。

      1. data - [prepare_data] 関数を使用して作成されたデータ オブジェクトを指定します。
      2. model - モデル名を prithivi100m_crop_classification として指定します。

    4. [fit] - 自動生成された最適な学習率を用いて、指定されたエポック数のモデルを [fit] メソッドでトレーニングします。
    5. [save] - トレーニング済みモデルを、[save] メソッドを使用してディープ ラーニング パッケージ ファイル (.dlpk) として保存します。 ディープ ラーニング パッケージ ファイル形式は、ArcGIS プラットフォームにディープ ラーニング モデルを配置するために使用される標準的な形式です。 デフォルトでは、トレーニング データ フォルダー内の [models] サブフォルダーに保存されます。
    6. [per_class_metrics] - per_class_metrics 手法を使用し、整合チェック セットの各クラスの精度、再現率、F-1 スコアを計算します。
      ArcGIS API for Python を使用したモデルのトレーニング
  4. これで、保存したモデルを使用し、画像に対して推論を実行できるようになります。