All methods, same scenes
Retrained baselines and both GeoCR variants on the same cloudy input, 12 scenes per setting. Select a tile to compare it with the ground truth.
Use the arrows or the ← → keys to change scene · click a tile to open the comparison sliderSwipe or use the arrows to change scene · tap a tile to open the comparison slider
Paper figures
Quantitative results
GeoCR achieves the best FID and DISTS on full-band Sen2_MTC_New and SEN12MS-CR and RGB-only CUHK-CR2.
Main comparison tables
| Method | Venue | FID↓ | DISTS↓ | KID↓ | DINO↑ | LPIPS↓ | SSIM↑ | PSNR↑ |
|---|---|---|---|---|---|---|---|---|
| General image translation/restoration methods | ||||||||
| pix2pix | CVPR’17 | 194.8 | 0.241 | 0.1201 | 0.538 | 0.319 | 0.452 | 19.46 |
| pix2pixHD | CVPR’18 | 257.1 | 0.262 | 0.2130 | 0.379 | 0.304 | 0.401 | 19.34 |
| BBDM | CVPR’23 | 514.6 | 0.542 | 0.5827 | 0.131 | 0.737 | 0.326 | 17.68 |
| HI-Diff | NeurIPS’23 | 165.7 | 0.192 | 0.0769 | 0.664 | 0.253 | 0.638 | 23.54 |
| Cloud removal methods | ||||||||
| UnCRtainTS | CVPRW’23 | 165.6 | 0.265 | 0.0761 | 0.529 | 0.345 | 0.586 | 22.12 |
| DiffCR | TGRS’24 | 245.2 | 0.285 | 0.1874 | 0.615 | 0.353 | 0.582 | 22.85 |
| IDF-CR | TGRS’24 | 167.0 | 0.214 | 0.0873 | 0.645 | 0.270 | 0.641 | 23.18 |
| ThiefCloud | TCSVT’25 | 136.3 | 0.226 | 0.0593 | 0.668 | 0.232 | 0.638 | 23.88 |
| EMRDM | CVPR’25 | 104.4 | 0.167 | 0.0259 | 0.727 | 0.208 | 0.654 | 23.61 |
| GACR | ECCV’26 | 125.0 | 0.178 | 0.0496 | 0.739 | 0.217 | 0.620 | 23.45 |
| Ours | ||||||||
| GeoCR (w/o FT) | – | 93.6 | 0.153 | 0.0200 | 0.784 | 0.194 | 0.607 | 23.21 |
| GeoCR (LoRA) | – | 94.7 | 0.152 | 0.0194 | 0.779 | 0.196 | 0.601 | 23.11 |
| Method | FID↓ | DISTS↓ | KID↓ | DINO↑ | LPIPS↓ | SSIM↑ | PSNR↑ |
|---|---|---|---|---|---|---|---|
| UnCRtainTS | 113.4 | 0.258 | 0.0597 | 0.471 | 0.428 | 0.588 | 17.15 |
| DiffCR | 95.9 | 0.297 | 0.0388 | 0.499 | 0.312 | 0.599 | 19.26 |
| ThiefCloud | 143.6 | 0.333 | 0.0767 | 0.310 | 0.508 | 0.481 | 14.92 |
| EMRDM | 96.6 | 0.218 | 0.0459 | 0.533 | 0.314 | 0.640 | 18.20 |
| GACR | 87.4 | 0.223 | 0.0358 | 0.535 | 0.320 | 0.626 | 18.90 |
| GeoCR (w/o FT) | 52.9 | 0.182 | 0.0032 | 0.642 | 0.221 | 0.661 | 20.77 |
| GeoCR (LoRA) | 52.7 | 0.181 | 0.0031 | 0.643 | 0.220 | 0.660 | 20.76 |
| Method | FID↓ | DISTS↓ | KID↓ | DINO↑ | LPIPS↓ | SSIM↑ | PSNR↑ |
|---|---|---|---|---|---|---|---|
| pix2pix | 161.6 | 0.305 | 0.1188 | 0.224 | 0.480 | 0.541 | 20.16 |
| pix2pixHD | 153.9 | 0.292 | 0.1121 | 0.274 | 0.365 | 0.646 | 24.00 |
| BBDM | 179.4 | 0.392 | 0.1243 | 0.243 | 0.504 | 0.652 | 24.48 |
| HI-Diff | 125.8 | 0.302 | 0.0695 | 0.390 | 0.398 | 0.742 | 25.66 |
| GeoCR (w/o FT) | 79.1 | 0.252 | 0.0223 | 0.489 | 0.313 | 0.706 | 25.41 |
| GeoCR (LoRA) | 78.4 | 0.265 | 0.0313 | 0.520 | 0.333 | 0.712 | 25.07 |
| Method | FID↓ | DISTS↓ | KID↓ | DINO↑ | LPIPS↓ | SSIM↑ | PSNR↑ |
|---|---|---|---|---|---|---|---|
| UnCRtainTS | 80.5 | 0.276 | 0.0497 | 0.440 | 0.313 | 0.884 | 28.77 |
| EMRDM | 75.7 | 0.274 | 0.0475 | 0.467 | 0.304 | 0.873 | 28.70 |
| GACR | 96.9 | 0.331 | 0.0679 | 0.358 | 0.333 | 0.828 | 27.76 |
| GeoCR (w/o FT) | 28.4 | 0.202 | 0.0091 | 0.571 | 0.215 | 0.866 | 29.29 |
| GeoCR (LoRA) | 29.5 | 0.205 | 0.0098 | 0.569 | 0.216 | 0.866 | 29.19 |
| Method | FID↓ | DISTS↓ | KID↓ | DINO↑ | LPIPS↓ | SSIM↑ | PSNR↑ |
|---|---|---|---|---|---|---|---|
| pix2pix | 145.9 | 0.317 | 0.1000 | 0.281 | 0.465 | 0.632 | 21.64 |
| pix2pixHD | 70.8 | 0.239 | 0.0443 | 0.420 | 0.277 | 0.772 | 27.23 |
| BBDM | 96.1 | 0.284 | 0.0536 | 0.331 | 0.367 | 0.710 | 25.44 |
| HI-Diff | 62.7 | 0.284 | 0.0342 | 0.438 | 0.320 | 0.837 | 28.28 |
| GeoCR (w/o FT) | 43.9 | 0.244 | 0.0246 | 0.532 | 0.326 | 0.712 | 22.15 |
| GeoCR (LoRA) | 52.1 | 0.263 | 0.0375 | 0.529 | 0.308 | 0.781 | 24.59 |
FID and DISTS are the primary metrics. T-CLOUD, CUHK-CR1 and WHUS2-CRv: Table 10.
Pretraining corpus Table 1 · ten datasets
| Source | Imagery source | Spectral bands | Delivered tile |
GSD (m) |
Cloudy cond. |
SAR cond. |
Clean targets |
|---|---|---|---|---|---|---|---|
| AllClear | Sentinel-2 + Sentinel-1 | 13 (L1C, TOA) | 2562 | 10 | 1–3 | ✓ | 662,022 |
| SEN12MS-CR | Sentinel-2 + Sentinel-1 | 13 (L1C, TOA) | 2562 | 10 | 1 | ✓ | 107,143 |
| WHUS2-CRv | Sentinel-2 | 13 (BOA; B10: L1C, TOA) | 3842/1922/642 | 10 | 1 | ✗ | 18,816 |
| Sen2_MTC_Old | Sentinel-2 | 3 (RGB; +NIR for cloudy inputs) | 2562 | 10 | 3 | ✗ | 88,874 |
| Sen2_MTC_New | Sentinel-2 | 4 (RGB+B8, BOA) | 2562 | 10 | 3 | ✗ | 2,380 |
| T-CLOUD | Landsat-8 | 3 (RGB, 8-bit) | 2562 | 30 | 1 | ✗ | 2,234 |
| RICE2 | Landsat-8 | 3 (RGB, 8-bit) | 5122 | 30 | 1 | ✗ | 553 |
| CUHK-CR1 | Jilin-1 KF01B | 4 (RGB+NIR, 8-bit) | 5122 | 0.5 | 1 | ✗ | 508 |
| CUHK-CR2 | Jilin-1 KF01B | 4 (RGB+NIR, 8-bit) | 5122 | 0.5 | 1 | ✗ | 426 |
| RICE1 | Google Earth | 3 (RGB, 8-bit) | 5122 | – | 1 | ✗ | 375 |
Ablations Tables 5–7 · stems, temporal and SAR conditioning
| Recon. PSNR |
RGB (w/o training) | Non-RGB (stem training) | SAR (stem training) | ||||||
|---|---|---|---|---|---|---|---|---|---|
| All | Clear | Cloudy | All | Clear | Cloudy | All | VV | VH | |
| Before | 45.78 | 46.77 | 45.11 | 18.84 | 20.60 | 18.20 | 18.40 | 18.57 | 18.24 |
| After | 45.78 | 46.77 | 45.11 | 40.08 | 41.41 | 38.34 | 29.14 | 28.54 | 30.21 |
| Gain | +0.00 | +0.00 | +0.00 | +21.24 | +20.81 | +20.14 | +10.74 | +9.97 | +11.98 |
| Method | Cloudy | PSNR↑ | SSIM↑ |
|---|---|---|---|
| GeoCR | 1 | 16.390 | 0.4595 |
| GeoCR | 2 | 19.319 | 0.5963 |
| GeoCR | 3 | 20.522 | 0.6568 |
Fixed test subset of Sen2_MTC_New; GeoCR (w/o FT).
| Method | SAR | PSNR↑ | SSIM↑ |
|---|---|---|---|
| GeoCR | ✗ | 28.596 | 0.8572 |
| GeoCR | ✓ | 29.442 | 0.8703 |
Fixed test subset of SEN12MS-CR; GeoCR (w/o FT).
Appendix tables Tables 9–12 · more benchmarks and settings
| Route | Stem parameters | Trained | Reconstruction PSNR |
|---|---|---|---|
| 10-band TOA | 23,178 | Yes | AllClear 38.23; SEN12MS-CR 37.69 |
| 10-band BOA | 23,178 | Yes | WHUS2-CRv 37.89 |
| Single-band NIR | 2,433 | No | Sen2_MTC_New 42.06; CUHK-CR 40.41; Sen2_MTC_Old 49.51 |
| SAR VV/VH | 4,738 | Yes | AllClear 28.51; SEN12MS-CR 31.19 |
| Method | FID↓ | DISTS↓ | KID↓ | DINO↑ | LPIPS↓ | SSIM↑ | PSNR↑ |
|---|---|---|---|---|---|---|---|
| (a) T-CLOUD: RGB display imagery | |||||||
| pix2pix | 107.6 | 0.254 | 0.0509 | 0.450 | 0.330 | 0.635 | 20.13 |
| pix2pixHD | 60.8 | 0.169 | 0.0173 | 0.616 | 0.177 | 0.741 | 24.75 |
| BBDM | 186.6 | 0.422 | 0.1179 | 0.259 | 0.546 | 0.541 | 22.69 |
| HI-Diff | 40.2 | 0.124 | 0.0070 | 0.726 | 0.114 | 0.874 | 30.54 |
| UnCRtainTS | 63.3 | 0.180 | 0.0188 | 0.640 | 0.178 | 0.809 | 26.28 |
| DiffCR | 139.6 | 0.358 | 0.0732 | 0.376 | 0.482 | 0.402 | 20.67 |
| IDF-CR | 84.4 | 0.220 | 0.0304 | 0.467 | 0.236 | 0.787 | 25.99 |
| ThiefCloud | 40.4 | 0.123 | 0.0058 | 0.726 | 0.109 | 0.861 | 29.36 |
| EMRDM | 36.5 | 0.121 | 0.0045 | 0.759 | 0.110 | 0.867 | 28.25 |
| GACR | 39.2 | 0.120 | 0.0058 | 0.747 | 0.113 | 0.858 | 29.56 |
| GeoCR (w/o FT) | 36.5 | 0.126 | 0.0024 | 0.763 | 0.122 | 0.785 | 27.15 |
| GeoCR (LoRA) | 36.3 | 0.125 | 0.0022 | 0.751 | 0.122 | 0.786 | 27.23 |
| (b) CUHK-CR1: RGB+NIR setting | |||||||
| UnCRtainTS | 134.8 | 0.204 | 0.0283 | 0.712 | 0.311 | 0.679 | 23.82 |
| DiffCR | 237.6 | 0.291 | 0.1360 | 0.649 | 0.318 | 0.573 | 22.75 |
| EMRDM | 77.8 | 0.115 | -0.0006 | 0.845 | 0.146 | 0.760 | 25.64 |
| GACR | 97.1 | 0.133 | 0.0099 | 0.825 | 0.160 | 0.726 | 25.02 |
| GeoCR (w/o FT) | 80.4 | 0.125 | -0.0025 | 0.825 | 0.165 | 0.680 | 23.88 |
| GeoCR (LoRA) | 81.5 | 0.125 | -0.0027 | 0.821 | 0.167 | 0.677 | 23.83 |
| (c) WHUS2-CRv: native multispectral setting | |||||||
| UnCRtainTS | 26.9 | 0.142 | 0.0062 | 0.808 | 0.139 | 0.926 | 31.14 |
| IDF-CR | 40.0 | 0.179 | 0.0115 | 0.691 | 0.188 | 0.858 | 29.00 |
| EMRDM | 16.9 | 0.101 | 0.0009 | 0.875 | 0.097 | 0.937 | 32.55 |
| GACR | 22.6 | 0.230 | 0.0033 | 0.789 | 0.138 | 0.882 | 31.09 |
| GeoCR (w/o FT) | 18.9 | 0.111 | 0.0027 | 0.850 | 0.106 | 0.905 | 32.29 |
| GeoCR (LoRA) | 18.5 | 0.107 | 0.0025 | 0.858 | 0.103 | 0.903 | 32.15 |
| (d) WHUS2-CRv: RGB-only setting | |||||||
| pix2pix | 95.1 | 0.238 | 0.0523 | 0.432 | 0.274 | 0.746 | 23.75 |
| pix2pixHD | 27.9 | 0.148 | 0.0057 | 0.751 | 0.145 | 0.828 | 26.77 |
| BBDM | 50.4 | 0.213 | 0.0171 | 0.413 | 0.291 | 0.639 | 25.19 |
| HI-Diff | 17.8 | 0.107 | 0.0018 | 0.853 | 0.096 | 0.894 | 29.91 |
| GeoCR (w/o FT) | 21.6 | 0.137 | 0.0032 | 0.786 | 0.133 | 0.833 | 27.16 |
| GeoCR (LoRA) | 20.7 | 0.138 | 0.0039 | 0.811 | 0.134 | 0.804 | 25.35 |
| Source | Optical representation | SAR | K | Mix (%) | Training targets |
|---|---|---|---|---|---|
| AllClear | 13 bands, L1C TOA | VV/VH | 1–3 | 53.14 | 662,022 |
| SEN12MS-CR | 13 bands, L1C TOA | VV/VH | 1 | 32.93 | 107,143 |
| WHUS2-CRv | 13 bands, BOA; B10 TOA | – | 1 | 8.81 | 18,816 |
| Sen2_MTC_Old | RGB; NIR in cloudy inputs only | – | 3 | 2.00 | 88,874 |
| Sen2_MTC_New | RGB+B8, BOA | – | 3 | 1.10 | 2,380 |
| T-CLOUD | RGB, 8-bit | – | 1 | 1.10 | 2,234 |
| RICE2 | RGB, 8-bit | – | 1 | 0.27 | 553 |
| CUHK-CR1 | RGB+NIR, 8-bit | – | 1 | 0.25 | 508 |
| CUHK-CR2 | RGB+NIR, 8-bit | – | 1 | 0.21 | 426 |
| RICE1 | RGB, 8-bit | – | 1 | 0.19 | 375 |
| Total | 100.00 | 883,331 |
| Setting | PSNR/SSIM bands | Ntest |
|---|---|---|
| SEN12MS-CR | 13 bands | 7,899 |
| Sen2_MTC_New | RGB+B8 | 687 |
| WHUS2-CRv | 13 bands | 3,746 |
| T-CLOUD | RGB | 588 |
| CUHK-CR1 | RGB+NIR | 98 |
| CUHK-CR2 | RGB | 111 |
| SEN12MS-CR, RGB-only | RGB | 7,899 |
| Sen2_MTC_New, RGB-only | RGB | 687 |
| WHUS2-CRv, RGB-only | RGB | 3,746 |
One latent interface, one shared prior
- 01Shared latent interface. Compact stems map non-RGB and SAR inputs into a frozen pretrained RGB autoencoder.
- 02One generalist prior. A single flow transformer is jointly pretrained on 10 datasets (883,331 cloud-free targets).
- 03Two modes. The same checkpoint is used directly (w/o FT) or adapted with LoRA.
BibTeX
@article{do2026geocr,
title={GeoCR: Learning a Generalist Cloud Removal Prior from Heterogeneous Observations},
author={Do, Jeonghyeok and Kim, Munchurl},
journal={arXiv preprint arXiv:2609.32510},
year={2026}
}