# Radiomap Compare Baselines This directory stores external comparison baselines for the `radiomapvggt` project. Paths: - code root: `/data/jing_code/wl/radiomap_compare` - env root: `/data/conda_envs` - dataset roots used for adaptation: - `/data/jing_dataset/processed/wireless/scannetpp` - `/data/jing_dataset/processed/3D/scannetpp` ## Paper fixed compare protocol A fixed paper-facing comparison slice now lives under: - [paper_fixed5_compare](/data/jing_code/wl/radiomap_compare/paper_fixed5_compare) It defines: - fixed `5` scenes - fixed centered train/test `TX` - fixed centered `z` order - reusable scripts for: - `A06` fixed-case evaluation - cross-method metric tables ## Current status ### 1. NeRF2 - repo: [NeRF2](/data/jing_code/wl/radiomap_compare/NeRF2) - upstream: `https://github.com/XPengZhao/NeRF2.git` - local env: `/data/conda_envs/nerf2_compare` - env status: - created - imports verified: `torch`, `yaml`, `imageio`, `pandas`, `skimage`, `einops` - local notes: - [readme_compare.md](/data/jing_code/wl/radiomap_compare/NeRF2/readme_compare.md) - current ScanNet++ adaptation status: - one real scene export validated: - `e0d1ed2159` - exported BLE-format dataset path: - `/data/jing_code/wl/radiomap_compare/NeRF2/data/scannetpp_ble/e0d1ed2159` - dataset load verified through upstream `BLE_dataset` - compare scripts/configs added under: - `/data/jing_code/wl/radiomap_compare/NeRF2/configs` - `/data/jing_code/wl/radiomap_compare/NeRF2/scripts` - current no-Slurm compare setup also supports: - `3` aligned scenes on `GPU 5-7` - automatic train/test postprocess plots ### 2. Second external baseline repo ### 2. RF-3DGS - repo: [RF-3DGS](/data/jing_code/wl/radiomap_compare/RF-3DGS) - upstream: `https://github.com/SunLab-UGA/RF-3DGS.git` - local env: `/data/conda_envs/rf3dgs_compare` - env status: - created as a dedicated clone of our known-good `gaussian_splatting` env - verified: - `torch` - `torchvision` - `diff_gaussian_rasterization` - repo entry `train.py -h` - local notes: - [readme_compare.md](/data/jing_code/wl/radiomap_compare/RF-3DGS/readme_compare.md) - current ScanNet++ adaptation status: - direct wireless-grid supervision is **not** plug-and-play - repo expects: - `images/` - `sparse/0/cameras.txt` - `sparse/0/images.txt` - `sparse/0/points3D.ply` - `train_index.txt` - `test_index.txt` - local exporters now cover both: - visual RGB path: - `/data/jing_code/wl/radiomap_compare/RF-3DGS/dataset_tools/export_scannetpp_visual_to_rf3dgs.py` - radiomap pseudo-image path: - `/data/jing_code/wl/radiomap_compare/RF-3DGS/dataset_tools/export_scannetpp_radiomap_to_rf3dgs.py` - current RF compare now has two modes: - visual-only scene fitting - radiomap pseudo-image fitting - current no-Slurm compare setup also supports a fixed aligned `5`-scene run on `GPU 0-4`, with automatic train/test rendering and overview plotting - training-length policy has been updated to match original 3DGS visual training: - default `iterations = 30000` ## Comparison strategy These external baselines are not scene-generalization models like `radiomapvggt`. They should be used as **single-scene fitting baselines**. Recommended protocol: - choose one scene from the canonical `small100 + val10` split - train one baseline only on that scene - use the same canonical wireless subset: - `27` TX from the centered `3x3x3` subset - `3` centered RX z-planes: `[4, 5, 6]` - use the remaining scene-local unused data as held-out evaluation when the baseline structure allows it - compare against `radiomapvggt` on the same scene ## Canonical split reference Scene split and subset protocol are recorded at the dataset roots: - [wireless README](/data/jing_dataset/processed/wireless/scannetpp/README.md) - [3D README](/data/jing_dataset/processed/3D/scannetpp/README.md) ## Notes - `NeRF2` already includes an internal non-neural baseline: - [mri.py](/data/jing_code/wl/radiomap_compare/NeRF2/baseline/mri.py) - [baseline readme_compare.md](/data/jing_code/wl/radiomap_compare/NeRF2/baseline/readme_compare.md) - so even before a second external repo is added, we already have: - one neural baseline: `NeRF2` - one simple analytic baseline: `MRI` - `RF-3DGS` is structurally different from both of the above: - stage 1 is standard 3DGS visual reconstruction from camera images - stage 2 expects RF supervision in an **image-like / spectrum-like** camera frame - our current processed wireless dataset is a TX/RX scalar-grid dataset, so RF-3DGS needs an explicit modality conversion layer instead of a direct loader swap - the new local radiomap path is exactly that bridge: - it exports radiomap slices as pseudo-images - it keeps the original 3DGS trainer unchanged - it should be interpreted as a forced single-scene fitting baseline