Take any public dataset with 3D point clouds that have annotated cars on them (for example, Waymo, NuScenes, or KITTI3D).
The script should work as follows:
- using the car annotations in the form of cuboids, will points from the source point cloud
- save them as separate point clouds
- Should it be extracted from a single scene or do we need to process a sequence of scenes?
- From a single scene
- From a sequence of N scenes
- Answer: on my own
- Do we need to keep the coordinate system of the main scene for the extracted point clouds upon saving, or will it just be a point cloud in a new scene with a volume equal to the cuboid?
- Attach to the main scene
- Answer: Attach to the cuboid
- Windows 11
- KITTY3D dataset
- kitti_object_vis for visualization
- Creates folders named "input" and "output".
- Waits for input data to be placed in the "input" folder from the archives of the KITTI3D dataset. NOTE: Please, define the scene files in variables.
- Loads source points from .bin, calibration information, and labeling information from .txt as a list of Object3D.
- Creates an empty array to store the output result cloud with all cars that will be visualized in the chosen scene.
- Computes cuboids for all 'Car' in the list of Object3D.
- Converts every cuboid from camera coordinates into velocity coordinates.
- Extracts all 'Car' points that are inside the cuboids and saves them in the output .bin file for that 'Car'.
Checkout file kitty_utils.py into main dir using link from Packages if it doesn't exist
To check the results, you can replace input "{scene_number}.bin" with output "car_n.bin", rename it with the scene number, and visualize it.
- External tools were used to work with the KITTI3D dataset to solve tasks related, for example, to matrices and correct extracting of points relative to the calib parameters.
- The result is checked through visualization, which does not guarantee that all points are found or that there are no extra points found.
- When saving all car points to a common output file, some points outside the cuboids may be visible during visualization.
- Developing/Modifying file processing flowchart: 25 minutes
- Researching relevant information on libraries that work with LiDAR clouds: 300 minutes
- Code writing: 60 minutes
- Clarification of questions: 10 minutes
- Making changes: -
- Debugging/Testing: 75 minutes
- Refactoring: 30 minutes
- Preparing report: 30 minutes
Overall max: 530 minutes ~ 8.8 hours