Skip to content

UNIC-Lab/iRadioDiff

Repository files navigation

iRadioDiff


📡 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 ICC  Best 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  |  arXiv


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


This is the code of "iRadioDiff: Physics Informed Diffusion Model for Effective Indoor Radio Map Construction and Localization" accepted by the IEEE ICC 2026.

☀️ Before Starting

  1. install torch

We have verified that the project can run with Python 3.10, PyTorch 2.2.0, torchvision 0.17.0, torchaudio 2.2.0, and CUDA 12.1.

conda create -n radiodiff python=3.10
conda activate radiodiff
conda install pytorch==2.2.0 torchvision==0.17.0 torchaudio==2.2.0 pytorch-cuda=12.1 -c pytorch -c nvidia
  1. install other packages.
pip install -r requirement.txt
  1. prepare accelerate config.
accelerate config # HOW MANY GPUs YOU WANG TO USE.

🎇 Prepare Data

We used the Indoor Radio Map Dataset dataset for model training and testing.
  • Before training or inference, you should first generate the boundary maps and place them under BoundaryMaps in the dataset root directory. This step is required because the dataloader reads boundary files from $ICASSP2025_Dataset/BoundaryMaps with filenames in the format boundary_<original_input_filename>.png.

  • You can generate them with generate_boundary.py :

python generate_boundary.py --input-dir ./ICASSP2025_Dataset/Inputs/Task_1_ICASSP --positions-dir ./ICASSP2025_Dataset/Positions --output-dir ./ICASSP2025_Dataset/BoundaryMaps
  • The data structure should look like:
|-- $ICASSP2025_Dataset
|   |-- Input
|   |-- |-- Task_1_ICASSP
|   |-- |-- |-- B1_Ant1_f1_S0.PNG
|   |-- |-- |-- B1_Ant1_f1_S1.PNG
|   ...
|   |-- Positions
|   |-- |-- Positions_B1_Ant1_f1.csv
|   |-- |-- Positions_B1_Ant1_f2.csv
|   ...
|   |-- BoundaryMaps
|   |-- |-- boundary_B1_Ant1_f1_S0.png
|   |-- |-- boundary_B1_Ant1_f1_S1.png
|   ...
|   |-- Output
|   |-- |-- Task_1_ICASSP
|   |-- |-- |-- B1_Ant1_f1_S0.PNG
|   |-- |-- |-- B1_Ant1_f1_S1.PNG
|	...

🎉 Training

accelerate launch train_cond_dpm.py --cfg ./configs/ICA_dm.yaml

V. Inference.

make sure your model weight path is added in the config file ./configs/ICA_dm.yaml (line 66), and run:

python sample_cond_dpm.py --cfg ./configs/ICA_dm.yaml

Note that you can modify the sampling_timesteps (line 7) to control the inference speed.

Thanks

Thanks to the base code DDM-Public.

About

This is the code of "iRadioDiff: Physics Informed Diffusion Model for Effective Indoor Radio Map Construction and Localization" accepted by the IEEE ICC 2026.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors