adamlilja commited on
Commit
975f7f7
·
verified ·
1 Parent(s): 4e85ca0

Add camera-only queryocc-nusc checkpoint (24.25 sem RayIoU)

Browse files
Files changed (1) hide show
  1. README.md +44 -19
README.md CHANGED
@@ -21,22 +21,44 @@ Weights for [QueryOcc](https://arxiv.org/abs/2511.17221) (Lilja, Lan, Fu, Hammar
21
  QueryOcc learns continuous 3D semantic occupancy from multi-view camera images by supervising
22
  directly in 4D space-time: positive and negative queries are sampled along rays from point
23
  clouds observed in adjacent frames — no rendering losses, no voxelized lidar aggregation. No
24
- human annotation is used at any stage. This checkpoint is the **lidar-supervised** arm, where
25
- the supervising point clouds are real lidar sweeps with per-point pseudo-semantics.
 
 
26
 
27
  ## Files
28
 
29
  | File | Preset | Supervision | Sem. RayIoU | Dyn. RayIoU | Occ. RayIoU | Sem. IoU | Occ. IoU |
30
  |---|---|---|---|---|---|---|---|
 
31
  | `queryocc-lidar-nusc.pth` | `queryocc-lidar-nusc` | real lidar | 23.2 | 19.5 | 48.8 | 20.4 | 56.9 |
32
 
33
- Occ3D-nuScenes validation split, self-supervised protocol. 112.1 M parameters, 449 MB.
34
- `sha256 561112071f8c1417b466798353dadaf5c54175b2107d25f8434839145c9d9dcc`
35
 
36
- For reference, the paper's headline camera-only model (`queryocc-nusc`, supervised by pseudo
37
- point clouds from a vision foundation model) reports 23.6 / 21.7 / 45.2 / 21.3 / 55.0 on the
38
- same columns: lidar supervision trades a little semantic accuracy for better occupancy, which
39
- is what its accurate depth would predict.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40
 
41
  ## Usage
42
 
@@ -44,13 +66,15 @@ is what its accurate depth would predict.
44
  git clone https://github.com/LiljaAdam/queryocc && cd queryocc
45
  ./setup_uv_env.sh && source .venv/bin/activate
46
 
47
- python queryocc/train.py queryocc-lidar-nusc --no-train --test \
48
  --load_ckpt_from=hf://QueryOcc/queryocc
49
  ```
50
 
51
- The checkpoint is downloaded and cached automatically, and records the preset it belongs to —
52
- loading it into a different preset is an error rather than a silent partial load. To use a
53
- manually downloaded file, pass its path instead.
 
 
54
 
55
  Evaluation additionally requires nuScenes, the Occ3D-nuScenes labels and a CUDA toolkit (the
56
  RayIoU raycaster is JIT-compiled on first use); the repository README covers the setup. Nothing
@@ -68,19 +92,20 @@ trust in the publisher:
68
  ```python
69
  import torch
70
 
71
- payload = torch.load("queryocc-lidar-nusc.pth", map_location="cpu", weights_only=True)
72
- payload["preset"] # 'queryocc-lidar-nusc'
73
  payload["metrics"] # the numbers in the table above
74
  payload["state_dict"] # 'net.'-prefixed network weights
