All projects

AI & data

Traffic sign recognition

A convolutional network that recognizes 43 classes of German road signs, with 98.45% accuracy on the official test set, close to human level.

  • Completed
  • Individual project
accuracy on the official test set
98.45%
human benchmark on this dataset
98.84%
sign classes
43
from augmentation
+1.15 pt

01Starting point

Context & mission

The problem

A perception building block for driver assistance has to tell apart signs that look very similar. And a score is only worth something if it is measured on truly unseen data.

The mission

Train a classifier on the German Traffic Sign Recognition Benchmark (GTSRB) and measure its performance honestly.

My role

Done on my own, from data preparation to results analysis.

02Execution

What I did

  1. Preprocessing

    Histogram equalisation on the HSV brightness channel, images resized to 48×48.

  2. Model

    A VGG-style CNN of about 1.36 M parameters, trained with Keras and TensorFlow.

  3. Domain-aware augmentation

    Rotation, shifts, zoom and shear, but no horizontal flip: it would swap “left” and “right” signs.

  4. Honest evaluation

    Validation accuracy (~99.8%) overstates reality: GTSRB frames come from video, so a random split leaks near-duplicates. The figure reported is the official test score.

03Design

Architecture

A notebook pipeline: image preparation, on-the-fly augmentation during training, a VGG-style CNN, then evaluation on the 12,630 official test images, kept apart from everything else.

The pipeline
  1. GTSRB43 classes
  2. PreprocessingHSV · 48×48
  3. AugmentationNo flipping
  4. VGG-style CNN~1.36 M parameters
  5. Official test12,630 images

04Impact

Results

  • 98.45% on the 12,630 official test images, close to the 98.84% human benchmark.
  • Data augmentation lifts accuracy from 97.30% to 98.45%.
  • The data leakage caused by a random split is identified and documented.

05Wrap-up

Takeaways

What this project proves

That I do not stop at the best-looking number: I pick augmentations that respect the domain and catch the data leakage that would inflate results.

06Technology

Full stack

  • Python
  • TensorFlow
  • Keras
  • CNN
  • scikit-image
  • scikit-learn
  • NumPy
  • pandas
  • Matplotlib
  • Jupyter