-
8/3/2019 Final_Master's Project Report - Ziad Siddique
1/48
FINGERPRINT IDENTIFICATION FOR CYRIX MEDIAGX BASED EMBEDDED SYSTEM
Ziad S Siddique
B.S., The University of Mississippi, 2006
PROJECT
Submitted in partial satisfaction of
the requirements for the degree of
MASTER OF SCIENCE
in
COMPUTER ENGINEERING
at
CALIFORNIA STATE UNIVERSITY, SACRAMENTO
SPRING2010
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
2/48
ii
FINGERPRINT IDENTIFICATION FOR CYRIX MEDIAGX BASED EMBEDDED SYSTEM
A Project
by
Ziad S Siddique
Approved by:
__________________________________, Committee ChairJing Pang, Ph. D.
__________________________________, Second ReaderPreetham Kumar, Ph. D.
____________________________Date
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
3/48
iii
Student: Ziad S Siddique
I certify that this student has met the requirements for format contained in the University format
manual, and that this project is suitable for shelving in the Library and credit is to be awarded for
the Project.
__________________________, Graduate Coordinator ________________Suresh Vadhva, Ph. D. Date
Department of Computer Engineering
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
4/48
iv
Abstract
of
FINGERPRINT IDENTIFICATION FOR CYRIX MEDIAGX BASED EMBEDDED SYSTEM
by
Ziad S Siddique
Nowadays portable devices like cell phones, smart phones, PDA, net books and laptops
have become household items. People, for their own convenience love taking computers
or personal data with them at all times. Having these portable devices with us enables
frequent access to mails, lookup someones information in an easily accessible and
searchable form and much more information we need can be obtained instantly. The very
portability of these devices presents a problem: In the case of any of these devices getting
lost or stolen, it will provide other people access to our emails, photos and other personal
information.
Biometric Fingerprint readers offer an ideal solution to this problem. It is much
better than very secure password, and a fingerprint match is required before gaining
access to information in specific devices. In this project, I have researched and
implemented a Fingerprint Identification Process application for a specific embedded
system. In conclusion, this project identified mechanisms and features of Fingerprint
Identification that can be utilized for application and implementation in specific systems.
_______________________, Committee ChairJing Pang, Ph. D.
_______________________Date
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
5/48
v
ACKNOWLEDGMENT
First, I would like to extend my gratitude to my advisor Dr. Jing Pang for the invaluable
advice and positive encouragement she provided throughout the course of this project.
She inspired me greatly to work on this project. Special thanks to Dr. Preetham Kumar
for proofreading this dissertation. Besides, I would also like to thank The Department of
Computer Engineering for providing me a good environment and facilities to complete
this project successfully.
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
6/48
vi
TABLE OF CONTENTS
Page
Acknowledgment .......................................................................................................... v
List of Tables ............................................................................................................. vii
List of Figures ........................................................................................................... viii
Chapter
1. INTRODUCTION .................................................................................................. 1
2. CYRIX MEDIAGX ARCHITECTURAL SYSTEM OVERVIEW ....................... 2
2.1 Cyrix MediaGX Processor Overview ......................................................... 4
2.2 Cyrix MediaGX Cx5510 Processor Overview ........................................... 4
2.3 Compatible Operating System and Compiler ............................................. 5
3. FINGERPRINT IDENTIFICATION PROCESS IMPLEMENTATION ............. 6
3.1 Design Flow ................................................................................................ 7
3.2 BMP File Format ........................................................................................ 8
3.3 Image Normalization ............................................................................... 11
3.4 Edge Detection .......................................................................................... 15
3.5 Image Binarization .................................................................................... 18
3.6 Noise Filter ................................................................................................ 20
3.7 Image Thinning ........................................................................................ 23
3.8 Minutiae Extraction ................................................................................. 28
3.9 Experimental Result .................................................................................. 32
4. LIMITATIONS .................................................................................................... 33
5. CONCLUSIONS................................................................................................... 35
Bibliography ............................................................................................................... 36
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
7/48
vii
LIST OF TABLES
Page
1. Table 1 BMP (windows) header format (54 bytes) ......................................... 9
2. Table 2 5X5 Laplacian of gaussian convolution kernel ................................. 17
3. Table 3 3X3 Window frame for noise filter ................................................... 20
4. Table 4 Properties of crossing number .......................................................... 29
5. Table 5 Experimental result of minutiae extraction ....................................... 32
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
8/48
viii
LIST OF FIGURES
Page
1. Figure 1 Cyrix mediagx system architecture ................................................... 2
2. Figure 2 Fingerprint identification design flow ............................................... 7
3. Figure 3 Bitmap image format ......................................................................... 8
4. Figure 4 Data offset starting location equation .............................................. 10
5. Figure 5 Histogram distribution of grayscale image ...................................... 11
6. Figure 6 Weighted arigthmatic mean ............................................................. 12
7. Figure 7 Population variance ......................................................................... 12
8. Figure 8 Image normalization equation ......................................................... 13
9. Figure 9 Normalized bitmap image ............................................................... 14
10. Figure 10 Graphical representation of laplacian method ............................... 15
11. Figure 11 Laplacian equation ......................................................................... 16
12. Figure 12 Laplacian of gaussian equation ..................................................... 16
13. Figure 13 Edge detected bitmap image .......................................................... 17
14. Figure 14 Bi-modal intensity distribution ...................................................... 18
15. Figure 15 Binarized bitmap image ................................................................. 19
16. Figure 16 Noisy white pixel conversion ........................................................ 20
17. Figure 17 Noisy black pixel conversion ........................................................ 20
18. Figure 18 Eight combination to determine white pixel validity .................... 21
19. Figure 19 Eight combination to determine black pixel validity .................... 21
20. Figure 20 Filtered bitmap image .................................................................... 22
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
9/48
ix
21. Figure 21 3X3 Window frame for hilditch algorithm .................................... 23
22. Figure 22 Eight combinations for 1st
level hilditch algorithm ....................... 24
23. Figure 23 Eight combinations for 2nd
level hilditch algorithm ...................... 24
24. Figure 24 Cases to retain pixel value ............................................................. 25
25. Figure 25 Thinned bitmap image ................................................................... 27
26. Figure 26 3X3 window frame for minutiae extraction .................................. 28
27. Figure 27 Crossing number equation ............................................................. 28
28. Figure 28 Example of crossing number properties ........................................ 29
29. Figure 29 Example of false minutiae structure .............................................. 30
30. Figure 30 Angle shown for minutiae point .................................................... 30
31. Figure 31 Polar coordinates equation ............................................................ 31
32. Figure 32 Thinned bitmap image for minutiae extraction ............................. 31
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
10/48
1
Chapter 1
INTRODUCTION
Nowadays portable devices like cell phones, smart phones, PDA, net books and laptops
have become common household items. Having these portable devices with us at all
times enables frequent access to mails, lookup information in an easily accessible and
searchable form, and much important information that we need for daily usage can be
obtained instantly. However, due to the portability of these devices, in the case of losing
or getting any of these devices stolen, it can provide others access to our emails, photos
and many other personal information.
Biometrics offers an ideal solution to this problem. Biometrics takes our unique
physical characteristics and uses them to identify our identification and verification. It is
much better than even very secure passwords, and an identity match is required before
one can gain access to the information in specific devices. This project looked into
biometrics Fingerprint Identification Process implementation for a specific embedded
system.
As a first phase of the project, I researched the architectural overview of Cyrix
MediaGX based embedded system. In addition, I researched and tried installing different
operating systems that would be compatible with the instruction set of the system.
During the second phase of the project, I identified and implemented fingerprint
identification that included sequence of image enhancement and identity point collection
for better verification results.
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
11/48
2
Chapter 2
CYRIX MEDIAGX ARCHITECTURAL SYSTEM OVERVIEW
The introducing of the Cyrix MediaGX system in February 1997 established a new class
of low cost, high performance PC architectures [1]. The general principle is that more
processing that occurs in PCs CPU side, the more efficient the overall system
performance. The MediaGx architecture integrates graphics and audio functions, PCI
Interface and memory control unit into processor unit. This feature eliminates potential
system conflicts and end user configuration problems. The MediaGX system consists of
two chipsthe Cyrix MediaGX processor and Cyrix MediaGX Cx5510 companion chip
[2]. The audio and video functions of the two chips operate under the control of the
Virtual System Architecture (VSA) design.
Figure 1: Cyrix mediagx system architecture [2]
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
12/48
3
In figure 1, it shows the architectural overview of a Cyrix MediaGX based system. Where
communication is established between CPU and companion chip Cx5510 through PCI
Bus. A 64 bit Data Bus is present to access EDO DRAM memory. In addition,
companion chip Cx5510, connects to the I/O devices through ISA and IDE Bus.
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
13/48
4
2.1 Cyrix MediaGX Processor Overview:
MediaGx processor is an x86 compatible processor that directly communicates with PCI
interface and EDO DRAM over a dedicated 64-bit Data Bus. High quality SVGA is
provided by advance graphics accelerator on the MediaGX processor [2]. Graphics are
handled by dedicated pipeline on the CPU itself and display controller is also located at
main processor. Cyrix MediaGX processor core operates at 3.3 or 3.6 volt power supply.
Among other features, it includes [2]
PR (Performance Rating)-133 performance at 133 MHzIntegrated Floating Point Unit
16-KByte Unified L1 Cache
64-bit FPM/EDO DRAM Controller
2.2 Cyrix MediaGX Cx5510 Processor Overview:
Cyrix MediaGx Cx5510 is a new generation integrated, single chip controller for
MediaGX line of x86 compatible. This companion chip houses the audio controller and
uses Virtual System Architecture software to mimic the functionality of industry standard
audio chips. The Cx5510 is a bridge to ISA bus, IDE and I/O ports [2]. It bridges
MediaGX processor over PCI Bus to ISA Bus and performs traditional chipset functions.
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
14/48
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
15/48
6
Chapter 3
FINGERPRINT IDENTIFICATION PROCESS IMPLEMENTATION
Fingerprints are the oldest and most widely used biometric form for identification
because of their high acceptability [5]. There have been considerable amount of interests
and rapid advanced research and development in the field of pattern recognition
automation for last three decades. Today, the use of computers in fingerprint
identification is highly desirable in many applications. Building security systems and
work related to law-enforcement are most common examples of usage of fingerprint
identification and recognition process [6]. This project focuses on the software
implementation of fingerprint identification process. The most commonly used Minutiae
Based Fingerprint Identification Process is introduced as part of software development.
Series of image enhancement and Minutiae Extraction steps are included in the process
that can be classified as following phases [5]:
1. Histogram Normalization
2. Edge Detection
3. Image Binarization
4. Noise Filter
5. Image Thinning
6. Minutiae Extraction
A specific image format, BMP file format is taken into consideration for this project
work.
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
16/48
7
Input
Bitmap Image (.BMP)
Apply Edge Detection
(Laplacian Algorithm)
Edge Detected
Bitma Ima e .BMP
Apply Noise Filter
Apply Binarization
Binarized
Bitmap Image (.BMP)
ApplyThinning
(Hilditch Algorithm)
Thinned
Bitmap Image (.BMP)
Final
Minutiae Extracted
Data File (.TXT)
ApplyMinutiae ExtractionAlgorithm
Apply Histogram Normalization
Normalized
Bitma Ima e .BMP
Filtered
Bitmap Image (.BMP)
3.1 Design Flow:
Figure 2: Fingerprint identification design flow
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
17/48
8
3.2 BMP File Format
Windows bitmap files are stored in a device independent format so that the bitmap can be
displayed in any display device. The term Device Independent means bitmap specifies
pixel color in a form which is independent of the method used by display to represent
color [7]. By default a windows bitmap file extension is .BMP. Each individual Image
file formal is structured uniquely. In the process of image manipulation, it is very
important to understand a particular image file format. Image file format consists of a
header and data offset information. BMP image file format is structured with bitmap file
header, bitmap information header, a color table, and array of bytes representing the
bitmap bits also known as data offset [8].
Figure 3: Bitmap image format [8]
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
18/48
9
offset Size(bytes) Description
0 2 Signature
2 4 size of BMP file
6 2 Reserved
8 2 Reserved
10 4 offset to start of image data in bytes
14 4 size of BITMAPINFOHEADER structure, must be 40
18 4 image width in pixels
22 4 image height in pixels
26 2 number of planes in the image
28 2 number of bits per pixel
30 4 compression type
34 4 size of image data in bytes
38 4 horizontal resolution in pixels per meter
42 4 vertical resolution in pixels per meter
46 4 number of colors in image
50 4 number of important colors
Table 1: BMP (windows) header format (54 bytes) [9]
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
19/48
10
A part of function used to retrieve FileSize, ImageWidth, ImageHeight,NumberOfColors:
fseek(inputFile, offset, SEEK_SET);
for(i=1; i
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
20/48
11
3.3 Image Normalization:
Image enhancement is one of the very important procedures in fingerprint Identification
Process. Image normalization is well known in fingerprint enhancement process. It is
necessary to apply normalization on overexposed (too bright) or underexposed (too light)
gray scale input image [10]. The aim of this process is to standardize the intensity of an
image by adjusting the grey level value so that it lies within desired range of values [11].
Normalization factor is calculated according to the Mean and Variance of an image.
Different grayscale image input images have different Mean and Variance depending on
the lighting conditions. In order to change the appearance of the image several
calculations are performed to approximate desired Mean and Variance [10]. It is required
to construct a histogram with pixel intensity values for obtaining desired mean and
variance for one given input image. The histogram distribution shown in figure 5 is
obtained by collecting pixels intensity for a given gray scale input image.
Figure 5: Histogram distribution of grayscale image [12]
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
21/48
12
In an image-processing context, histogram normally refers to the graphical distribution of
pixel intensity values. There are 256 different possible intensities for 8 bits per pixel
grayscale image. The histogram will graphically display those 256 numbers with the
distribution of pixels amongst those grayscale values. The histogram algorithm operates
by first reading the grayscale value with pixel intensity 0 to 255 at the first entry [12].
The array of pixel intensity counts total number of pixels that has the same value. Then
the frequency is calculated diving the counter values for each pixel by the total number of
pixels.
Mean and Variance value calculation can be achieved using the mean and variance
arithmatic equations on the collected histogram data.
n
i i
ni ii
W
W
1
1(3.3.1)
Figure 6: Weighted arithmatic mean [13]
As shown in the figure 6, representing it into code:
Mean = 0;
for(i=1; i
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
22/48
13
As shown in the figure 7, is the Variance and representing it into code:
Sigma = 0;
for(i=0; i
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
23/48
14
Normalization does not change the ridge structure of an image. It is performed to
standardise the dynamic level of variation in gray level values. The resulting image
shown in Figure 9 is obtained by applying histogram normalization on a grayscale image.
Input: Grayscale image Output: Normalized image
Figure 9: Normalized bitmap image
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
24/48
15
3.4 Edge Detection:
Edges characterizes image boundaries and it is very important in image processing.
Edges are the areas in an image with high intensity contrasts, change of intensity in pixel
value from one pixel to neighboring pixels. Image Edge Detection preserves the
structural properties of an image by reducing large amount of variable data and filtering
out useless information [15]. The result of successful implementation of edge detection
substantially simplifies the task of interpreting information from original image.
However, it is not always possible to obtain ideal edge detection for moderately complex
images. There are many ways to perform Edge Detection. Majority of the different
methods are categorized into group in two ways, either gradient and Laplacian [15].
The Gradient Method detects the edges by looking for the maximum and minimum value
from the first derivative of the image. Laplacian Method searches for the zero crossing on
the second derivative of images to find the edges.
Actual Data Point
First Order Derivative Second Order Derivative
Figure 10: Graphical representation of laplacian method [15]
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
25/48
16
Laplacian of Gaussian filter is also known as convolution filter, and is implemented to
detect edges for a given image. This filter applies Gaussian blur in first level, then
Laplacian filter and finally checks for zero crossings [16]. Highlighted edges are result of
this filter. The Laplacian of the Gaussian filter operator takes single grayscale image as
input and generates an output close to binary image [16].
Laplacian L(x, y) operator of an image with pixel intensity of I(x, y) is shown below:
2
2
2
2
,y
I
x
IyxL (3.4.1)
Figure 11: Laplacian equation [16]
Laplacian of Gaussian can be pre-calculated in advance and only one convolution filter
will be applied on the image during run time. 2-D Laplacian of Gaussian function
centered on zero with standard deviation has the form:
2
22
2
22
42
21
1,
yx
eyx
yxLoG (3.4.2)
Figure 12: Laplacian of gaussian equation [16]
Where LoG is a 2-D Laplacian of Gaussian function with coordinates x, y and is the
standard deviation.
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
26/48
17
The 2-D Laplacian of Gaussian (LoG) can be approximated by a 5X5 convolution kernel,
such as:
0 0 1 0 0
0 1 2 1 0
1 2 -16 2 1
0 1 2 1 0
0 0 1 0 0
Table 2: 5X5 Laplacian of gaussian convolution kernel [17]
The code base implementation of edge detection using Laplacian of Gaussian
convolution kernel as shown in table 3:
for(row=0; row
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
27/48
18
3.5 Image Binarization:
Fingerprint Binarization is a very important part of Fingerprint Identification System.
Minutiae Extraction algorithm is applied on a binary image with two level of intersection:
the black pixel represents valleys and the white pixel represents ridges [11]. Binarization
is the process of converting a gray image to binary image with only black and white pixel
values, which improves the contrast between ridges and valleys [11]. Threshold Value is
applied on the gray image for the binary image conversion. If the pixel intensity value is
higher than the Threshold, it will be set to 255 (White). Otherwise, it will be set to 0
(Black) [18]. In the output binary image, black pixels correspond to background and
white pixels correspond to foreground. It is possible to segment an image by checking the
intensity histogram of the image. The intensity of pixels within foreground objects is
different from the intensity of pixels within background. In this case, distinct peaks are
expected in the histogram corresponding to foreground objects such that a threshold can
be chosen to isolate the foreground and background objects accordingly.
Figure 14: Bi-modal intensity distribution [19]
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
28/48
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
29/48
20
3.6 Noise Filter:
Noise reduction is a process of filtering a specific pixel data offset depending on
surrounding pixel value. In this project, the noise filter is utilized right after converting a
gray image into binary image. A 3X3 matrix positioning is used to filter an image.
Top Left Pixel Data Top Pixel Data Top Right Pixel Data
Left Pixel Data Actual Pixel Data Right Pixel Data
Bottom Left Pixel Data Bottom Pixel Data Bottom Right Pixel Data
Table 3: 3X3 Window frame for noise filter
This positioning process determines the validity of actual pixel data. In case of any pixel
with value 255 (white) surrounded by pixels with values 0 (black), this pixel is
considered as noise or invalid data. For the same reason pixels with 0 value surrounded
by pixels with values 255.
Figure 16: Noisy white pixel conversion
Figure 17: Noisy black pixel conversion
As shown in figure 16, a single white pixel was removed as noise and replaced with a
black pixel. In figure 17, a single black pixel was removed as noise and replaced with a
white pixel. Eight combinations have been taken into consideration to identify a valid
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
30/48
21
white or black pixel value. In 3X3 matrix positioning, the middle location is the current
processed pixel data. A valid pixel value would retain original data if its one or more
surrounding location pixels have the same value as the actual pixel data.
Figure 18: Eight combinations to determine white pixel validity
Figure 19: Eight combinations to determine black pixel validity
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
31/48
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
32/48
23
3.7 Image Thinning:
Image thinning is final image enhancement process implemented prior to Minutiae
Extraction. Thinning, a morphological process applied on a binary image to remove
selected foreground pixels [20]. Thinning algorithm forms skeletonization of a binary
image while preserving the connectivity of the ridge structure [11]. In this mode it is
commonly used to erode away foreground pixels until the images edges are one pixel
wide. Thinning is normally only applied on a binary image and the output is also a binary
image. Different algorithm uses different approaches to solve the problem of thinning.
Thinning algorithms are broadly divided into two groups: iterative and non-iterative [21].
Iterative algorithm is also subdivided into two parts: sequential and parallel. In sequential
iterative algorithm, surrounding pixels help making the decision for single pixel data. On
the other hand, in parallel iterative algorithm pixels are independently judged for
decision-making [22, 23]. This thinning phase is implemented using Hilditch algorithm.
The proposed algorithm belongs to sequential group. The 3X3 window frame is
considered to implement Hilditch algorithm as follows:
Figure 21: 3X3 Window frame for hilditch algorithm [24]
Where, pixel P0 is actual pixel with set of 8 Neighborhoods P1-8.
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
33/48
24
A counter is introduced as part of this algorithm. If the actual foreground pixel is white,
the verified eight combinations are as follows:
255 X X X 255 X X X 255 X X X
X P0 X X P0 X X P0 X X P0 255
X X X X X X X X X X X X
X X X X X X X X X X X X
X P0 X X P0 X X P0 X 255 P0 X
X X 255 X 255 X 255 X X X X X
Figure 22: Eight combinations for 1st
level hilditch algorithm [25]
In the figure 22, eight combinations with actual pixel P0 in the center and X represents
dont care for the individual cases. If it satisfies any of the combination then the counter
is incremented by one for each case. If the counter value falls in between 2 and 6 then the
next combinations verified are as follows:
X X 0 X X X X X X X X X
X P0 255 X P0 0 X P0 X X P0 X
X X X X X 255 X 255 0 255 0 X
X X X 255 X X 0 255 X X 0 255
255 P0 X 0 P0 X X P0 X X P0 X
0 X X X X X X X X X X X
Figure 23: Eight combinations for 2nd level hilditch algorithm [25]
Where clockwise surroundings 255, 0 and X represents white pixel, black pixel and dont
care with centered actual pixel P0.
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
34/48
25
The counter is set to zero and incremented by one if any of the cases are satisfied as
shown in figure 23. The last stage, which will determine if the actual pixel value is to be
converted from foreground (white) to background (black) pixel is as follows:
P2
P4 P8 P4
P6 P6
(a) (b)
P2 P2
P8 P8 P4
P6
(c) (d)
Figure 24: Cases to retain pixel value [25]
As shown in figure 24, if the counter value is one from the previous stage and the
multiple of pixel values located at numbered locations of the four stages are zeros then
the actual foreground pixel is converted to a background pixel. To be more specific if,
P2* P4* P6=0 from stage (a) and P4* P6* P8 =0 from stage (b) or P2* P6* P8=0 from
stage (c) and P2* P4* P8 =0 from stage (d) then foreground pixel white (255) is changed
to background pixel black (0) [25]. The code implementation of this algorithm is as
follows:
// foreground actual pixel
if (actual == 255)
{
count = 0;
//a) checking pixel 1, has 2 to 6 (inclusive) neighbors
if (right == 255) { count++;}if (bottomRight == 255) { count++;}
if (bottom == 255) { count++;}
if (bottomLeft == 255) { count++;}
if (left == 255) { count++;}
if (topLeft == 255) { count++;}
if (top == 255) { count++;}
if (topRight == 255) { count++;}
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
35/48
26
if ((count >= 2) && (count
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
36/48
27
The images obtained in the process of three level thinning are as follows:
1st level Thinning:
Input: Binarized image Output: 1st
level Thinned image
2nd level Thinning:
Input: 1st
level Thinned image Output: 2nd
level Thinned image
Final Thinning:
Input: 2nd
level Thinned image Output: Final Thinned image
Figure 25: Thinned bitmap image
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
37/48
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
38/48
29
Using the properties of Crossing Number (CN) as shown in the table 1, ridge pixel can be
classified as ridge ending, bifurcation or no minutiae point. A ridge pixel with CN value
of one corresponds to ridge ending and CN value three corresponds to bifurcation.
CN Property
1 Ridge Ending
2 No Minutiae Point
3 Bifurcation
Table 4: Properties of crossing number [11]
(a) CN=1 (b) CN=2 (c) CN=3
Ridge Ending No Minutiae Point Bifurcation
Figure 28: Example of crossing number properties [29]
All the preprocessing stages including normalization, image enhancement, filtering, and
thinning do not guarantee 100% heal fingerprint identification. False minutiae such as
breaking ridges, spurious ridges and holes, can be introduced due to blurry noisy images
and image manipulation through thinning process [30]. So, after minutiae are extracted it
is necessary to implement postprocessing algorithm to eliminate false minutiae.
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
39/48
30
(a) Spur (b) Hole (c) Triangle (d) Spike
Figure 29: Example of false minutiae structure [11]
As shown in the figure 29, spur will create false ridge ending, hole and triangle both will
create false bifurcation and spike will create both false ridge ending and bifurcation.
Minutiae point can be validated using postprocessing algorithm proposed by Tico and
Kuosmanen [31]. Similar to other techniques, this algorithm operates on thinned
(skeleton) image. This postprocessing is not implemented as a part of this project. To
determine the actual position and location apart from x and y coordinate of minutiae
point, it requires to finding angles of minutiae with respect to origin (0,0) pixel.
(a) Ridge Ending (b) Bifurcation
Figure 30: Angle shown for minutiae point [32]
Where X0 and Y0 are coordinates for Minutiae point and is the angle.
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
40/48
31
As shown in the figure 30, it is possible to find an angle for a known x and y coordinate
of minutiae point. The equations to convert a Cartesian coordinates to Polar Coordinates
to determine the angle are as follows:
FunctionTangentx
ya
TheoremPythagorasyxr
tan
22
(3.8.2)
Figure 31: Polar coordinates equation [33]
Where (x, y) are Cartesian Coordinates and (r, ) are Polar Coordinates.
As mentioned earlier Minutiae Extraction is applied on a thinned image. The image used
for minutiae extraction is shown below:
Figure 32: Thinned bitmap image for minutiae extraction
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
41/48
32
3.9 Experimental Result:
Part of the Minutiae Extraction experimental result is shown in table 5. First column in
the table 2 represents minutiae points whether it is ridge ending (1) or bifurcation (3).
The angle is calculated using the Polar coordinates equation as shown in figure 31,
with respect to (0,0) origin. The X and Y are respectively Cartesian coordinates for a
minutiae point.
Crossing Number Angle X Y
3 270 113 86
1 225 114 89
3 67 135 90
3 135 114 92
1 225 116 92
3 292 115 93
3 45 127 94
1 315 110 99
3 67 124 102
3 270 125 102
1 90 115 103
3 292 125 103
3 292 110 1041 22 108 105
3 292 110 105
3 67 69 106
3 67 108 106
1 202 128 121
3 67 128 122
3 67 54 124
3 45 54 125
3 202 55 125
3 67 130 125
1 292 123 126
Table 5: Experimental result of minutiae extraction
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
42/48
33
Chapter 4
LIMITATIONS
Cyrix MediaGX based Embedded System and Fingerprint Identification application have
some limitations.
In terms of hardware limitation, this system has only 64 Megabytes of Dynamic
Random Access Memory. Any image manipulation requires more than 64 Megabytes of
dynamic memory access will end up in memory out of allocation error. As a result,
implementation requires complex calculation to determine if the dynamic memory access
falls into the range of the limited memory. Both the system and the hard drive require
twelve volts, five volts and ground source connection. A parallel power supply splitting
from same source will not have enough voltage to power up both devices. To resolve this
issue, two separate sources of power supply are provided to power up the system board
and hard drive.
In terms of software limitation, the application will only accept images with
image height and width less than or equal to 128. This limitation is directly related to the
hardware limitation. As this system can only handle up to 64 megabytes of dynamic
memory, any image greater than the size mentioned above will violate the rule. The
different image enhancement and manipulation operations might result in losing
significant segment of fingerprint data. In addition, the false minutiae points were not
totally filtered at the last phase of minutiae extraction. These constraints falls into
consideration while collecting the minutiae points for a given image. As a result, the
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
43/48
34
fingerprint matching will provide 70-80 percent accurate result for a given collected
Minutiae point.
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
44/48
35
Chapter 5
CONCLUSIONS
The primary goal of this project is to identify, implement and illustrate an application for
a specific embedded system that can be utilized in terms of the security of system
information. Today, for securing information, many portable devices are equipped with
latest biometrics identification tools, and Biometric enabled intelligence tools have
quickly become accepted as immediate solution of identity problems. Examples include,
but are not limited to face recognition, fingerprint recognition, DNA, hand and palm
geometry and iris recognitions. If any of these identification processes fail to verify an
individual, then it will be quite impossible to access any personal or private information
from the system. There are still lots of provisions in improving biometrics to achieve
accuracy in terms of indentifying exact individual. Improving identification algorithm,
having clearer input data and improving many other constraints will provide high
successful ratio for achieving desired results.
In this project, I have successfully implemented fingerprint identification process
to secure the personal information of a system. In addition, I have presented algorithms to
improve quality of scanned image so that accurate data can be collected for identification.
Next, a matching technique can be implemented utilizing valuable information provided
from this project and enhance the feature of algorithm implemented for more accurate
result.
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
45/48
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
46/48
37
[9] T. Gruber Software, Inc., BMP (Windows) Header Format, 2001. [Online].
Available: http://www.fastgraph.com/help/bmp_header_format.html. [Accessed: Mar. 24,
2010].
[10] L. Hong, Y. Wan, and A. Jain, "Fingerprint image enhancement: Algorithm and
performance evaluation", IEEE Trans. Pattern Analysis and Machine Intell., vol. 20, no.
8, pp. 777--789, Aug. 1998.
[11] R. Thai, "Fingerprint Image Enhancement and Minutiae Extraction" Honours
project, The University of Western Australia, 2003.
[12] R. Fisher, S. Perkins, A. Walker, E. Wolfart, Intensity Histogram - Hypermedia
Image Processing Reference, 2000. [Online]. Available:
http://homepages.inf.ed.ac.uk/rbf/HIPR2/histgram.htm. [Accessed: Mar. 24, 2010].
[13] G.H. Hardy, J.E. Littlewood, G. Plya, "Inequalities (2nd ed.)", Cambridge
University Press, 1988.
[14] M. Loeve, "Probability Theory", Graduate Texts in Mathematics, Springer-Verlag,
4th edition, Vol. 45, p. 12, 1977.
[15] B. Green, Edge Detection Tutorial, 2002. [Online]. Available:
http://www.pages.drexel.edu/~weg22/edge.html. [Accessed: Mar. 24, 2010].
[16] R. Fisher, S. Perkins, A. Walker, E. Wolfart, Laplacian/Laplacian of Gaussian -
Hypermedia Image Processing Reference, 2000. [Online]. Available:
http://homepages.inf.ed.ac.uk/rbf/HIPR2/log.htm. [Accessed: Mar. 24, 2010].
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
47/48
38
[17] R. Wang, Laplacian of Gaussian (LoG), Sep, 2009. [Online]. Available:
http://fourier.eng.hmc.edu/e161/lectures/gradient/node10.html. [Accessed: Mar. 24,
2010].
[18] E. Davies, "Machine Vision: Theory, Algorithms and Practicalities", Academic
Press, Chap. 4, 2003.
[19] R. Fisher, S. Perkins, A. Walker, E. Wolfart, Thresholding, 2000. [Online].
Available: http://homepages.inf.ed.ac.uk/rbf/HIPR2/threshld.htm. [Accessed: Mar. 24,
2010].
[20] R. Gonzalez, R. Woods, "Digital Image Processing", Addison-Wesley Publishing
Company, pp 518 - 548, 1992.
[21] S. Ahmed, M. Sharmin, C. M. Rahman, "A Generic Thinning Algorithm with Better
Performance", Thesis Report, Bangladesh University of Engineering and Technology,
Dhaka.
[22] V. Ubeda, "A Parallel Thinning Algorithm Using KxK Masks", JPRAI(7) , pp.
1183-1202, 1993.
[23] Z. hang, Y.Y. Wang, "A New ParallelThinning Methodology", IJPRAI(8), pp.999-
1011, 1994.
[24] M. Yin, S. Narita, "Speedup Method for Real-Time Thinning Algorithm", Digital
Image Computing Techniques and Applications, Jan. 2002
[25] D. Azar, "Hilditch's Algorithm for Skeletonization", Pattern Recognition course,
McGill University, 1997.
-
8/3/2019 Final_Master's Project Report - Ziad Siddique
48/48
39
[26] J. C. Amengual, A. Juan, J. C. Prez, F. Prat, S. Sez, J. M. Vilar, "Real-time
minutiae extraction in fingerprint images", Proc. of the 6th Int. Conf. on Image
Processing and its Applications, pp. 871875, Jul. 1997.
[27] B. M. Mehtre, "Fingerprint image analysis for automatic identification",
Machine Vision and Applications, Vol. 6, no. 2, pp. 124139, 1993.
[28] S. Kasaei, M. D., B. Boashash, "Fingerprint feature extraction using block-direction
on reconstructed images" ,IEEE Region 10 Conf., digital signal Processing applications,
TENCON, pp. 303306, Dec. 1997.
[29] F.A. Afsar, M. Arif, M. Hussain, "Fingerprint Identification and Verification System
using Minutiae Matching",National Conference on Emerging Technologies, 2004.
[30] Q. Xiao, H. Raafat, "Fingerprint image postprocessing: a combined statistical and
structural approach"Pattern Recognition, Vol. 24, no. 10, pp. 985992, 1991.
[31] M. Tico, P. Kuosmanen, "An algorithm for fingerprint image postprocessing" In
Proceedings of the Thirty-Fourth Asilomar Conference on Signals, Systems and
Computers, vol. 2, pp. 17351739, Nov. 2000.
[32] M. Kaur, M. Singh, A. Girdhar, P. S. Sandhu, "Fingerprint Verification System
using Minutiae Extraction Technique", World Academy of Science, Engineering and
Technology, Vol. 46, 2008.
[33] Polar and Cartesian Coordinates, [Online]. Available:
http://www.mathsisfun.com/polar-cartesian-coordinates.html. [Accessed: Mar. 24, 2010].