Radio map construction via generative diffusion models β UNIC Lab, Xidian University
RadioDiff β The foundational diffusion model for radio map construction.
Β Β π Paper Β |Β π» Code Β |Β
RadioDiff-kΒ² β PINN-enhanced diffusion guided by the Helmholtz equation.
Β Β π Paper Β |Β π» Code Β |Β
iRadioDiff β Indoor radio map construction with physical information integration.
Β Β π Paper Β |Β π» Code Β |Β Β
RadioDiff-Turbo β Efficiency-enhanced RadioDiff for accelerated inference.
Β Β π Paper Β |Β
RadioDiff-Flux β Adaptive reconstruction under dynamic environments and base station location changes.
Β Β π Paper Β |Β
RadioDiff-3D β 3D radio map construction with the UrbanRadio3D dataset.
Β Β π Paper Β |Β π» Code Β |Β
RadioDiff-FS β Few-shot learning for radio map construction with limited measurements.
Β Β π Paper Β |Β π» Code Β |Β
RadioDiff-Inverse β Sparse measurement-based radio map recovery for ISAC applications.
Β Β π Paper Β |Β π» Code Β |Β
RadioDiff-Loc β Sparse measurement-based NLoS localization using diffusion models.
Β Β π Paper Β |Β
π For a comprehensive categorized overview of radio map research, visit Awesome-Radio-Map-Categorized.
Diffusion posterior sampling for radio-map style inpainting / inverse problems.
This repository applies the FPS-SMC diffusion posterior sampling pipeline to radio map reconstruction tasks, using building masks as conditioning signals and the RadioMapSeer dataset.
conda create -n radiodiff python=3.8 -y
conda activate radiodiff
pip install -r requirements.txtA CUDA-compatible PyTorch build is strongly recommended. The code was tested with PyTorch 2.0.0+cu118.
This project uses the RadioMapSeer dataset for radio map reconstruction experiments.
- Homepage: https://radiomapseer.github.io/
- Download: Follow the instructions on the dataset homepage to obtain the data.
After downloading, organize the data under data/ as follows:
data/
βββ samples/ # radio map images (used as ground truth)
βββ buildings_complete/# building footprint masks
βββ antennas/ # antenna position maps
βββ val_images/ # validation split images
See data/README.md for more details.
Download the pretrained score estimation models and place them in models/.
| File | Dataset | Source |
|---|---|---|
ffhq_10m.pt |
FFHQ | Google Drive (from DPS2022) |
imagenet256.pt |
ImageNet | Google Drive (from DPS2022) |
256x256_diffusion_uncond.pt |
ImageNet (alt.) | OpenAI |
models/
βββ ffhq_10m.pt
βββ imagenet256.pt # or 256x256_diffusion_uncond.pt
See models/README.md for details.
All scripts default to repository-relative output paths under results/. You can override the output directory by passing it as the first argument.
./run_random_cond.sh
# or specify output directory:
./run_random_cond.sh results/my_run./run_random_uncond.sh./run_sensor_cond.sh./run_sensor_uncond.shpython3 sample_condition.py \
--task_config configs/inpainting_config_random_cond.yaml \
--save_dir results/my_run \
--gpu 0 \
--num_images 10 \
--mask_ratios 0.9 \
--noise_levels 0.05python3 sample_interpolation.py \
--task_config configs/inpainting_config_random_cond.yaml \
--save_dir results/interp \
--gpu 0Evaluate all experiments under results/:
python3 advanced_metric_calculator.py --base_dir results --gpu 0Evaluate a single experiment directory:
python3 advanced_metric_calculator.py --exp_dir results/random_cond --gpu 0Outputs per experiment: metrics.json, per_sample_metrics.json
Summary outputs: all_result.json, summary_metrics_vMMDD_HHMM.json
.
βββ sample_condition.py # main conditional pipeline
βββ sample_condition_uncond.py # main unconditional pipeline
βββ sample_interpolation.py # interpolation baselines (RBF, Linear, etc.)
βββ advanced_metric_calculator.py
βββ configs/ # task / model / diffusion YAML configs
βββ data/ # datasets (git-ignored except README)
βββ models/ # checkpoints (git-ignored except README)
βββ results/ # experiment outputs (git-ignored except README)
βββ guided_diffusion/ # diffusion model and sampler internals
βββ util/ # metrics, image utilities, logging
βββ ImageNet/ # ImageNet-specific entry scripts
βββ scripts/ # utility scripts
βββ run_random_cond.sh
βββ run_random_uncond.sh
βββ run_sensor_cond.sh
βββ run_sensor_uncond.sh
The road-conditioned path is kept for reference but is not part of the default reproducible pipeline:
run_cond_road.shis intentionally disabledsample_road.pyrequires additional dataset wiring before use
This codebase builds on the diffusion posterior sampling / FPS-SMC framework. Pretrained checkpoints are from DPS2022. Radio map data is from the RadioMapSeer dataset.