Assessment 3 Final Project (Computer Vision) for ISY-503 - Intelligent Systems subject.
Tasked of building a machine learning model that is trained on the data provided and when run on Udacity's self-driving car simulator, will hopefully keep the car on the road without running off track.
The project was divided into two phases:
The standalone model was developed in this Google Colab notebook. All the necessary steps were included to develop the model, like:
- Loading of dataset
- Splitting to training, testing, and validation datasets
- Normalisation and preprocessing of dataset
- Model compilation
- Model training
- Model evaluation
- Prediction
In addition, visualisations were included across various stages of the notebook to better illustrate and debug the performance of the model.
The model itself was heavily based on existing articles tackling the Udacity Self-Driving Car Simulator exercises, mainly:
The model was trained using the dataset provided as part of the subject's Assessment 3 resources.
The simulator used for this project was the Version 1 (12/09/16) file for MacOS taken from the Udacity self-driving-car-sim repository.
Once downloaded, the environment needs to be set up by following the quickstart guided provided in this repository.
With the generated model.h5
file from the Colab notebook, the drive.py
script provided by the simulator files is then executed to connect with the simulator. The simulator needs to be run in Autonomous mode to test the model with the selected track. This is done by running the command in your terminal:
python drive.py model.h5
Once connected, the car should start to accelerate.
Some of the challenges encountered were:
- The initial model created yielded decent accuracy and overall performance when trained using the dataset provided. It performed poorly when the model was connected to the simulator.
- Resulted in reworking the model to accommodate its integration to the simulator.
- Setting up of the environment, mostly due to package versions.
- Train the model using simulator's Training Mode to collect more data than the provided dataset.
- Test model using other tracks, such as the Jungle Track.