1. Download nuScenes V1.0 full dataset data HERE. Folder structure:
SurroundOcc
├── data/
│ ├── nuscenes/
│ │ ├── maps/
│ │ ├── samples/
│ │ ├── sweeps/
│ │ ├── v1.0-test/
│ │ ├── v1.0-trainval/
2. Download the generated train/val pickle files and put them in data.
3. Download our generated dense occupancy labels (resolution 200x200x16 with voxel size 0.5m) and put and unzip it in data. We will also provide full-resolution mesh data, and you can subsample it with different resolution.
resolution | Subset | Link | Size |
---|---|---|---|
200x200x16 | train | link | 3.2G |
200x200x16 | val | link | 627M |
mesh vertices | train | link | 170G |
mesh vertices | val | link | 34G |
Please note that:
- the shape of each npy file is (n,4), where n is the number of non-empty occupancies. Four dimensions represent xyz and semantic label respectively.
- In our dataloader, we convert empty occupancies as label 0 and ignore class as label 255.
- Our occupancy labels are the voxel indexes under LiDAR coordinate system, not the ego coordinate system. You can use the code to convert voxel indexes to the LiDAR points.
Folder structure:
SurroundOcc
├── data/
│ ├── nuscenes/
│ ├── nuscenes_occ/
│ ├── nuscenes_infos_train.pkl
│ ├── nuscenes_infos_val.pkl
*4. (Optional) We also provide the code to generate occupancy on nuScenes, which needs LiDAR point semantic labels HERE. Folder structure:
SurroundOcc
├── data/
│ ├── nuscenes/
│ │ ├── maps/
│ │ ├── samples/
│ │ ├── sweeps/
│ │ ├── v1.0-test/
│ │ ├── v1.0-trainval/
| | ├── lidarseg
| | | ├── v1.0-test
| | | ├── v1.0-trainval
| | | ├── v1.0-mini
You can generate train/val split of nuScenes from 850 sequences.
cd $Home/tools/generate_occupancy_nuscenes
python generate_occupancy_nuscenes.py --config_path ./config.yaml --label_mapping ./nuscenes.yaml --split [train/val] --save_path [your/save/path]