Giter Site home page Giter Site logo

carnd-lanes's Introduction

Writeup - Finding Lane Lines on the Road


Reflection

1. Description of the pipeline

My pipeline consisted of 5 steps.

  1. First, I convert the images to grayscale;
  2. Then I apply a Gaussian filter on the resulting grayscale images to remove noise and spurious gradients;
  3. I apply the Canny edge detector on the previous resulting image.
  4. The resulting edges are masked in accordance to a user defined region of interest on the images.
  5. Finally I apply the Hough filter on the masked images to get the interesting line coordinates. The lines are drawn on the masked edges images before being combined with the original images.

In order to draw a single line on the left and right lanes, I modify the draw_lines() function by:

  • sorting the slopes of the resulting lines segments from the Hough transform. The goal here is to identify the line segments belonging to the left or to the right lanes,
  • removing the outliers line segments by setting a threshold for the slopes,
  • calculating the average slope and intercept for the right and left lines
  • extrapolating to the top and bottom of the right and left lanes using a first order polynomial represented by the terms previously calculated (average slope and intercept).

To avoid jittery lines in the videos I buffer the polynomial terms and apply a moving average to estimate the polynomial terms of the lines displayed on each frame. The moving average is applied to at most the recent fifteen videos frames and starts at the third video frame.

2. Potential shortcomings with the implemented pipeline

Under cloudy, sunny, rainy weather conditions it could be difficult to detect the lanes edges. The edge detection in the night or on poorly maintained streets could also be difficult to achieve.

Another shortcoming could be approximating curvy lanes since the corresponding coordinates are non linear. Therefore can not fit a first order polynomial.

3. Possible improvements to the implemented pipeline

A possible improvement would be to convert the images using HSV colour space and dilate/erode Gaussian blur before the edge detection.1

Another potential improvement for lane detection could be to use a lane detection with RANSAC and KALMAN filter as described in this paper

Footnotes

  1. Computer Vision and Graphics, International Conference, ICCVG 2010, Leonard Bolc โ†ฉ

carnd-lanes's People

Contributors

valerytoda avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.