Behavioral Cloning

Udacity - Self-Driving Car NanoDegree


Behavioral cloning is a method of capturing and replicating human skills in a computer program. In this Udacity project, we learn to use deep neural networks together with convolutional neural networks. Using the simulator, we gather the necessary information to train a neural network. Finally, we used the model together with the weights to infer the steering angle required for driving autonomously. The approach was researched and developed by Nvidia on the PiloNet system and described on the Self-Driving Car Nano Degree.


The steps for this project were the following:

  • Use the simulator to collect data on good driving behavior
  • Design, train and validate a model that predicts a steering angle from image data using TensorFlow 2 and Keras
  • Use the model to drive the vehicle autonomously around the first track in the simulator. The vehicle should remain on the road for an entire loop around the track

The project description can be found in the github repository. It includes the Report summarizing the results, a Jupyter notebook describing the steps to load, preprocess and train the model, and a Video for an autonomous drive example.

It is very satisfactory to be able to develop the full cycle of an AI system and see the results at the end of the process. Each training cycle takes time from having a hypothesis before we were able to test it and then improve it. The most challenging step was to be able to work with data that does not fit into memory, a challenge that was tackled by using a generator that loads the data in batches.

Although it is impressive to drive around the track, this is just part of various complex tasks. We have not dealt yet with the question of identifying other items such as automobiles and people, to be able to make smart decisions.