Automatic Number Plate Recognition (VB.NET)

I wanted to design something capable of Automatic Number Plate Recognition, but soon realised it’s quite a tedious task, so began searching for an SDK or API. I found a bunch of commercial ones, but all I wanted was something to play with. Thank goodness for open source software, I found a neat library called OpenALPR. So, decided to give it a shot.

OpenALPR provides bindings in C#, Python, Node.js, Go, and Java. I’m mostly familiar with VB.NET, so I sat down to convert their C# example and designed something simple as a test. In the initial version, I allowed the user to browse for an image file which is fed to OpenALPR. If OpenALPR successfully finds a plate, the results are then displayed in a listbox. It also gives the regions in the image where the plate is detected. What’s cool is, it could even detect multiple plates in an image, even in dark images.

Source Code

Once I was satisfied with the library, I went on to add a camera for detection of plates from a video stream. To capture video I used EmguCV, which is a dot net wrapper for OpenCV. I didn’t have a good camera around so had to use my webcam and show images from my phone 😛

I guess with OpenCV the scope of the project is further broadened, maybe I could also add pedestrian and face detection in the future 😛

Of course, number plate recognition is not perfect, however openalpr can give multiple results along with their confidence values. Another limitation is, it currently supports only a few countries, and one requires a large training set to improve its accuracy (details)

Btw, openALPR also has a commercial version with more features.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s