lyft / lyft/nuscenes-devkit

Accelerating map_pointcloud_to_image by loading LIDAR data only once

Open
#19 2 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Jupyter Notebook
Stars
390
Forks
99
PR merge metrics
No merged PRs in 30d

Description

This following function performs a pretty expensive computation:
https://github.com/lyft/nuscenes-devkit/blob/e4efd52a9630959a5b890e1575b58cab145e2441/lyft_dataset_sdk/lyftdataset.py#L653-L715

I am curious: does this function take so much time to run because of the process of loading the lidar cloud points, or transforming the 3D coordinates into 2D for a specific camera?

I am personally using this function in my [public kernel for the Kaggle competition](https://www.kaggle.com/xhlulu/lyft-eda-animations-generating-csvs/edit), and I realized that running this for all cameras, and across multiple timestamps takes a considerable amount of time, which could be partially caused by the data loading, I could cache it so that the lidar data is not redundantly loaded for every camera for a single timestamp.
Thanks!

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with lyft_dataset_sdk/lyftdataset.py lines 653-715 and inspect map_pointcloud_to_image. Profile the function across multiple cameras and timestamps to distinguish LIDAR loading from 3D-to-2D transformation. Done means avoiding redundant LIDAR loading for cameras sharing a timestamp while preserving the projected output.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
computer-vision, performance
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.