Instructions to use phi-lab-rice/GRADE with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Diffusers
How to use phi-lab-rice/GRADE with Diffusers:
pip install -U diffusers transformers accelerate
import torch from diffusers import DiffusionPipeline # switch to "mps" for apple devices pipe = DiffusionPipeline.from_pretrained("phi-lab-rice/GRADE", dtype=torch.bfloat16, device_map="cuda") prompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k" image = pipe(prompt).images[0] - Notebooks
- Google Colab
- Kaggle
File size: 6,372 Bytes
644d2b9 4401ce6 644d2b9 4401ce6 644d2b9 4401ce6 644d2b9 4401ce6 644d2b9 0e150d6 644d2b9 0e150d6 644d2b9 0e150d6 644d2b9 0e150d6 644d2b9 0e150d6 644d2b9 0e150d6 644d2b9 0e150d6 644d2b9 0e150d6 644d2b9 4401ce6 644d2b9 4401ce6 644d2b9 4401ce6 644d2b9 0e150d6 644d2b9 4401ce6 644d2b9 4401ce6 644d2b9 4401ce6 644d2b9 4401ce6 644d2b9 4401ce6 644d2b9 0e150d6 644d2b9 4401ce6 644d2b9 0e150d6 644d2b9 4401ce6 644d2b9 4401ce6 644d2b9 4401ce6 644d2b9 4401ce6 644d2b9 0e150d6 644d2b9 0e150d6 644d2b9 0e150d6 644d2b9 0e150d6 644d2b9 0e150d6 644d2b9 4401ce6 644d2b9 4401ce6 644d2b9 4401ce6 644d2b9 4401ce6 644d2b9 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 | # 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
<https://phi-lab-rice.github.io/GRADE/>
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/<sequence_name>/`, 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).
|