Lane Detection Design Document

Why I Did This Project?


While studying Machine Learning concepts, I grew interested in Computer Vision and how models could be trained to understand videos/images. Specifically, I became curious on how self-driving cars actually work and wanted to learn how to detect lanes through Image/Video processing.

Software Skills

  • design icon

    Python

    Programmed in Python

  • camera icon

    Image Processing

    Computer Vision understanding

  • camera icon

    OpenCV

    OpenCV library required

Project Description

This project is a standard introduction to Image processing via Python and OpenCV. It deals with simple image pre-processing and utilizes various processing techniques in order to extrapolate lane lines from a video.

Steps:

  1. 1. Pre-process image using grayscale and gaussian blur
  2. 2. Apply canny edge detection to the image
  3. 3. Apply masking region to the image
  4. 4. Apply Hough transform to the image
  5. 5. Extrapolate the lines found in the hough transform to construct the left and right lane lines
  6. 6. Add the extrapolated lines to the input image

Definitions


  1. Gaussian Blur: A type of image-blurring filter that uses a Gaussian function (normal distribution) for calculating the transformation to apply to each pixel in the image

  2. Edge Detection: A variety of mathematical methods that aim at identifying edges, defined as curves in a digital image at which the image brightness changes sharply or, more formally, has discontinuities

  3. Canny Edge Detection: Edge Detection operator that uses a multi-stage algorithm to detect a wide range of edges in images

  4. Image Masking: A technique used in photo editing to separate or isolate specific areas of an image from the rest, allowing for more precise editing and manipulation

  5. Hough Transform: A mathematical technique used in image processing and computer vision to detect simple geometric shapes, particularly lines and circles, within an image.

Github Repo