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.
If you would like to find out more about the project, please checkout: Traffic Signs Classification Project
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.
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)