Final_Master's Project Report - Ziad Siddique

Embed Size (px)

Citation preview

  • 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].