The purpose of the car license plate recognition projects is to accurately recognize car license plates in the entrance of some parking lot or on the road.
The purpose of the car license plate recognition projects is to accurately recognize car license plates in the entrance of some parking lot or on the road. Our project aimed to enable the installation of our solution by using a simple video camera and a standard PC in the faculty parking lot.
The project was divided to two parts, team number 1 dealt with finding a license plate inside a given image. We were team number 2 and we worked on recognizing the digits within the plate.
The results of this project were later used by a team number 3 that build an integrated application of the results of both projects.
Car license plates were originally meant to be recognized by humans, especially government officials, such as policemen and transport personnel. If a car is involved with in robbery or stealing, for instance, then seeing its plate helps tracking down the criminals. If a stolen car is found, its plate helps to find the owner.
Sometimes, however, we may want to use the unique information that the license plate contains in an automatic way. One example of this is letting a car enter a limited parking area, by screening out prohibited personnel. Another example is trying to catch stolen vehicles at random without blocking roads. If the camera is quick enough to focus on the plate, then license plate numbers can be detected without interfering with traffic.
The task of reaching the digits (as computer characters) involves a sequence of operations:
- Image quantization – turning an RGB image into black and white
- Filtering noise, dirty parts and fixing inaccurate coordinates
- Separating the images of the digits
- Using a neural network for recognizing single digit
The implementation of this part of the project is in MATLAB
In the Black and White image quantization we used adaptable quantization threshold quantizier:
The threshold is fixed at the point where the integral over the histogram reach 0.33 of the total pixels. The idea : About 33% of the plate are digits. This way the quantization is good in various light conditions.
Removing small image components using components relational dimensions, deleting plate frame lines and separating ‘sticked’ digits. We have developed a special algorithm for this purpose:
Extracting the individual images of digits.
Individual digits recognition
Recognizing the digits using feed forward neural network. The input layer of the network has 200 pixels describing the digit (20×10). The output layer has 10 nodes, describing the probability for every digit (0-9) to match the input.
Capturing images from a video camera
The application is also responsible to get images from a camera and display the digits in a user-friendly interface. The application creates a series of filters with input coming from the camera device and output going into a BMP structure of a single image. This image is the input to team 1’s code. Both inputs (images) and outputs (digits) are sent to a window on the PC’s display in order to monitor the process of image capturing and analysis.
To develop the algorithm we have used MATLAB. On the implementation phase of the project, we have converted the MATLAB files into C code using the MATLAB-compiler, and integrated it with image capture device using Direct-X.
- There is a need to handle difficult situation such as non-uniform illumination
- Neural Networks can become powerful tool in a machine vision system when combined with other methods
- Accurate coordinates are crucial for successful recognition of the digits
- The suggested algorithm can be implemented using DSP chip in order to increase performance
We would like to thank our supervisor Johanan Erez for his support and guidance throughout this project. Also we would like to thank The Ollendorff Minerva Center which supported this project.