- Jupyter Notebook
- numpy
- open3d
- einops
- pyquaternion
Last Python version compatible with open3D: 3.11
Download the data for the lab0 and lab1 : https://uncloud.univ-nantes.fr/index.php/s/oiMzTpqiBGniZng
This lab exercise involved extrapolating useful features from a raw point cloud, this involved filtering and clustering points to tell objects apart and creating bounding boxes.
The first step involved separating the ground from the objects, this was done through height data of the points, plus the estimated normals obtained by grouping neighboring points that could belong to the same surface.
Next, we developed different functions that could perform the filtering of the features of the point cloud: ground_filtering
and object_filtering
, both based on a threshold system, discarding everything not belonging to ground or objects respectively.
Once the ground was filtered, we could proceed to implement a function for clustering, grouping points likely belonging to the same object. This was done on a neighboring principle, introducing a threshold for a minimum number of points per cluster.
At last we performed bounding boxes estimation using the built-in function get_axis-aligned_bounding_boxes