1. Introduction

Intelligent transportation systems use advanced information technology to improve traffic conditions and make traffic smoother, safer and greener. License plate recognition system is one of the core technologies, it mainly includes license plate location, character segmentation and character recognition three core modules. As security video enters the era of HIGH-DEFINITION, video resolution is getting higher and higher, intelligent transportation system has higher requirements for license plate recognition technology: faster processing speed, stronger environmental adaptability, higher recognition rate.

This paper introduces the principle of automatic license plate recognition from five aspects: preprocessing, edge detection, license plate location, character segmentation and character recognition. And MATLAB software programming to achieve each part, finally recognize the license plate.

2 License plate character segmentation

After locating the license plate area, the license plate area is divided into a single character and then identified. Character segmentation usually adopts vertical projection method. Because the vertical projection of characters must be near the local minimum value at the gap between characters or within characters, and this position should meet the character writing format, characters, size limits and some other conditions of the license plate. The vertical projection method has a good effect on character segmentation of automobile image in complex environment.

 

  1. Calculate the horizontal projection of license plate horizontal correction.

  2. Remove the plate frame.

  3. Analyze the vertical projection to find the center of each character.

  4. Cut characters by left and right width.

     

     

     

     

    3. License plate character recognition

    At present, character recognition methods are mainly based on template matching algorithm and artificial neural network algorithm. Based on the template matching algorithm, the partitioned character is first binarized, and its size is scaled to the size of the template in the character database, and then matched with all templates, and finally selected the best match as the result. There are two algorithms based on artificial neural network: one is to extract the features of the recognition characters, and then train the neural network distributor with the obtained features; Another method is to input the image to be processed directly into the network, and the network can automatically extract the feature until the result is recognized. In practice, the recognition rate of license plate recognition system is closely related to the quality of license plate and photography. The quality of licence can be affected by various factors, such as rust, stain, peeling paint, fading font, blocked licence, tilted licence, highlighting, multi-licence, fake licence, etc.; The actual shooting process is also affected by factors such as ambient brightness, shooting brightness, vehicle speed, etc. These factors reduce the recognition rate of license plate recognition to varying degrees, which is also the difficulty and challenge of license plate recognition system. In order to improve the recognition rate, in addition to constantly improve the recognition algorithm, we should also try to overcome various lighting conditions, so that the images collected are most conducive to recognition.

    Support from import the original image, to the final image of the license plate output to excel spreadsheet, which experienced a grayscale processing, median filtering, edge detection, corrosion, and the various processing methods such as smooth, after the location of license plate image after cutting, to tackle this licence in character recognition, the final output in the excel spreadsheet.

clc close all; clear; load imgfildata; [file,path]=uigetfile({'*.jpg; *.bmp; *.png; *.tif'},'Choose an image'); s=[path,file]; picture=imread(s); [~,cc]=size(picture); picture=imresize(picture,[300 500]); if size(picture,3)==3 picture=rgb2gray(picture); End % se = strel (" rectangle ", (5, 5)); % a=imerode(picture,se); % figure,imshow(a); % b=imdilate(a,se); threshold = graythresh(picture); picture =~im2bw(picture,threshold); picture = bwareaopen(picture,30); imshow(picture) if cc>2000 picture1=bwareaopen(picture,3500); else picture1=bwareaopen(picture,3000); end figure,imshow(picture1) picture2=picture-picture1; Figure, imshow (picture2) picture2 = bwareaopen (picture2, 200); figure,imshow(picture2) [L,Ne]=bwlabel(picture2); propied=regionprops(L,'BoundingBox'); hold on pause(1) for n=1:size(propied,1) rectangle('Position',propied(n).BoundingBox,'EdgeColor','g','LineWidth',2) end hold off figure final_output=[]; t=[]; for n=1:Ne [r,c] = find(L==n); n1=picture(min(r):max(r),min(c):max(c)); N1 = imresize (n1, 42, 24). Imshow (n1) pause (0.2) x = []; totalLetters=size(imgfile,2); for k=1:totalLetters y=corr2(imgfile{1,k},n1); x=[x y]; end t=[t max(x)]; if max(x)>.45 z=find(x==max(x)); out=cell2mat(imgfile(2,z)); final_output=[final_output out]; end end file = fopen('number_Plate.txt', 'wt'); fprintf(file,'%s\n',final_output); fclose(file); winopen('number_Plate.txt')Copy the code

Complete code added QQ1575304183