nutonomy / nuscenes-devkit

The devkit of the nuScenes dataset.
https://www.nuScenes.org
Other
2.2k stars 617 forks source link

Custom dataset generates middle format - but unable to create valid NuScenes object #982

Closed AlexIlis closed 10 months ago

AlexIlis commented 10 months ago

I have custom data which is actually Kitti STyle annotated. To be compatible with Nuscenes in mmdeetction, I generated middle format that is needed for Nuscenes.

However for evaluation, DetectionEval from nuscnes-devkit expects a Nuscenes object for its purpose. But the challenge is that since I'm using custom data, it does not come with metadata that is present with NuScnenes dataset - attribute.json, ego_pose.json, map.json, sample_data.json, visibility.json, calibrated_sensor.json, instance.json sample.json, scene.json, category.json,log.json, sample_annotation.json, sensor.json

Is there an ideal way to make Custom dataset evaluate in NuScenes style?

whyekit-motional commented 10 months ago

@AlexIlis perhaps you could try dropping the irrelevant items in this list in the NuScenes object: https://github.com/nutonomy/nuscenes-devkit/blob/583dff71734d832b285d08f169b1a7f162b840c8/python-sdk/nuscenes/nuscenes.py#L59-L60

However, I do suspect you would need some of those items, e.g attribute.json, if you want to use DetectionEval off-the-shelf

Otherwise, you might have to dig into DetectionEval as well to see what needs to be commented out to suit your custom dataset

AlexIlis commented 10 months ago

Thanks much for you reply. My goal was to extract gt from infos.pkl but the challenge is that our prediction results are in the format {"sample_token": "", "translation": [], "size": [], "rotation": [], "velocity": [], "detection_name": "", "detection_score": , "attribute_name": null}. This seems to be the exact format that v1.0-trainval/sample_annotation.json file has, something I don't have on my custom dataset

Is there a way to generate sample.json, sample_annotation from infos.pkl file ?

whyekit-motional commented 10 months ago

I'm not sure how your infos.pkl file looks like, but you could probably write some sort of script that parses your file into the required format