TMB-S3 models
Pretrained burned-area segmentation models for Sentinel-3 OLCI time series, trained on the TMB-S3 dataset. All four use the SegFormer backbone: it gives the best results of the paper in each setting (tied with U-Net for the ConvLSTM band-subset model).
- Paper: "Temporal Modelling for Burn Scars on Sentinel-3", Barco L., Arnaudo E., Bragagnolo A., Rossi C., Garza P., Application of Information and Communication Technologies (AICT) Conference 2026.
- Code: GitHub, needed to run the models.
| Folder | Model | Bands | Test F1 | Test IoU |
|---|---|---|---|---|
segformer_2d_earlyfusion_all |
2D SegFormer, bi-temporal early fusion | 21 | 66.01 | 57.43 |
segformer_2d_earlyfusion_subset |
2D SegFormer, bi-temporal early fusion | 5 | 65.83 | 56.83 |
convlstm_segformer_prepost_all |
ConvLSTM + SegFormer, pre- and post-fire sequence | 21 | 68.41 | 59.29 |
convlstm_segformer_prepost_subset |
ConvLSTM + SegFormer, pre- and post-fire sequence | 5 | 69.45 | 59.81 |
F1 and IoU are for the burned class (×100), averaged over the 118 test bounding boxes, with the paper's test protocol. The 5-band subset is Oa21, Oa17, Oa08, Oa06 and Oa04.
How these weights were chosen. Each configuration was trained with 3 seeds (17, 42, 127), and the paper reports mean ± standard deviation over them. The checkpoint of each run is the epoch with the highest validation burned-class F1. Among the 3 seeds, the run released here is the one with the highest test F1, so these scores are above the paper's means (2D: 65.50 / 65.73; ConvLSTM: 67.64 / 68.24) and should not be read as unbiased estimates.
Inputs
- 2D early fusion: the pre-fire acquisition and the last post-fire acquisition concatenated along channels, plus ESA WorldCover: 43 channels (21 bands) or 11 (5 bands).
- ConvLSTM: the whole sequence (one pre-fire acquisition, then the post-fire acquisitions), each frame with WorldCover appended: 22 or 6 channels per frame. The prediction at the last frame is the output.
Normalisation, band selection and early fusion are done by the code's test transform, driven
by each folder's config.yaml.
Files
Each folder contains:
config.yaml: the training configuration, as in the code repository'sconfigs/.model.ckpt: Lightning checkpoint (weights and hyperparameters; optimizer state removed).model.safetensors: the same network weights, loadable without pickle.test_results.csv: per-bounding-box test metrics of this checkpoint.
Usage
With the code repository and the dataset in data/tmb-s3/:
hf download links-ads/tmb-s3-models --local-dir models
uv run tools/launch.py test models/convlstm_segformer_prepost_subset \
-c models/convlstm_segformer_prepost_subset/model.ckpt \
--temporal-agg last_full --burnt-vote-threshold 0.5 \
--water-mask-key landcover --water-mask-value 7 8
This reproduces test_results.csv, and writes the results to <folder>/test/.
To load only the network:
import sys, yaml
from safetensors.torch import load_file
sys.path.insert(0, "tools") # code repository root
from launch import _build_model
name = "models/convlstm_segformer_prepost_subset"
model = _build_model(yaml.safe_load(open(f"{name}/config.yaml")))
model.load_state_dict(load_file(f"{name}/model.safetensors"))
model.eval()
License
MIT, like the code. The training data is covered by the licenses listed in the dataset card.
Citation
TBD