Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What are good algorithms for vehicle license plate detection? [closed]

Background

For my final project at university, I'm developing a vehicle license plate detection application. I consider myself an intermediate programmer, however my mathematics knowledge lacks anything above secondary school, which makes producing the right formulas harder than it probably should be.

I've spend a good amount of time looking up academic papers such as:

  • Detecting Vehicle License Plates in Images
  • Robust License Plate Detection using Image Saliency
  • Local Enhancement of Car Image for License Plate Detection

When it comes to the math, I'm lost. Due to this testing various graphic images proved productive, for example:

alt text

to

alt text

However this approach only worked to that particular image, and if the techniques were applied to different images, I'm sure a poorer conversion would occur. I've read about a formula called the "bottom hat morphology transform", which does the following:

Basically, the trans- formation keeps all the dark details of the picture, and eliminates everything else (including bigger dark regions and light regions).

I can't find much information on this, however the image within the documentation near the end of the report shows its effectiveness.

Other constraints

  • Developing in C#
  • Confining the project to UK registration plates only
  • I can choose the images to convert as a demonstration

Question

I need advice on what transformation techniques I should focus on developing, and what algorithms can help me.

EDIT: New information present on Continued - Vehicle License Plate Detection

like image 667
Ash Avatar asked Jan 16 '11 19:01

Ash


2 Answers

There are a number of approaches you can take but the first strategy that pops into mind is to:

  • Discovery/research: Identify the set of colors and fonts that you may need to identify. If your sample picture is representative of most British plates then your job is made easier. E.g. Simple, singular font and black lettering on a white background
  • Code: Attempt to identify a rectangular region of an image where the colors are predominantly white and black. This is not a terribly math-heavy problem and it should give you the license plate region to concentrate on.
  • Code: Do some clean up on your subregion such conversion to pure black and white (monochrome) and perhaps scaling/shifting into a nice, tight rectangle.
  • Use API: Next employ an existing OCR (optical character recognition) algorithm on your sub-selected image region so see if you can read the text.

Like I said, this is one strategy of many but it comes to mind as one requiring the least amount of heavy math... that is if you can find an OCR implementation that will work for you.

like image 81
Paul Sasik Avatar answered Oct 02 '22 05:10

Paul Sasik


I did a similar project a few years ago in Java, first I applied the Sobel operator and then masked all the image with an image of a plate (with the Sobel operator applied too). The region of maximum coincidence is where the plate is. Then apply an OCR to the selected region to get the number.

like image 29
rodrigoap Avatar answered Oct 02 '22 04:10

rodrigoap