Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

KeyError when doing "2.Prepared nuScenes 3D detection data" with create_data.py #14

Open
ArdrieuxPan opened this issue Sep 28, 2023 · 2 comments

Comments

@ArdrieuxPan
Copy link

Environment

docker container, with image
sudo nvidia-docker run -it -p 7600:7600 -p 8022:22 --name="occnet" -v /home/apan/occnet_ws:/home/occnet_ws -it pytorch/pytorch:1.10.0-cuda11.3-cudnn8-devel /bin/bash, python==3.7

Problem

when doing step '2.Prepared nuScenes 3D detection data' with create_data.py, there would be a KeyError:

v1.0-trainval ./data/nuscenes
======
Loading NuScenes tables for version v1.0-trainval...
23 category,
8 attribute,
4 visibility,
64386 instance,
12 sensor,
10200 calibrated_sensor,
2631083 ego_pose,
68 log,
850 scene,
34149 sample,
2631083 sample_data,
1166187 sample_annotation,
4 map,
Done loading in 27.901 seconds.
======
Reverse indexing ...
Done reverse indexing in 6.5 seconds.
======
total scene num: 850
exist scene num: 850
train scene: 700, val scene: 150
[                                                  ] 0/34149, elapsed: 0s, ETA:Traceback (most recent call last):
  File "tools/create_data.py", line 249, in <module>
    max_sweeps=args.max_sweeps)
  File "tools/create_data.py", line 75, in nuscenes_data_prep
    root_path, out_dir, can_bus_root_path, info_prefix, version=version, max_sweeps=max_sweeps)
  File "/home/occnet_ws/OccNet/tools/data_converter/nuscenes_converter.py", line 93, in create_nuscenes_infos
    nusc, nusc_can_bus, train_scenes, val_scenes, test, max_sweeps=max_sweeps)
  File "/home/occnet_ws/OccNet/tools/data_converter/nuscenes_converter.py", line 237, in _fill_trainval_infos
    l2e_r = info['lidar2ego_rotation']
KeyError: 'lidar2ego_rotation'

I shift the console to path /home/occnet_ws/OccNet,while the file organized as follow:

home/occnet_ws/OccNet/data# tree -L 2
|-- can_bus
|   |-- basemap
|   |-- expansion
|   `-- prediction
|-- nuscenes
|   |-- maps
|   |-- readme.md
|   |-- samples
|   |-- sweeps
|   |-- v1.0-test
|   `-- v1.0-trainval
`-- occ_gt_release_v1_0
    |-- nuscenes_infos_temporal_train_occ_gt.pkl
    |-- nuscenes_infos_temporal_val_occ_gt.pkl
    |-- occ_gt_train.json
    |-- occ_gt_val.json
    |-- train
    `-- val

then I found 'lidar2ego_rotation' in nuscene_converter.py line 237, there is no declaration about this key:

# started from line 215

        info = {
            'lidar_path': lidar_path,
            'token': sample['token'],
            'prev': sample['prev'],
            'next': sample['next'],
            'can_bus': can_bus,
            'frame_idx': frame_idx,  # temporal related info
            'sweeps': [],
            'cams': dict(),
            'scene_token': sample['scene_token'],  # temporal related info
            'scene_name': scene_name,
            'lidar2ego_translation': cs_record['translation'],
            'ego2global_rotation': pose_record['rotation'],
            'timestamp': sample['timestamp'],
        }

        if sample['next'] == '':
            frame_idx = 0
        else:
            frame_idx += 1

        l2e_r = info['lidar2ego_rotation']
        l2e_t = info['lidar2ego_translation']
        e2g_r = info['ego2global_rotation']
        e2g_t = info['ego2global_translation']
        l2e_r_mat = Quaternion(l2e_r).rotation_matrix
        e2g_r_mat = Quaternion(e2g_r).rotation_matrix

...

`

`

@aksjdakwhdijahskjdhkajbsf

Me too. Check it please!

@tongwwt
Copy link
Contributor

tongwwt commented Oct 14, 2023

Thanks for your comment. The variable info should be defined as

info = {
            'lidar_path': lidar_path,
            'token': sample['token'],
            'prev': sample['prev'],
            'next': sample['next'],
            'can_bus': can_bus,
            'frame_idx': frame_idx,  # temporal related info
            'sweeps': [],
            'cams': dict(),
            'scene_token': sample['scene_token'],  # temporal related info
            'scene_name': scene_name,
            'lidar2ego_translation': cs_record['translation'],
            'lidar2ego_rotation': cs_record['rotation'],
            'ego2global_translation': pose_record['translation'],
            'ego2global_rotation': pose_record['rotation'],
            'timestamp': sample['timestamp'],
        }

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants