| # 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 |
| |