/ Модель

Характеристики

Лицензия
CC BY 4.0
Базовая модель
radiance-mae-base-v1
Библиотека
pytorch
Опубликована
3 сен 2026

radiance-sen1floods11-v1

Сегментация изображенийИзображение → mask

Модель Stratus Labs на основе ViT-B/16 выделяет пиксели затопления на двухканальных SAR-снимках Sentinel-1.

0скачиваний за 30 дней0лайковвеса обновлены27 сен 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Radiance SEN1Floods11 v1 — сегментационная модель Stratus Labs для попиксельного выделения воды при наводнениях на снимках Sentinel-1 SAR. Модель дообучена на размеченной выборке SEN1Floods11 v1.1 от Radiance MAE Base v1 — ViT-B/16 с предобучением masked autoencoder; сегментационная голова использует четырёхэтапный ConvTranspose-апсемплер. На вход подаются двухканальные VV/VH фрагменты GRD размером 224 × 224 с нормализацией в децибелах; выход — карта вероятностей затопления. Для обработки тайлов 512 × 512 в README рекомендуется скользящее окно с перекрытием и усреднением вероятностей.

В тестировании на полном тайле модель достигла flood IoU 0,629 при пороге 0,5; порог 0,25 повышал полноту обнаружения малых водных участков с 0,505 до 0,584 при IoU 0,622. Качество зависит от выбранного порога, а результаты на небольшом боливийском наборе следует трактовать осторожно. Обучающая выборка содержит 252 фрагмента; модель рассчитана только на Sentinel-1 и фиксированные входы 224 × 224, не включает слияние с оптическими снимками или DEM и не выполняет дополнительную радиометрическую коррекцию. Карточка позиционирует её как средство поддержки анализа, требующее проверки результатов специалистом. Лицензия — CC-BY-4.0.

Сценарии применения

  • создание карт затоплений по снимкам Sentinel-1
  • выделение водных пикселей на SAR-изображениях VV/VH
  • анализ затоплений на тайлах дистанционного зондирования Земли
  • оценка распространения паводковой воды по скользящим окнам снимка

Ограничения

Модель обучена на небольшой выборке из 252 фрагментов, принимает только двухканальные данные Sentinel-1 и входы 224 × 224; качество обнаружения малых затоплений зависит от порога, а на малых целях точность низкая. Нужна проверка карт перед принятием решений; дополнительная радиометрическая коррекция, оптические данные и DEM не используются.

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

Radiance SEN1Floods11 — v2 (2026-09-06)

Binary flood-water segmentation on Sentinel-1 SAR imagery. Fine-tuned from the Radiance MAE Base v1 ViT-B backbone on the SEN1Floods11 v1.1 hand-labeled split.

