高分辨率冠层高度地图
Jamie Tolan, Hung-I Yang, Benjamin Nosarzewski, Guillaume Couairon, Huy V. Vo, John Brandt, Justine Spore, Sayantan Majumdar, Daniel Haziza, Janaki Vamaraju, Théo Moutakanni, Piotr Bojanowski, Tracy Johns, Brian White, Tobias Tiecke, Camille Couprie
[论文
][ArxiV [相同内容]
] [博客
] [BibTeX
]
高分辨率冠层高度预测推理的 PyTorch 实现和预训练模型。详情请参阅论文: 使用自监督视觉 Transformer 和卷积解码器在航空激光雷达上训练的超高分辨率冠层高度地图从 RGB 图像生成。
我们与 Meta 的物理建模和可持续发展团队以及世界资源研究所合作,将 DINOv2:无监督学习鲁棒视觉特征 应用于冠层高度地图(CHM)预测问题。我们使用这种技术在全球约 1800 万张卫星图像上预训练主干网络。然后,我们在一个覆盖美国几千平方公里森林的适度规模的训练数据集上训练了一个 CHM 预测器,将这个主干网络作为特征提取器。 我们在论文中定量和定性地展示了大规模自监督学习的优势,所获得的表示具有versatility,能够推广到不同的地理区域和输入图像。
使用此模型获得的地图可在 https://wri-datalab.earthengine.app/view/submeter-canopyheight 查看。
要求
pytorch, pytorch lightning, pandas
成功创建推理环境的示例
conda create -n hrch python=3.9 -y
conda activate hrch
conda install pytorch==2.0.1 torchvision==0.15.2 pytorch-cuda=11.7 -c pytorch -c nvidia
pip install pytorch_lightning==1.7
pip install pandas
pip install matplotlib
pip install torchmetrics==0.11.4
数据和预训练模型
您可以从以下位置下载数据和保存的检查点:
s3://dataforgood-fb-data/forests/v1/models/
数据
要准备数据,在克隆的仓库中运行以下命令:
aws s3 --no-sign-request cp --recursive s3://dataforgood-fb-data/forests/v1/models/ .
unzip data.zip
rm data.zip
尽管我们的方法设计用于处理卫星图像,但它也可以从航空图像估算冠层高度。
我们在 data.zip 中分享了我们为论文创建的 Neon 测试集的航空图像。
为了在不需要 Maxar 图像的情况下自动进行颜色平衡,我们从航空图像(Neon 训练集)训练了一个网络,以预测相应 Maxar 图像的第 95 和第 5 百分位数:saved_checkpoints/aerial_normalization_quantiles_predictor.ckpt
SSL 预训练模型
在 saved_checkpoints 目录中有:
SSLhuge_satellite.pth (2.9G):在卫星图像上训练的编码器,在卫星图像上训练的解码器。在 GPU 上进行推理时使用此模型。使用 RGB 卫星图像作为输入可获得最佳结果。
compressed_SSLhuge.pth (749M):量化后的 SSLhuge_satellite.pth。论文评估中使用的模型。
compressed_SSLhuge_aerial.pth (749M):在卫星图像上训练的编码器,在航空图像上训练的解码器。
compressed_SSLlarge.pth (400M):使用大型模型进行的消融实验。
评估
python inference.py --checkpoint saved_checkpoints/SSLhuge_satellite.pth
mae 3.15
r2_block 0.51
Bias: -1.60
以下是使用发布的不同模型在航空图像上预期的性能。请注意,此表中的前三个模型仅在卫星数据上训练,并在此处在域外上下文中进行评估。
SSL large | SSL huge | compressed SSL huge | SSL aerial | |
---|---|---|---|---|
MAE | 3.31 | 3.15 | 3.08 | 2.5 |
R2 block | 0.37 | 0.51 | 0.54 | 0.7 |
Bias | -1.4 | -1.6 | -1.6 | -2.1 |
注意事项
我们在此代码发布中不包含 GEDI 校正步骤。
"models" 文件夹包含从 Dinov2 团队借用的代码,我们感谢所有贡献者。
使用压缩模型进行的推理尚未在 GPU 上测试(仅限 CPU)。
所有 SSL 模型的主干权重相同。主干已在经过过滤以主要包含植被的图像上训练。
许可
HighResCanopyHeight 代码和模型权重根据 Apache License 2.0 发布。有关其他详细信息,请参阅 LICENSE。
贡献
引用 HighResCanopyHeight
如果您发现此仓库有用,请考虑给予星标 :star: 和引用 :t-rex::
@article{tolan2024very,
title={Very high resolution canopy height maps from RGB imagery using self-supervised vision transformer and convolutional decoder trained on aerial lidar},
author={Tolan, Jamie and Yang, Hung-I and Nosarzewski, Benjamin and Couairon, Guillaume and Vo, Huy V and Brandt, John and Spore, Justine and Majumdar, Sayantan and Haziza, Daniel and Vamaraju, Janaki and others},
journal={Remote Sensing of Environment},
volume={300},
pages={113888},
year={2024}
}