2
2
Human fingerprints are rich in details called minutiae, which can be used as
identification marks for fingerprint verification. The goal of this project is to
develop a complete system for fingerprint verification through extracting
and matching minutiae. To achieve good minutiae extraction in fingerprints
with varying quality, preprocessing in form of image enhancement and
binarization is first applied on fingerprints before they are evaluated. Many
methods have been combined to build a minutia extractor and a minutia
matcher. Minutia-marking with false minutiae removal methods are used in
the work. An alignment-based elastic matching algorithm has been
developed for minutia matching. This algorithm is capable of finding the
correspondences between input minutia pattern and the stored template
minutia pattern without resorting to exhaustive search. Performance of the
developed system is then evaluated on a database with fingerprints from
different people
1
1.1 INTRODUCTION
2
credit card number for each of their purchases. Many times, a
person’s credit card number can be stolen and misused. If a
biometric recognition system is applied, it can help reducing the
risk of shopping online to an extent.
The use of fingerprint recognition has existed as a means of
identification for many years. Not only fingerprints are more
accessible, but also fingerprint recognition systems generally have
lower costs, faster speed, and more reliability compare to other
biometric recognition methods.
Each person has a different pattern of fingerprint, and these
patterns are made of ridges, which make loops and whirls that are
unique to each person.
3
2
Fingerprints are commonly classified as 5 different types:
whorl, left loop, right loop, arch, and tented arch. For most
recognition systems, difficulties arise in distinguishing between
fingerprints of the same type. Many recognition systems used
neural networks to find minutiaes, the ridge ends or splits, in
fingerprints to match a fingerprint. Since the number of minutiaes
varies among fingerprint, many people have tried to exploit this
fact to enhance fingerprint matching. However, the image quality is
very critical to minutiaes detection as we will discuss later. The
features extracted can also vary in length depends on the type. This
has resulted in some difficulties in devising a classification system.
Our system is implemented so that it yields a fixed length of
features, and many classification schemes can be applied. It’s more
immune to noises because of the characteristic of Gabor filters that
the features only preserve directions and frequency at a location .
Compare our system and the minutiae-based systems, the
center point of the fingerprint is important to find for reference in
obtaining features. The orientation also plays an important role for
its accuracy. The algorithm for center point determination should
be consistent and a rotation algorithm should be applied for better
results.
5
Many of the problems for fingerprint recognition systems are
related to obtaining the fingerprint images. Plastic distortions,
scanning artifacts, scanning resolution, and uneven pressure are
examples of such issues. A system has to address these problems in
order to maintain reasonable and consistent results.
Fingerprint recognition is a type of image processing that
requires memory and computation. In order to have a reasonable
performance in speed, a recognition system has to take into
consideration of the hardware constraints as well.
6
1.2 METHOD
1.2.1 PRE-PROCESSING
7
v) compute the slope perpendicular to the local orientation of
each block using the following formula:
vi) for blocks with slopes ranging from 0 to π/2, trace a path
down until slope that is not ranging from 0 to π/2 is found
and mark it.
vii) compute the slope in the negative y direction and output an
x and y position which will be the center point of the
fingerprint for block that has the highest number of marks.
8
1.2.2 MINUTIAE DETECTION
9
flexibility on the image quality by just searching one
minutiae point near the center point of the fingerprint1.
10
To rotate an image both the angle of rotation and the origin
point are needed. To find the angle of rotation, 4 points are
needed: center point of image in database and input image,
and location of the same minutiae point for both images.
Then the angle is calculated using the following equation:
11
The method used to solve this problem is to do the reverse.
For every pixel in the rotated image, calculate which pixel in
the input maps to it. Doing this is simple because the
negative of the angle of rotation can be used. When mapping
back though the coordinates will also probably not be
integers, though the closest neighboring pixel can be used.
This implies that some output pixels will map to the same
input, but this is acceptable as it is very difficult to observe
and is significantly better than unmapped pixels.
12
The image is divided into 5 concentric bands, each with a
radius of 20 pixels, laid over the center point. The center
band has a radius of 12 pixels. The total diameter is
(20*5+12)*2-1 = 223 pixels. The five bands each contain 12
wedges. Therefore, there are 60 sectors for the image. The
center band is omitted, as its area is small relative to the other
bands. The radius values are specifically chosen so as to
avoid the effects of circular convolution.
13
preserve ridge and furrow structures, and provide information
contained in certain direction of the image.
14
Figure 4 : gabor filter
15
Fiθ - pixel values in ith sector for Gabor filter with angle θ
Piθ - mean of pixel values
Ki – number of pixels in ith sector
2.1.4 POST-PROCESSING
Mean Nearest Neighbor
We choose mean nearest neighbor as our classifier. One feature
vector from each individual person is calculated from the
training set and then saved in our database for future matching.
The feature vectors in the database are gathered from better
quality images. For a given fingerprint, we find that the
Euclidean distance between the target feature vector and feature
vector of each person in our database. The person that yields the
lowest distance is chosen and matched. As we have looked into
many classification schemes, the mean nearest neighbor requires
the least calculations to yield a result. It also consumes the least
storage space since it takes only one feature vector from each
person. Although this classifier does not take into account the
variations of fingerprints of the same person, it is sufficient
enough for our project.
2.1.5 ALGORITHM OVERVIEW
16
Figure 2- 5: ALGORITHM OVERVIEW
2.5 SIGNAL
FLOW
PC side EVM
“scanned” input Image rotation
Image and transformatio
n
Image centering
Sectorization and
Normalization
Minutiae locator.
17
18
3. Methods
20
extremely high quality images. If restrictions can be placed
on the quality of the input images then minutiae detection
could work. The
21
After performing, sectorization and normalization, the brightness
and contrast throughout the images became constant. There were
no variations apparent. The results of the 6 different Gabor filters
are shown in the figure below. By applying these filters, noise was
reduced, and the ridges in a similar direction to each filter were
preserved. A previous group performed Gabor filtering by using
the FFT and then the IFFT to obtain the result. By performing the
filtering in the time domain we were able to reduce the time and
memory requirements significantly.
22
Since we had a database of 5 individuals and 60 fingerprints each,
we partitioned these prints into a training set and a testing set. The
5 individuals all had the same type of fingerprint – loop. This made
it more challenging to do verification among the prints. The
training set consists of 15 prints that make up the database. They
are also used to determine the threshold for rejection. A few of the
remaining prints, many of which were of bad quality, were used as
the testing set.
23
Here is a sample of the results from the classifier when verifying a
fingerprint from Class 1:
Class Euclidean Distance
1 52195
2 95817
3 125299
4 86804
5 83989
As you can see the minimum distance among the results is for
Class 1. This implies that the fingerprint most closely matched
Class 1, which is correct. A thorough testing of the classifier was
not performed due to limitations in time. However, from the results
obtained the verification system seemed to perform extremely well
considering the fingerprints were all the same type.
24
MEMORY PAGING & PROFILE RESULTS
Code No of cycles
Rotation 191887842
Sectorization/ Filtering/Feature 1.022 x 1010
Gabor extraction
Due to the time limitation, not much optimization of the EVM code
was performed. Simple optimizations such as using a common
index for an array were done, but not DMA transfers. Further
optimization of both the rotation and the Sectorization/Gabor
Filtering code are definitely possible.
26
The reliability of any automatic fingerprint system strongly relies
on the precision obtained in the minutia extraction process. A
number of factors damage the correct location of minutia. Among
them, poor image quality is the one with most influence. The
proposed alignment-based elastic matching algorithm is capable of
finding the correspondences between minutiae without resorting to
exhaustive research. There is a scope of further improvement in
terms of efficiency and accuracy which can be achieved by
improving the hardware to capture the image or by improving the
image enhancement techniques. So that the input image to the
thinning stage could be made better, this could improve the future
stages and the final outcome
27
REFERENCES
28