jaygala223/38-cloud-dataset
Viewer β’ Updated β’ 8.4k β’ 127 β’ 1
U-Net generator trained on the SEN1-2 dataset for translating Sentinel-1 SAR (VV) patches into Sentinel-2 EO (RGB) imagery. Part of a GalaxEye Satellite AI Research Intern assessment.
| Property | Value |
|---|---|
| Architecture | U-Net (8 encoder levels, 7 decoder + final) |
| Parameters | ~55M |
| Input | 1-channel SAR VV, 256Γ256, normalized to [-1, 1] |
| Output | 3-channel RGB, 256Γ256, Tanh activation in [-1, 1] |
| Training data | SEN1-2 (16,000 paired patches, 4 terrain classes) |
| Training duration | 200 epochs |
| Loss | L1 (Ξ»=100) + adversarial (BCE) |
import torch
from models import UNetGenerator
G = UNetGenerator(in_channels=1, out_channels=3)
state = torch.load("gen_best.pth", map_location="cuda", weights_only=True)
G.load_state_dict(state)
G.eval()
# SAR tensor: [1, 1, 256, 256] normalized to [-1, 1]
with torch.no_grad():
eo = G(sar_tensor) # [1, 3, 256, 256] in [-1, 1]
| Metric | Validation | Test |
|---|---|---|
| LPIPS β | 0.3824 | 0.3848 |
| FID β | 94.83 | 96.33 |
| SSIM β | 0.2768 | 0.2740 |
| PSNR β (dB) | 17.76 | 17.59 |
Compared against an L1-only baseline (same U-Net, no discriminator). The adversarial loss improves LPIPS by β34% and FID by β42%, at the cost of pixel-level accuracy (SSIM β35%, PSNR β13%).
gen_best.pth β Generator weights (best by validation L1, epoch 180)