This project demonstrates how to process, segment, and transform raw LiDAR data into meaningful 3D scene understanding for autonomous driving tasks.
The goal of this project is to create a 3D Machine Learning pipeline capable of:
- Detecting lane lines using reflectance data.
- Segmenting the road plane and isolating obstacles.
- Performing 3D object detection via clustering and bounding box fitting.
I wanted to bridge theory with practice: understand how algorithms like RANSAC and DBSCAN actually work on point clouds, and combine them into one working perception pipeline.
I experimented with LiDAR reflectance values to estimate lane markings using two simple but powerful techniques:
- Thresholding – Filtering high reflectance points to visualize lane lines.
- Region of Interest (ROI) – Keeping only reflectance values within the lane region for a cleaner lane estimation.
This step highlights how even basic geometric filtering can reveal meaningful road features.
For 3D object detection, I implemented a multi-step pipeline using the Open3D library:
-
Voxel Downsampling: Reduce point density for faster computation.
-
Ground Plane Segmentation (RANSAC): Separates the dominant plane (the road) from the rest of the scene.
-
Clustering (DBSCAN): Group object points based on spatial proximity.
-
3D Bounding Boxes: Draw 3D boxes around each detected object (clusters).
This pipeline turns raw, noisy data into a structured 3D understanding of the environment.
- Lane lines detected using reflectance thresholding.
- Road plane isolated via RANSAC segmentation.
- Multiple 3D objects detected and visualized with bounding boxes.

