30
CHAPTER 1 INTRODUCTION 1.1 ANPR Systems As A Practical Application Of Artificial Intelligence Most of the number plate localization algorithms merge several procedures, resulting in long computational (and accordingly considerable execution) time (this may be reduced by applying less and simpler algorithms). The results are highly dependent on the image quality, since the reliability of the procedures severely degrades in the case of complex, noisy pictures that contain a lot of details. Unfortunately the various procedures barely offer remedy for this problem, precise camera adjustment is the only solution. This means that the car must be photographed in a way that the environment is excluded as possible and the size of the number plate is as big as possible. Adjustment of the size is especially difficult in the case of fast cars, since the optimum moment of exposure can hardly be guaranteed. Number Plate Localization on the Basis of Edge Finding: The algorithms rely on the observation that number plates usually appear as high contrast areas in the image (black-and-white or black-and-yellow). First, the original car image in color is converted to black and white image grayscale image as shown in figure 1.

Auotomatic Number Plate System

Embed Size (px)

DESCRIPTION

seminar report on auotomatic number system

Citation preview

Page 1: Auotomatic Number Plate System

CHAPTER 1

INTRODUCTION 1.1 ANPR Systems As A Practical Application Of Artificial IntelligenceMost of the number plate localization algorithms merge several procedures, resulting in

long computational (and accordingly considerable execution) time (this may be reduced

by applying less and simpler algorithms). The results are highly dependent on the image

quality, since the reliability of the procedures severely degrades in the case of complex,

noisy pictures that contain a lot of details. Unfortunately the various procedures barely

offer remedy for this problem, precise camera adjustment is the only solution. This means

that the car must be photographed in a way that the environment is excluded as possible

and the size of the number plate is as big as possible. Adjustment of the size is especially

difficult in the case of fast cars, since the optimum moment of exposure can hardly be

guaranteed. Number Plate Localization on the Basis of Edge Finding: The algorithms rely

on the observation that number plates usually appear as high contrast areas in the image

(black-and-white or black-and-yellow). First, the original car image in color is converted

to black and white image grayscale image as shown in figure 1.

Fig 1.1 Original Image

Page 2: Auotomatic Number Plate System

FIG 1.2: Filtered Image (FIR)

1.2 Physically Aspects of Number Plate Recognition Systems

Now, we need to identify the location of the number plate horizontally in which row it‟s

present. The letters and numbers are placed in the same row (i.e. at identical vertical

levels) resulting in frequent changes in the horizontal intensity. This provides the reason

for detecting the horizontal changes of the intensity, since the rows that contain the

number plate are expected to exhibit many sharp variations. The Horizontal intensity

graph is as follows, with the peaks indicating high contrast regions in the image

Figure 1.3 Sum Of Filtered Rows

The algorithm first determines the extent of intensity variation for each row, while in the

second step it selects the adjacent rows which exhibit the biggest changes. Number plates

Page 3: Auotomatic Number Plate System

are highly probable to be in these rows. The horizontal position of the number plate must

also be determined, which is done by using the previously determined values that

characterize the changes. The variations are the highest at the letters (black letters on

white background); therefore this is where the rate of change within a row is expected to

be the highest. Sum of Filtered columns: The vertical position of the number plate must

be found in the second step by using a picture obtained by band pass filtering. Having

summed up the results of filtering for each row (sum of filtered rows) the vertical

position of the number plate is determine on the basis of the statistical properties of the

individual rows. To provide a fast algorithm simply the row featuring the highest

amplitude is selected (the number plate is most likely to be located there)

Figure 1.4: Sum of Columns in the current Band

Prior to summing up the values, the results can be further improved by applying band

pass limiting in the area concerned in both horizontal and vertical directions.

Figure 1.5: Sum of columns after horizontal and vertical filtering

Page 4: Auotomatic Number Plate System

1.3 Mathematical Aspects of Number Plate Recognition Systems

In most cases, vehicles are identified by their number plates, which are easily readable for

humans, but not for machines. For machine, a number plate is only a grey picture defined

as a two-dimensional function f (x, y) , where x and y are spatial coordinates, and f is a

light intensity at that point. Because of this, it is necessary to design robust mathematical

machinery, which will be able to extract semantics from spatial domain of the captured

image. These functions are implemented in so-called “ANPR systems”, where the

acronym “ANPR” stands for an “Automatic Number Plate Recognition”. ANPR system

means transformation of data between the real environment and information systems.

The design of ANPR systems is a field of research in artificial intelligence, machine

vision, pattern recognition and neural networks. Because of this, the main goal of this

thesis is to study algorithmic and mathematical principles of automatic number plate

recognition systems.

Chapter two deals with problematic of number plate area detection. This problematic

includes algorithms, which are able to detect a rectangular area of the number plate in

original image. Humans define the number plate in a natural language as a “small plastic

or metal plate attached to a vehicle for official identification purposes”, but machines do

not understand this definition. Because of this, there is a need to find an alternative

definition of the number plate based on descriptors, which will be comprehensible for

machines. This is a fundamental problem of machine vision.

Sometimes, the recognition process may fail and the detected plate can contain errors.

Some of these errors can be detected by a syntactical analysis of the recognized plate. If

we have a regular expression, or a rule how to evaluate a country-specific license plate,

we can reconstruct defective plates using this rule. For example, a number zero “0” can

be automatically repaired to a character “O” on positions, where numbers are not

allowed.

Page 5: Auotomatic Number Plate System

CHAPTER 2

PRINCIPLES OF NUMBER PLATE AREA DETECTION

The first step in a process of automatic number plate recognition is a detection of a

number plate area. This problematic includes algorithms that are able to detect a

rectangular area of the number plate in an original image. Humans define a number plate

in a natural language as a “small plastic or metal plate attached to a vehicle for official

identification purposes”, but machines do not understand this definition as well as they do

not understand what “vehicle”, “road”, or whatever else is. Because of this, there is a

need to find an alternative definition of a number plate based on descriptors that will be

comprehensible for machines.

Let us define the number plate as a “rectangular area with increased occurrence of

horizontal and vertical edges”. The high density of horizontal and vertical edges on a

small area is in many cases caused by contrast characters of a number plate, but not in

every case. This process can sometimes detect a wrong area that does not correspond to a

number plate. Because of this, we often detect several candidates for the plate by this

algorithm, and then we choose the best one by a further heuristic analysis.

Let an input snapshot be defined by a function f (x, y), where x and y are spatial

coordinates, and f is an intensity of light at that point. This function is always discrete on

digital computers, such as 0 0 xÎ ℕ Ù yÎ ℕ , where ℕ0 denotes the set of natural numbers

including zero. We define operations such as edge detection or rank filtering as

mathematical transformations of function f . The detection of a number plate area consists

of a series of convolve operations. Modified snapshot is then projected into axes x and y .

These projections are used to determine an area of a number plate.

.

2.1 Number Plate Localization on the Basis of Window Filtering:

The drawback of the above solution (Edge Finding Methodology) is that after the

filtering also additional areas of high intensity appear besides the number plate. If the

image contains a lot of details and edges (example: complex background) the further

Page 6: Auotomatic Number Plate System

areas. As a result, the SFR curve exhibits a smaller increment at the number plate and the

edges in the surrounding areas may sometimes be more dominant.

The original image with complex Background is Filtered and the filtered image shows the

High contrast regions apart from the number plate. The surroundings are unnecessarily

included in the image which made the scene complex. We need to consider a window to

exclude the surroundings from the image and concentrate on the actual image. For this

we need to consider an appropriate window size. The window size is estimated on the

basis of the expected size of the number plate. If the window is chosen to be as wide as

the image, then the previously introduced algorithm is obtained, while too small window

size leads to incorrect results. This latter algorithm reveals the number plate more

effectively from its surroundings. The best result is obtained if the window size equals

the width of the number plate, but smaller window dimensions provide fairly good values

too. After determining the appropriate window size, we perform the sum of filtered rows

and columns and the graph looks like this:

FIG 2.1 S.F.R Graph

The SFR graph contains the details of the complex background that is not necessary in

our context & these are removed by applying an appropriate window. The application of

a window that matches the size of the number plate proves to be useful when the SFR

curve is generated. In this case only the values within the window are added. By shifting

the window, the position at which the sum has a maximum is searched in each row. The

SFR curve is assigned this maximum value for every row; therefore, the rows that contain

Page 7: Auotomatic Number Plate System

scattered intensity values can be eliminated. Finally, we generate the Windowed Sum of

filtered rows and columns graph which looks as the below graph:

FIG.2.2 Windowed Sum Graph

Finally, after the window filtering technique, we remove the unnecessary complex parts

of the image and get the required number plate localized. The final number plate acquired

by the window filtering technique is shown below similar to the latter one

FIG 2.3 Final Number Plate

Page 8: Auotomatic Number Plate System

2.2 Proposed Study And Implementation

FIG.2.4 PROCESS FLOW DIAGRAM

Page 9: Auotomatic Number Plate System

CHAPTER 3

PRINCIPLES OF PLATE SEGMENTATION The next step after the detection of the number plate area is a segmentation of the plate.

The segmentation is one of the most important processes in the automatic number plate

recognition, because all further steps rely on it. If the segmentation fails, a character can

be improperly divided into two pieces, or two characters can be improperly merged

together. We can use a horizontal projection of a number plate for the segmentation, or

one of the more sophisticated methods, such as segmentation using the neural networks.

If we assume only one-row plates, the segmentation is a process of finding horizontal

boundaries between characters. The second phase of the segmentation is an enhancement

of segments. The segment of aplate contains besides the character also undesirable

elements such as dots and stretches as well as redundant space on the sides of character.

There is a need to eliminate these elements and extract only the character.

3.1 Segmentation Of Plate Using A Horizontal ProjectionSince the segmented plate is deskewed, we can segment it by detecting spaces in its

horizontal projection. We often apply the adaptive thresholding filter to enhance an area

of the plate before segmentation. The adaptive thresholding is used to separate dark

foreground from light background with non-uniform illumination. After the thresholding,

we compute a horizontal projection px xof the plate f x, y. We use this

projection to determine horizontal boundaries between segmented characters. These

boundaries correspond to peaks in the graph of the horizontal projection (figure 3.1.b).

Page 10: Auotomatic Number Plate System

Figure 3.1: (a) Number plate after application of the adaptive thresholding

(b) Horizontal projection of plate with detected peaks. Detected peaks are

denoted by dotted vertical lines

3.2 Extraction of characters from horizontal segmentsThe segment of plate contains besides the character also redundant space and other

undesirable elements. We understand under the term “segment” the part of a number

plate determined by a horizontal segmentation algorithm. Since the segment has been

processed by an adaptive thresholding filter, it contains only black and white pixels. The

neighboring pixels are grouped together into larger pieces, and one of them is a character.

Our goal is to divide the segment into the several pieces, and keep only one piece

representing the regular character. This concept is illustrated in figure 3.2.

Figure 3.2: Horizontal segment of the number plate contains several groups

(pieces) of neighboring pixels.

Page 11: Auotomatic Number Plate System

An image is a matrix with X rows and Y columns. It is represented as function say f(x, y) of

intensity values for each color over a 2D plane. 2D points, pixel coordinates in an image, can be

denoted using a pair of values. The image is stored as a small squared regions or number of

picture elements called pixels as shown in the following figure:

Figure 3.3: (a) image matrix (b) gray scale image matrix (c) binary image matrix (d)

colored image with b representation

In digital image, pixels contain color value and each pixel uses 8 bits (0 to7 bits). Most

commonly, image has three types of representation gray scale image, Binary image and

colored image as shown in figure 8 (b), (c), (d) respectively. Gray scale image, figure (b),

calculates the intensity of ligh tand it contains 8 bits (or one Byte or 256 values i.e. 28 =

256). Each pixel in the gray scale image represents one of the 256 values, in particular the

value 0 represents black, 255 represents the white and the remaining values represents

intermediate shades between black and white. The images with only two colors (black

and white) are different to these gray scale images.

Page 12: Auotomatic Number Plate System

Those two colored images are called binary images (c). So binary representation of the

images does not contains shades between black and white. Color images, (d) are often

built of several stacked color channels, each of them representing value levels of the

