The goal of this project is to make a pipeline that finds lane lines on the road through naive Computer Vision techniques.
A demo of the pipeline can be found on Youtube
My pipeline comprised of -
- Changing the color space from RGB to grayscale
- Performing Gaussian smoothing/blurring to remove noise and spurious gradients
- Performing edge detection using the Canny Edge Detection Algorithm.
- Implementing a Polygon ROI mask and using this to restrict the location of the detected edges
- Applying Hough transform to find the line segments over this masked edge detected image.
- Reducing jitter and smoothing out the detections through a moving average
- Drawing out these detected line segments on a blank copy of the original image
- Performing blending of the original and lines image
Results from each step of the pipeline can be observed in my Jupyter notebook: naive_lane_tracker.ipynb. Furthermore, please find below the overall results visualised for each of the test images.
-
Currently the parameters for the Hough Transform and Canny Edge Detection were chose through trial and error. Maybe incorporate a better mechanism for hyper parameter selection like k-folds cross validation, etc.
-
The pipeline needs a mechanism to handle different contrast ratios as is quite evident on moving from the first two test videos to the challenge video
-
The smoothing algorithm needs to be refined as it still introduces jitter and has an immensely long window.
-
Extend this pipeline to handle curvature on the road as opposed to just straight lines. Potential for introducing better computer vision and deep learning techniques