75
  ```
76
 
77
  ## Training data and intended use
78
 
79
- Trained on nuScenes trainval: multi-view camera images, supervised by lidar sweeps carrying
80
- offline per-point pseudo-semantics. Research artifact: a demonstration of self-supervised
81
- occupancy learning, not a validated driving component. Its outputs reflect the geometry, sensor
82
- suite and geographies of nuScenes (Boston and Singapore) and should not be relied on for
83
- safety-critical decisions. Use is subject to the
 
84
  [nuScenes terms](https://www.nuscenes.org/terms-of-use) as well as the license below.
85
 
86
  ## License
 
21
  QueryOcc learns continuous 3D semantic occupancy from multi-view camera images by supervising
22
  directly in 4D space-time: positive and negative queries are sampled along rays from point
23
  clouds observed in adjacent frames — no rendering losses, no voxelized lidar aggregation. No
24
+ human annotation is used at any stage. Two arms are published here, differing only in which
25
+ point clouds provide the supervision: the **camera-only** arm (pseudo point clouds from a
26
+ vision foundation model — the paper's headline model) and the **lidar-supervised** arm (real
27
+ lidar sweeps with per-point pseudo-semantics).
28
 
29
  ## Files
30
 
31
  | File | Preset | Supervision | Sem. RayIoU | Dyn. RayIoU | Occ. RayIoU | Sem. IoU | Occ. IoU |
32
  |---|---|---|---|---|---|---|---|
33
+ | `queryocc-nusc.pth` | `queryocc-nusc` | camera-only (pseudo) | 24.25 | 22.45 | 45.98 | 21.51 | 55.06 |
34
  | `queryocc-lidar-nusc.pth` | `queryocc-lidar-nusc` | real lidar | 23.2 | 19.5 | 48.8 | 20.4 | 56.9 |
35
 
36
+ Occ3D-nuScenes validation split, self-supervised protocol. 112.1 M parameters, 449 MB each.
 
37
 
38
+ ```
39
+ sha256 queryocc-nusc.pth 4a54ffb927fff5cb94086a14dfc02caaa99511ab2a97170fd6a2b1ffd0601604
40
+ sha256 queryocc-lidar-nusc.pth 561112071f8c1417b466798353dadaf5c54175b2107d25f8434839145c9d9dcc
41
+ ```
42
+
43
+ Lidar supervision trades semantic accuracy for better occupancy, which is what its accurate
44
+ depth would predict.
45
+
46
+ ### On the camera-only numbers
47
+
48
+ The paper reports 23.6 / 21.7 / 45.2 / 21.3 / 55.0 for `queryocc-nusc`. This checkpoint is
49
+ above the paper on all five, from a post-publication learning-rate sweep rather than any change
50
+ to the method: the peak LR is 7.5e-5 instead of the paper's 5e-5, and nothing else differs.
51
+ Architecture, input resolution (256×704), supervision heads and step budget are unchanged, so
52
+ the comparison to the paper's baselines is unaffected. The repository's `queryocc-nusc` preset
53
+ now defaults to 7.5e-5, and reproduces this checkpoint; pass `--model.max_lr=5e-5` for the
54
+ exact paper configuration.
55
+
56
+ Two caveats worth stating plainly. Occ3D-nuScenes has no held-out test split — these numbers
57
+ are the validation split, which is what the benchmark and the paper report on, and which the LR
58
+ sweep also selected on. And the metric carries real seed noise: three seeds of this
59
+ configuration scored 23.91 / 24.24 / 24.25 semantic RayIoU (mean 24.13). The published file is
60
+ the best of those three, so **24.13 is the honest expectation when retraining, and 24.25 is
61
+ what this particular file scores.** Every seed beat the paper's 23.6.
62
 
63
  ## Usage
64
 
 
66
  git clone https://github.com/LiljaAdam/queryocc && cd queryocc
67
  ./setup_uv_env.sh && source .venv/bin/activate
68
 
69
+ python queryocc/train.py queryocc-nusc --no-train --test \
70
  --load_ckpt_from=hf://QueryOcc/queryocc
71
  ```
72
 
73
+ The `hf://<owner>/<repo>` spec resolves `<preset>.pth` inside the repo, so selecting
74
+ `queryocc-lidar-nusc` instead fetches the other file from the same URL. The checkpoint is
75
+ downloaded and cached automatically, and records the preset it belongs to — loading it into a
76
+ different preset is an error rather than a silent partial load. To use a manually downloaded
77
+ file, pass its path instead.
78
 
79
  Evaluation additionally requires nuScenes, the Occ3D-nuScenes labels and a CUDA toolkit (the
80
  RayIoU raycaster is JIT-compiled on first use); the repository README covers the setup. Nothing
 
92
  ```python
93
  import torch
94
 
95
+ payload = torch.load("queryocc-nusc.pth", map_location="cpu", weights_only=True)
96
+ payload["preset"] # 'queryocc-nusc'
97
  payload["metrics"] # the numbers in the table above
98
  payload["state_dict"] # 'net.'-prefixed network weights
99
  ```
100
 
101
  ## Training data and intended use
102
 
103
+ Trained on nuScenes trainval: multi-view camera images, supervised either by pseudo point
104
+ clouds derived from monocular metric depth and vision-foundation-model features (camera-only
105
+ arm) or by lidar sweeps carrying offline per-point pseudo-semantics (lidar arm). Research
106
+ artifact: a demonstration of self-supervised occupancy learning, not a validated driving
107
+ component. Its outputs reflect the geometry, sensor suite and geographies of nuScenes (Boston
108
+ and Singapore) and should not be relied on for safety-critical decisions. Use is subject to the
109
  [nuScenes terms](https://www.nuscenes.org/terms-of-use) as well as the license below.
110
 
111
  ## License