rscova / CarND-Advanced-Lane-Lines

This repository contains my development of the Project: Advanced Lane Lines proposed by the Udacity's Self-Driving Cars Nanodegree

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CarND-Advanced-Lane-Finding

Udacity - Self-Driving Car NanoDegree

This repository contains my development of the Project: Advanced Lane Lines proposed by the Udacity's Self-Driving Cars Nanodegree. Here you can see how it works on a real scenario:

project video

This project goal is to develop a pipeline to identify the lane boundaries in a real scenario.

This is the advance version of the Finding Lane Lines on the Road project (GitHub repository)

The pipeline is based in 6 steps:

  1. Camera Calibration: Compute the camera calibration matrix and distortion coefficients given a set of chessboard images.
  2. Distortion Image Correction: Apply a distortion correction to raw images.
  3. Color Spaces and Gradients Thresholds: Use color transforms, gradients, etc., to create a thresholded binary image
  4. Perspective transform: Apply a perspective transform to rectify binary image ("birds-eye view").
  5. Detect lane lines: Detect lane pixels and fit to find the lane boundary.
  6. Determine the lane curvature: Determine the curvature of the lane and vehicle position with respect to center.

Extra:

  1. Warp the detected lane boundaries back onto the original image

  2. Output visual display of the lane boundaries and numerical estimation of lane curvature and vehicle position.

To achieve that I have implemented two clases: ImageProcessor() and LineFinder(). And some naive functions.

To understand this repository code, check first the writeup.md and pipeline_step_by_step.ipynb. These files have the pipeline explained step by step with the results of each part.

One of the advantage of my pipeline from others is that can be used in real time. The pipeline can run at 18Hz (18 times per second). I tested it in a 6 years old laptop with an Intel i7 core.


Overview

Project Structure

  • test_images/ Directory with test images
  • output_images/ Directory with the output images
  • output_videos/ Directory with the output videos
  • README.md Repository's Readme file
  • writeup.md Project writeup, pipeline and methods explained
  • pipeline_step_by_step.ipynb Jupyter notebook with the pipeline explained with example images (just for images)
  • advanced_lane_finding.ipnyb Implementation of the pipeline in a Jupyter Notebooks (for videos and real scenarios)
  • advanced_lane_finding.py Implementation of the pipeline in a Python File (for videos and real scenarios)
  • cal_data.p Calibration pickle data
  • requirements.txt Install requirements file
  • License License File

If you want to download more test images or test_videos/ and camera_cal folders with the videos and images to test the pipeline in videos and calibrate the camera from scratch you can do it from Google Drive

Objectives

  • Make a pipeline that finds lane lines on the road
  • Test it in a short videos from the 280 highway of California, United States
  • Reflect my work in a written report.

Requirements

1. This project use Python3 version. If you don't have it installed, check out https://www.python.org/downloads/

2. Install the requirement packages.

pip3 install -r requirements.txt >

Documentation

You can find the documentation of this code and the explanation of the pipeline whit the output of each part in the written report.

License

This repository is Copyright © 2019 Saul Cova-Rocamora. It is free software, and may be redistributed under the terms specified in the LICENSE file.

About

This repository contains my development of the Project: Advanced Lane Lines proposed by the Udacity's Self-Driving Cars Nanodegree

License:MIT License


Languages

Language:Jupyter Notebook 99.2%Language:Python 0.8%