License Plate Recognition System


Computer Vision Case Study

Type: Mobile, Web, Desktop
Technologies: PyCharm, Python
Duration: 4 weeks
Team 1 Developer


As you may know from our “About us” page, we enjoy working with complex computational systems among other things, in our spare time and are advocates of nature-inspired coordination models.

So, would you guess that our team of engineers really enjoy computer vision? You bet your bottom dollar they do!

info

By Computer Vision:

we mean using theory and technology to build artificial systems that retrieve information from images or multi-dimensional data.
About couple of months ago, during one of our brainstorming sessions, one of our engineers “Sergei” brought up the idea of building a system to recognize automobile license plates. This idea was welcomed by most team members and as crazy as we are, we all decided to go for it.

So, to get started:
  • a) Needed an environment where license plate recognition system is most useful
  • b) Is feasibly close to us to conduct our research.
info

The winner was "Parking lot"

So now our idea evolved into parking lot cameras to capture license plates upon entry right before the gate opens and only allow entrance of automobiles with authorized license plates.

Great. Now we have an idea that’s actually very useful and it was time for a small group celebration.
Time to development a solution capable of detecting and reading license plates.

Challenges

  1. 1) Figure out the exact location of the license plate on the car.
  2. 2) Our idea was universal and since license plates are different in every country i.e. they have different fonts and different orders and sequence of letters and numbers, we had to write our own algorithm to recognize license plates regardless of language barriers. To be more specific most available libraries and solutions for auto recognition are only available in certain geographical areas limited to their own language.
  3. 3) The third challenge was to isolate the license place and remove any distractions in it’s vicinity that caused error in license recognition. For example there could be a stop sign right next to the plate interfering with license recognition that could result in error.

Solution

We managed to find a unique library that was specifically used for license recognition. However, it did not suffice to fulfill our needs. We had to customize it with our own algorithms, train the neural network for maximum accuracy to detect license plates in general and define its combination of letters and numbers.

Results

We are proud to say that now we have a working top quality license plate recognition system that can be used in many situations or instances or any type of application, like web, mobile or desktop.

Here's the final workflow:
Input:
The camera captures an image of the car.
It then processes the image internally and recognizes the license plate.

Output:
Next, it returns a picture of the car with its processed license plate marked in red and a readout confirmation notation on top left corner of the image.

Areas of our expertise

Computer Vision
Image Processing
Mapping

Other Technologies

OpenCV
OpenALPR
NumPy