v2 replaces a defective v1. The v1 weights published here on 2026-09-02 were trained with a bug that scrambled patch order before the segmentation head (MAE's random_masking returns tokens shuffled even at mask_ratio = 0, and the head was never un-shuffled). v1 could only learn a per-crop flood fraction; its prediction maps were spatially flat and its inference was non-deterministic. The v1 numbers (val 0.414 / test 0.462 / bolivia 0.587) were the scores of that per-crop classifier, not of a segmentation model. v2 fixes the head, is deterministic, and is evaluated on the held-out test and bolivia splits with per-chip distributions and a qualitative figure. The old weights are kept at legacy/v1_degenerate_best.pt for reproducibility only — do not use them.

  • Task: per-pixel binary flood segmentation from 2-channel Sentinel-1 GRD (VV + VH), dB-normalised, 224 × 224 crops
  • Base: stratus-labs/radiance-mae-base-v1 (ViT-B/16 MAE, 100 epochs SSL4EO-S12 pretrain)
  • Head: 4-stage ConvTranspose upsampler (768 → 256 → 128 → 64 → 32 → 1, ~3.55 M params) on raster-ordered patch tokens
  • License: CC-BY-4.0

Which protocol you use changes the number — read this first

Two evaluation protocols appear below. They measure different things and must never be compared to each other.

protocolwhat it seestest flood IoU @0.5
Full-tile sliding window (recommended, operational)the whole 512×512 tile, 224 windows at stride 112, probabilities averaged0.629
224 centre-crop (historical, what the numbers below use)the centre 224×224 only, 19 % of each tile0.598

The centre-crop protocol is what this model was originally scored under and every number in the next section uses it. It understates the model by roughly three points, because most of each tile is never looked at. New work should use full-tile.

Recommended operating point: threshold 0.25, not 0.5

The default 0.5 was never optimal for anything — validation IoU peaks at 0.40. More importantly, lowering the threshold recovers small floods that 0.5 discards, at negligible cost. Measured full-tile, threshold selected on validation under a false-positive budget declared before the run (≤2 % of valid pixels on water-free tiles), then the test set scored once:

test, full-tileflood IoUrecallprecisionsmall-water recallfalse-positive area on water-free tiles
threshold 0.500.6290.7360.8120.5050.10 %
threshold 0.250.6220.7850.7500.5840.18 %

+7.9 points of small-flood recall for 0.7 points of IoU, using under a tenth of the false-positive budget. If your cost of missing a flood exceeds your cost of a small false positive — which is usual in flood mapping — use 0.25. Recall on small water keeps climbing to 0.68 at threshold 0.05, at 2.9 % false-positive area; pick your own point on that curve.

This also corrects an earlier characterisation on this card. We previously reported near-zero per-chip IoU on the smallest floods and inferred the model could not see them. It can: it recovers half to three-fifths of small-water pixels. What collapses on tiny targets is precision, which is what drives per-chip IoU to zero. The signal was there; the operating point was throwing it away.

Results, 224 centre-crop protocol (held-out, threshold 0.5, nodata masked)

Pixel-pooled flood-class IoU on the three SEN1Floods11 hand-labeled evaluation splits, center 224 × 224 crop of each 512 × 512 tile:

splitchipsflood IoUprecisionrecallF1
val (selection only)890.6150.790.730.76
test900.5980.800.710.75
bolivia (out-of-region)150.6510.820.760.79

A second seed of the same recipe gives val 0.603 / test 0.594 / bolivia 0.618 — test is stable to ±0.005; bolivia is 15 chips, treat its second decimal as noise.

Per-chip IoU by how much of the crop is flooded (the number that tells you what the model can and cannot do):

test chips by flood fraction of cropnmedian IoUmean IoU
no flood170.000.00
< 1 %230.000.03
1 – 10 %300.350.28
10 – 50 %90.660.59
≥ 50 %110.750.62

Median IoU over the 51 test chips with ≥ 1 % flood: 0.39. The bolivia split behaves the same way (1–10 %: 0.41 · 10–50 %: 0.49 · ≥ 50 %: 0.78). The model segments floods that cover more than a few percent of a crop well and misses most floods under 1 % of a crop — that is the v3 target, not "+IoU".

Inference is deterministic (same input twice: max |Δ| 8e-5). test_chips.png shows VV / label / prediction for the four test chips with the most flood.

test chips

Where we sit vs published SOTA: 0.60–0.75 flood IoU is reported for larger backbones with Sentinel-1 + Sentinel-2 + DEM fusion and full-tile inference. v2 is S1-only, ViT-B, a light head, 252 training chips and a center-crop protocol; the gap is real and the roadmap below is ordered by what closes it.

Training recipe (v2)

  • Data: SEN1Floods11 v1.1 hand-labeled split — 252 train / 89 val chips; test (90) and bolivia (15) never touched until the final eval
    • Input: VV + VH dB, nan_to_num (many tiles have > 80 % NaN nodata), clipped to [−60, +20] dB, z-scored with SSL4EO-S12 stats mean = [−12.577, −20.265], std = [5.176, 5.870]
    • Train: random 224 × 224 crop + hflip + vflip; eval: center crop
  • Encoder → head: latent, _, ids_restore = encoder.forward_encoder(x); patch tokens gathered back to raster order with ids_restore before the 14 × 14 reshape (the v1 bug was omitting this)
  • Optim: AdamW, layer-wise LR decay 0.8 across the 12 encoder blocks, encoder LR 3e-5, head LR 1e-3, weight decay 0.05, 3-epoch warmup + cosine over 60 epochs, early stopping (patience 12) on val IoU — best at epoch 8, stopped at 21
  • Loss: BCE + Dice, label == −1 nodata masked out of loss and metrics
  • Precision: bf16 autocast, grad-norm clip 1.0, batch 8, seed 0
  • Hardware: 1× NVIDIA GB10 (DGX Spark), ~4 minutes wall-clock

Ablation on the fixed head (single seed each): no LLRD / encoder LR 1e-5 → test 0.588, bolivia 0.656; LLRD only → 0.589 / 0.594; encoder LR 3e-5 only → 0.596 / 0.555; both (v2) → 0.598 / 0.652. A higher encoder LR buys small-flood recall but costs out-of-region generalisation; LLRD recovers it.

Files

FilePurpose
best.ptv2 fine-tuned state dict (encoder + head), torch.save format, key "model"
model.pyRadianceMAE (with encode()), RadianceSegHead, RadianceSegModel — the forward pass contains the un-shuffle
eval_report.jsonval / test / bolivia metrics incl. per-chip median and p10
test_chips.pngqualitative figure (VV / label / prediction)
legacy/v1_degenerate_best.ptthe withdrawn v1 weights, reproducibility only

Usage

from huggingface_hub import snapshot_download
import torch, sys

path = snapshot_download("stratus-labs/radiance-sen1floods11-v1")
sys.path.insert(0, path)
from model import RadianceMAE, RadianceSegModel

encoder = RadianceMAE(img_size=224, patch_size=16, in_chans=2)
model = RadianceSegModel(encoder)
ckpt = torch.load(f"{path}/best.pt", map_location="cpu", weights_only=False)
model.load_state_dict(ckpt["model"])   # strict — every key must match
model.eval()

# sar: [B, 2, 224, 224] — VV + VH in dB, clipped to [-60, 20], z-scored with the SSL4EO-S12 stats above
with torch.no_grad():
    flood_prob = torch.sigmoid(model(sar)).squeeze(1)   # [B, 224, 224] in [0, 1]; threshold 0.5

For tiles larger than 224 × 224, run a sliding window with overlap and average the probabilities — a full-tile protocol is on the roadmap and will change the published numbers.

Limitations

  • Small floods are missed. Per-chip p10 IoU is 0.0 on every split; floods under ~1 % of a crop are usually not detected.
  • Small train pool (252 chips). Best epoch is 8; the encoder overfits after that even with LLRD.
  • S1-only, fixed 224 × 224 crop. Optical + DEM fusion and full-tile inference are known to help and are not in v2.
  • No radiometric calibration correction beyond the SSL4EO-S12 dB normalisation.
  • Decision support, not automated alerts. Review before acting on a map.

Roadmap (v3)

Reordered 2026-09-09 after the threshold study above. A decoder change was previously top of this list on the assumption the model could not resolve small floods; that assumption was wrong, so it has moved down.

  1. Publish full-tile as the primary protocol and retire centre-crop to a reproducibility footnote.
  2. Out-of-region check under full-tile. The Bolivia split has only been scored under centre-crop; there is no full-tile Bolivia number yet, so do not pair 0.629 with 0.652.
  3. Weak/auto-labelled SEN1Floods11 chips for train-set expansion.
  4. S1GFloods pre/post change-detection head on the same backbone.
  5. Skip-connection decoder for small-target precision — still worth doing, but for precision, not for recall.
  6. Sentinel-2 + DEM fusion (a Radiance-DualMod project, not a head change).

Citation

@misc{stratus-labs-radiance-sen1floods11-v2,
  title = {Radiance SEN1Floods11 v2: Sentinel-1 flood segmentation on the Radiance MAE Base v1 backbone},
  author = {Stratus Labs},
  year = {2026},
  publisher = {HuggingFace},
  howpublished = {\url{https://huggingface.co/stratus-labs/radiance-sen1floods11-v1}},
}

Related

Research page

The write-up and every Radiance release, in one place: https://runstratus.com/research/radiance-mae-base-v1-sentinel1-sar

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · pytorch · image-segmentation

Нельзя запустить

В репозитории нет config.json: не понять архитектуру модели.

Ревизия весов
abb1140

0 моделей