The Canopy Height Maps v2 (CHMv2) model is a DPT-based decoder estimating canopy height given satellite imagery, leveraging DINOv3 as the backbone. Building on our original high-resolution canopy height maps released in 2024, CHMv2 delivers substantial improvements in accuracy, detail, and global consistency.
CHMv2 model was developed using the satellite DINOv3 ViT-L as the frozen backbone. Released with world-scale maps generated with it, they will help researchers and governments measure and understand every tree, gap, and canopy edge — enabling smarter biodiversity support and land-management decisions.
1from PIL import Image
2import torch
3
4from transformers import CHMv2ForDepthEstimation, CHMv2ImageProcessorFast
5
6processor = CHMv2ImageProcessorFast.from_pretrained("facebook/dinov3-vitl16-chmv2-dpt-head")
7model = CHMv2ForDepthEstimation.from_pretrained("facebook/dinov3-vitl16-chmv2-dpt-head")
8
9image = Image.open("image.tif")
10inputs = processor(images=image, return_tensors="pt")
11
12with torch.no_grad():
13 outputs = model(**inputs)
14
15depth = processor.post_process_depth_estimation(
16 outputs, target_sizes=[(image.height, image.width)]
17)[0]["predicted_depth"]
The model can be used without fine-tuning to obtain competitive results on various satellite datasets (
paper link).