PhenoEmbed MiT-B2

PhenoEmbed is a self-supervised temporal feature extractor for individual tree crowns observed in multispectral UAV image time series. It converts an aligned sequence of crown-centered multispectral crops into one L2-normalized, 256-dimensional vector summarizing seasonal crown appearance.

The model was developed to capture phenological changes such as leaf emergence, canopy closure, senescence, and leaf-off conditions. It is intended as a representation model for downstream tree-level Earth-observation tasks rather than as a species classifier or segmentation model.

phenoembed

Model Description

  • Architecture: SegFormer MiT-B2 spatial encoder with temporal Transformer
  • Base model: nvidia/mit-b2
  • Input bands: red, green, red-edge, and near-infrared
  • Temporal observations: 18 acquisition dates
  • Crop extent: 16 m × 16 m per crown
  • Stored crop resolution: 288 × 288 pixels
  • Backbone input resolution: 224 × 224 pixels
  • Output: one L2-normalized 256-dimensional embedding per crown
  • Training method: self-supervised temporal contrastive learning and masked temporal reconstruction
  • Spatial backbone: frozen during training
  • Trainable components: multispectral adapter, temporal Transformer, projection head, and reconstruction head

A trainable 1 × 1 convolution maps the four multispectral bands to the three-channel input expected by the ImageNet-pretrained MiT-B2 backbone. It is initialized with red and green passed to their corresponding channels and the third channel initialized from the mean of red-edge and NIR. All adapter weights remain trainable.

Per-date spatial features are combined with normalized seasonal time features using a two-layer, four-head temporal Transformer.

Training Data

The model was trained on HeideBench, a multispectral UAV time-series dataset covering a forest patch in Dölauer Heide, Halle (Saale), Germany.

The training corpus contains:

  • 18 UAV orthomosaics acquired between 6 March and 5 November 2025
  • 5,885 crop-safe individual tree crowns
  • 105,930 crown-date crop instances
  • 5,297 training crowns and 588 validation crowns
  • Canonical band order: R, G, RE, NIR
  • Average source ground sampling distance: 5.53 cm per pixel

Crown polygons were used as fixed object anchors for extracting aligned crops of the same tree through time.

Input Preprocessing

Input reflectance values must be arranged in canonical order:

R, G, RE, NIR

The preprocessing used during training was:

  1. Divide reflectance values by 10,000.
  2. Clip values to the range [0, 4].
  3. Normalize each band using the following statistics:
Band Mean Standard deviation
R 0.06105786 0.05220907
G 0.07939660 0.05130135
RE 0.31415916 0.20160384
NIR 0.67597259 0.40058157

Invalid pixels are excluded using the accompanying alpha mask.

Each acquisition date also receives a normalized seasonal coordinate:

(day - first_day) / (last_day - first_day)

Inputs from other sensors or sites should be calibrated to comparable reflectance units. Reusing the HeideBench normalization statistics outside the training domain may not be appropriate.

Training Configuration

  • Batch size: 2
  • Completed optimization steps: 50,000
  • Optimizer: AdamW
  • Learning rate: 5 × 10⁻⁵
  • Weight decay: 10⁻⁴
  • Temporal masking probability: 0.3
  • Contrastive temperature: 0.2
  • Contrastive-loss weight: 1.0
  • Reconstruction-loss weight: 1.0
  • Precision: mixed 16-bit
  • Checkpoint selection: minimum validation objective

A separate batch-size-16 sensitivity run was also evaluated. It did not improve the intrinsic embedding diagnostics under its training schedule, but it used a different learning rate and stopping configuration and should not be interpreted as a controlled batch-size ablation.

Usage

PhenoEmbed uses a custom PyTorch Lightning architecture and cannot be loaded directly with transformers.AutoModel.

Clone and install the PhenoEmbed repository, prepare a compatible crop manifest, and run:

PYTHONPATH=src python -m phenoembed.inference.export_embeddings \
  --checkpoint-path phenoembed-mitb2-full.ckpt \
  --data-config configs/dataloader_full.toml \
  --output-path outputs/crown_embeddings.csv \
  --npz-path outputs/crown_embeddings.npz \
  --device cuda

The CSV contains the crown identifier, acquisition-date sequence, and 256 embedding dimensions. The optional NPZ output contains crown_id, date_sequence, and embedding arrays.

Evaluation

Intrinsic evaluation on 5,885 HeideBench crowns produced:

Diagnostic Result
Variance explained by PC1 and PC2 25.1%
Variance explained by the first 8 PCs 71.8%
Median top-1 cosine similarity 0.946
Median cosine similarity among top-10 neighbors 0.902
NDVI-amplitude linear probe, five-fold CV R² 0.525
NDRE-amplitude linear probe, five-fold CV R² 0.414

The linear-probe results show that the embeddings retain measurable information about seasonal vegetation change. PCA and nearest-neighbor similarity are intrinsic representation diagnostics, not downstream accuracy measurements.

Intended Uses

PhenoEmbed is intended for:

  • Crown-level temporal representation extraction
  • Forest phenology analysis
  • Similarity search and crown retrieval
  • Phenology-aware feature generation
  • Research on seasonally robust tree-level models
  • Future integration with crown segmentation or classification systems

Limitations

  • The model was trained on one forest site, one year, and one UAV sensor.
  • Generalization across sites, years, sensors, and spatial resolutions has not yet been established.
  • The model expects aligned observations of the same annotated crown through time.
  • The selected model uses only a small number of in-batch contrastive negatives.
  • The MiT-B2 backbone is frozen and receives four-band information through a learned four-to-three-channel adapter.
  • The reconstruction objective predicts per-date band means rather than detailed spatial structure.
  • Current evaluation is intrinsic. Improved downstream crown segmentation under seasonal shift has not yet been demonstrated.
  • Embedding similarity must not be interpreted as species identity, ecological equivalence, health status, or segmentation accuracy without independent validation.

Citation

@inproceedings{khan2026phenoembed,
  title     = {PhenoEmbed: Self-Supervised Multispectral UAV Time-Series
               Embeddings for Individual Tree Crown Phenology},
  author    = {Khan, Taimur},
  year      = {2026},
  note      = {Resilience and AI Workshop at Informatik Festival 2026}
}

Please also cite the training dataset:

@dataset{khan2026heidebench,
  author    = {Khan, Taimur},
  title     = {HeideBench: A Multispectral UAV Time-Series Benchmark for
               Forest Crown Phenology in Dölauer Heide},
  publisher = {PANGAEA},
  year      = {2026},
  doi       = {10.1594/PANGAEA.993969}
}

License

The release license for the PhenoEmbed weights must be stated here before publication. Use of the model must also comply with the terms of the pretrained MiT-B2 model and the HeideBench dataset.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for thisistaimur/phenoembed-mitb2

Base model

nvidia/mit-b2
Finetuned
(13)
this model