learning framework for perceptual dehazing of high-resolution remote sensing images: Phase 1 (Global Attention Stage): Uses a UFormer-based encoderโdecoder with grid patching to capture global atmospheric and ecological context. Phase 2 (Laplacian-Guided GAN Stage): Refines outputs via a dual-branch GAN that operates in both RGB and Laplacian domains, enhancing edges, textures, and perceptual realism. GLADE-Net achieves state-of-the-art PSNR and LPIPS on SateHaze1k and RICE datasets, balancing structural fidelity and visual quality for environmental and ecological monitoring applications.
This stage focuses on coarse haze removal and global feature restoration using a UFormer-based encoderโdecoder optimized for remote sensing imagery.
Key Features:
- ๐ Global Attention EncoderโDecoder (UFormer): Captures large-scale atmospheric and ecological dependencies.
- โก PyTorch Lightning Framework: Streamlined training loop with mixed-precision (FP16) support.
- ๐งฉ Grid-Based Dataset Loader: Performs on-the-fly tiling, augmentation, and efficient handling of high-resolution inputs.
- ๐ Gradual Frequency Loss: Charbonnier-based loss with PSNR/SSIM evaluation metrics for stable optimization.
- ๐ฐ๏ธ Inference Tools: Enable large-scale aerial image restoration through automated grid merging and tiling scripts.
This stage enhances visual quality and perceptual realism of the dehazed outputs generated by Phase 1.
It integrates adversarial learning and frequency-domain guidance for fine detail enhancement.
Key Features:
- ๐จ Dual-Branch GAN: Operates jointly in RGB and Laplacian domains to restore both structural and textural details.
- ๐ Laplacian Pyramid Guidance: Multi-scale refinement of edges and textures using Laplacian-based supervision.
- ๐๏ธ Perceptual and Adversarial Losses: Improve realism and visual fidelity while maintaining quantitative accuracy.
- ๐ฌ High-Resolution Enhancement: Designed for ecological monitoring and environmental analysis applications.
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtTested with Python 3.8+ and PyTorch โฅ 2.0.
Example folder structure:
/path/to/RICE_DATASET/ โโโ train/ โ โโโ cloud/ # hazy or cloudy input images โ โโโ label/ # clean ground-truth targets โโโ test/ โโโ cloud/ โโโ label/
| No. | Dataset | Year | Pub. | Number | Image Size | Type | Download |
|---|---|---|---|---|---|---|---|
| 01 | SateHaze1k | 2017 | WACV | 400ร3 | 512ร512 | Synthetic | ๐ Download |
| 02 | RICE (RICE1 & RICE2) | 2019 | arXiv | 950 | 512ร512 | Synthetic | ๐ Download |
Notes:
- SateHaze1k is divided into Thin, Moderate, and Thick subsets simulating different haze densities.
- RICE1 and RICE2 include paired cloudy and clear-sky remote sensing images for evaluating dehazing and cloud removal performance.
To generate 128ร128 tiles for training and validation:
python GLADE-Net/tools/grid_crop_pairs.py \
--root dataset \ #path to your dataset train[cloud, label], test[cloud, label]
--out_root dataset_grid \
--tile_w 128 --tile_h 128 --overlap 0
Output tiles will be created under: dataset_grid/train/ dataset_grid/test/
Run training from the project root:
cd GLADE-Net
python -m src.train \
--train_dir dataset_grid/train \
--val_dir dataset_grid/test \
--img_size 128 --batch_size 1 --epochs 2500 --devices 1 \
--precision 16 --accumulate 2 --lr 2e-4 \
--save_ckpt Phase_1.ckptYou can resume training with:
python -m src.train --train_dir ... --val_dir ... --resume /path/to/checkpoint.ckpt
Run inference on cloudy test images using the trained checkpoint:
python GLADE-Net/tools/inference_grid.py \
--weights Phase_1.ckpt \
--input dataset/test/cloud \
--output dataset/test/output_phase_1 \
--tile 512
The script will:
- Load each image, pad to a multiple of the tile size.
- Partition into non-overlapping grids.
- Apply the UFormer model patch-by-patch.
- Reconstruct and crop back to the original size.
- Save restored outputs under output_phase_1/.
Example output folders: dataset/test/cloud/ # input hazy images dataset/test/label/ # ground truth dataset/test/output_phase_1/ # Phase 1 restored results
The next phase will use the output from Phase 1 (restored dehazed images) paired with their ground-truth targets to train a perceptual enhancement GAN.
This stage focuses on:
- Fine texture recovery and color correction.
- Multi-domain learning (RGB + Laplacian).
- Perceptual and adversarial loss integration.
python GLADE-Net/Phase_2/code/train.py\
-opt GLADE-Net/Phase_2/code/options/train/train_second_phase.jsonRun inference on cloudy test images using the trained weight:
python GLADE-Net/Phase_2/code/test.py\
-opt GLADE-Net/Phase_2/code/options/test/test_second_phase.json If you want to quickly test GLADE-Net (Phase 1 + Phase 2) without setting up the entire training pipeline, we provide an interactive demo notebook.
You can open and run it directly on GitHub or in Google Colab.
๐ This notebook demonstrates:
- Loading pretrained Phase 1 and Phase 2 models
- Running inference on sample remote-sensing images
- Visualizing haze removal and perceptual enhancement results
Pretrained model weights for GLADE-Net are available for both phases and all datasets.
You can download them from the shared Google Drive folder below.
๐ GLADE-Net Weights (Google Drive)
| Phase | Folder | Dataset | File Name | Description |
|---|---|---|---|---|
| 1 | pahse_1 |
SateHaze1k | SateHaze1k.ckpt |
Global attention model trained on synthetic haze data. |
| RICE-1 | RICE_1.ckpt |
Phase 1 model trained on RICE1 dataset. | ||
| RICE-2 | RICE_2.ckpt |
Phase 1 model trained on RICE2 dataset. | ||
| 2 | phase_2 |
SateHaze1k | SateHaze1k.pth |
Laplacian-Guided GAN model for perceptual refinement. |
| RICE-1 | Rice_1.pth |
Phase 2 refinement model trained on RICE1 dataset. | ||
| RICE-2 | Rice_2.pth |
Phase 2 refinement model trained on RICE2 dataset. |
Notes:
- Each
.ckptfile corresponds to the Phase 1 (UFormer) stage for global dehazing. - Each
.pthfile corresponds to the Phase 2 (GAN Refinement) stage for perceptual enhancement. - Models can be directly loaded using the provided demo notebook or inference scripts.
The final qualitative and quantitative results of GLADE-Net are available for each dataset and test condition.
You can browse and download them from the shared Google Drive folder below.
๐ GLADE-Net Results (Google Drive)
| Folder | Description |
|---|---|
| Grid_SPSR_test_thin | Results on SateHaze1kโThin (light haze conditions). |
| Grid_SPSR_test_Moderate | Results on SateHaze1kโModerate (medium haze). |
| Grid_SPSR_test_thick | Results on SateHaze1kโThick (dense haze). |
| RICE_results | Dehazing results on RICE1 and RICE2 datasets. |
| test real images hazing | Visual qualitative results on real-world hazy aerial images. |
๐งฉ Each subfolder contains restored RGB images from the Phase 1 (Global Attention) and Phase 2 (Laplacian-Guided GAN) pipelines, organized according to haze intensity and dataset type.
If you use this repository, please cite the paper: Common soon