Inspiration

Many of us come from a robotics background, so naturally we were interested in something that would be relevant to self-driving vehicles and computer vision.

What it does

Detects road signs in images and then classifies them with ~0.86 accuracy

How we built it

Classifier

  • We used OpenCV and TensorFlow to train a Convolutional Neural Network to categorize road signs given cropped images of signs using the German Traffic Sign Recognition Benchmark (43 classes, ~1000 imgs per class in training).
  • Augmented dataset using images gathered using raspberry pi camera at night time

3 conv layers followed by relu + maxpooling, 2 fc layers

Detector

  • Using OpenCV to preprocess the image to reduce noise, convert it to multiple different colorspaces, and process the image using thresholding, canny edge detection, and hough lines among other things, we extracted bounding boxes around road signs, which are passed to the classifier to determine what sign was detected.

Challenges we ran into

  • Since we were in the last group to get hardware, we couldn't get our hands on a camera for the Dragonboard
  • Detection ended up being much more challenging than anticipated, since we decided to go for a more traditional image processing approach

Accomplishments that we're proud of

  • Reasonably high accuracy on classification (43 classes, some very similar signs and shapes between classes as well)
  • Learning OpenCV

What we learned

  • First time training a CNN to do something cool
  • The real world is very noisy (lighting conditions, blurry pictures, leaves!)

What's next for It's a Sign!

  • Train a more accurate model for sign detection as well

Built With

Share this project:

Updates