In this project, we will use deep neural networks and convolutional neural networks to classify traffic signs. The model will be trained and validated on traffic signs images using the German Traffic Sign Dataset. After the model is trained , we will test the model on images of German traffic signs that we fetch online ( not from the dataset).
You can view the Traffic sign classifier project here
Detailed writeup of the project explaining the thought process involving in how I trained the model can be viewed here
- opencv -
pip install opencv-python
- pandas -
pip install pandas
- Tensorflow - GPU -
conda install tensorflow-gpu
- matplotlib -
pip install matplotlib
The goals / steps of this project are the following:
- Load the data set (see below for links to the project data set)
- Explore, summarize and visualize the data set
- Design, train and test a model architecture
- Use the model to make predictions on new images
- Analyze the softmax probabilities of the new images
- Summarize the results with a written report
- Download the data set. The classroom has a link to the data set in the "Project Instructions" content. This is a pickled dataset in which we've already resized the images to 32x32. It contains a training, validation and test set.
- Clone the project, which contains the Ipython notebook and the writeup template.
git clone https://github.com/udacity/CarND-Traffic-Sign-Classifier-Project
cd CarND-Traffic-Sign-Classifier-Project
jupyter notebook Traffic_Sign_Classifier.ipynb
I used the pandas library to calculate summary statistics of the traffic signs data set:
- The size of training set is 34799
- The size of the validation set is 4410
- The size of test set is 12630
- The shape of a traffic sign image is (32, 32, 3)
- The number of unique classes/labels in the data set is 43
LeNet-5 is a very simple network. It only has 7 layers, among which there are 3 convolutional layers (C1, C3 and C5), 2 sub-sampling (pooling) layers (S2 and S4), and 2 fully connected layer (F6), that are followed by the output layer. Convolutional layers use 5 by 5 convolutions with stride 1.
- training set accuracy of 97.6%
- validation set accuracy of 97.7%
- test set accuracy of 94.8%
The model was able to correctly guess 7 of the 10 traffic signs