The aim of this project is to develop and implement a Computer Vision based algorithm such that:
1. All visible lane boundaries are detected for urban/highway roads under close to idle weather conditions
Dependencies:
1. c++ Boost >= 1.7
2. CUDA Toolkit >= 7.0
3. OpenCV >= 2.4.6
Relevant Code Files:
1. GenerateBEV.cu - CUDA Acceralated Code to get Perspective-IPM and IPM-Perspective view of an input image.
2. Pre_Processing.cu - CUDA Acceralated Code to pre_process the input image.
3. rgb2gray.cu - CUDA Acceralated Code to convert rgb image to grayscale.
4. Hough_Transform.cu - Fast Hough Transform using CUDA.
5. Line.cpp - Group identical lanes and eliminates outliers.
6. line_fitting.cpp - Using Ransac algorithm to fit a line to the detected lane. Bresenham's algorithm to plot the line pixels.
7. fit_poly.cpp - Least Squares 2nd degree polynomial fitting for curved lanes.
Process Pipeline:
Original Image | Input IPM Image | Filtered IPM Image | Thresholded Image | Binary Image After Selecting ROI | Initial Guess for Ransac | Lane Detected Image After Ransac and Eliminating False Lanes |
---|---|---|---|---|---|---|
Lane Detection for Test Images:
Orginal Image | Input IPM Image (KITTI) | IPM Image After Lane Detection | Perspective View from IPM |
---|---|---|---|