← All projects

Earth observation / Research experiment

TerraMind Flood Mapping

Test whether extra, automatically labelled radar images improve flood segmentation.

My contribution
I built the staged fine-tuning and evaluation pipeline around the existing TerraMind backbone: weak-label pretraining, encoder extraction, a fresh decoder, and evaluation on two splits.
Tools & methods
TerraTorch · TerraMind · Sentinel-1 SAR · UNet
Existing recording of held-out radar scenes with predicted flood masks. This is recorded evaluation output, not live satellite inference.

The problem

What this project investigates

Flood mapping needs to work when cloud obscures optical imagery. This experiment uses Sentinel-1 radar and asks whether plentiful but noisy training labels help when hand-labelled examples are scarce.

The build

What I built

A TerraTorch pipeline adapts TerraMind Large to flood segmentation on Sen1Floods11. A direct fine-tune on hand labels is compared with weak-label pretraining followed by a second fine-tune. Bolivia is held out to test performance on a different flood event.

Evaluation

More labels did not improve this recipe.

Flood-class intersection over union (IoU) measures overlap between predicted and labelled flood regions. Higher is better. These values are reported in the existing project write-up; the training logs are not part of this portfolio repository.

Reported flood IoU by evaluation split
Evaluation splitHand labels onlyWeak pretrain + fine-tune
Official test · 90 chips0.6530.647
Bolivia holdout · 15 chips0.5980.541

The Bolivia result fell from 0.598 to 0.541. The additional weak labels did not translate into better generalisation in this comparison.

The official-test difference is small; the write-up supplies no repeated-run uncertainty estimates. The Bolivia result covers one held-out event, so it should not be generalised to every geography.

Implementation

Two training stages. Two evaluation splits.

  1. Prepare the data

    Use 4,160 automatically labelled chips and the official hand-labelled splits: 252 training, 89 validation and 90 test. Keep 15 Bolivia chips separate.

  2. Pretrain with weak labels

    Train the encoder–decoder on Otsu-derived masks, selecting the checkpoint against clean validation labels.

  3. Extract and fine-tune

    Extract the encoder weights, attach a fresh UNet decoder and fine-tune on the hand-labelled training set.

  4. Evaluate both splits

    Compare with direct fine-tuning on the official test split and the Bolivia holdout.

Technical choices

Decisions behind the build

Separate the test questions

The official test split measures performance within the dataset split. The Bolivia holdout probes generalisation to an event excluded from training.

Use clean validation labels

Weak pretraining uses automatically generated Otsu masks, but checkpoint selection uses hand-labelled validation data.

Restart the decoder

The second stage takes the pretrained encoder and a fresh UNet decoder, then fine-tunes on the hand-labelled training split.

Current status

What the evidence shows

The published write-up reports slightly lower official-test IoU after weak pretraining and a larger drop on Bolivia. More labels did not improve this recipe. Label bias is a possible explanation, not an established cause.

Further work & evidence gaps

Sentinel-2 fusion, frozen-encoder variants and a live tile-selection demo are listed as future work. They are not delivered features of this prototype.