github.com/jailad/Self-Driving-Cars-Term1-Project3 ↗
Self Driving Card - Project 3 - Behavioral Cloning
Open this visualization on its own page →
Contributors
2
Lines of Code
24
From
2017-05-14
To
2017-05-14
About jailad/Self-Driving-Cars-Term1-Project3
This project implements behavioral cloning to train a self-driving car model using data collected from a driving simulator. The system records steering angles paired with camera images during manual driving, then trains a convolutional neural network to predict steering commands from image input alone, allowing the vehicle to drive autonomously around a simulated track.
The project evaluates five different CNN architectures before settling on a modified NVIDIA architecture for the final model. The workflow includes comprehensive data analysis with visualization of steering angle distributions using box plots and histograms, data balancing strategies to handle over and under-represented steering angles, image preprocessing with normalization and region-of-interest selection, and training with a generator pattern to manage memory constraints. The trained model successfully drives the first track at speeds up to 25 mph despite being trained at 9 mph.
The implementation uses Keras with TensorFlow backend, along with OpenCV, NumPy, Pandas, and scikit-learn for the data pipeline. Key outputs include a trained model file, a drive script for autonomous operation in the simulator, and detailed documentation of the approach. Future work targets driving the more challenging second track, implementing adaptive throttle control alongside steering prediction, and optimizing the network architecture for smaller model size.