Red Light, Green Light

Teaching AI to Read Traffic Signs

Trained a TensorFlow CNN to recognize German traffic signs. A glimpse into how computer vision could reshape road safety where humans and algorithms share the road.


Project Links

Executive Summary (Web)

Neural Net Development & Evaluation

GitHub Repository


Many budding data scientists cut their neural net teeth on classic image datasets like MNIST or CIFAR. As a capstone to my seventh and final of Harvard's free CS50 courses—CS50AI—I took a different road: the German Traffic Sign Recognition Benchmark. It was both a fond farewell to a series of pedagogically perfect courses that built my computer science foundation and a personal second chance. Years earlier I’d mangled a neural net in bootcamp; this time, I built with confidence and clarity. One milestone passed, one mistake redeemed—and my "driver’s license" in deep learning earned.

Project Overview

This project explores convolutional neural networks (CNNs) and applied computer vision under realistic, noisy conditions. I built a complete pipeline: preprocessing images, visualizing class distributions and errors, and designing CNN architectures with convolutional/pooling layers, dropout, and batch normalization. Training curves, confusion matrices, and error analyses were automated and exported for web presentation.

I experimented with class weighting, additional convolutional layers, batch normalization, and dense layers. The best results came from a streamlined two-layer CNN with batch normalization, which outperformed both the baseline and more complex, over-dense models. In fact, extra dense layers reduced accuracy, underscoring the value of simplicity and regularization.

The final model achieved over 99% accuracy on the test set, with most misclassifications in ambiguous speed limit signs. This project highlights my strengths in deep learning, systematic model experimentation, and data storytelling—taking a classic AI challenge from concept to polished, portfolio-ready finish.


Gallery



Convolutional Neural Network and Biological Vision Diagram CNN architecture: mimics the human eye by combining simple features into complex object recognition.1

Class Distribution Plot Class imbalance: Label distribution is highly skewed across classes.

GTSRB Sample Images Dataset diversity: representative image for each label.

Training Curves Comparison Validation and training curves: best model vs. baseline.

Confusion Matrix Comparison Confusion matrices: best model noticeably reduces off-diagonal errors.

Confidence Histogram Comparison Misclassification confidence histogram: overkill model’s errors are less confident and more frequent.

References

Dataset provided by the German Traffic Sign Recognition Benchmark (GTSRB).

1 Inspired by Deep learning for wireless capsule endoscopy: a systematic review and meta-analysis, Soffer, Shelly, et al, Gastrointestinal Endoscopy, © 2020 American Society for Gastrointestinal Endoscopy. Image generated with AI and edited by Bryan Johns. Used for educational purposes only. If this use does not qualify as fair use, I am happy to remove the image upon request.