iRadioDiff

July 4, 2026 ยท View on GitHub


๐Ÿ“ก Welcome to the RadioDiff Family

Radio map construction via generative diffusion models โ€” UNIC Lab, Xidian University


๐Ÿ”ท Base Backbone

RadioDiff โ€” The 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

iRadioDiff โ€” Indoor radio map construction with physical information integration. ย ย ๐Ÿ“„ Paper ย |ย  ๐Ÿ’ป Code ย |ย  IEEE ICC ย Best Paper


โšก Efficiency & Dynamics

RadioDiff-Turbo โ€” Efficiency-enhanced RadioDiff for accelerated inference. ย ย ๐Ÿ“„ Paper ย |ย  INFOCOM Workshop

RadioDiff-Flux โ€” Adaptive reconstruction under dynamic environments and base station location changes. ย ย ๐Ÿ“„ Paper ย |ย  IEEE TCCN


๐ŸŒ Extended Scenarios

RadioDiff-3D โ€” 3D radio map construction with the UrbanRadio3D dataset. ย ย ๐Ÿ“„ Paper ย |ย  ๐Ÿ’ป Code ย |ย  IEEE TNSE

RadioDiff-FS โ€” Few-shot learning for radio map construction with limited measurements. ย ย ๐Ÿ“„ Paper ย |ย  ๐Ÿ’ป Code ย |ย  IEEE IoTJ


๐Ÿ“ถ Sparse Measurement & Localization

RadioDiff-Inverse โ€” Sparse measurement-based radio map recovery for ISAC applications. ย ย ๐Ÿ“„ Paper ย |ย  ๐Ÿ’ป Code ย |ย  IEEE TWC

RadioDiff-Loc โ€” Sparse 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.

:sunny: 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.

:sparkler: 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
|	...

:tada: 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.