🚀 Restor基於SegFormer的TCD模型
這是一個語義分割模型,能夠在高分辨率(10釐米/像素)的航空圖像中描繪樹木覆蓋情況。該模型可以解決從航空圖像中評估樹冠覆蓋情況的問題,為生態研究和監測提供了有效的工具。
🚀 快速開始
你可以在 這個Colab筆記本 中查看一個簡單的推理示例。
對於端到端的使用,我們建議用戶參考我們的預測和訓練 管道,它還支持對任意大的圖像進行分塊預測、報告輸出等。
✨ 主要特性
- 該語義分割模型在全球航空影像上進行訓練,能夠在類似圖像中準確描繪樹木覆蓋情況。
- 模型不檢測單棵樹木,而是提供每個像素是否為樹木的分類。
- 基於SegFormer架構,結合不同階段和空間分辨率的特徵進行輸出預測。
📦 安裝指南
使用我們的管道對該模型進行典型訓練的命令如下:
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')
📚 詳細文檔
模型詳情
模型描述
該語義分割模型在全球航空影像上進行訓練,能夠在類似圖像中準確描繪樹木覆蓋情況。模型不檢測單棵樹木,而是提供每個像素是否為樹木的分類。
- 開發者:Restor / 蘇黎世聯邦理工學院
- 資助方:該項目通過 Google.org 影響力贈款 得以實現。
- 模型類型:語義分割(二分類)
- 許可證:模型訓練代碼根據 Apache-2 許可證提供。NVIDIA 已根據其自身的研究許可證發佈了 SegFormer。用戶在部署前應檢查此許可證的條款。該模型在 CC BY-NC 影像上進行訓練。
- 微調基礎模型:SegFormer 家族
SegFormer 是 Pyramid Vision Transformer v2 模型的一個變體,具有許多相同的結構特徵和一個語義分割解碼頭。在功能上,該架構與特徵金字塔網絡(FPN)非常相似,因為輸出預測是基於在不同空間分辨率下組合網絡不同階段的特徵。
模型來源
- 倉庫:https://github.com/restor-foundation/tcd
- 論文:我們將很快發佈預印本。
使用場景
直接使用
該模型的主要用例是從航空圖像中評估樹冠覆蓋情況(即研究區域被樹冠覆蓋的百分比)。該模型適用於對單個圖像塊進行推理。對於對大正射影像進行預測,需要一個更高級的框架來管理源圖像的分塊和拼接預測結果。我們的倉庫提供了這樣一個管道的全面參考實現,並已在超大型圖像(國家規模)上進行了測試。
超出適用範圍的使用
- 雖然我們在全球多樣化的影像上訓練了該模型,但訓練數據集中某些生態生物群落的代表性不足,性能可能會有所不同。因此,我們鼓勵用戶在將該模型用於任何關鍵任務之前,先在自己的影像上進行實驗。
- 該模型在分辨率為 10 釐米/像素的影像上進行訓練。你可能能夠在其他地理空間分辨率下獲得良好的預測結果,但結果可能不可靠。特別是,該模型本質上是在尋找“看起來像樹木的東西”,這高度依賴於分辨率。如果你想定期對更高或更低分辨率的圖像進行預測,你應該在自己的或重採樣後的訓練數據集上微調該模型。
- 該模型不預測生物量、樹冠高度或其他派生信息。它只預測某個像素被樹冠覆蓋的可能性。
- 目前,該模型不適用於碳信用額估算。
偏差、風險和侷限性
- 該模型的主要侷限性是在看起來像或可能被誤認為是樹木的物體上出現誤報。例如,大型灌木叢、灌木或看起來像樹冠的地被植物。
- 用於訓練該模型的數據集由非專家進行標註。考慮到數據集的規模、獨立測試數據的結果以及 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 像素正方形
- 學習率:初始為 1e4 - 1e5
- 學習率調度:在高原期降低
- 優化器:AdamW
- 數據增強:隨機裁剪到 1024x1024、任意旋轉、翻轉、顏色調整
- 訓練輪數:交叉驗證期間為 75 輪以確保收斂;最終模型為 50 輪
- 歸一化:使用 ImageNet 統計數據
速度、大小、時間
你應該能夠在 CPU 上評估該模型(即使是 mit-b5),但是如果你嘗試對大圖像塊進行推理,你將需要大量可用內存。一般來說,我們發現考慮到輸出分割掩碼的固定大小,1024 像素的輸入是你能處理的最大尺寸(即,以 1024x1024 像素的批量模式進行推理可能比嘗試預測單個 2048x2048 像素的圖像更好)。
所有模型都在一臺配備 24GB VRAM(NVIDIA RTX3090)的單個 GPU 上進行訓練,該 GPU 連接到一臺具有 64GB RAM 的 32 核機器。除最大的模型外,所有模型都可以在一天內使用此規格的機器進行訓練。最小的模型訓練時間不到半天,而最大的模型訓練時間略超過一天。
評估
測試數據
訓練數據集可以在 這裡 找到。該模型(主分支)在所有 train
圖像上進行訓練,並在 test
(保留)圖像上進行測試。

評估指標
我們報告了在保留數據集上的 F1、準確率和交併比(IoU),以及 5 折交叉驗證分割的結果。交叉驗證結果在下面的圖表中以最小/最大誤差線的形式可視化。
評估結果

環境影響
此估計是此處介紹的 SegFormer 系列模型的最大(就訓練時間而言)估計。較小的模型,如 mit-b0
,訓練時間不到半天。
- 硬件類型:NVIDIA RTX3090
- 使用時長:< 36 小時
- 碳排放:每個模型 5.44 千克二氧化碳當量
碳排放使用 Lacoste 等人(2019) 中介紹的 機器學習影響計算器 進行估計。
此估計未考慮實驗所需的時間、失敗的訓練運行等。例如,由於我們使用了交叉驗證,每個模型實際上需要大約 6 倍於此估計的時間 - 每一折一次運行,加上最終運行。
在野外工作中,可以在 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"
}
模型卡片作者
Josh Veitch-Michaelis,2024 年;代表數據集作者。
模型卡片聯繫方式
如有疑問或需要更多信息,請聯繫 josh [at] restor.eco。