モデル概要
モデル特徴
モデル能力
使用事例
🚀 Restor社のSegFormerベースのTCDモデル
このモデルは、高解像度(10 cm/px)の航空画像における樹木被覆を描き出すことができるセマンティックセグメンテーションモデルです。
🚀 クイックスタート
このセマンティックセグメンテーションモデルを使って、航空画像から樹木被覆を高精度に検出できます。推論の簡単な例は、このColabノートブックで確認できます。エンドツーエンドの使用方法については、パイプラインを参照してください。
✨ 主な機能
- 高解像度(10 cm/px)の航空画像における樹木被覆を高精度に検出します。
- 画像の各ピクセルが樹木か非樹木かを分類します。
- グローバルな航空画像で学習されており、同様の画像に対しても有効です。
📦 インストール
このモデルを使用するには、transformers
ライブラリを利用します。以下のコマンドを使用して、前処理器を簡単にロードできます。
from transformers import AutoImageProcessor
processor = AutoImageProcessor.from_pretrained('restor/tcd-segformer-mit-b3')
典型的な学習コマンドは以下の通りです。
tcd-train semantic segformer-mit-b3 data.output= ... data.root=/mnt/data/tcd/dataset/holdout data.tile_size=1024
💻 使用例
基本的な使用法
# 前処理器のロード
from transformers import AutoImageProcessor
processor = AutoImageProcessor.from_pretrained('restor/tcd-segformer-mit-b3')
# ここに画像をロードして前処理するコードを追加
# 例: image = Image.open('your_image.tif')
# inputs = processor(images=image, return_tensors="pt")
# モデルを使って推論を行うコードを追加
高度な使用法
# 大規模な画像に対するタイル化された予測や、出力の報告などの高度な機能を利用する場合
# パイプラインを参照してください。
# https://github.com/restor-foundation/tcd
📚 ドキュメント
モデルの詳細
モデルの説明
このセマンティックセグメンテーションモデルは、グローバルな航空画像で学習されており、同様の画像における樹木被覆を正確に描き出すことができます。このモデルは個々の木を検出するわけではなく、ピクセルごとに樹木/非樹木の分類を行います。
属性 | 详情 |
---|---|
開発者 | Restor / ETH Zurich |
資金提供 | このプロジェクトは、(Google.org impact grant)[https://blog.google/outreach-initiatives/sustainability/restor-helps-anyone-be-part-ecological-restoration/]によって可能になりました。 |
モデルタイプ | セマンティックセグメンテーション(2クラス) |
ライセンス | モデルの学習コードはApache 2ライセンスの下で提供されています。NVIDIAはSegFormerを独自の研究用ライセンスの下で公開しています。ユーザーはデプロイする前にこのライセンスの条件を確認する必要があります。このモデルはCC BY - NCの画像で学習されています。 |
ファインチューニング元のモデル | SegFormerファミリー |
SegFormerは、Pyramid Vision Transformer v2モデルのバリアントで、多くの構造的な特徴が同じで、セマンティックセグメンテーションのデコードヘッドを持っています。機能的には、ネットワークの異なる段階の特徴を異なる空間解像度で組み合わせた出力予測に基づいているため、Feature Pyramid Network (FPN) に類似しています。
モデルのソース
- リポジトリ: https://github.com/restor-foundation/tcd
- 論文: 近日中にプレプリントを公開します。
使用方法
直接使用
このモデルは、単一の画像タイルに対する推論に適しています。大規模な正射画像に対する予測を行うには、ソース画像のタイル化と予測結果のスティッチングを管理するための上位のフレームワークが必要です。当社のリポジトリには、そのようなパイプラインの包括的な参照実装が用意されており、非常に大きな画像(国レベル)でのテストも行われています。
モデルは画像全体に対する予測を行います。ほとんどの場合、ユーザーは画像の特定の領域、例えば調査区画や他の地理的境界に対する被覆率を予測したいと思うでしょう。画像内の樹木被覆率を予測する場合は、結果に対して何らかの関心領域分析を行う必要があります。当社のリンク先のパイプラインリポジトリでは、シェイプファイルベースの領域分析がサポートされています。
想定外の使用
このモデルはグローバルに多様な画像で学習されていますが、一部の生態学的バイオームは学習データセットでは不十分に表現されており、性能が異なる場合があります。したがって、ミッションクリティカルな用途でこのモデルを使用する前に、ユーザー自身の画像で実験することをお勧めします。
このモデルは10 cm/pxの解像度の画像で学習されています。他の地理空間解像度でも良好な予測が得られる可能性がありますが、結果が信頼できない場合があります。特に、このモデルは本質的に「木のように見えるもの」を探しており、これは解像度に大きく依存します。もし、高解像度または低解像度の画像を日常的に予測したい場合は、このモデルを自分自身のデータセットまたは学習データセットのリサンプル版でファインチューニングする必要があります。
このモデルは、バイオマス、樹冠高さまたはその他の派生情報を予測しません。あるピクセルが樹冠に覆われている確率のみを予測します。
現状では、このモデルは炭素クレジットの推定には適していません。
バイアス、リスク、制限事項
このモデルの主な制限は、木のように見える、または木と混同される可能性のある物体に対する偽陽性です。例えば、大きな低木、灌木、または樹冠のように見える地被植物です。
このモデルの学習に使用されたデータセットは、非専門家によってアノテーション付けされています。データセットのサイズ、独立したテストデータでの結果、およびRestorにおけるパートナーデータの運用中の実証評価を考慮すると、これは合理的なトレードオフだと考えています。ただし、データセットには間違ったラベルが含まれている可能性があり、これが誤った予測やモデル出力の他のバイアスにつながる可能性があります。モデルは学習データと「意見が一致しない」傾向があり、これはおそらく正しい方向です(つまり、ラベルの集計統計は良好です)。現在、すべての学習データを再評価して、誤ったラベルを取り除く作業を行っています。
予測性能の堅牢な推定を提供するために交差検証の結果を提示しており、独立した画像(つまり、モデルが一度も見たことのない画像)での結果も提供しているので、ユーザーは自分自身で評価することができます。精度に関する保証は一切提供しておらず、ユーザーは「ミッションクリティカル」または本番環境での使用について、独自の独立したテストを行う必要があります。
自分自身のデータでモデルを試して、独自の評価を行うことが最善の方法です。是非実験してみてください!
学習の詳細
学習データ
学習データセットはこちらで見つけることができ、収集とアノテーションの手順に関する詳細情報も得られます。当社の画像ラベルは主にCC - BY 4.0ライセンスの下で公開されており、CC BY - NCおよびCC BY - SAの画像の小さなサブセットも含まれています。
学習手順
学習中にハイパーパラメータを調整するために5分割交差検証プロセスを使用し、「完全な」学習セットで学習した後、ホールドアウトセットの画像で評価しました。このリポジトリのメインブランチにあるモデルは、リリースバージョンと見なされます。
学習フレームワークとしてPytorch Lightningを使用し、以下に示すハイパーパラメータを使用しました。学習手順は簡単で、ディープニューラルネットワークの学習経験がある人には馴染みのあるものです。
前処理
このリポジトリには、transformers
ライブラリを使用する場合にモデルとともに使用できる前処理器の設定が含まれています。
以下のようにして、この前処理器を簡単にロードできます。
from transformers import AutoImageProcessor
processor = AutoImageProcessor.from_pretrained('restor/tcd-segformer-mit-b3')
入力画像をリサイズしないことに注意してください(ソース画像の地理空間スケールを尊重するため)。正規化はこの処理ステップで行われ、データセットの変換としてではないことを前提としています。
学習ハイパーパラメータ
- 画像サイズ: 1024 px四方
- 学習率: 最初は1e4 - 1e5
- 学習率スケジュール: プラトーで減少
- オプティマイザ: AdamW
- データ拡張: 1024x1024へのランダムクロップ、任意の回転、反転、色調整
- エポック数: 収束を確保するために交差検証中は75;最終モデルでは50
- 正規化: Imagenet統計
速度、サイズ、時間
CPUでもモデルを評価できます(mit - b5まで)が、大きなタイルサイズの推論を試みる場合は、利用可能なRAMが大量に必要になります。一般的に、出力セグメンテーションマスクのサイズが固定されているため、1024 pxの入力が最大であると考えられます(つまり、単一の2048x2048 pxの画像を予測するよりも、1024x1024 pxでバッチモードで推論を行った方が良いでしょう)。
すべてのモデルは、64GBのRAMを持つ32コアのマシンに接続された24GBのVRAMを持つNVIDIA RTX3090の単一GPUで学習されました。この仕様のマシンでは、最大のモデルを除くすべてのモデルを1日以内に学習できます。最小のモデルは半日以内で学習でき、最大のモデルは1日少し超える時間がかかります。
現場のユーザーからのフィードバックによると、土地所有者は航空調査の結果を見ることに興味があることが多いですが、遠隔地ではデータ帯域幅が制限要因になることが多いです。当社の目標の1つは、このような現場での使用をサポートすることであり、調査を行ったユーザーが合理的な時間(つまり、1時間程度)でオフラインで結果を処理できるようにすることです。
評価
OAM - TCDのホールドアウト分割に対する評価結果を報告します。
テストデータ
学習データセットはこちらで見つけることができます。
このモデル(main
ブランチ)は、すべてのtrain
画像で学習され、test
(ホールドアウト)画像でテストされました。
評価指標
ホールドアウトデータセットに対するF1、Accuracy、IoUを報告しており、5分割交差検証分割に対する結果も報告しています。交差検証は、以下のプロットの最小/最大エラーバーとして視覚化されています。
結果
環境への影響
この推定値は、ここに提示されているSegFormerファミリーのモデルの最大値(学習時間の観点から)です。mit - b0
のような小さいモデルは半日以内で学習できます。
- ハードウェアタイプ: NVIDIA RTX3090
- 使用時間: < 36時間
- 排出された炭素量: モデルごとに5.44 kgのCO2相当
炭素排出量は、Lacoste et al. (2019)で提示されたMachine Learning Impact calculatorを使用して推定されました。
この推定値には、実験に必要な時間、学習の失敗などは考慮されていません。例えば、交差検証を使用しているため、実際には各モデルにこの推定値の約6倍の時間が必要です - 各分割に1回、最後に1回。
CPUでの効率的な推論は、推論の遅延を犠牲にして現場作業に可能です。典型的な単一バッテリーのドローン飛行は数分で処理できます。
引用
近日中に論文のプレプリント版を提供します。それまでの間、以下のように引用してください。
BibTeX:
@unpublished{restortcd,
author = "Veitch-Michaelis, Josh and Cottam, Andrew and Schweizer, Daniella Schweizer and Broadbent, Eben N. and Dao, David and Zhang, Ce and Almeyda Zambrano, Angelica and Max, Simeon",
title = "OAM-TCD: A globally diverse dataset of high-resolution tree cover maps",
note = "In prep.",
month = "06",
year = "2024"
}
📄 ライセンス
モデルの学習コードはApache 2ライセンスの下で提供されています。NVIDIAはSegFormerを独自の研究用ライセンスの下で公開しています。ユーザーはデプロイする前にこのライセンスの条件を確認する必要があります。このモデルはCC BY - NCの画像で学習されています。
モデルカードの作成者
Josh Veitch - Michaelis, 2024; データセットの作成者に代わって
モデルカードの問い合わせ
質問や詳細情報については、josh [at] restor.ecoにお問い合わせください。











