Skip To Content

モデルの微調整

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

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

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

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

このモデルは、Harmonized Landsat 8 (HLSL30) または Harmonized Sentinel 2 (HLSS30) 画像の 18 バンド コンポジットと、農作物のラベルでトレーニングされます。 [ディープ ラーニング用のトレーニング データをエクスポート (Export Training Data For Deep Learning)] ツールを使用し、モデルを微調整するためのトレーニング データを準備します。

  1. [解析] タブの [ツール] を参照します。
    ツール アイコン
  2. [ジオプロセシング] ウィンドウの [ツールボックス] タブをクリックし、[Image Analyst ツール] を選択し、[ディープ ラーニング] ツールセットの [ディープ ラーニング用のトレーニング データをエクスポート] ツールを参照します。
    ディープ ラーニング用のトレーニング データをエクスポート (Export Training Data For Deep Learning)
  3. [パラメーター] タブで、次のように変数を設定します。
    1. [入力ラスター] - 18 バンド画像を選択します。 入力ラスターの詳細については、「画像の推奨構成」をご参照ください。
    2. [出力フォルダー] - コンピューター上の任意のディレクトリ。
    3. [入力フィーチャクラス、分類ラスター、またはテーブル] (オプション) - ClassValue フィールド またはピクセル値が multi-temporal cropclassification データセットの 13 クラスと同じ農作物クラスを表すラベル付きフィーチャクラスまたは分類ラスターを選択します。

      フィーチャクラスには、値が農作物クラスの名前に設定された ClassName という名前のテキスト フィールドも必要です。

    4. [クラス値フィールド] - ClassValue フィールド。 multi-temporal crop classification データセットと同じ値を設定します。
    5. [イメージ形式] - TIFF 形式
    6. [タイル サイズ X] - 224
    7. [タイル サイズ Y] - 224
    8. [ストライド X] ‐ 0
    9. [ストライド Y] ‐ 0
    10. [メタデータ形式] - 分類済みタイル
      ディープ ラーニング用のトレーニング データをエクスポート ツールのパラメーター
  4. [環境] タブで変数を設定します。
    1. [処理範囲] - ドロップダウン メニューから [現在の表示範囲]、または必要に応じて他の選択肢を選択します。
    2. [セル サイズ] - 値を目的のセル サイズに設定します。
      環境タブのディープ ラーニング用のトレーニング データをエクスポート ツールのパラメーター
  5. [実行] をクリックします。

    処理が完了すると、エクスポートされたトレーニング データは指定したディレクトリに保存されます。

Prithvi - Crop Classification モデルの微調整

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

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

      1. [path] - 前回のステップでエクスポートされたトレーニング データへのパスを指定します。
      2. [batch_size] - モデル推論の各ステップで処理された画像タイルの数を指定します。[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 を使用したモデルの微調整

    これで、保存したモデルを使用し、画像に対して推論を実行できるようになります。