Sk-21 commited on
Commit
d33bf6e
·
verified ·
1 Parent(s): 9d76c6b

GitHub-style model card: architecture figure + results table

Browse files
Files changed (3) hide show
  1. .gitattributes +1 -0
  2. README.md +80 -28
  3. 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 foundation-encoder (DINOv3-L + Clay v1.5) binary water segmentation for
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
- ## Files
 
21
 
22
- - `floodduo_full.pt` — self-contained checkpoint (model config + full state
23
- dict, frozen backbones included), 1.36 GB. Load with
24
- [`src/inference.py`](https://github.com/Sk-2103/FloodDuo/blob/main/src/inference.py)
25
- from the GitHub repo, or see the inference notebook there for a complete
26
- walkthrough.
27
- - `examples/sample_tile.tif`, `examples/sample_mask.tif` — one held-out test
28
- tile (FloodPlanet, Oklahoma) for a no-setup demo. From the public
29
- [FloodPlanet benchmark](https://zenodo.org/records/19698577).
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
 
31
- ## This checkpoint vs. the paper's reported numbers
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 **not** the same
36
- number as the paper's headline result. The paper's 0.728 / 0.819 region-mean
37
- IoU figures come from leave-one-region-out cross-validation, a much stricter
38
- protocol specifically designed to measure generalization to unseen regions —
39
- see the paper and `results.md` in the GitHub repo. This release checkpoint is
40
- the practical model to run on your own data, not the benchmark artifact.
 
 
 
 
 
 
 
 
 
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 reflectance
51
  ```
52
 
53
- Full walkthrough, including a no-setup example: `notebook/inference_demo.ipynb`
54
- in the [GitHub repo](https://github.com/Sk-2103/FloodDuo).
 
 
 
 
55
 
56
  ## Input format
57
 
58
- 4-band (B, G, R, NIR) surface reflectance GeoTIFF, float32, values roughly in
59
- [0, 0.5+] (PlanetScope-style). No manual normalization needed — the model
60
- normalizes internally. Evaluated at 512-1024 px tiles; larger scenes should
61
- be tiled by the caller.
 
 
 
 
 
 
 
 
 
 
 
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
+ ![FloodDuo architecture](figure_01_architecture.png)
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

  • SHA256: 1b82464e6248f1c193371948680f336c22cb1876eb07ad3ea877a20dd66e7d19
  • Pointer size: 131 Bytes
  • Size of remote file: 359 kB