At present, the technology of license plate recognition is quite mature. In the last one months of study time, the entire license plate recognition process went through, there is a relatively clear, comprehensive understanding.
License plate recognition is divided into three major parts: 1. License plate positioning, 2. License plate character segmentation; 3. Recognition of license plate characters.
About the license plate location, there are a lot of processing methods, in my study method, is mainly applied to the current license plate color (mainly blue and yellow license plate, and two colors and reciprocal color) of the characteristics of the candidate license plate area positioning (refer to Zheng Chengyong Brother's thesis). Other methods, 1) based on the mathematical morphology of the location method, such as direct edge detection, and then morphological processing, according to certain rules to remove the non-compliance with the license plate region conditions of invalid interference, so as to obtain the location of the license plate candidate area; 2) the method of license plate location based on neural network, Using the known license plate area and the non-license plate area for repeated training to obtain a more satisfactory network, in the segmentation phase, using sliding window method to traverse the image, sliding window image into the training network to judge. It seems that the method of license plate segmentation based on texture features, the method of license plate segmentation based on wavelet transform and so on. In our approach, mathematical morphology processing, and how to further screen the candidate license plate area requires a bit of brain power.
About the segmentation of license plate character, if the license plate has a certain degree of tilt, also need to be horizontal or vertical angle correction. License plate area has been given, how to separate the characters in the area accurately, the more common way is to remove the upper and lower border, and then the license plate binary image vertical projection, remove interference, the largest projection interval, and then at the maximum interval of two characters forward, and then split back five characters. In my handling, no license plate angle correction, no consideration of the first Chinese characters (such as Chuan) need to match the situation, of course, these processing is very simple.
On the recognition of license plate characters, there are a lot of methods here, what neural network, SVM (support vector machine), as well as I have done before the export nucleus (neuro-response, deep learning) can be used here, and the effect can be very lupin. Here I used a most coarse processing method, simple statistical Character II value image and template two value image between the number of different pixels, the smallest difference in the template token to the character to be determined, the effect is also relatively good. Of course, not as many of the previous methods, such as "8" and "B" sometimes will appear wrong points, complex Chinese characters "Yue" and "Ji" also sometimes appear wrong points, these certainly are not problems.
During this time, the whole process has been run over, but also to understand the use of such a wide range of license plate recognition technology today.
Here is the result of the program and the test:
function finalplate = licenselocate (carimage,saveimage)
% *****************************************************************************
% * * Function: LICENSELOCATE license plate Location
% * * Input: Carimage contains the license plate image Input format ' 01.jpg '
% * * SaveImage saved image name Input format ' 01_plate.jpg ' (can default)
% * * Output: finalplate locating the license plate image
% * * Function: Enter an image containing the license plate information, after the license plate location to obtain the license plate area, and save
% *****************************************************************************
Function Codereg = licenserecognition (finalplate)
% ********************************************************
% * * Letter Number: licenserecognition License plate character Recognition
% * * Output in: finalplate ; image with license plate input format ' 01_plate.jpg '
% * * Output out: codereg recognized characters
% * * Work can: Input an image of a fixed license plate, after character recognition to obtain the license plate information output
% ********************************
% main function test license plate Recognition Program
Clc,clear,close All
Lei = ' *.jpg ';
% License Plate Location
InputPath = '. \carimage\ ';
NewFolder = ' MyPlate ';
If ~isdir (NewFolder)
System ([' mkdir ' newfolder]);
End
Images=dir ([InputPath lei]);
L = Length (ImageS);
For i = 1:1:l
Name = ImageS (i). Name;
Carimage = [InputPath name]; Ming = name (1:end-4);
Finalplate = Licenselocate (carimage);
Imwrite (Finalplate,[newfolder ' \ ' ming ' _plate.jpg ')
End
% License Plate Recognition
InputPath1 = ['. \ ' NewFolder ' \ '];
Images1=dir ([InputPath1 lei]);
L = Length (ImageS1);
For i = 1:1:l
Name = ImageS1 (i). Name;
Finalplate = [InputPath1 name];
Ming = name (1:end-4);
Codereg = Licenserecognition (finalplate)
End