模型简介
模型特点
模型能力
使用案例
🚀 Restor基于SegFormer的TCD模型
这是一个语义分割模型,能够在高分辨率(10厘米/像素)的航空图像中描绘树木覆盖情况。该模型可以解决从航空图像中准确识别树木覆盖区域的问题,为生态研究、森林监测等领域提供有价值的数据支持。
🚀 快速开始
你可以在 这个Colab笔记本 中查看一个简单的推理示例。
对于端到端的使用,我们建议用户参考我们的预测和训练 管道,它还支持对任意大的图像进行分块预测、报告输出等功能。
✨ 主要特性
- 该语义分割模型基于全球航空图像进行训练,能够在类似图像中准确描绘树木覆盖情况。
- 模型不检测单棵树木,而是提供每个像素的树木/非树木分类。
- 支持对高分辨率(10厘米/像素)的航空图像进行处理。
📦 安装指南
使用我们的管道对该模型进行典型训练的命令如下:
tcd-train semantic segformer-mit-b2 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-b2')
高级用法
如果你使用 transformers
库,这个仓库包含一个可以与模型一起使用的预处理器配置。上述代码展示了如何轻松加载预处理器。需要注意的是,我们不会调整输入图像的大小(以尊重源图像的地理空间尺度),并且假设归一化是在这个处理步骤中完成的,而不是作为数据集转换。
📚 详细文档
模型详情
模型描述
这个语义分割模型在全球航空图像上进行了训练,能够在类似图像中准确描绘树木覆盖情况。该模型不检测单棵树木,而是提供每个像素的树木/非树木分类。
- 开发者: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 作为训练框架,超参数如下所列。训练过程很简单,任何有训练深度神经网络经验的人都应该熟悉。
评估
测试数据
训练数据集可以在 这里 找到。该模型(主分支)在所有“训练”图像上进行训练,并在“测试”(保留)图像上进行评估。
指标
我们报告了保留数据集上的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。
🔧 技术细节
训练过程
我们使用5折交叉验证过程在训练期间调整超参数,然后在“完整”训练集上进行训练,并在保留的图像集上进行评估。该仓库主分支中的模型应被视为发布版本。
我们使用 Pytorch Lightning 作为训练框架,超参数如下:
- 图像大小:1024像素正方形
- 学习率:初始为1e4 - 1e5
- 学习率调度:在性能平台期降低
- 优化器:AdamW
- 数据增强:随机裁剪到1024x1024、任意旋转、翻转、颜色调整
- 训练轮数:交叉验证期间为75轮以确保收敛;最终模型为50轮
- 归一化:使用ImageNet统计数据
速度、大小和时间
你应该能够在CPU上评估该模型(即使是 mit - b5
),但如果你尝试推理大尺寸的图像块,则需要大量可用内存。一般来说,考虑到输出分割掩码的固定大小,我们发现1024像素的输入是你能处理的最大尺寸(即,以1024x1024像素的批量模式进行推理可能比尝试预测单个2048x2048像素的图像更好)。
所有模型都在一台配备24GB显存(NVIDIA RTX3090)的GPU上进行训练,该GPU连接到一台具有64GB内存的32核机器。除最大的模型外,所有模型都可以在一天内使用此规格的机器进行训练。最小的模型训练时间不到半天,而最大的模型训练时间略超过一天。
预处理
这个仓库包含一个可以与模型一起使用的预处理器配置,前提是你使用 transformers
库。你可以使用以下代码轻松加载这个预处理器:
from transformers import AutoImageProcessor
processor = AutoImageProcessor.from_pretrained('restor/tcd-segformer-mit-b2')
需要注意的是,我们不会调整输入图像的大小(以尊重源图像的地理空间尺度),并且假设归一化是在这个处理步骤中完成的,而不是作为数据集转换。
📄 许可证
模型训练代码根据Apache 2许可证提供。NVIDIA根据其自己的研究许可证发布了SegFormer。用户在部署前应检查此许可证的条款。该模型在CC BY - NC图像上进行了训练。我们的图像标签大多根据CC - BY 4.0许可证发布,还有一小部分CC BY - NC和CC BY - SA图像。











