These days SOTA computer vision systems are all based on deep learning and require a lot of data to achieve great results, but what If we don’t have a lot of data, or just want to experience the pain that people went through before they could just slap a neural network on it? Well, in this project we created a car license plate reader based on “traditional” image processing techniques - just with Python and NumPy.

The problem involves turning .mp4 videos of cars into strings of license plates of the cars in the videos. We broke the solution down into the following stages:

  1. Input: .mp4 videos of cars
  2. Localization
    1. Preprocessing
    2. Bounds and contours
    3. Colour and bounds
    4. Cropping and adjusting
  3. Recognition
    1. Proprocessing
    2. Flooding
    3. Segmentation
    4. Template matching
    5. Validity check
  4. Output: License plate strings

Full explanations of each stage are available in these reports:

Localization poster report

Recognition poster report

Image of the back of a car with a green bounding box over its license plate Example output of the localization stage