#http://www.cvlibs.net/datasets/kitti/raw_data.php
Under this website we have downloaded Kitti sequence file.
Sequence file Structure:
R:\2011_09_26
|----2011_09_26_drive_0048_sync
| |----image_00 (dir)
| |----image_01 (dir)
| |----image_02 (dir)
| |----image_03 (dir)
| |----oxts (dir)
| |----velodyne_points (dir)
| |----tracklet_labels
|----calib_cam_to_cam.txt
|----calib_imu_to_velo.txt
|----calib_velo_to_cam.txt
As a first step we have to install the dependent libraries using pip or conda under conda environment.
Mentioned in Requirements.txt
#from cuml.cluster import DBSCAN Especially this package runs under GPU which helps to reduce the runtime of DBSCAN. We have import Rapids.0.18 api
Cmd:
Conda cmd :conda install -c rapidsai -c nvidia -c numba -c conda-forge cudf=0.19 python=3.7 cudatoolkit=10.1
#https://github.com/rapidsai/cudf #https://github.com/rapidsai/cuml
SEGMENTATION - LINEAR REGRESSION ( RANSAC - RANDOM SAMPLE CONSENSUS )
from sklearn import linear_model
#https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.RANSACRegressor.html
To separate the ground plane(Inliers) and outliers. Which helps to reduce the computation time for further process.
CLUSTERING - DBSCAN ( DENSITY BASED CLUSTERING AND NOISE )
#https://scikit-learn.org/stable/modules/generated/sklearn.cluster.DBSCAN.html
From the separated outliers we have move the data into Sklearn DBSCAN/CUML DBSCAN( Mentioned in above refer content ) to cluster the individual objects based on the given minpoints and Eps(radius) value.
VISUALIZATION - MATPLOTLIB
From the clustered object we have to plot the bounding box on top of the each clustered object by finding the min,max for the each axis(XYZ).
Flask API
#https://programminghistorian.org/en/lessons/creating-apis-with-python-and-flask
For the each frames we have save it in the system and Overrides the each file where hosted it on the web page using various ports(http://127.0.0.1:2222/)
This Entire pipeline which helps to get a knowledge on Clustering and Segmenatation. The point cloud data collected from the LIDAR sensors are processed, then an input image is given for all the views and the corresponding plots are made. Later, the pipeline is used for segmentation and clustering the data, the minimum and maximum values to create bounding boxes are derived from the DBSCAN cluster values and the bounding boxes are made. The output is plotted on the web page with the use of flask with >8Fps Rate.