Skip to content

This is a machine learning project where I utilized the LeNet-5 architecture to create a convolutional deep network that classifies 43 different kind of traffic signs. I've made sure to include a full step-by-step implementation of the project as well as detailed notes for every step.

License

Notifications You must be signed in to change notification settings

redayzarra/CNN_TrafficSigns

Repository files navigation

Traffic Signs Classification

Overview

This project utilizes the LeNet convolutional network architecture to classify 43 different types of traffic signs. LeNet is a convolutional neural network that can be used for computer vision and classification models. LeNet (CNN) was designed to recognize handwritten digits. It was developed by Yann LeCun and his team at AT&T Bell Labs in the 1990s and is widely considered to be one of the first successful CNNs. LeNet consists of several convolutional and pooling layers, followed by fully connected layers. The architecture of LeNet has inspired many subsequent CNNs, and it is still widely used as a teaching tool for introducing the basics of CNNs to students and researchers. This project showcases a step-by-step implementation of the model and in-depth notes to customize the model further for higher accuracy.

The model is trained the dataset provided below, which is divided into training, validation, and test sets. The accuracy of this model can be further improved by collecting more data and also using data augmentation techniques such as flipping, rotation, zooming, and cropping. Convolutional neural networks are often prone to overfitting, which is when the model performs well with training data but poorly with unseen data due to fixating on certain features. My model has encountered this problem but you can avoid this by using more data, fewer features, regularization techniques, or early stopping (with fewer epochs).

Once the model is trained, it can be used to classify new, unseen traffic sign images. This can be useful for applications such as self-driving cars, where it is important to accurately recognize traffic signs in real time.

Project Website

If you would like to find out more about the project, please checkout: Traffic Signs Classification Project

Installing the libraries

This project uses several important libraries such as Pandas, NumPy, Matplotlib, and more. You can install them all by running the following commands with pip:

pip install pandas
pip install numpy

python -m pip install -U matplotlib
pip install seaborn

pip install -U scikit-learn
pip install tensorflow

If you are not able to install the necessary libraries, I recommend you use Jupyter Notebook with Anaconda. I have a .ipynb file for the project as well.

Dataset and configurations

Find all the project dataset files here: Dataset files

Feel free to use your own dataset files and configure them with:

with open("YOUR-TRAINING-DATA.p", mode = 'rb') as training_data:
    train = pickle.load(training_data)

with open("YOUR-VALIDATION-DATA.p", mode = 'rb') as validation_data:
    valid = pickle.load(validation_data)

with open("YOUR-TEST-DATA.p", mode = 'rb') as testing_data:
    test = pickle.load(testing_data)

License

MIT

About

This is a machine learning project where I utilized the LeNet-5 architecture to create a convolutional deep network that classifies 43 different kind of traffic signs. I've made sure to include a full step-by-step implementation of the project as well as detailed notes for every step.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published