# Traffic Sign Classifier

**Building a Traffic Sign Recognition Convolutional Neural Network**

Nowadays, deep neural network applications can be found everywhere, from chatbots, finance, and shopping. An interesting
field of use is self-driving vehicles, where they are not only used on object recognition but also on vehicle steering.
i.e
*Explaining How End-to-End Deep Learning Steers a Self-Driving Car*.
Furthermore, convolutional neural networks help using neural networks on different sets of images, most usually for
object classification. A classical example dates from 1998 *Y. LeCun, L. Bottou, Y. Bengio, and P.
Haffner: Gradient-Based Learning Applied to Document Recognition,
Proceedings of the IEEE, 86(11):2278-2324, November 1998.* Where it was demonstrated that training a machine rather
than being explicitly program to do a task, using for instance classical computer vision approaches, was possible.

We have implemented a variation of LeNet-5 network from *Pierre Sermanet and Yann
LeCun: Traffic Sign Recognition with Multi-Scale Convolutional Networks,
Proceedings of International Joint Conference on Neural Networks (IJCNN'11), 2011*. Using TensorFlow 1.x we implemented
a variation, and we accomplished an accuracy of 95%. Even though the implementation is not as robust and accurate as the
one proposed, it has been interesting to learn how to use TensorFlow without the usage of Keras, which is the standard
today.

## Content

The project includes detailed steps to:

- Load the 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

The architecture selected is base on the Lenet-5 Network with 2 convolution layers followed by a max-pooling layer and 2 fully connected layers reduced to 43 outputs, to improve the accuracy we use a dropout operation before the fully connected layers.

The detailed implementation of the Traffic Sign Classifier Notebook and the report describes each step accomplished.

## Conclusion

Convolutional neural networks have revolutionalized not only the area of computer vision but also Neuro-linguistic programming (NLP), and time series analysis among many other fields.

For this project, we have begun using Tensorflow 1.x for a known simple network architecture LeNet-5. Wich requires to write several implementations details. Still, it is important for a practitioner to understand how convolutional neural networks are designed. What effects every parameter has into the results, which helps to understand in-depth the in’s and out’s.