Noisy-LIDAR-Point-Cloud-Data-Processing & Surface-Fit Estimation using Least Squares, Total Least Squares, RANSAC
Given are two csv files, pc1.csv and pc2.csv, which contain noisy LIDAR point cloud data in the form of (x, y, z) coordinates of the ground plane.
-
- Using pc1.csv: a. Compute the covariance matrix. [15] b. Assuming that the ground plane is flat, use the covariance matrix to compute the magnitude and direction of the surface normal. [15]
-
- In this question, you will be required to implement various estimation algorithms such as Standard Least Squares, Total Least Squares and RANSAC. a. Using pc1.csv and pc2, fit a surface to the data using the standard least square method and the total least square method. Plot the results (the surface) for each method and explain your interpretation of the results. [20] b. Additionally, fit a surface to the data using RANSAC. You will need to write RANSAC code from scratch. Briefly explain all the steps of your solution, and the parameters used. Plot the output surface on the same graph as the data.Discuss which graph fitting method would be a better choice of outlier rejection. [20]
This projects consists of the following code files
- Problem #2:
- covariance_surf_normal.py
- lstq.py
- tsl.py
- ransac.py
- na
- Ensure the following depenancies are installed
pip install pandas pip install numpy pip install scipy pip install matplotlib pip install opencv-python
-
Run the programs individually to check the outputs.
-
For lstq.py, tsl.py, ransac.py, you may need to change the file name for two different datasets.
python3 <file_name>