/CarND_P3-Behavioral-Cloning

behavioral cloning using keras to simulate autonomous driving

Primary LanguagePython

Project 3: Use Deep Learning to Clone Driving Behavior

Udacity - Self-Driving Car NanoDegree

please see writeup.md for a detailed report

Overview

Train, validate and test a model using Keras to clone driving behavior. The model will output a steering angle to an autonomous vehicle. Data will be collected by running a car manually in Udacity's Self-Driving Car simulator. The model performance will be tested by running the car in the simulator in autonomous mode.

The goals / steps of this project are the following:

  • Use the simulator to collect data of good driving behavior
  • Build, a convolution neural network in Keras that predicts steering angles from images
  • Train and validate the model with a training and validation set
  • Test that the model successfully drives around track one without leaving the road
  • Summarize the results with a written report

Project Deliverables

  • model.py contains the code for building the keras model based on the Nvidia architecture.
  • Nvidia-recoverydata-dp.h5 is the trained keras model needed to run the vehicle autonomously.
  • drive.py is used to drive the vehicle autonomously in the simulator. It accepts an h5 file as a parameter.
  • video.mp4 is the video produced from the vehicle's camera view during the autonomous run.
  • video_rear.mp4 is the video of the same run looking at the vehicle from behind.

Model Architecture

I based my model on the Nvidia architecture. It includes a normalization layer, 5 convolutional layers,1 dropout layer, and finally 3 fully connected layers. Through this model, the vehicle was able to drive autonomously around the track without leaving the road or diving into water and making smooth turns around corners.

Results

View the video on Youtube

Video