GitHub-style model card: architecture figure + results table
Browse files- .gitattributes +1 -0
- README.md +80 -28
- figure_01_architecture.png +3 -0
.gitattributes
CHANGED
|
@@ -34,3 +34,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
examples/sample_tile.tif filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
examples/sample_tile.tif filter=lfs diff=lfs merge=lfs -text
|
| 37 |
+
figure_01_architecture.png filter=lfs diff=lfs merge=lfs -text
|
README.md
CHANGED
|
@@ -11,33 +11,70 @@ pipeline_tag: image-segmentation
|
|
| 11 |
|
| 12 |
# FloodDuo
|
| 13 |
|
| 14 |
-
Dual
|
| 15 |
-
4-band (B/G/R/NIR) PlanetScope imagery at 3 m resolution. See the
|
| 16 |
-
[paper](https://github.com/Sk-2103/FloodDuo) (ISPRS Journal of Photogrammetry
|
| 17 |
-
and Remote Sensing, 2026) and [code](https://github.com/Sk-2103/FloodDuo) for
|
| 18 |
-
the full architecture, training protocol, and benchmark results.
|
| 19 |
|
| 20 |
-
|
|
|
|
| 21 |
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
-
|
| 28 |
-
|
| 29 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 30 |
|
| 31 |
-
## This checkpoint vs. the
|
| 32 |
|
| 33 |
This is the **release model**: trained on all FloodPlanet + UFO data pooled
|
| 34 |
together (not held out by region), for actual use on new imagery. Its
|
| 35 |
-
validation IoU (0.80, on a random held-out 15% of tiles) is
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 41 |
|
| 42 |
## Quick start
|
| 43 |
|
|
@@ -47,18 +84,33 @@ from src.inference import load_model, predict_file # from the GitHub repo
|
|
| 47 |
|
| 48 |
ckpt = hf_hub_download("Sk-21/FloodDuo", "floodduo_full.pt")
|
| 49 |
model = load_model(ckpt)
|
| 50 |
-
prob, mask, profile = predict_file(model, "your_tile.tif") # 4-band B,G,R,NIR
|
| 51 |
```
|
| 52 |
|
| 53 |
-
|
| 54 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 55 |
|
| 56 |
## Input format
|
| 57 |
|
| 58 |
-
4-band (B, G, R, NIR)
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 62 |
|
| 63 |
## License
|
| 64 |
|
|
|
|
| 11 |
|
| 12 |
# FloodDuo
|
| 13 |
|
| 14 |
+
**A Dual Foundation-Encoder Architecture for Generalizable High-Resolution Flood Mapping**
|
|
|
|
|
|
|
|
|
|
|
|
|
| 15 |
|
| 16 |
+
Saurabh Kaushik, Beth Tellman, Qihao Weng — *ISPRS Journal of Photogrammetry and Remote Sensing*, 2026
|
| 17 |
+
· [Code](https://github.com/Sk-2103/FloodDuo) · [Paper](https://github.com/Sk-2103/FloodDuo#citation)
|
| 18 |
|
| 19 |
+
FloodDuo maps open water in high-resolution (3 m, 4-band B/G/R/NIR PlanetScope)
|
| 20 |
+
imagery by pairing two **frozen** vision foundation-model encoders that carry
|
| 21 |
+
complementary information:
|
| 22 |
+
|
| 23 |
+
- **DINOv3-L** (RGB) — sharp spatial / boundary detail.
|
| 24 |
+
- **Clay v1.5** (all four bands) — wavelength-conditioned spectral discrimination.
|
| 25 |
+
|
| 26 |
+
Convolutional networks preserve fine boundary detail but generalize poorly to
|
| 27 |
+
unseen regions; geospatial foundation models supply global context but, at
|
| 28 |
+
standard patch sizes, lose the detail that distinguishes a flooded street from
|
| 29 |
+
a dry one. FloodDuo keeps both: the frozen encoders are adapted with
|
| 30 |
+
lightweight trainable modules (an in-block frequency-domain Earth-Adapter,
|
| 31 |
+
plus post-hoc atrous-convolution and pyramid-pooling adapters), and their
|
| 32 |
+
branch predictions are merged by a **disagreement-gated fusion** whose
|
| 33 |
+
per-pixel Jensen-Shannon divergence doubles as a label-free reliability map,
|
| 34 |
+
before a LinkNet decoder produces the full-resolution mask. Only ~65M
|
| 35 |
+
parameters are trained against ~614M frozen.
|
| 36 |
+
|
| 37 |
+

|
| 38 |
+
|
| 39 |
+
## Results (leave-one-region-out, region-mean water IoU)
|
| 40 |
+
|
| 41 |
+
| Model | FloodPlanet | UFO |
|
| 42 |
+
|---|---|---|
|
| 43 |
+
| **FloodDuo (ours)** | **0.728** | **0.819** |
|
| 44 |
+
| TerraMind-L | 0.700 | 0.789 |
|
| 45 |
+
| Prithvi-EO-2 | 0.678 | 0.774 |
|
| 46 |
+
| DOFA-L | 0.687 | 0.766 |
|
| 47 |
+
| Clay v1.5-L | 0.675 | 0.773 |
|
| 48 |
+
| CROMA-L | 0.672 | 0.715 |
|
| 49 |
+
| SSL4EO-S12 DINO | 0.650 | 0.767 |
|
| 50 |
+
| U-Net (from scratch) | 0.648 | 0.782 |
|
| 51 |
+
|
| 52 |
+
FloodDuo significantly outperforms U-Net (+8.0 / +3.7 pp) and the strongest
|
| 53 |
+
single-encoder foundation model (+2.8 / +3.0 pp, paired Wilcoxon on both).
|
| 54 |
+
Every table (matched single-encoder controls, the fusion ablation,
|
| 55 |
+
boundary-resolved analysis, D-reliability calibration) is in
|
| 56 |
+
[results.md](https://github.com/Sk-2103/FloodDuo/blob/main/results.md) in the
|
| 57 |
+
code repo.
|
| 58 |
|
| 59 |
+
## This checkpoint vs. the numbers above
|
| 60 |
|
| 61 |
This is the **release model**: trained on all FloodPlanet + UFO data pooled
|
| 62 |
together (not held out by region), for actual use on new imagery. Its
|
| 63 |
+
validation IoU (0.80, on a random held-out 15% of tiles) is a different
|
| 64 |
+
measurement from the table above — that table is leave-one-region-out
|
| 65 |
+
cross-validation, a much stricter protocol specifically designed to measure
|
| 66 |
+
generalization to *unseen* regions. This release checkpoint is the practical
|
| 67 |
+
model to run on your own data, not the benchmark artifact; don't quote its
|
| 68 |
+
validation score as the paper's headline result.
|
| 69 |
+
|
| 70 |
+
## Files
|
| 71 |
+
|
| 72 |
+
- `floodduo_full.pt` (1.36 GB) — self-contained: model config + full state
|
| 73 |
+
dict, frozen DINOv3-L and Clay v1.5 backbones included. One download, no
|
| 74 |
+
other weights needed.
|
| 75 |
+
- `examples/sample_tile.tif`, `examples/sample_mask.tif` — one held-out
|
| 76 |
+
FloodPlanet test tile (Oklahoma) for a no-setup demo, from the public
|
| 77 |
+
[FloodPlanet benchmark](https://zenodo.org/records/19698577).
|
| 78 |
|
| 79 |
## Quick start
|
| 80 |
|
|
|
|
| 84 |
|
| 85 |
ckpt = hf_hub_download("Sk-21/FloodDuo", "floodduo_full.pt")
|
| 86 |
model = load_model(ckpt)
|
| 87 |
+
prob, mask, profile = predict_file(model, "your_tile.tif") # 4-band B,G,R,NIR
|
| 88 |
```
|
| 89 |
|
| 90 |
+
`predict_file` auto-detects and converts scaled integer DN (e.g. Planet's own
|
| 91 |
+
Surface Reflectance product or Sentinel-2 L2A, both uint16 x10000) to
|
| 92 |
+
reflectance automatically. Full walkthrough, including a no-setup example and
|
| 93 |
+
an explicit normalization step:
|
| 94 |
+
[`notebook/inference_demo.ipynb`](https://github.com/Sk-2103/FloodDuo/blob/main/notebook/inference_demo.ipynb)
|
| 95 |
+
in the code repo.
|
| 96 |
|
| 97 |
## Input format
|
| 98 |
|
| 99 |
+
4-band (B, G, R, NIR) PlanetScope-style imagery, single tile, roughly
|
| 100 |
+
512-1024 px per side (the size the model was evaluated at in the paper;
|
| 101 |
+
larger scenes should be tiled by the caller). Raw DN or reflectance both
|
| 102 |
+
work — see above.
|
| 103 |
+
|
| 104 |
+
## Citation
|
| 105 |
+
|
| 106 |
+
```bibtex
|
| 107 |
+
@article{kaushik2026floodduo,
|
| 108 |
+
title = {FloodDuo: A Dual Foundation-Encoder Architecture for Generalizable High-Resolution Flood Mapping},
|
| 109 |
+
author = {Kaushik, Saurabh and Tellman, Beth and Weng, Qihao},
|
| 110 |
+
journal = {ISPRS Journal of Photogrammetry and Remote Sensing},
|
| 111 |
+
year = {2026}
|
| 112 |
+
}
|
| 113 |
+
```
|
| 114 |
|
| 115 |
## License
|
| 116 |
|
figure_01_architecture.png
ADDED
|
Git LFS Details
|