In this project, we will try to learn how to train a self driving car using Convolutional Neural Network. We will be using Udacity Car Simulator to drive up and collect data to use later on and we will use NVIDIA model to train, which is used by NVIDIA in real world.
How do we learn to drive? How about computers? We watch other people and observe their skills, same thing for computers, they observe the collected data. What is NVIDIA’s solution? They collected 3 images from 3 different cameras(left, center,right) and recorded the angle of steering wheel for these images. Then send them over to CNN model.
First we setup the simulation to our computer and play with it to record all the data we will need later to train our model, which includes left, center and right cameras, steering angle, throttle, brake and speed. Then by defining a method to get rid of unbalanced data, and prepare the data to load. Then split data to train and validate. We also generate some augmented images using pan, zoom, brightness and flip techniques. More data, better move! Then process images to different styles. Create batchgenerator. Then eventually create cnn model and fit the model, save it. Then test it!
We created these methods to use in our project:
- Get name of the file path
- Import Data
- Balance the Data
- Load the Data
- Create Image Augmentation
- Preprocess the image
- Generate batch
- Create Model
Then using from sklearn.model_selection import train_test_split , split the data to train then fit the model, and eventually Test it!