Giter Club home page Giter Club logo

carnd-lanelines-p1's Introduction

Finding Lane Lines on the Road

The goals / steps of this project are the following:

  • Make a pipeline that finds lane lines on the road
  • Reflect on your work in a written report

Reflection

Pipeline description

My pipeline consisted of the following steps:

# Description Image
1 Original image.
2 Create and apply the mask to keep only yellow [128,128,0]..[255,255,100] (RGB range) and white [220,220,220]..[255,255,255] pixels. This allows to keep the yellow lines from disappearing on the bright background when converted to grayscale.
3 Convert image to grayscale.
4 Apply Gaussian blur to suppress noise and spurious gradients.
5 Apply Canny edge detector.
6 Apply the region of interest mask.
7 Use the Hough transform to find lines from Canny edges.
8 Filter out lines from the Hough transform with slopes not relevant to lane lines we are trying to detect.

In order to draw a single line on the left and right lanes, I:

  1. Partitioned to left/right the output of filtered Hough transform by horizontal location relative to the center of the image;
  2. Fit a 1st-degree polynomial to points in each partition to get the slope/intercept of the fitted line;
  3. Took simple moving average of the last 5 slopes/intercepts;
  4. Plotted the resulting left and right lines on the input image.

Test videos (YouTube links)

solidWhiteRight

solidWhiteRight

solidYellowLeft

solidYellowLeft

challenge

challenge

Potential shortcomings with the pipeline

  • Might not work under different light conditions.
  • Will not perform great on curved lane marks.
  • If lane marks are missing in the multiple frames, will not keep the last values.

Possible improvements to the pipeline

  • Try various color space transformations for difficult light conditions.
  • Use higher degree polynomial to fit curved lane marks.
  • Handle case when lane marks disappear in multiple consecutive frames by filling the gap with the last values.

carnd-lanelines-p1's People

Contributors

ryan-keenan avatar brok-bucholtz avatar andrewpaster avatar alexei379 avatar moe-elsadig avatar dmlicht avatar mikaelcarpenter avatar bayne avatar quadhd avatar domluna avatar jeremy-shannon avatar norman-thomas avatar rasphilco avatar

Watchers

James Cloos 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.