Naive Lane Lines Detection
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.
Potential shortcomings of the current pipeline
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
Suggestions for possible improvements to the pipeline
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