# GRADE **Single-Frame Generative Radar Depth Estimation Under Visual Degradation** Bin Zhao, Patrick Chiou, Nakul Garg — Rice University ACM MobiCom 2026 · Austin, TX Dense 3D depth perception fails under smoke, fog, and darkness because optical sensors cannot penetrate airborne particulates. mmWave radar works in these conditions but its limited angular resolution gives depth that is metrically grounded yet structurally incomplete. GRADE grounds pretrained generative priors in single-frame radar geometry to recover high-fidelity metric depth — without SAR and without a reliable camera. Trained and evaluated on ~95K synchronized frames across 12 buildings with real smoke using leave-building-out splits, GRADE reaches an MAE of 0.303 m in clear conditions and 0.313 m under smoke, ahead of every baseline on all reported metrics. ## Project page Served from [`docs/`](docs/) via GitHub Pages. ## Code and artifacts The evaluation code is included directly in this repository under [`evaluation/`](evaluation/) and [`src/`](src/). It includes inference, metric computation, saved-result reproduction, and the evaluation configuration. The [complete Hugging Face model repository](https://huggingface.co/phi-lab-rice/GRADE) contains the executable code, all model checkpoints, and the complete reference results. Download it with `hf download phi-lab-rice/GRADE --local-dir grade-models` and run the commands below from `grade-models`. ### Artifact evaluation reproduction After installing `environment.txt`, the CPU-only E1 command is: ```bash python evaluation/reproduce_paper.py --mode saved ``` The GitHub checkout contains pointer files in place of some large reference `.npz` assets. If running the GitHub source, pass `--reference-root /path/to/grade-models/evaluation/reference_results` to use the downloaded model package without changing the checkout. E1 writes regenerated results under `evaluation/reproduced_results/saved/`. For E2, run inference and metrics for each required model, then reproduce from the fresh merged CSVs: ```bash python evaluation/run_inference.py --model grade --gpuid 0 python evaluation/run_metrics.py --model grade --workers 1 python evaluation/reproduce_paper.py --mode local ``` `--mode local` includes the available model rows in Tables 2–6 and skips a table or figure when none of its required inputs exist. The output lists each skip. Table 7 states its source in the generated report: if `evaluation/metric_results/sampling_step/sampling_step_ablation_pooled.csv` exists, it uses that fresh file; otherwise it uses the released reference sampling-step results. Ordinary E2 model runs do not recompute Table 7. Use `--workers 1` for the 3D metric stage. Multiple workers have deadlocked on at least one evaluation host and are not validated for this release. The 2D stage does not use this setting. The LPIPS metric may download the AlexNet weights (about 233 MB) from `download.pytorch.org` on first use. For an offline metric run, populate the TorchVision weight cache before disconnecting; running the LPIPS metric once online in the same environment is sufficient. Set `TORCH_HOME` to keep that cache in a known location. Anonymous downloads of the many small Smoke-Eval files may be rate limited by Hugging Face. Log in with `hf auth login` on the download host, or set `HF_TOKEN` through the shell's secure credential mechanism, before `hf download`. The repositories are public; authentication only increases download reliability. ### Dataset The synchronized raw dataset is shared through [Hugging Face](https://huggingface.co/datasets/phi-lab-rice/GRADE_Dataset). Please follow its access and usage terms. The dataset-processing scripts are available in [`processing_code/`](processing_code/) here and in that dataset repository. The raw dataset repository is organized as follows: ```text GRADE Dataset/ ├── processing_code/ # dataset-processing scripts ├── GRADE_Eval_Raw/ # evaluation data └── GRADE_Train_Raw/ # training data ``` For the artifact evaluation checkpoints and processed Smoke-Eval inputs, use the [complete model repository](https://huggingface.co/phi-lab-rice/GRADE) and the separate [evaluation dataset](https://huggingface.co/datasets/mypersonalsharingspot11/evaluation_dataset). The model package includes release-relative checkpoint configurations. To use the processing scripts locally from this repository: ```bash cd processing_code # Full radar + ZED + DJI processing python processor.py --dataset /path/to/raw_dataset # RGB/depth-only processing python processor_rgb.py --dataset /path/to/raw_dataset # Radar point-cloud extraction python processor_pcd.py --dataset /path/to/raw_dataset ``` Each processor accepts `--sequences` to process selected sequences. The generated files are written under `processed//`, including synchronized timestamps and the processed radar, RGB, depth, or point-cloud outputs appropriate to the selected pipeline. See the docstrings in the processing scripts for optional modality skips and split-file arguments. For reproducible evaluation, install the dependencies from [`environment.txt`](environment.txt) before running the evaluation code. A typical setup is: ```bash python3.11 -m venv grade-venv source grade-venv/bin/activate python -m pip install --upgrade pip python -m pip install -r environment.txt ``` After preparing the environment, follow the command-line help and docstrings in the scripts under [`evaluation/`](evaluation/). Full evaluation also requires downloading the checkpoints and the required Smoke-Eval directories from the artifact repositories linked above. ## Citation ```bibtex @inproceedings{zhao2026grade, title = {GRADE: Single-Frame Generative Radar Depth Estimation Under Visual Degradation}, author = {Zhao, Bin and Chiou, Patrick and Garg, Nakul}, booktitle = {Proceedings of the 32nd Annual International Conference on Mobile Computing and Networking (MobiCom '26)}, year = {2026}, doi = {10.1145/3795866.3844478} } ``` ## Acknowledgement The project page is based on the [Nerfies](https://nerfies.github.io/) template (CC BY-SA 4.0), with the layout adapted from our [RadarSFD project page](https://github.com/phi-lab-rice/RadarSFD/tree/main/docs).