given channel. For example, RGB images are composed of three independent channels

for red, green and blue as primary color components. The color image contains 24 bits or

3 bytes and each byte has 256 values from 0 to 255.

Page 13: Auotomatic Number Plate System

CHAPTER 4

RECOGNITION OF CHARACTERSThe goal of these methods is to obtain a vector of descriptors (so-called pattern), which

comprehensivelydescribes the character contained in a processed bitmap. The goal of this

chapter is to introduce pattern recognition techniques, such as neural networks, which are

able to classify the patterns into the appropriate classes.

4.1 General Classification ProblemThe general classification problem is formulated using the mapping between elements in

two sets. Let A be a set of all possible combinations of descriptors, and B be a set of all

classes. The classification means the projection of group of similar element from the set

A into a common class represented by one element in the set B . Thus, one element in the

set B corresponds to one class. Usually the group of distinguishable instances of the same

character corresponds to the one class, but sometimes one class represents two mutually

indistinguishable characters, such as “0” and “O”.

Let F be a hypothetic function that assign each element from the set A to an element from

the set B :

:

ˆ ( )

F A B

F

x x

where xA is a description vector (pattern) which describes the structure of classified

character and xˆ B is a classifier, which represents the semantics of such character.The

function F is the probably best theoretical classificator, but its construction is impossible

since we cannot deal with each combination of descriptors. In praxis, we construct

pattern classifier by using only a limited subset of the AB mappings. This subset is

known as a “training set”, such as t A A and t B B . Our goal is to construct an

approximation

Page 14: Auotomatic Number Plate System

Fɶ x,wof the hypothetic function F , where w is a parameter that affects the quality

of the approximation:

:

ˆ ,

t t F A B

F

w

x x w

ɶ

ɶ

where t xA A , ˆ t B B x . Formally we can say that ˆF w is a

restriction of the projection F over a set t A A . We assume that for each i t x A we

know the desired value ˆ i t x B :

0 0 1 1 2 2 1 1 ˆ , ˆ , ˆ , , ˆ x x x x x x … xnxn

Figure 4.1: The projection between sets A and B .

Page 15: Auotomatic Number Plate System

The problem is to find an optimal value (or values) of a parameter w . The w is typically

a vector (or matrix) of syntactical weights in a neural network. According to this

parameter, the values of the function Fɶ x,wshould be as closest as possible to the

values of F xfor input patterns x from the training set t A . We define an error

function to evaluate worthiness of the parameter w :

1 2

0

1

, ˆ

2

m

i i

i

E F

w ɶ x w x

where m is a number of patterns x0…xm1 in the training set t A . Let wto be an

optimal value of the parameter w , such as argmin

W

E

w

w w . Then, the approximation Fɶ x,wofthe function F xis considered as

adapted. The adapted approximation Fɶ x,wsimulatesoriginal function F

xfor patterns x from the training set t A . In addition, this approximation is able to

predict the output classifier ˆx for unknown pattern x from the “test” set x A ( x t A A

A ). The function with such prediction ability partially substitutes the hypothetic

classificator F x. Since the function Fɶ x,wis only a model, we use a feed-

forward neural network for its implementation.

Page 16: Auotomatic Number Plate System

4.2 Biological Neuron And Its Mathematical ModelsFor a better understanding of artificial neural network architecture, there is a need to

explain thestructure and functionality of a biological neuron. The human brain is a neural

network of about ten billions interconnected neurons. Each neuron is a cell that uses a

biochemical reaction to process and transmit information. The neural cell has a body of

size about several micrometers and thousands of input connections called “dendrites”. It

also has one output connection called “axon”, which can be several meters long. The data

flow in the biological neural network is represented by electrical signal, which propagates

along the axon. When the signal reaches a synaptic connection between the axon and a

consecutive dendrite, it relieves molecules of chemical agent (called mediators or neuro-

transmitters) into such dendrite. This action causes a local change of polarity of a

dendrite transmission membrane. The difference in the polarity of the transmission

membrane activates a dendrite-somatic potential wave, which advances in a system of

branched dendrites into the body of neuron.

Figure 4.2: The biological neuron

The biological neural network contains two types of synaptic connections. The first is an

