Skip to content

Latest commit

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

RadioDiff-Inverse

📡 Welcome to the RadioDiff Family

Radio map construction via generative diffusion models — UNIC Lab, Xidian University


🔷 Base Backbone

RadioDiffThe foundational diffusion model for radio map construction. 📄 Paper | 💻 Code | IEEE TCCN


🔬 Physics-Informed Extensions

RadioDiff-k²PINN-enhanced diffusion guided by the Helmholtz equation. 📄 Paper | 💻 Code | IEEE JSAC

iRadioDiffIndoor radio map construction with physical information integration. 📄 Paper | 💻 Code | IEEE ICCBest Paper


⚡ Efficiency & Dynamics

RadioDiff-TurboEfficiency-enhanced RadioDiff for accelerated inference. 📄 Paper | INFOCOM Workshop

RadioDiff-FluxAdaptive reconstruction under dynamic environments and base station location changes. 📄 Paper | IEEE TCCN


🌐 Extended Scenarios

RadioDiff-3D3D radio map construction with the UrbanRadio3D dataset. 📄 Paper | 💻 Code | IEEE TNSE

RadioDiff-FSFew-shot learning for radio map construction with limited measurements. 📄 Paper | 💻 Code | IEEE IoTJ


📶 Sparse Measurement & Localization

RadioDiff-InverseSparse measurement-based radio map recovery for ISAC applications. 📄 Paper | 💻 Code | IEEE TWC

RadioDiff-LocSparse measurement-based NLoS localization using diffusion models. 📄 Paper | arXiv


📚 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.


1. Environment

conda create -n radiodiff python=3.8 -y
conda activate radiodiff
pip install -r requirements.txt

A CUDA-compatible PyTorch build is strongly recommended. The code was tested with PyTorch 2.0.0+cu118.


2. Dataset: RadioMapSeer

This project uses the RadioMapSeer dataset for radio map reconstruction experiments.

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.


3. Pretrained Checkpoints

Download the pretrained score estimation models and place them in models/.

FileDatasetSource
ffhq_10m.ptFFHQGoogle Drive (from DPS2022)
imagenet256.ptImageNetGoogle Drive (from DPS2022)
256x256_diffusion_uncond.ptImageNet (alt.)OpenAI
models/
├── ffhq_10m.pt
└── imagenet256.pt # or 256x256_diffusion_uncond.pt

See models/README.md for details.


4. Run Experiments

All scripts default to repository-relative output paths under results/. You can override the output directory by passing it as the first argument.

Random mask — with building-mask conditioning

./run_random_cond.sh
# or specify output directory:
./run_random_cond.sh results/my_run

Random mask — unconditional

./run_random_uncond.sh

Sensor-rectangle mask — with building-mask conditioning

./run_sensor_cond.sh

Sensor-rectangle mask — unconditional

./run_sensor_uncond.sh

Run directly with Python

python3 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.05

Interpolation baselines (no diffusion)

python3 sample_interpolation.py \
--task_config configs/inpainting_config_random_cond.yaml \
--save_dir results/interp \
--gpu 0

5. Compute Metrics

Evaluate all experiments under results/:

python3 advanced_metric_calculator.py --base_dir results --gpu 0

Evaluate a single experiment directory:

python3 advanced_metric_calculator.py --exp_dir results/random_cond --gpu 0

Outputs per experiment: metrics.json, per_sample_metrics.json Summary outputs: all_result.json, summary_metrics_vMMDD_HHMM.json


6. Project Structure

.
├── 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

7. Experimental Components

The road-conditioned path is kept for reference but is not part of the default reproducible pipeline:

  • run_cond_road.sh is intentionally disabled
  • sample_road.py requires additional dataset wiring before use

Acknowledgements

This codebase builds on the diffusion posterior sampling / FPS-SMC framework. Pretrained checkpoints are from DPS2022. Radio map data is from the RadioMapSeer dataset.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages