This is a Convolutional Neural Network built with TensorFlow and trained to recognize traffic signs. The dataset used is the German Traffic Sign Recognition Benchmark dataset.
The final model achieves an accuracy of 97.9% on the official GTSRB test dataset.
The model includes my own implementation of batch normalization using a running average estimator of the population moments, along with a few tests and visualizations to see what batch normalization does.
All code, training results, and relevant explanations and comments are contained in the iPython notebook in this directory.
- Clone or fork this repository.
- Launch the Jupyter notebook:
jupyter notebook traffic_sign_classifier.ipynb
- Execute the code cells you are interested in. Note that cells may depend on previous cells and/or require the dataset linked below. The notebook explains clearly what each code cell does.
The resized and pickled versions of the official GTSRB training and test datasets that were used for this project can be downloaded here.
- Python 3.x
- TensorFlow 0.1x
- Numpy
- OpenCV
- Matplotlib
Note: TensorFlow 1.0 introduced major syntax changes and this program does not yet support these changes.