excitive connection, which amplifies the passing signal. The second (inhibitive)

connection suppresses the signal. The behavior of the connection is represented by its

“weight”. The neural network contains mechanism which is able to alter the weights of

Page 17: Auotomatic Number Plate System

connections. Because of this, the system of synaptic weights is a realization of human

memory. As the weights are continually altered, the old information is being forgotten

little by little.

The convolution matrix defines how the specific pixel is affected by neighboring pixels

in the process of convolution. The pixel represented by the cell y in the destination image

is affected by the pixels x0, x1, x2, x3, x4, x5, x6, x7, according to the formula: y=

x0m0+ x1m1+ x2m2+ x3m3+ x4m4+ x5m5+ x6m6+ x7m7+ x8m8, we have applied the

Sobel Edge Detection to find the edges of the given image. The process is explained in

the figure 11 & 12.

Binary images

Threshold is a quick way to convert gray scale image into binary image (pixels

containing black and white pixels). i.e. binary image can obtained from gray-level or

color image. Here in this paper we considered the gray level image. The binary image

pixel values are obtained using the characteristic function as shown below. b(x, y) = 1 if

g(x, y) < T

= 0 if g(x, y) >= T

Page 18: Auotomatic Number Plate System

Proposed Algorithm to convert gray image to binary image is explained in the following

figure:

STEP1 :load the image

STEP2 :setup threshold,type ,max value

STEP3: convert gray image to binary image

STEP4: show the image after converting it in to binary

Connected Components Connected components labeling scans an image and groups its pixels into components

based on pixel connectivity, i.e. all pixels in a connected component share similar pixel

intensity values and are in some way connected with each other. Once all groups have

been determined, each pixel is labeled with a gray level or a color (color labeling)

according to the component it was assigned to. After the Localization of the number plate

of the vehicle involved, we need to recognize the number plate into a standard form. The

vehicular number plates maybe of Non-standard forms and may vary in their fonts.

Page 19: Auotomatic Number Plate System

4.3 Image Processing Pre- Processing: The pre-processing is the first step in number plate recognition. It

consists the following major stages: 1.Binarization, 2.Noise Removal

Binarization: The input image is initially processed to improve its quality and prepare it

to next stages of the system. First, the system will convert RGB images to gray-level

images.

Noise Removal: In this noise removal stage we are going to remove the noise of the

image i.e., while preserving the sharpness of the image. After the successful Localization

of the Number Plate, we go on with Optical Character Recognition which involves the

Segmentation, Feature extraction and Number plate Recognition.

4.4 Character Segmentation Segmentation is one of the most important processes in the automatic number plate

recognition, because all further steps rely on it. If the segmentation fails, a character can

be improperly divided into two pieces, or two characters can be improperly merged

together. We can use a horizontal projection of a number plate for the segmentation, or

one of the more sophisticated methods, such as segmentation using the neural networks.

In this segmentation we use two types of segmentation: 1. Horizontal segmentation 2.

Vertical segmentation. First we have performed vertical segmentation on the number

plate then the characters are vertically segmented. After performing vertical segmentation

we have to perform horizontal segmentation by doing this we get character from the

plate.

4.5 Character Recognition We have to recognize the characters we should perform feature extraction which is the

basic concept to recognize the character. The feature extraction is a process of

transformation of data from a bitmap representation into a form of descriptors, which are

more suitable for computers. The recognition of character should be invariant towards the

user font type, or deformations caused by a skew. In addition, all instances of the same

character should have a similar description. A description of the character is a vector of

numeral values, so called descriptors or patterns.

Page 20: Auotomatic Number Plate System

Figure 4.3: flow chart of the OCR process

4.6 End output Recognized Number plate of the vehicle

Figure 28: Output of OCR on Segmented License Plate

HRO8 N 4446

FIG 4.4 Output Image

Page 21: Auotomatic Number Plate System

CONCLUSIONThis paper presents a recognition method in which the vehicle plate image is obtained by

the digital cameras and the image is processed to get the number plate information. A rear

image of a vehicle is captured and processed using various algorithms. Further we are

planning to study about the characteristics involved with the automatic number plate

system for better performance.