IMPLEMENTATION OF FINGERPRINT BIOMETRIC TEMPLATE SYSTEM IN EMBEDDED SOFTWARE DESIGN NOR FARIZAN BINTI ZAKARIA UNIVERSITI TEKNOLOGI MALAYSIA

Size: px
Start display at page:

Download "IMPLEMENTATION OF FINGERPRINT BIOMETRIC TEMPLATE SYSTEM IN EMBEDDED SOFTWARE DESIGN NOR FARIZAN BINTI ZAKARIA UNIVERSITI TEKNOLOGI MALAYSIA"

Transcription

1 IMPLEMENTATION OF FINGERPRINT BIOMETRIC TEMPLATE SYSTEM IN EMBEDDED SOFTWARE DESIGN NOR FARIZAN BINTI ZAKARIA UNIVERSITI TEKNOLOGI MALAYSIA

2

3

4 IMPLEMENTATION OF FINGERPRINT BIOMETRIC TEMPLATE SYSTEM IN EMBEDDED SOFTWARE DESIGN NOR FARIZAN BINTI ZAKARIA A project report submitted in partial fulfillment of the requirements for the award of the degree of Master of Engineering (Electronic and Telecommunication) Faculty of Electrical Engineering Universiti Teknologi Malaysia MAY 2006

5

6 iii Specially dedicated to dearest family and beloved husband

7 iv ACKNOWLEDGEMENTS I would like to express my sincere appreciation to my supervisor, Prof. Dr. Mohammed Khalil Mohd Hani for his encouragements, patience, guidance, critics and friendship. Without his continued support and insights throughout this work, this thesis could not have been realized. I would also like to thanks my colleagues in ECAD Research Laboratory; Hau, Arul, Avinash, Shikin, Illiasak, Ch ng and Chew for their endless guidance throughout my research journey. Many thanks also conveyed to the technicians in ECAD laboratory, En. Zulkifli and En. Khomarudden. My utmost thanks goes to my families for their caring encouragement and moral support throughout my academic year. Special thanks to my husband, Mohd Zaki bin Yahaya for his untiring support, love and understanding. Lastly I would like to acknowledge, with many thanks to all my friends and whoever involve directly or indirectly, in making this thesis successful.

8 v ABSTRACT Reliable personal identification is necessary due to the growing importance of information technology and the necessity of protection and access restriction. The key task is to verify the person is who they claim to be. A biometric security system verifies user identity by comparing the behavioral or physiological trait possessed by the user to a previously stored sample of the trait. Fingerprints are the oldest and most widely used form of biometric identification. Local characteristic called minutiae points represent fingerprints. This project proposed an embedded software design of fingerprint biometric authentication system that involved interface design and software development in an embedded processor. The system consists of two components; the Graphic User Interface (GUI) on a host PC and the Fingerprint Biometric Template system on the Field Programmable Gate Array (FPGA) development board. The GUI will access the image repository and display the output image at each processing steps. The Fingerprint Biometric Template System contains three stages; image processing, feature extraction and matching stage. The image processing stage will enhance and skeletonized the fingerprint image, the feature extraction stage will extract the valid minutiae points in template based, and the matching stage will match the template with a previously stored template. An embedded software system that can verify the minutiae templates extracted a fingerprint image is resulted from this project.

9 vi ABSTRAK Perkembangan teknologi maklumat yang pesat pada waktu kini menjadikan keperluan untuk melindungi data dan maklumat daripada dicerobohi semakin penting. Secara tidak langsung, sistem pengecaman diri yang efektif menjadi satu keperluan utama. Kegunaan utama sistem pengecaman diri adalah untuk memastikan individu itu adalah seperti yang didakwanya. Sistem keselamatan biometrik mengenalpasti setiap individu dengan cara membandingkan perangai atau sifat fisiologi yang dimiliki oleh individu tersebut dengan contoh sifat yang telah sedia ada dalam simpanan data. Cap jari adalah cara terawal dan paling banyak digunakan sebagai pengecam biometrik. Cap jari diwakili oleh ciri-ciri terperinci yang dipanggil titik minutiae. Projek ini merangkumi satu rekabentuk perisian terbenam untuk satu sistem pengesahan biometrik berdasarkan cap jari yang mana melibatkan rekabentuk antaramuka dan pembangunan perisian di dalam satu pengawal terbenam. Sistem ini mengandungi dua komponen iaitu Antaramuka Pengguna Grafik (GUI) pada computer dan sistem pencontoh biometrik berdasarkan cap jari di dalam papan prototaip FPGA. GUI akan mendapatkan imej daripada gedung imej dan memaparkan imej keluaran untuk setiap proses. Sistem pencontoh biometrik berdasarkan cap jari ini mengandungi tiga proses; pemprosesan imej, pengenalpastian ciri, dan proses pemadanan. Pemprosesan imej akan membaikpulih dan menipiskan imej cap jari sehingga selebar satu pixel, proses pengenalpastian ciri mengestrak titik minutiae yang sah dalam bentuk pencontoh dan proses pemadanan akan memadankan pencontoh itu dengan pencontoh yang telah di simpan. Satu sistem perisian terbenam yang boleh mengesahkan pencontoh minutiae yang diestrak daripada imej cap jari terhasil daripada projek ini.

10 vii TABLE OF CONTENTS CHAPTER TITLE PAGE DECLARATION DEDICATION ACKNOWLEDGEMENT ABSTRACT ABTRAK TABLE OF CONTENTS LIST OF TABLES LIST OF FIGURES LIST OF ABREVIATIONS LIST OF APPENDICES ii iii iv v vi vii x xi xiv xv 1 INTRODUCTION Background Problem Statement Objective Scope of Work Project Contribution Thesis Organization 6 2 LITERATURE REVIEW Biometric Technologies Fingerprint Fingerprint Recognition System Image Processing Stage 15

11 viii Image Segmentation Binarization Noise Elimination Smoothing Thinning Feature Extraction Stage Minutiae Extraction Minutiae Validation Matching Stage 33 3 RESEARCH METHODOLOGY Project Workflow Embedded System Design Based on Nios Embedded Processor Software Functional Block Diagram Tools and Software Used 42 4 DESIGN AND IMPLEMENTATION System Architecture Graphic User Interface Image Processing Stage Image Segmentation module Binarization Module Noise Elimination Module Smoothing Module Thinning Module Feature Extraction Stage Minutiae Extraction Module Minutiae Validation Module Matching Stage Minutiae Matching Module 74 5 RESULT AND DISCUSSION Image Processing Stage 76

12 ix 5.2 Feature Extraction Stage Matching Stage Fingerprint Biometric Template System 86 6 CONCLUSION Concluding Remark Recommendation of Future Work 88 REFERENCES 91 APPENDIX A 94

13 x LIST OF TABLES TABLE NO. TITLE PAGE 2.1 Comparison of biometric technologies Properties of crossing number Action invoke in GUI and FPGA development board for each button 49

14 xi LIST OF FIGURES FIGURE NO. TITLE PAGE 1.1 Ridge ending and ridge bifurcation General process in identifying a fingerprint Core and delta points Different kind minutiae points Sweat pores Fingerprint recognition system Process in image processing stage Structuring elements used in noise elimination process Structuring elements used in smoothing connectivity neighborhood Structuring elements used in thinning process Feature extraction stage The basic properties of a minutiae Example of a ridge ending and ridge bifurcation pixel with its corresponding Crossing Number Example of false minutiae structures Example of validating a ridge ending candidate Example of validating a ridge bifurcation candidate Project Work Flow System design procedure Example of software functional block diagram Architecture of Fingerprint Biometric Template System Modules in fingerprint biometric template system Software functional block diagram of FingerPrint.c Behavioral flowchart of fingerprint biometric template system 47

15 xii 4.5 GUI for Fingerprint Biometric Template System Image segmentation module Flowchart for image segmentation module Software functional block diagram for image_segmentation ( ) Binarization module Flowchart for binarization module Code fragment calculating the average intensity value Noise elimination module Noise between ridges that has been removed Flowchart for noise elimination module Software functional block diagram for noise_elimination ( ) Structuring elements used in FingerPrint.c Example of out-of-bounds structuring elements Smoothing module Flowchart for smoothing module Software functional block diagram for smoothing ( ) Thinning module Flowchart for thinning module Software functional block diagram for thinning ( ) Fragment code for thinning_condition ( ) Flowchart for minutiae extraction Source code to calculate crossing number Software functional block diagram for minutie_extraction ( ) Flowchart for minutiae validation module Software functional block diagram for minutiae_validation ( ) Direction of minutiae point Flowchart for minutiae matching module Input image Result of image segmentation module Result of binarization module Result of noise elimination module Result of smoothing module Result of thinning module Fragment result of minutiae extraction module 81

16 xiii 5.8 Result of minutiae validation module Output of feature extraction stage Images from the same fingerprint Result of minutiae matching module Images from different fingerprint Result of minutiae matching module Screen shot of embedded system result Biometric-based key released 90

17 xiv LIST OF ABBREVIATIONS ADO - ActiveX Data Object AFIS - Automated Fingerprint Identification System CN - Crossing Number CPU - Central Processing Unit DAO - Data Access Object EDA - Electronic design Automation FPGA - Field Programmable Gate Array GUI - Graphic User Interface ODBC - Open Database Connector OLE DB - Object Linking and Embedding Database PC - Personal Computer PDA - Personal Digital Assistant PIO - Parallel Input Output PLD - Programmable Logic Device RISC - Reduced Instruction Set Computer SDK - System Development Kit SoC - System-on-Chip SOPC - System-on-a-Programmable-Chip UART - Universal Asynchronous Receiver Transmitter - Closing Operator - Dilation Operator Θ - Erosion Operator o - Opening Operator

18 xv LIST OF APPENDICES APPENDIX TITLE PAGE A Source Code For Every Module 94

19 CHAPTER 1 INTRODUCTION This thesis proposes the FPGA implementation of an embedded fingerprint recognition system. The design applies the System-on-Chip (SoC) technology to produce a system that can perform fingerprint image processing, extraction of the biometric feature from the image and authenticate the template. 1.1 Background As our everyday life is getting more and more computerized, automated security systems are getting more and more important. Today, most of the banking transactions can be performed over the Internet and soon they can also be performed on mobile devices such as cell phones and PDAs. This rapid progress in wireless communication system, personal communication system and smart card technology in our society makes information more susceptible to abuse. Due to the growing importance of the information technology and the necessity of the protection and access restriction, reliable personal identification is necessary.

20 2 The key task of an automated security system is to verify that the users are in fact who they claim to be. There are three main methodologies when performing this verification. The security system could ask the user to provide some information known only to the user, it could ask the user to provide something only the user has access to or it could identify some sort of trait that is unique for the user. Identifying some trait that is unique for the user is known as biometric security. A biometrics system is a pattern recognition system that establishes the authenticity of a specific physiological or behavioral characteristic possessed by a user. Nowaday, embedded systems have become increasingly popular as advances in IC-technology and processor architecture allow for flexible computational parts and high-performance modules integrated on a single carrier. Embedded system interacts with the physical world. It executes on machines that are not, first and foremost, computers. They are cars, airplanes, telephones, audio equipment, robots, appliances, toys, security systems, pacemakers, heart monitors, weapons, television sets, printers, scanners, climate control systems, manufacturing systems, and so on. They performed function carefully partitioned in software and hardware to strike the balance between flexibility, reusability, performance and cost. 1.2 Problem Statement As mention earlier, it is important to have reliable personal identification due to growing importance of information technology. A biometric security system is the key task to the automated security system that use a specific physiological or behavioral characteristic possessed by a user.

21 3 Of all the biometric techniques being used today, fingerprint-based identification is the oldest method, which has been successfully used in numerous applications. Every one is known to possess a unique fingerprint and it does not change throughout his lifetime and so the fingerprint matching is considered one of the most reliable techniques of people identification. A fingerprint is formed from an impression of the pattern of ridges on a finger. A ridge is defined as a single curved segment, and a valley is the region between two adjacent ridges. There are two types of fingerprint representations: local and global. Local representations predominantly based on ridge endings or bifurcations (collectively known as minutiae (see Figure 1.1)) are the most common, primarily due to the following reasons: Minutiae capture much of the individual information Minutiae-based representations are storage efficient Minutiae detection is relatively robust to various sources of fingerprint degradation. Typically, minutiae-based representations rely on locations of the minutiae and the directions of ridges at the minutiae location. Cores and deltas are global representation of the fingerprint. Figure 1.1 : Ridge ending and ridge bifurcation

22 4 1.3 Objective From the discussion above, this project has set two objectives. 1. To design and develop a fingerprint biometric template system that can process every fingerprint image inserted by the user and extracted the minutiae points from the image in template based. 2. To implement the fingerprint biometric template system in an embedded processor on a FPGA development board. 1.4 Scope of Work 1. Input fingerprint images are stored in an image repository on the host pc. In software development, this project uses 256 gray-sales bitmap images with sizes of 128 pixels x 128 pixels as a test vector. In embedded system, this project uses 256 gray-sales bitmap images with sizes of 80 pixels x 80 pixels as test vector. 2. Although many types of minutiae points exist, this project only extracts the most prominent type, which is ridge ending and ridge bifurcation. 3. The Fingerprint Biometric Template system is implemented on an Altera Nios APEX EP20K200EFC484-2X development board. 4. The Fingerprint Biometric Template will process and enhance the image at the image processing stage.

23 5 5. The enhanced image will be sent to feature extraction stage to extract the biometric template. 6. A simple matching system using point matching is designed to validate the system. A fingerprint recognition system involves many process and stages. Figure 1.2 shows the general process to recognize a fingerprint. For this project, the scope is shown by dashed box in Figure 1.2. System Database Figure 1.2 : General process in identifying a fingerprint

24 6 1.5 Project Contribution A prototype of the fingerprint recognition system implemented in embedded system. The fingerprint recognition system, which is called Fingerprint Biometric Template system extract the minutiae points in template based. A systematic design approach to design an embedded system in a SoC environment based around Altera Nios embedded processor using software embedded design techniques has been introduced. 1.6 Thesis Organization This thesis is organized into six chapters. The first chapter introduced the motivation, research objectives, scope of work and contribution of this project. Chapter 2 reviews the background of the project. Algorithms used in developing the system are also explained in this chapter. Chapter 3 presents the research methodology, system design procedures and application tool that have been used in this project. Chapter 4 described the software development of the system and implementation of the software in embedded system.

25 7 Chapter 5 presents the result for each stage in the system and discussion of the overall result. In the final chapter, the research work is summarized and the potential future works are given.

26 CHAPTER 2 LITERATURE REVIEW This chapter presents the background of biometric technologies, fingerprints and minutiae point. The algorithms used in a fingerprint recognition system are also discussed. 2.1 Biometric Technologies Biometric technologies are defined as automated method of identifying or authenticating the identity of a living person based on a physiological or behavioral characteristic. (Bowman, 2000). The term biometric device in the access control industry implies that three major components are present: A mechanism to scan and capture a digital or analog image of a living personal characteristic

27 9 Compression, processing and comparison of the image. Interface with application system These pieces can be configured in a variety of ways for different situations. The stored images or reference templates can reside on a card, in the device or at a host. Identification and authentication is the most important aspect of biometrics. Identification occurs when an individual s characteristics are being selected from a group of stored images. The question put to the machine is do I know you?. It is called a one-to-many search. The search algorithm will search a database and return with a likely list of candidates in a matter of minutes. Law enforcement is the most popular application of identification device. The AFIS (automated fingerprint identification system) can perform over 100,000 fingerprint match attempts in a second (Maio et al, 2003). Authentication occurs when an individual makes a claim of identity by presenting a code or a card. The question put to the machine is Are you who you claim to be?. It is called a one-to-one search. The individual characteristics are being measured against an enrolled image that stored on a token or in a local database with the image presented. The search time and subsequent authentication are much faster than identification because the person must present a pin or password as an index for authentication (Maio et al, 2003). A physiological characteristic is a relatively stable physical characteristic, such as fingerprint, hand silhouette, iris pattern or blood vessel on the back of the eye. This type of measurement is basically unchanging an unalterable without significant force.

28 10 A behavioral characteristic is more a reflection of an individual s psychological makeup although general physical traits such as size and sex have a major influence. The most common behavioral traits used are signature. Other behavior that can be used are how one type at the keyboard and how one speak. Any physiological or behavioral characteristic used for identification follows some requirements. Table 2.1 shows a comparison of biometric technologies using these requirements. Universality: which means that every person must have the characteristic Uniqueness: which indicates that two distinct people can not have the same characteristic Permanence: which means that the characteristic can not change according to the time Collectability: which indicates that this characteristic can be measured quantitatively. In practice, there are other requirements such as: Performance: where the identification process must present an acceptable result Acceptability: indicating to what extent people are willing to accept the biometric system Circumvention: referring to the ability to get destroyed

29 11 Table 2.1 : Comparison of biometric technologies Biometrics Universality Uniqueness Permanence Collectability Performance Acceptability Circumvention Face High Low Medium High Low High Low Fingerprint Medium High High Medium High Medium High Hand Geom. Medium Medium Medium High Medium Medium Medium Hand Vein Medium Medium Medium Medium Medium Medium High Iris High High High Medium Medium Medium High Retinal Scan High High Medium Low High Low High Signature Low Low Low High Low High Low Voice Print Medium Low Low Medium Low High Low Thermogram High High Low High Medium High High 2.2 Fingerprint Fingerprints are produced by sweat glands in the fingertip that coats the ridges of the fingerprint. This solution leaves behind a facsimile of the fingertip ridges called a latent print, when it comes in contact with a surface. In fingerprint literature, the terms ridges and valleys are used to describe the higher and lower parts of the papillary lines that we can see on our fingertip. The frictional ability of the skin is the reason we have ridges and valleys on our fingers. A fetus fingerprint ridges are fully developed at the age of seven month. After formation, an infant s growing fingerprint ridges are like drawing a face on a balloon with a ballpoint pen and then inflating the balloon to see the same face expand uniformly in all direction. This means the characteristic of the fingerprint does not change throughout the lifetime except for injury, disease or decomposition after death. However after a small injury on the fingertip, the pattern will grow back as the fingertip heals (Maio et al, 2003).

30 12 Sir Francis Galton, a British anthropologist scientifically proved in the late 19 th century that no two fingerprints are exactly alike. According to his calculations, the odds of two individual fingerprints being the same are 1 in 64 billion. No identical twins will have the same fingerprints. A fingerprint can be looked at from different levels: the global level, the local level and the very fine level. At the global level, you find the singularity points, called core and delta points. These singularity points are very important for fingerprint classification, but they are not sufficient for accurate matching. Figure 2.1 shows the core and delta points of two fingerprint s pattern; loop and whorl. Loops have one delta, whorl have two. Figure 2.1 : Core and delta points At the local level, you find the minutiae details or sometimes called the minutiae points. Minutiae mean small details. In the context of fingerprint, minutiae refer to various ways that the ridges in a fingerprint can be discontinuous. For example, a ridge can suddenly come to an end. Such a feature is naturally called a ridge ending. A ridge that divides into two ridges is called a bifurcation. Figure 2.2 shows four different kind minutiae points.

31 13 Ridge Ending Enclosure Bifurcation Island Figure 2.2 : Different kind of minutiae points At the very fine level, you find essentially the finger sweat pores. The position and shape of the pores can be used to help identify a person. To be able to use this information, a high-resolution image of the fingerprint is required. Figure 2.3 shows a fingerprint image with sweat pores and minutiae points visible. The black lines correspond to the ridges in the fingerprint and the white line corresponds to the valley. The white dots in the ridges correspond to the sweat pores and are marked with empty circles on a single ridge line. Minutiae details are marked with black-filled circles. In order to establish comparison between fingerprint images, AFIS s often rely on procedures based on local features. Global features are mainly employed to reduce the computational cost associated to fingerprint comparison procedure.

32 14 Figure 2.3 : Sweat pores 2.3 Fingerprint Recognition System The architecture of a fingerprint recognition system is shown in Figure 2.4. A typical fingerprint recognition system consists of four components: User Interface, system database, enrollment module and authentication module. System Database Figure 2.4 : Fingerprint recognition system

33 15 The user interface provides a mechanism for a user to indicate his/her identity and input his/her fingerprint into the system. The system database consists of a collection of records, each of which corresponds to an authorized person that has access to the system. Each record may contain the minutiae templates of the person s fingerprint and user name of the person or other information such as pin no as an index to the template. The task of enrollment module is to enroll persons and their fingerprints into the system database. When the fingerprint images and the user name of a person to be enrolled are fed to the enrollment module, the images will be enhanced and thinned at the image processing stage. Then the biometric template will be extracted at the feature extraction stage. The task of the authentication module is to authenticate the identity of the person who intends to access the system. The person to be authenticated indicates his/her identity and places his/her finger on the fingerprint scanner. The fingerprint images captured is enhanced and thinned at the image processing stage, and at feature extraction stage, the biometric template is extracted. It is then fed to a matching algorithm, which matches it against the person s biometric template stored in the system database to establish the identity. 2.4 Image Processing Stage The goal of image processing stage is to filter, binarize, enhance and skeletonized the original gray-level image. Five different processes are sequentially applied to achieve this goal. Figure 2.5 shows the process required in this stage.

34 16 Figure 2.5 : Process in image processing stage Image Segmentation The first step of the image processing stage is image segmentation. Image segmentation is the process of separating the foreground regions in the image from the background regions. The foreground regions correspond to the clear fingerprint area containing the ridges and valleys, which is the area of interest. The background corresponds to the regions outside the borders of the fingerprint area, which do not contain any valid fingerprint information. When minutiae extraction algorithms are applied to the background regions of an image, it results in the extraction of noisy and false minutiae. Thus, image segmentation is employed to discard these background regions, which facilitates the reliable extraction of minutiae. In a fingerprint image, the background regions generally exhibit a very low grey-scale variance value, whereas the foreground regions have a very high variance. Hence, a method based on variance thresholding can be used to perform the segmentation. (Mehtre, 1993) Firstly, the image is divided into blocks and the grey-scale variance is calculated for each block in the image. If the variance is less than the global threshold, then the block is assigned to be a background region; otherwise, it is

35 assigned to be part of the foreground. The grey-level variance for a block of size W x W is defined as: W W 2 V (2.1) ( k ) = ( I( i, j) M ( k )) 2 W i= 0 j= 0 Where V (k) is the variance for block k, I(i, j) is the grey-level value at pixel (i, j), and M(k) is the mean grey-level value for the block k Binarization Binarization is the process that converts a gray scale image, which has 256 of gray-level (0 to 255) to a black and white (0 and 1) binary images. This is important because binary images are very simple to store and manipulate, as each pixel is represent by a single bit. The binary images are also very easy to generate compared to a gray scale image. (Burdick, 1997) To convert a gray scale image to a binary image is not an easy task. A reasonable threshold to separate the black pixel from the white pixel is very difficult to find. This is because for a given gray value, it can represent ridges in some area but it may represent valley in the other area. The average gray value can be used as a threshold value for the binarization process. If the gray value of a particular pixel is lower than the threshold value, then the new value assigned for that pixel is 0 (representing the ridges), else the new value is set to 0 (representing the valleys). The average gray value is determined by

36 18 V mean = 1 r. c r c x= 0 y= 0 V ( x, y) (2.2) Where V mean is the average gray value, V(x,y) is the gray value of the particular pixel and r.c is the total pixels in the image Noise Elimination Noise elimination is the process that removes all the undesired pixels in the image (black pixel that occur as noise in the image). These undesired images can destroy the quality of the image and thus will reduce the ability and accuracy of the feature extraction process. These undesired pixels are meaningless and can create false minutiae in minutiae extraction process. Noise elimination process uses a combination of two morphological method, erosion and dilation. Eroding the image using structuring element, identifies and mark the location of the noise in the image. After all the location have been identified and marked, the noise will be removed by dilating the image with the same structuring element. Erosion can be determine by z ( B) A AΘ B = (2.3) z

37 19 Dilation can be determined by z ( B) A A B = z (2.4) To compute the erosion of a binary input image by a structuring element and then dilation by the same structuring element, we consider each of the foreground pixels in the input image. For each foreground pixel, we superimpose the structuring element on top of the input image so that the origin of the structuring element coincides with the input pixel coordinates. If the corresponding pixel in the image underneath is exactly the same as the structuring element, the corresponding pixel will be deleted. The sizes of the structuring elements that have been used are 5 x 5 structuring element and 3 x 3 structuring elements. Each structuring elements has its own condition for identifying the noise. Figure 2.6 shows the structuring elements used to identify the noise.

38 20 Figure 2.6 : Structuring elements used in noise elimination process Smoothing Smoothing process seeks to fill up all the holes that exist in the ridges while at the same time preserving all the essential details that an observer wish to see in the original image. This process is important because holes will reduce the accuracy of the thinning algorithm thus creating false minutiae point. Smoothing used a combination of two morphological methods, opening and closing. Opening generally smoothes the contour object, breaks narrow peninsula

39 21 and eliminates thin ridge. Closing tend to smooth section of contours but it generally fuses narrow breaks and long thin gap, eliminate small holes and fill gaps in the contour. An opening is erosion following by dilation with the same structuring element. Opening is determined by ( AΘB) B Ao B = (2.5) A closing is dilation following by erosion with the same structuring element. Closing is determined by ( A B) ΘB A B = (2.6) To compute the opening of a binary input image by a structuring element and then closing by the same structuring element, we consider each of the background (white) pixels in the input image. For each background pixel, we superimpose the structuring element on top of the input image so that the origin of the structuring element coincides with the input pixel coordinates. If the corresponding pixel in the image underneath is exactly the same as the structuring element, the corresponding pixel will be filled in by setting it to be foreground. The structuring element that defines the holes that need to be filled is shown in Figure 2.7. Smoothing also used the 5 x 5 structuring element and 3 x 3 structuring element.

40 Figure 2.7 : Structuring elements used in smoothing process. 22

41 Thinning Thinning process is used to skeletonized the binary image by reducing all lines to a single pixel thickness. There are two main approaches to find the skeleton of a binary region. The first approach basically calculates the distance to the region edge for all pixels belonging to the region. Then those pixels that have the largest distance to the region edge are selected to belong to the region skeleton. Although the approach is simple and yields an intuitively pleasing skeleton the method is seldom implemented in its pure form since it is very computationally expensive. The second approach instead iteratively deletes edge point pixels from the region until just the skeleton remains. For a pixel to be deleted, the following conditions must hold The pixel is not an endpoint. The removal does not break the connectedness of the skeleton. The removal does not cause excessive erosion of the region. The method used in this system takes on the second approach. It uses a modified version of the thinning algorithm first suggested by Zhang and Suen (Zhang and Suen, 1984). The method consists of removing all pixel of the image except those pixels that belong to the skeleton. In order to preserve the connectivity of the skeleton, all iteration is divided into two subiterations. A pixel p0 is defined to have at least one pixel in its eight-connectivity neighborhood that belongs to the background. The eight-connectivity neighborhood is shown in Figure 2.8.

42 24 Figure 2.8 : Eight-connectivity neighborhood A pixel is marked for deletion in the first subiteration if all of the following conditions hold for its eight-connectivity neighborhood: The number of neighbors that belong to the region must be between two and six. This ensures that the endpoint pixels of a skeleton line are preserved. All neighbors that belong to the background must be connected. This prevents the deletion of those pixels that lie betweens the end point pixels of a skeleton line. p1, p3 or p5 must belong to the background. p3, p5 or p7 must belong to the background. If all conditions are met, the point is marked for deletion. However, the point is not deleted until all region points are processed to ensure that the data structure is not changed during the execution of the step. For a point to be marked for deletion in the second subiteration of the algorithm, the first two conditions still must hold, but third and fourth conditions are changed as follows p1, p3 or p5 must belong to the background.

43 25 p1, p3 or p7 must belong to the background. As mentioned above, the algorithm had to be modified to apply to fingerprint ridge thinning. The problem lies in what is defined to be a one-pixel width skeleton. In the case of fingerprint ridges a ridge point that is not a minutia is only allowed to have two neighbors that belong to the ridge. This fact conflicts with the second condition in the original thinning algorithm. The problem arises in 16 special cases where not all neighbor pixels, which belong to the background, are connected but where the pixel still should be deleted. The structuring elements used are shown in Figure 2.9. Figure 2.9 : Structuring elements used in thinning process. The twelve structuring elements on the left solved ridge width problems and the four structuring elements to the right solved ridge bifurcation problems. The first twelve cases lead to ridge points that have three neighbors that belong to the ridge. This will confuse the minutia extraction algorithm to think that these ridgeline points are ridge bifurcations. The last four cases produce double ridge bifurcation points lying next to each other when there in fact is only one bifurcation point there. The problem is solved by using a morphological method called hit-and-miss transform. To compute the hit-and-miss transform of a binary input image by a structuring element, we translate the origin of the structuring element to each possible pixel position in the image, at each position comparing it with the

44 26 underlying image pixels. If the foreground and background pixels in the structuring elements exactly match the foreground and background pixel in the image, then the pixel underneath the origin of the structuring element is set to background. Otherwise it is left unchanged. 2.5 Feature Extraction Stage After the fingerprint image has been binarized, enhanced and thinned, it will be fed to the feature extraction stage. The goal of this stage is to extract the minutiae point from the thinned image. Following the extraction is a minutia validation process that eliminates the false minutiae before storing or using the template for matching process. Figure 2.10 shows the feature extraction stage. θ Figure 2.20 : Feature extraction stage.

45 Minutiae Extraction Minutiae points are essentially the endings and bifurcations of the ridgelines that constitute a fingerprint. The basic properties of a minutia are type, position and direction as shown in Figure The minutiae type can be either ridge ending or ridge bifurcation. The direction of a minutia is, in this system, defined to be the angel of the vector that starts in the minutia and ends in the eight pixel of the ridge that the minutia belongs to. In the bifurcation case, the vector that has the largest angel to the other two vectors is selected as the direction of the minutia. Figure 2.11 The basic properties of a minutiae. The extraction of minutiae points is a critical step in fingerprint verification systems. This is when the analog fingerprint information captured by the scanning device is transformed to a format that can be matched by an automated system. There are two main methodologies to extract minutia information, binary extraction and direct grayscale extraction. In this project, the binary approach is used. The most commonly employed method of minutiae extraction is the Crossing Number (CN) concept. This method involves the use of the skeleton image where the ridge flow pattern is eight-connected. The minutiae are extracted by scanning the local neighbourhood of each ridge pixel in the image using a 3 x 3 window. The CN value is then computed, which is defined as half the sum of the differences between

46 28 pairs of adjacent pixels in the eight-connectivity neighborhood. Using the properties of the CN as shown in Table 2.2, the ridge pixel can then be classified as a ridge ending, bifurcation or non-minutiae point. For example, a ridge pixel with a CN of one corresponds to a ridge ending, and a CN of three corresponds to a bifurcation. Table 2.2 : Properties of the crossing number CN Properties 0 Isolated point 1 Ridge ending point 2 Continuing ridge point 3 Bifurcation point 4 Crossing point Jain et al (Jain et al, 1997) have also performed minutiae extraction using the skeleton image. Their approach involves using a 3 x 3 window to examine the local neighborhood of each ridge pixel in the image. A pixel is then classified as a ridge ending if it has only one neighboring ridge pixel in the window, and classified as a bifurcation if it has three neighboring ridge pixels. Consequently, it can be seen that this approach is very similar to the Crossing Number method. The Crossing Number (CN) method extracts the ridge endings and bifurcations from the skeleton image by examining the local neighbourhood of each ridge pixel using a 3 x 3 window. The CN for a ridge pixel p0 is given by CN 8 = 0.5 P P i= 1 i Pi + 1 P9 = 1 (2.7) where Pi is the pixel value in the neighbourhood of P.

47 29 After the CN for a ridge pixel has been computed, the pixel can then be classified according to the property of its CN value. As shown in Figure 2.12, a ridge pixel with a CN of one corresponds to a ridge ending, and a CN of three corresponds to a bifurcation. Figure 2.12 : Example of a ridge ending and ridge bifurcation pixel with its corresponding Crossing Number Minutiae Validation False minutiae may be introduced into the image due to factors such as noisy images, and image artifacts created by the thinning process. Hence, after the minutiae are extracted, it is necessary to employ a validation process in order to validate the minutiae. Figure 2.13 illustrates some examples of false minutiae structures, which include the spur, hole, triangle and spike structures. It can be seen that the spur structure generates false ridge endings, where as both the hole and triangle structures generate false bifurcations. The spike structure creates a false bifurcation and a false ridge ending point.

48 30 Figure 2.13 : Example of false minutiae structures The majority of the proposed approaches for image postprocessing in literature are based on a series of structural rules used to eliminate spurious minutiae. One such approach performs the validation of minutiae based on a set of heuristic rules. For example, a ridge ending point that is connected to a bifurcation point, and is below a certain threshold distance is eliminated. This heuristic rule corresponds to removal of the spike structure shown in Figure 2.13(d). Additional heuristic rules are then used to eliminate other types of false minutiae. Furthermore, a boundary effect treatment is applied where the minutiae below a certain distance from the boundary of the foreground region are deleted. A novel approach to the validation of minutiae is the postprocessing algorithm proposed by Tico and Kuosmanen (Tico and Kuosmanen, 2000). This algorithm operates on the skeleton image. This approach incorporates the validation of different types of minutiae into a single algorithm. It tests the validity of each minutiae point by scanning the skeleton image and examining the local neighborhood around the minutiae. The algorithm is then able to cancel out false minutiae based on the configuration of the ridge pixels connected to the minutiae point. The first step in the algorithm is to create an image M of size W x W, where M corresponds to the W x W neighborhood centered on the candidate minutiae point in the skeleton image. The central pixel of M corresponds to the minutiae point in

49 31 the skeleton image, and so this pixel is labeled with a value of -1. The rest of the pixels in M are initialized to values of zero, as shown in Figure 2.14(a) and Figure 2.15(a). The subsequent steps of the algorithm depend on whether the candidate minutiae point is a ridge ending or a bifurcation. For a candidate ridge ending point: Firstly, label with a value of 1 all the pixels in M, which are eightconnected with the ridge ending point (see Figure 2.14(b)). The next step is to count in a clockwise direction, the number of 0 to 1 transitions (T01) along the border of image M. If T01 = 1, then the candidate minutiae point is validated as a true ridge ending. For a candidate bifurcation point: Firstly, examine the eight neighbouring pixels surrounding the bifurcation point in a clockwise direction. For the three pixels that are connected with the bifurcation point, label them with the values of 1, 2 and 3, respectively. An example of this initial labeling process is shown in Figure 2.15(b). The next step is to label the rest of the ridge pixels that are connected to these three connected pixels. This labeling is similar to the ridge ending approach, however, instead of labeling a single ridge branch, three ridge branches are now labeled. Let l = 1, 2 and 3 represent the label for each ridge branch. For each l, label with l all the ridge pixels that have a label of 0, and are connected to an l labelled pixel. Examples of the bifurcation labelling process are shown in Figures 2.15(c), (d) and (e).

50 32 The last step is to count in a clockwise direction, the number of transitions from 0 to 1 (T01), 0 to 2 (T02), and 0 to 3 (T03) along the border of image M. If T01 = 1 and T02 = 1 and T03 = 1, then the candidate minutiae point is validated as a true bifurcation. Figure 2.14 : Example of validating a ridge ending candidate. Figure 2.15 : Example of validating a ridge bifurcation candidate.

51 Matching Stage Reliably matching fingerprint images is an extremely difficult problem, mainly due to the large variability in different impressions of the same finger (i.e., large intra-class variations). The main factors responsible for the intra-class variations are: displacement, rotation, partial overlap, non-linear distortion, variable pressure, changing skin condition, noise, and feature extraction errors. Therefore, fingerprints from the same finger may sometimes look quite different whereas fingerprints from different fingers may appear quite similar. 2003): There are three categories of fingerprint matching approaches (Maio et al, Correlation-based matching: two fingerprint images are superimposed and the correlation (at the intensity level) between corresponding pixels is computed for different alignments (e.g., various displacements and rotations); Minutiae-based matching: minutiae are extracted from the two fingerprints and stored as sets of points in the two-dimensional plane. Minutiae matching essentially consists of finding the alignment between the template and the input minutiae sets that results in the maximum number of minutiae pairings; Ridge feature-based matching: minutiae extraction is difficult in very low-quality fingerprint images, whereas other features of the fingerprint ridge pattern (e.g., local orientation and frequency, ridge shape, texture information) may be extracted more reliably than minutiae, even though their distinctiveness is generally lower. The approaches belonging to this family compare fingerprints in term of features extracted from the ridge pattern.

52 34 Given a complex operating environment, it is critical to identify a set of valid assumptions upon which the fingerprint matcher design could be based. Often there is a choice between whether it is more effective to exert more constraints by incorporating better engineering design or to build a more sophisticated similarity function for the given representation. Minutiae matching are certainly the most well-known and widely used method for fingerprint matching, thanks to its strict analogy with the way forensic experts compare fingerprints and its acceptance as a proof of identity in the courts of law in almost all countries. Each minutiae point of a fingerprint image is describe by its basic properties, which also known as templates; (TYPE,X,Y,DIRECTION). A matching algorithm by Sun and Ai (Sun and Ai, 1996), is implemented in this project. It matches the template stored in the database with the one that need authentication or test. These two templates are said to be paired if their minutiae type are the same, their position and direction are close since the fingerprint images are taken in a fixed window and it is assumed that there are small translation and rotation. and If A is a template stored in database and B is a template from test fingerprint, A TYPE = B TYPE Euclidean Distance (A,B) D f Angle (A,B) A f then (A,B) is a pair of matched templates. D f and A f are maximum tolerance for translation and rotation respectively.

53 35 Each template should not be matched more than once. If Sm is a set of matched template pairs, each elements in Sm has the form of (A i,b i ) where A i are templates stored in database and B i are templates from test fingerprint. All A i in Sm should be different and all B i should be different too. In order to match two set of templates, a maximum number of paired templates, Smax is to be found. The procedure to do this is Let Sm be empty Select template A from database and template B from test fingerprint. If template A and template B can be matched and pairing of A and B can be added to Sm, add it. Repeat second step until no any pair could be added to Sm. If current number of paired template in Sm are maximum, save the current Sm as Smax. Backtrack to search other combination. The similarity measure, M between two fingerprint images is defined as M N N m m = (2.8) N 1 N 2 where N 1 and N 2 are the number of templates from database and test fingerprint respectively, N m are the number of paired templates in Smax.

54 36 The similarity measure M for two images from the same fingerprint is close to 1. In practice, if the calculated M is bigger than a predefined reasonable threshold, then it can be said that the two images originated from the same fingerprint.

55 CHAPTER 3 RESEARCH METHODOLOGY This chapter describes the methodology used in this project. It begins with the discussion of the project workflow, followed by the system design procedure and tools that are applied in this work. 3.1 Project Workflow This project involved the effort of embedded system design process, which involves interface design and software development. Hence, it calls for embedded software system design, in which the software are designed and downloaded in an embedded system. The overall project workflow is shown in Figure 3.1. The works begin with finding the motivation to do the project. This is where the research problems are identified. In this project, the need in an automated security system that applied the biometric technologies in person identification to protect the information has been the problems that need to be solved.

56 37 Analysis Problem Statement Literature Review Data Collection and Algorithm Study Data Analysis Prototype Development Prototype Testing (Using Test Vector) Interface Design - Embedded Software Development - Synthesis, Compilation & Simulation Software Development - Test Application Development Success? Refine The System Finish Build GUI For Demostration Figure 3.1 : Project Work Flow The works continues with the literature reviews on state-of-the-art biometrics technologies and fingerprint recognition system and a study in image processing algorithm, feature extraction algorithm, fingerprint matching algorithm etc. In addition, morphological processing concepts such as dilation, erosion, hit-and-miss transform, etc, are also studied. This is important for the researcher to understand the fundamental concept and operations carried out in the Fingerprint Biometric Template system.

57 38 To design the system, several tools and techniques have to be familiarized and mastered. These includes the Visual C++ programming in the software development phase and the C/C++ programming that is used to design the embedded software development on interface design phase. Besides, the Nios Development Board (APEX) is being procured. The basic functionality of Nios TM soft-core embedded processor is studied. The project workflows continue with analyzing the data, developing the prototype and test it with test vector. The process is repeated until the successful prototype is obtained. In the interface design, C/C++ programming for Fingerprint Biometric Template system is designed and embedded into the embedded system on the FPGA development board. Before the C/C++ program is embedded into the embedded system, it is tested in a software simulation based environment first. Finally, a simple GUI is build for demonstration purpose. It involves the user interface, which is used for inputs to the embedded system and defining of the communication between the GUI running on host PC and the embedded system through RS232 UART serial communication port. 3.2 Embedded System Design Based on Nios Embedded Processor The Nios embedded processor is a soft core CPU optimized for in systemon-a-programmable-chip (SOPC) designs implemented in programmable logic devices (PLD). Nios processor designs are created using Altera's SOPC Builder system design tool. (Altera, 2003a). This processor is a five-stage pipeline with separate instruction and data memory masters RISC microprocessor. The Nios processor supports both 32-bit and 16-bit architectural variants and both 16 and 32-

58 39 bit variants use 16-bit instructions. In this work, a standard 32-bit Nios configuration has been chosen. Figure 3.2 depict the system design procedure applied in this work. The figure shows the design activities with their corresponding tools. The process starts with writing C/C++ software which contains the algorithms and control programs. Then the Redhat GNUPro compiler and linker are used to compile and link software with the SDK generated routines, header files and other software libraries. After the standard 32-bit Nios system has been pre-configured, the software can be downloaded into the development board and prototype the software executing in hardware. The Redhat GNUPro debugger provides rapid edit-compile-downloaddebug iteration while designing the system.

59 40 Embedded System Development Begin C/C++ development Altera Quartus II Text Editor Nios Processor Development Software compilation & Linking Redhat GNUPro Compiler & Linker Altera Nios SOPC Builder Standard 32-bit Nios System module Software Prototype on Development Board Altera Nios Utilities Tools used Software Debugging Redhat GNUPro Debugger Design Activity Altera Nios SDK Shell GUI Development Build GUI Visual C++ Microsoft Foundation Classes (MFC) Microsoft Visual C Figure 3.2 : System design procedure 3.3 Software Functional Block Diagram The design of our fingerprint biometric template is describe via a software functional block diagram. The diagram is a cross reference between a flow chart and a circuit block diagram. An example is shown in Figure 3.3.

60 41 In this diagram, a box represents a subroutine with its name and a brief description about the function of the subroutine. On the right side is a smaller box with arrows going into it that list all the child subroutines that are directly called by the subroutine. The initialization routines have global or local variables in a box with arrows leaving the subroutine to show that they are outputs. The line that wraps around the subroutines shows that they are interlinked. Figure 3.3 : Example of software functional block diagram In Figure 3.3, Mean ( ) which is placed on top of the diagram is a stand alone subroutine and Mean_value is the output of Mean ( ). The Segmentation ( ) called Mean ( ) as a child subroutine to execute the segment algorithm. The segment.h is a header file that is needed to execute the segmentation ( ) subroutine. This header file defines the THRES parameter needed to calculate segment algorithm. All of the mentioned subroutines are in the segment.c file.

61 Tools and Software Used Software development tools, EDA tools and a computer is needed to do this project. Following is the tolls and software that is used in this project: 1. Altera Quartus II Version 3.0 A design entry, compilation, simulation and implementation software tool 2. GNUPro Software Development Tool An open source development toolkit from RedHat, which contain a compiler, a debugger and general-purpose software development utilities. 3. Nios SDK Shell A bash environment to communicate with Nios Development Board. GNUPro tools can run in Nios SDK shell to generate and debug the software. 4. Altera Nios development board (APEX EP20K200EFC484-2X ) A FPGA hardware platform to prototype embedded systems. The board is pre-configured with a 32-bit Nios processor hardware reference design and a software reference design stored in flash memory. A ByteBlaster II download cable is also provided to download program into the development board. 5. Microsoft Visual C A window-based compiler used to develop the GUI.

62 CHAPTER 4 DESIGN AND IMPLEMENTATION This chapter describes the design of fingerprint biometric template system and the implementation of the project in Nios embedded processor. It describes the detailed software development of the project, which consists of three stages; image processing stage, feature extraction stage and matching stage. 4.1 System Architecture The proposed project, which is called Fingerprint Biometric Template system, is a software development system that is downloaded into an embedded system on a FPGA development board and communicates with a host pc through a UART serial communication channel. Figure 4.1 shows the architecture of the system.

63 44 Figure 4.1 : Architecture of Fingerprint Biometric System The host pc contained the Graphic User Interface (GUI) (Fin_projectDlg.cpp) and an image repository. The Field Programmable Gate Array (FPGA) development board used in this project is the altera Nios APEX EP20K200EFC484-2X development board. The FPGA development board is preloaded with a 32-bit Nios embedded processor system reference design. The fingerprint biometric template system (FingerPrint.c) is downloaded in Nios CPU in the Nios system module on the FPGA development board. Nios CPU communicates with a PIO module via 32-bit Avalon bus. The fingerprint biometric template system (FingerPrint.c) is makes up by three stages, image processing stage, feature extraction stage and matching stage. These stages are executed sequentially. Figure 4.2 shows the detail modules that make up each stage. Image processing stage will process the image into skeleton image before sending the output to feature extraction stage. At feature extraction stage, the minutiae point is extracted and validated in template based. These two stages make up the enrollment process for the fingerprint biometric template system. The template from this enrollment will be saved in the memory on the FPGA development board, to be used later in the authentication process. In the authentication process, the image processing stage and feature extraction stage will

64 45 be executed to get the test template. The test template will be matched with the enrolled templates at the matching stage. Figure 4.2 : Modules in fingerprint biometric template system. In this system, each module in fingerprint biometric template is subroutines in FingerPrint.c. Figure 4.3 shows the software hierarchy of FingerPrint.c routines. There are twelve main subroutines in FingerPrint.c. Eight subroutines (image_segmentation ( ), binarization ( ), noise_elemination ( ), smoothing ( ), thinning ( ), minutiae_extraction ( ), minutiae_validation ( ) and minutiae_matching ( )) are modules in fingerprint biometric template system while another four (calculate_pad ( ), allocate_image_array ( ), flip_image_array ( ) and free_image_array ( )) are used to arrange the image data received from the host pc. The subroutine calculate_pad ( ) is to calculate the pad needed at the end of each row in the image array. This is done by dividing the width with 4, due to 32-bit data bus, and pad the reminder with zero padding. The allocate_image_array ( )

65 46 subroutine allocates memory for two-dimensional image array. These are done by simply allocating memory for an array of pointers first and then allocate memory for an array of data for each pointer. The flip_image_array ( ) subroutine flips an image array at its horizontal mid-point. This is because bitmap image data is normally stored upside-down. The free_image_array ( ) subroutine frees the memory allocated by allocate_image_array ( ) subroutine. Other subroutine will be discussed later. Figure 4.3 : Software functional block diagram of FingerPrint.c

66 47 The system started by loading a fingerprint image from the image repository into the GUI. The GUI will send the image to the FPGA development board via a UART serial communication channel. The dual seven-segment display will show that FPGA development board has received the image. User can choose the processing module that needs to be performed by clicking the buttons on GUI. GUI will send an operation number corresponds to the processing module chosen by the user to the FPGA development board. This will invoke the chosen module s subroutine. After processing the image, the FPGA development board will send the images back to the GUI to display the output of chosen processing module. Figure 4.4 shows a behavioral flowchart of the process. Figure 4.4 : Behavioral flowchart of fingerprint biometric template system.

67 Graphic User Interface A simple graphic user interface has been developed for user input and displaying the result of each processing modules. Figure 4.5 shows the GUI for the system. Each button in the GUI will invoke an action to be done on the host pc or a signal to be sent to FPGA development board and invoke a subroutine in FingerPrint.c. Figure 4.5 : GUI for Fingerprint Biometric Template System

68 49 been clicked. Table 3.1 shows the detailed action that has been invoked when a button has Table 3.1 : Action invoke in GUI and FPGA development board for each button Action in FPGA development Action in GUI board Button (Fin_projectDlg.cpp) (FingerPrint.c) Load (in Image Loading) Enroll Image Segmentation Binarization Noise Elimination Smoothing Load an image from the Image Repository Send the image data to FPGA development board Send signal 1 to FPGA development board Send signal 2 to FPGA development board Send signal 3 to FPGA development board Send signal 4 to FPGA development board Received the image, show 00 on dual seven-segment display, rearrange the image data into two-dimensional array Received data, show 31 on dual seven segment display, invoke image_segmentation ( ), send output to host pc. Received data, show 32 on dual seven segment display, invoke binarization ( ), send output to host pc. Received data, show 33 on dual seven segment display, invoke noise_elimination ( ), send output to host pc. Received data, show 34 on dual seven segment display, invoke smoothing ( ), send output to host pc.

69 50 Thinning Minutiae Extraction Load (in Matching Process) Match Send signal 5 to FPGA development board Send signal 6 to FPGA development board Load an image from image repository, send signal 7 to FPGA development board, send the image data to FPGA development board Display the output of matching process Received data, show 35 on dual seven segment display, invoke thinning ( ), send output to host pc. Received data, show 36 on dual seven segment display, invoke minutiae_extraction ( ) and minutiae_validation ( ), send output to host pc. Received signal 7 to invoke authentication process, Received data, rearrange data, invoke all subroutines including minutiae_matching ( ), send output to host pc. 4.3 Image Processing Stage Image processing stage is composed of five modules; image segmentation, binarization, noise elimination, smoothing and thinning. The main focus of this stage is to enhance and skeletonized the image. Image processing stage is crucial in both enrollment and authentication process.

70 Image Segmentation Module Image segmentation is used to separate the foreground from the background of the image. Detail algorithm about image segmentation has been explained in chapter 2. The input to this module is a 256 gray-scale image and the output is also in the same format but with only the portion that depict the fingerprint (foreground). Figure 4.6 shows input and output of the image segmentation module. Figure 4.6 : Image segmentation module The coding for image segmentation module (image_segmentation ( )) is done according to the flowchart in Figure 4.7. The image array is divided into blocks of 8 x 8 blocks and variance value for each block is calculated. If the variance for a particular block is less than a threshold value, (4900 in our system), the block is set to background value (white) else it remain the same.

71 52 Start the_image, row,col Initialized local parameters used Divide image to 8x8 blocks Calculate variance for current 8x8 block. Variance < threshold? Yes 8x8 block is set to background No 8x8 block is set to foreground Update 8x8 block No End of image? End Yes Figure 4.7 : Flowchart for image segmentation module The software functional block diagram for image_segmentation ( ) subroutine in FingerPrint.c is shown in Figure 4.8. The mean_block ( ) subroutine is used to find the average pixel value for 8 x 8 blocks. The output of this subroutine is Mean_value which is used in calculating the variance for that particular block. The complete C source code for image segmentation module can be found in Appendix A.1.

72 53 mean_block (the_image,row,col,x,y) Find the mean value for blocks of 8x8. Mean_value mean_block Image_segmentation (the_image row, col) - Separate the foreground from the background in the_image - Use adaptive variance thresholding FingerPrint.c Figure 4.8 : Software functional block diagram for image_segmentation ( ) Binarization Module Binarization module is used to convert a gray scale that has 256 gray levels into binary image that has only black and white pixel. Figure 4.9 shows the input and output of the binarization process. Notice that the gray coloured pixel in the input image has been change to white or black. A threshold value using average intensity value determines whether a gray pixel will be change to black (foreground) or white (background).

73 54 Figure 4.9 : Binarization module The coding for binarization module is done according to the flowchart in Figure The process will start by calculating the average intensity value (average gray value) of the image, which is used as a threshold value. The code for calculating the average gray value (mean ( )) is shown in Figure After getting the average gray value of the image, the process continues by comparing the intensity value of each pixel with the threshold value. If the intensity value for that particular pixel is lower than the threshold value, that pixel is set to be 0 which represent black pixel, else it will be set as 1 which represent the white pixel. The process is repeated until all the pixels in the image have been scanned through.

74 55 Start the_image, row, col Initialized local parameters Threshold = mean ( ) mean (the_image, row, col) calculate the average gray value Scan gray value of each pixel, the_image[i][j] the_image[i][j] < threshold? Set pixel value to white, the_image[i][j] = 1 Set pixel value to black, the_image[i][j] = 0 Scan all pixel? End Figure 4.10 : Flowchart for binarization module The C source code for binarization module can be found in Appendix A.2

75 56 //mean subroutine //This subroutine calculate average intensity value int mean(byte **the_image, int row, int col) int i, j; int sum = 0; int mean_value = 0; //sum of all pixel value for ( i = 0; i < row; i++) for (j = 0; j < col; j++) sum += the_image[i][j]; // sum of all pixel value divided by number of pixels mean_value = sum/(row*col); return (mean_value); Figure 4.11 : Code fragment calculating the average intensity value Noise Elimination Module Noise elimination module will remove unwanted noise by using the 5 x 5 structuring element and 3 x 3 structuring element. Figure 4.12 shows the input and output of the noise elimination module. The small dots around the fingerprint image are noise that exists in the image. After the image has gone through the noise elimination module, the noise has been removed. Noise also exist in between the ridges of the fingerprint and has been removed by the noise elimination module. Figure 4.13 shows the noise between ridges that will be removed.

76 57 Figure 4.12 : Noise elimination module Figure 4.13 : Noise between ridges that has been removed The coding for noise elimination module is done according to the flowchart in Figure The process started by defining the 5 x 5 structuring element and using the 5 x 5 structuring elements to scan each pixel in the image. The pixel underneath the origin of the structuring elements is the pixel that needs to be scanned. All pixels within the area of the structuring elements are check for its intensity value. If the pixel meets one of the conditions mentioned in chapter 2, the pixel will be deleted exactly like the structuring element. After the entire pixel in the image has been tested with the 5 x 5 structuring elements, the process is repeated using the 3 x 3 structuring element. The 3 x 3 structuring element is used to remove

77 58 noise in the area between the ridges because the 5x5 structuring elements does not fit in. The C source code for noise_elimination ( ) is shown in Appendix A.3. Start A the_image, row, col Define 3x3 structuring element Initialized local parameters Scan each pixel with the 3x3 structuring element Define 5x5 structuring element Scan each pixel with the 5x5 structuring element Meet the condition? Yes No Meet the condition? No Delete the image exactly like the condition met Yes Delete the image exactly like the condition met No End of image? Yes End No End of image? Yes A Figure 4.14 : Flowchart for noise elimination module To design the noise elimination module in FingerPrint.c, five subroutines has been used. The software functional block diagram in Figure 4.15 shows the subroutine that make up noise_elimination ( ) in FingerPrint.c. The noise_condition3x3 ( ) subroutine and noise_condition5x5 ( ) subroutine contained

78 59 the condition used by the 5 x 5 structuring elements and 3 x 3 structuring element as explained in chapter 2. define_struc_element3x3 (the_image,p,row,col,x,y) P[9] define_struc_element5x5 (the_image,p,row,col,x,y) P[25] define_struc_ elements3x3 define_struc_ elements5x5 noise_condition3x3 (the_image row, col) - Conditions to eliminate noise using noise_condition5x5 (the_image row, col) - Conditions to eliminate noise using noise_condition5x5 noise_condition3x3 noise_elimination(the_image row, col) - Eliminates unwanted noise FingerPrint.c Figure 4.15 : Software functional block diagram for noise elimination ( ) The define_struc_element5x5 ( ) subroutine and define_struc_element3x3 ( ) subroutine describe the structuring elements used in noise_elimination ( ). These subroutines are also used to describe the structuring elements in smoothing ( ), thinning ( ) and minutiae_extraction ( ). The 5 x 5 structuring element and 3 x 3 structuring element are describe according to Figure 4.16 with P0 as the origin of the structuring element.

79 60 P23 (x-2,y-2) P24 (x-1,y-2) P9 (x,y-2) P10 (x+1,y-2) P11 (x+2,y-2) P22 (x-2,y-1) P8 (x-1,y-1) P1 (x,y-1) P2 (x+1,y-1) P12 (x+2,y-1) P8 (x-1,y-1) P1 (x,y-1) P2 (x+1,y-1) P21 (x-2,y) P7 (x-1,y) P0 (x,y) P3 (x+1,y) P13 (x+2,y) P7 (x-1,y) P0 (x,y) P3 (x+1,y) P20 (x-2,y+1) P6 (x-1,y+1) P5 (x,y+1) P4 (x+1,y+1) P14 (x+2,y+1) P6 (x-1,y+1) P5 (x,y+1) P4 (x+1,y+1) P19 (x-2,y+2) P18 (x-1,y+2) P17 (x,y+2) P16 (x+1,y+2) P15 (x+2,y+2) 5x5 structuring element 3x3 structuring element Figure 4.16 : Structuring elements used in FingerPrint.c There are a few conditions in defining the structuring elements. These conditions need to be applied at the boundary of the image. When the origin of the structuring element is superimposed on pixels at the boundary of the image, some of the structuring element will be out-of-bounds. This will result in random values be assign to the structuring element or compilation error. Figure 4.17 show an example of out-of-bounds structuring elements using the 5 x 5 structuring element. In order to solved this problem, 0 value is assign to these out-of-bound pixels.

80 61 Figure 4.17 : Example of out-of-bounds structuring elements Smoothing Module In smoothing module, all the holes in the fingerprint image will be filled up. The clean image outputted from the noise elimination module is fed to the smoothing module resulting in a smoothed image. Figure 4.18 shows the input and output of smoothing module. Smoothing Module Input image Output image Figure 4.18 : Smoothing module.

81 62 The coding for smoothing module is done according to the flowchart in Figure The process started by defining the 5 x 5 structuring element and then used the structuring elements to scan each pixel in the image. If the pixels meet the conditions as explained in chapter 2, the pixel underneath the origin of the structuring element will be set to black (foreground). The process is repeated using the 3 x 3 structuring element after the entire pixel has been scanned. Figure 4.19 : Flowchart for smoothing module

82 63 define_struc_element3x3 (the_image,p,row,col,x,y) P[9] define_struc_element5x5 (the_image,p,row,col,x,y) P[25] smooth_condition3x3(p) - Conditions to fill up the holes in the_image using 3x3 structuring element. smooth_condition5x5(p) - Conditions to fill up the holes in the_image using 5x5 structuring element. define_struc_elements3x3 smooth_condition3x3 smoothing3x3 (the_image row, col) define_struc_elements5x5 smooth_condition5x5 smoothing5x5 (the_image row, col) smoothing5x5 smoothing3x3 smoothing (the_image row, col) - Fill out the holes in the_image FingerPrint.c Figure 4.20 : Software functional block diagram for smoothing ( ) The software functional block diagram for smoothing ( ) subroutine in FingerPrint.c is shown in Figure There six child subroutines that makes up smoothing ( ) subroutine. The define_struc_element3x3 ( ) subroutine and define_struc_element5x5 ( ) subroutine are the same subroutines that has been used in noise_elimination ( ) subroutine to define the structuring element. The smooth_condition3x3 ( ) subroutine and smooth_condition5x5 ( ) subroutine contains the conditions used by 3 x 3 structuring element and 5 x 5 structuring element respectively. The smoothing3x3 ( ) subroutine and smoothing5x5 ( ) subroutine fill

83 64 out the holes in the image. The full C source code for smoothing ( ) subroutine is shown in Appendix A Thinning Module The smoothed image from smoothing module will be fed through thinning module. In this module, each edge point will be deleted iteratively until only the skeleton remains. The input and output of thinning module is shown in Figure Figure 4.21 : Thinning module The coding for thinning module is done according to flowchart in Figure The process started by initializing the counter to zero. Then each pixel in the image is tested with first subiteration thinning condition as explained in chapter 2. if the condition is satisfied, the pixel will be marked and the counter is updated. After all pixels have been tested, the marked pixel will be deleted. If the counter is not equal to zero which means not all edge point pixel has been deleted, the counter is set back to zero. Each pixel in the image is tested with the second subiteration thinning condition. If the condition is satisfied, the pixel will be marked for deletion and the counter is updated. The marked pixel is deleted after the entire image has

84 65 been tested. The process will continue until the counter is equal to zero. This means that there is no edge point pixel that can be deleted without violating the deletion rules explained in chapter 2. Start the_image, row, col Initialized local parameters ctr = 0 Check thinning condition (satisfied the condition of first sub-iteration) ctr = ctr + 1, if satisfied ctr = 0? Yes Define 3x3 structuring element No ctr = 0 Scan each pixel with 3x3 structuring element Check thinning condition (satisfied the condition of second sub-iteration) ctr = ctr + 1, if satisfied Meet the condition? Yes No ctr = 0? Yes Delete the pixel underneath the origin of structuring element No End of inage? No End Yes Figure 4.22 : Flowchart for thinning module After the all edge point pixel has been deleted except the skeleton image, each pixel in the image is scanned with a 3 x 3 structuring elements to solve the problem of one-pixel thick definition. If the pixel met the conditions, the pixel underneath the origin of the structuring element will be deleted.

85 66 The software functional block diagram for thinning ( ) subroutine in FingerPrint.c is shown in Figure The thinning ( ) subroutine consist of 3 child subroutine. The define_struc_element3x3 ( ) is used to define the 3 x 3 structuring elements used in thinning ( ). The modified_thinning ( ) subroutine contain the additional structuring element conditions to delete the pixel. The check_thinning_condition ( ) contain the condition of first and second subiteration in Zhang and Suen (Zhang and Suen, 1984) algorithm. The fragment code in Figure 4.24 shows the source code for thinning condition in check_thinning_condition ( ). The full C source code for thinning ( ) subroutine is shown in Appendix A.5. define_struc_element3x3 (the_image,p,row,col,x,y) P[9] modified_thinning (p) - Additional conditions to delete the pixel until 1 pixel thick define_struc_elements3x3 check_thinning_condition (the_image row, col) - Conditions to delete 1 pixel per subiteration define_struc_elements3x3 check_thinning_condition modified_thinning thinning (the_image row, col) - Skeletonized the image to one pixel thick FingerPrint.c Figure 4.23 : Software functional block diagram for thinning ( )

86 67 Figure 4.24 : Fragment code for thinning_condition ( ) 4.4 Feature Extraction Stage Feature extraction stage consists of two module; minutiae extraction and minutiae validation. The main focus of this stage is to extract the minutiae point and delete the false minutiae point. This stage is crucial in both enrollment and authentication process. The minutiae point extracted from the image is stored in memory in template base.

87 Minutiae Extraction Module Ridge ending point and ridge bifurcation point are extracted from the thinned image after going through the minutiae extraction module. The minutiae extraction module is designed according to the flowchart in Figure Figure 4.25 : Flowchart for minutiae extraction module

88 69 The process started by defining the 3x3 structuring element that is used to scan each pixel in the image. The crossing number for each pixel is calculated. If the crossing number for the pixel is 1 which means a ridge ending point or the crossing number is equal to 3 which means a ridge bifurcation point, the type and position of the pixel is stored in MINUTIAE structure. The source code to calculate crossing number for each pixel is shown in Figure int cross_num_algorithm(int p[9]) int sum_value = 0; int sub_value; int cn; sub_value = p[1] - p[2]; sum_value = sum_value + abs (sub_value); sub_value = p[2] - p[3]; sum_value = sum_value + abs (sub_value); sub_value = p[3] - p[4]; sum_value = sum_value + abs (sub_value); sub_value = p[4] - p[5]; sum_value = sum_value + abs (sub_value); sub_value = p[5] - p[6]; sum_value = sum_value + abs (sub_value); sub_value = p[6] - p[7]; sum_value = sum_value + abs (sub_value); sub_value = p[7] - p[8]; sum_value = sum_value + abs (sub_value); sub_value = p[8] - p[1]; sum_value = sum_value + abs (sub_value); cn = sum_value / 2; return cn; Figure 4.26 : Source code to calculate the crossing number The software functional block diagram for minutiae_extraction ( ) subroutine in FingerPrint.c is shown in Figure The minutiae_extraction ( ) subroutine contains two child subroutine; define_struc_element3x3 ( ) and cross_num_algorithm ( ). The MINUTIAE structures are defined in biometric_system.h. The detailed C source code for minutiae_extraction ( ) is shown in Appendix A.6.

89 70 biometric_system.h Define MINUTIAE structures define_struc_element3x3 (the_image,p,row,col,x,y) cross_num_algorithm (p[9]) - algorithm to calculate the crossing number. P[9] Cross_num cross_num_algorithm define_struc_element3x3 minutiae_extraction (the_image, row, col, MINUTIAE) - extract minutiae points from the image - input: thinned skeleton image from the image processing stage - output: minutiae point in form of array FingerPrint.c Figure 4.27 : Software functional block diagram for minutiae_extraction ( ) Minutiae Validation Module The minutiae point extracted in minutiae extraction module may contain false minutiae point due to noisy image or artifacts created by the thinning process. The minutiae validation module validates the minutiae points extracted from minutiae extraction module and add direction to the minutiae points. The minutiae validation is done based on the flowchart in Figure The process started by scanning every entry in MINUTIAE structures. If the minutiae type is equal to 1, which indicates ridge ending minutiae, the validity for the ridge ending minutiae is calculated. If the validity is equal to one, which means the ridge ending point is valid, the direction for the minutiae point is calculated. The type, position and direction of the ridge ending minutiae point is saved in

90 71 VALID_MINUTIAE structure. The same process is repeated for minutiae type equal to 3, which indicates the ridge bifurcation point. Figure 4.28 : Flowchart for minutiae validation module

91 72 The software functional block diagram for minutiae_validation ( ) subroutine in FingerPrint.c is shown in Figure The minutiae_validation ( ) subroutine contained four child subroutine; ending_candidate ( ), ending_direction ( ), bifurcation_candidate ( ) and bifurcation_direction ( ). The ending_candidate ( ) subroutine and bifurcation_candidate ( ) subroutine are used to validate the ridge ending and ridge bifurcation candidates in MINUTIAE structures. These candidates are minutiae points extracted in the minutiae extraction module. The detailed C source code for minutiae_validation ( ) is shown in Appendix A.7. biometric_system.h Define MINUTIAE and VALID_MINUTIAE structures ending_candidate (the_image, row, col, temp, i, j) ending_direction (temp) - algorithm to calculate the direction of ridge ending minutiae direct bifurcation_candidate (the_image, row, col, temp, i, j) bifurcation_direction (temp) - algorithm to calculate the direction of ridge ending minutiae direct Ending_candidate Ending_direction bifurcation_candidate Bifurcation_direction minutiae_validation (the_image, row, col, MINUTIAE, VALID_MINUTIAE) - Check validity of minutiae point - input: minutiae templates in MINUTIAE structures - output: valid minutiae point templates in VALID_MINUTIAE structures (type,position,direction) FingerPrint.c Figure 4.29 : Software functional block diagram for minutiae_validation ( )

92 73 The ending_direction ( ) subroutine and bifurcation_direction ( ) subroutine calculates and adds a direction to the minutiae point according the eighth pixels angle to the minutiae point. The direction of the minutiae is represents in degree. Figure 4.30 shows an example of the direction for the ridge ending and ridge bifurcation minutiae. Figure 4.30 : Direction of minutiae point 4.5 Matching Stage Matching stage contain one module that is minutiae matching module. The main focus of this stage is to match fingerprint templates from the enrollment process with templates from the test fingerprint. This stage is executed in the authentication process only.

93 Minutiae Matching Module This module is executed after the enrollment process has been done. The templates from the enrollment process are stored in MINUTIAE_ENROLL structures in memory. Image processing stage and feature extraction stage are also executed in the authentication process but with the templates stored in VALID_MINUTIAE structures in memory. The minutiae matching module is done according to the flowchart in Figure The process started by setting the MATCH_SET structure to zero. A template from MINUTIAE_ENROLL is compared with a template from VALID_MINUTIAE. The template can be matched if the type of the minutiae are equal, the Euclidean distance between both templates are less than the maximum translation tolerance, D f which takes the value of 20 in our system, and the angle between both templates are less than the maximum rotation tolerance, A f which takes the value 30 in our system. If both templates can be matched, it is saved in MATCH_SET structure. Another set of templates are compared until no more pair exist. If the number of matched pairs in MATCH_SET is maximum, it is saved as MATCH_SET_MAX. If no other combination existed, the similarity measure, M is calculated.

94 75 Start VALID_MINUTIAE, MINUTIAE_ENROLL, enroll_minutiae_count, verify_minutiae_count Initialized local parameters MATCH_SET = 0 Select an entry A from MINUTIAE_ENROLL and an entry B from VALID_MINUTIAE A and B MATCH? No Yes Store in MATCH_SET No more pair exist? No Yes Number of element in MATCH_SET is maximum? No Yes MATCH_SET_MAX = MATCH_SET Any other combination? Yes No Save MATCH_SET_MAX Calculate similarity measure, M End Figure 4.31 : Flowchart for minutiae matching module

95 CHAPTER 5 RESULT AND DISCUSSION This chapter contains the result and discussion for each stage in Fingerprint Biometric Template system performed on software. The result for Fingerprint Biometric system performed on the development board is also provided. 5.1 Image Processing Stage The original image that is loaded into the system is shown in Figure 5.1. The image is a 256 gray-scale bitmap image with 128 x 128 pixels size. There are five modules in image processing stage. Output of each module will be fed into the next module for further purpose. Detail operation and design of each module is described in previous chapter. The result for each module in image processing stage is shown in Figure 5.2 to Figure 5.6. Output of thinning module will be fed to the feature extraction stage. The output of the image segmentation module is shown in Figure 5.2. The result shows that the output image has been cropped and only depicts the fingerprint.

96 77 The noise in the background has been deleted. Output of the binarization module is shown in Figure 5.3. The result shows that the gray-scale image has been converted to black and white image. In Figure 5.3, the small dots that exist in the binary image are noise due to poor fingerprint acquisition. The noise has been removed after going through the noise elimination module, as shown in Figure 5.4. Figure 5.5 shows the result of smoothing module where holes that existed in the image have been removed. The image is thinned to one-pixel width after fed through thinning module as shown in figure 5.6. These result shows that each module has performed its task as expected. Figure 5.1 : Input image

97 78 Figure 5.2 : Result of image segmentation module Figure 5.3 : Result of binarization module

98 79 Figure5.4 : Result of noise elimination module Figure 5.5 : Result of smoothing module

99 80 Figure 5.6 : Result of thinning module 5.2 Feature Extraction Stage Output from image processing module will be the input for feature extraction stage. Feature extraction stage contains two modules; minutiae extraction module and minutiae validation module. Detail operation and design for each module has been explained in the previous chapter. Feature extraction extract the minutiae point from the image and stored the minutiae points in template based. In this work, the templates are stored in the memory of the system and the minutiae points are marked on the image as a visual aid only. Figure 5.7 shows a fragment result of minutiae extraction stage. The templates are displayed in command prompt. At this module, only the minutiae type and position are extracted. Type equal to 1 indicates ridge ending and type equal to 3 indicates ridge bifurcation. Figure 5.8 shows the result of minutiae validation stage. Notice that the templates have reduced due to lots of false minutiae has been deleted from the record. In this module, the direction of the

100 81 minutiae points has been calculated and added to the templates. Figure 5.9 shows the visual aid of the feature extraction stage. The red dots indicate the minutiae ending points and the green dots indicate the minutiae bifurcation points. These results show that the modules work as expected. Figure 5.7 : Fragment result of minutiae extraction module

101 Figure 5.8 : Result of minutiae validation module 82

102 83 Figure 5.9 : Output of feature extraction stage 5.3 Matching Stage Matching stage match templates from the enrollment process (stored templates) with templates from the authentication process (test templates). Figure 5.10 shows a set of fingerprint images that came from the same finger and used as input to the matching process. The result of process is shown in Figure Figure 5.12 show another set of fingerprint images that came from different fingers and

103 84 used as input the matching process. The result of the process is shown in Figure These result shows that the module works as expected. Figure 5.10 : Images from the same fingerprint Figure 5.11 : Result of minutiae matching module

104 85 Input to enrollment process Input to authentication process Figure 5.12 : Images from different fingerprint Figure 5.13 : Result of minutiae matching module

105 Fingerprint Biometric Template System The Fingerprint Biometric Template system is embedded in the Nios development board. The input images are loaded into the system using the GUI on the host PC. This system used 256 gray-scale bitmap images with the size of 80 x 80 pixels due to shortage of memory in the embedded processor. Figure 5.14 show the screen shot of the result from the embedded system. Figure 5.14 : Screen shot of embedded system result

106 CHAPTER 6 CONCLUSION 6.1 Concluding Remark The proposed Fingerprint Biometric Template system is an embedded system that is part of a fingerprint recognition system based on minutiae points. The system extract the local characteristic of a fingerprint which is minutiae points in template based. The proposed embedded system consists of two components; the GUI on host PC and the software embedded in Nios embedded processor on Altera Apex EP20K200E Development Board. The software contains three stages; image processing, feature extraction and matching stage. The main focus of this project is to enhance the fingerprint image and extract the minutiae points in template based from the enhanced image. This is done by the image processing and feature extraction stage in the system. The matching stage compare two set of templates from two fingerprints.

107 Recommendation of Future Work The work in this project suggests that future enhancement can be carried out to further improve the design to achieve better performance or a more complete operation. Below are some of the proposed future works: The first recommendation is the improvement of the image processing stage. The image processing stage result can be improved by using adaptive threshold values for image segmentation and binarization process. Image segmentation process can be done by applying histogram-based image segmentation for every image. Therefore an image will have different threshold value than other image. For binarization process, an adaptive average thresholding can be used. For every pixel in the image, the average gray value of the pixels in the 5 x 5 neighborhood of the pixel is calculated and used as the threshold value. The second recommendation is the improvement of the feature extraction stage. False minutiae points are extracted because the ridges are out of scanner bounds or due to image segmentation process. This can be improved by checking the angle of ending minutiae that are close to the background image. If the direction of the minutiae is opposite to the background, the minutiae are discarded. Another type of false minutiae extracted are because of failure of image processing stage to fix broken ridge line. This will result in two false ending minutiae extracted. This can be solving by checking the direction of two minutiae that are close to each other. If the minutiae are opposite and aligned, the minutiae can be discarded. The next recommendation is the improvement of the matching algorithms. There two ways can be done to improve the matching algorithms; find a common reference point for the entire minutiae template in the image or use a method called vector triangular. The first method suggests that the template minutiae should be used as reference point. They should be tried as reference point one by one starting

108 89 by the one closest to the center of the image. The center image can be set up by finding the global representation of fingerprint such as delta and core first. After the template minutiae have been used as a reference point, the position and angle of the reference point should be used to align the second set of minutiae. The second method is suggested by Jia et al (Jia et al, 2004). The method incorporates the information of ridge lines into the process of determining the reference points in two fingerprint image (the templates and input image) and realized the fingerprint matching in the polar coordinate system. Image acquisition stage can be added up to the system to acquire the input image in a real-time system. Besides that, a system database can also be added to further improve the system to achieve a complete recognition system. We need to obtain a fingerprint scanner for the image acquisition stage. The scanner will generate a digital image of the fingerprint. The system database needs to be done on the host pc using software development. One of the software that can be used is the Microsoft Visual C++. It provides four different technologies for using and accessing databases in our application; Data Access Object (DAO), Open Database Connector (ODBC), Object Linking and Embedding Database (OLE DB) and ActiveX Data Objects (ADO). The last recommendation is to implement the system in hardware design to develop a biometric core processor. This coprocessor can be used with other crypto coprocessor to create a biometric-based key release application. Figure 6.1 shows the diagram of this application. In this application, fingerprint template is the key to release the secret. If the input fingerprint matches the fingerprint template, the decryption key is released.

109 Figure 6.1 : Biometric-based key released 90

FINGERPRINT DATABASE NUR AMIRA BINTI ARIFFIN THESIS SUBMITTED IN FULFILMENT OF THE DEGREE OF COMPUTER SCIENCE (COMPUTER SYSTEM AND NETWORKING)

FINGERPRINT DATABASE NUR AMIRA BINTI ARIFFIN THESIS SUBMITTED IN FULFILMENT OF THE DEGREE OF COMPUTER SCIENCE (COMPUTER SYSTEM AND NETWORKING) FINGERPRINT DATABASE NUR AMIRA BINTI ARIFFIN THESIS SUBMITTED IN FULFILMENT OF THE DEGREE OF COMPUTER SCIENCE (COMPUTER SYSTEM AND NETWORKING) FACULTY OF COMPUTER SYSTEM AND SOFTWARE ENGINEERING 2015 i

More information

Development of an Automated Fingerprint Verification System

Development of an Automated Fingerprint Verification System Development of an Automated Development of an Automated Fingerprint Verification System Fingerprint Verification System Martin Saveski 18 May 2010 Introduction Biometrics the use of distinctive anatomical

More information

HARDWARE AND SOFTWARE CO-SIMULATION PLATFORM FOR CONVOLUTION OR CORRELATION BASED IMAGE PROCESSING ALGORITHMS SAYED OMID AYAT

HARDWARE AND SOFTWARE CO-SIMULATION PLATFORM FOR CONVOLUTION OR CORRELATION BASED IMAGE PROCESSING ALGORITHMS SAYED OMID AYAT HARDWARE AND SOFTWARE CO-SIMULATION PLATFORM FOR CONVOLUTION OR CORRELATION BASED IMAGE PROCESSING ALGORITHMS SAYED OMID AYAT UNIVERSITI TEKNOLOGI MALAYSIA HARDWARE AND SOFTWARE CO-SIMULATION PLATFORM

More information

Abstract -Fingerprints are the most widely. Keywords:fingerprint; ridge pattern; biometric;

Abstract -Fingerprints are the most widely. Keywords:fingerprint; ridge pattern; biometric; Analysis Of Finger Print Detection Techniques Prof. Trupti K. Wable *1(Assistant professor of Department of Electronics & Telecommunication, SVIT Nasik, India) trupti.wable@pravara.in*1 Abstract -Fingerprints

More information

Finger Print Analysis and Matching Daniel Novák

Finger Print Analysis and Matching Daniel Novák Finger Print Analysis and Matching Daniel Novák 1.11, 2016, Prague Acknowledgments: Chris Miles,Tamer Uz, Andrzej Drygajlo Handbook of Fingerprint Recognition, Chapter III Sections 1-6 Outline - Introduction

More information

Fingerprint Image Enhancement Algorithm and Performance Evaluation

Fingerprint Image Enhancement Algorithm and Performance Evaluation Fingerprint Image Enhancement Algorithm and Performance Evaluation Naja M I, Rajesh R M Tech Student, College of Engineering, Perumon, Perinad, Kerala, India Project Manager, NEST GROUP, Techno Park, TVM,

More information

HARDWARE/SOFTWARE SYSTEM-ON-CHIP CO-VERIFICATION PLATFORM BASED ON LOGIC-BASED ENVIRONMENT FOR APPLICATION PROGRAMMING INTERFACING TEO HONG YAP

HARDWARE/SOFTWARE SYSTEM-ON-CHIP CO-VERIFICATION PLATFORM BASED ON LOGIC-BASED ENVIRONMENT FOR APPLICATION PROGRAMMING INTERFACING TEO HONG YAP HARDWARE/SOFTWARE SYSTEM-ON-CHIP CO-VERIFICATION PLATFORM BASED ON LOGIC-BASED ENVIRONMENT FOR APPLICATION PROGRAMMING INTERFACING TEO HONG YAP A project report submitted in partial fulfilment of the requirements

More information

Encryption of Text Using Fingerprints

Encryption of Text Using Fingerprints Encryption of Text Using Fingerprints Abhishek Sharma 1, Narendra Kumar 2 1 Master of Technology, Information Security Management, Dehradun Institute of Technology, Dehradun, India 2 Assistant Professor,

More information

AN EFFICIENT BINARIZATION TECHNIQUE FOR FINGERPRINT IMAGES S. B. SRIDEVI M.Tech., Department of ECE

AN EFFICIENT BINARIZATION TECHNIQUE FOR FINGERPRINT IMAGES S. B. SRIDEVI M.Tech., Department of ECE AN EFFICIENT BINARIZATION TECHNIQUE FOR FINGERPRINT IMAGES S. B. SRIDEVI M.Tech., Department of ECE sbsridevi89@gmail.com 287 ABSTRACT Fingerprint identification is the most prominent method of biometric

More information

LOCALIZING NON-IDEAL IRISES VIA CHAN-VESE MODEL AND VARIATIONAL LEVEL SET OF ACTIVE CONTOURS WITHTOUT RE- INITIALIZATION QADIR KAMAL MOHAMMED ALI

LOCALIZING NON-IDEAL IRISES VIA CHAN-VESE MODEL AND VARIATIONAL LEVEL SET OF ACTIVE CONTOURS WITHTOUT RE- INITIALIZATION QADIR KAMAL MOHAMMED ALI LOCALIZING NON-IDEAL IRISES VIA CHAN-VESE MODEL AND VARIATIONAL LEVEL SET OF ACTIVE CONTOURS WITHTOUT RE- INITIALIZATION QADIR KAMAL MOHAMMED ALI A dissertation submitted in partial fulfillment of the

More information

Finger Print Enhancement Using Minutiae Based Algorithm

Finger Print Enhancement Using Minutiae Based Algorithm Available Online at www.ijcsmc.com International Journal of Computer Science and Mobile Computing A Monthly Journal of Computer Science and Information Technology IJCSMC, Vol. 3, Issue. 8, August 2014,

More information

Fingerprint Identification System Based On Neural Network

Fingerprint Identification System Based On Neural Network Fingerprint Identification System Based On Neural Network Mr. Lokhande S.K., Prof. Mrs. Dhongde V.S. ME (VLSI & Embedded Systems), Vishwabharati Academy s College of Engineering, Ahmednagar (MS), India

More information

Morphological Image Processing

Morphological Image Processing Morphological Image Processing Morphology Identification, analysis, and description of the structure of the smallest unit of words Theory and technique for the analysis and processing of geometric structures

More information

Designing of Fingerprint Enhancement Based on Curved Region Based Ridge Frequency Estimation

Designing of Fingerprint Enhancement Based on Curved Region Based Ridge Frequency Estimation Designing of Fingerprint Enhancement Based on Curved Region Based Ridge Frequency Estimation Navjot Kaur #1, Mr. Gagandeep Singh #2 #1 M. Tech:Computer Science Engineering, Punjab Technical University

More information

CPSC 695. Geometric Algorithms in Biometrics. Dr. Marina L. Gavrilova

CPSC 695. Geometric Algorithms in Biometrics. Dr. Marina L. Gavrilova CPSC 695 Geometric Algorithms in Biometrics Dr. Marina L. Gavrilova Biometric goals Verify users Identify users Synthesis - recently Biometric identifiers Courtesy of Bromba GmbH Classification of identifiers

More information

Published by: PIONEER RESEARCH & DEVELOPMENT GROUP (www.prdg.org) 1

Published by: PIONEER RESEARCH & DEVELOPMENT GROUP (www.prdg.org) 1 Minutiae Points Extraction using Biometric Fingerprint- Enhancement Vishal Wagh 1, Shefali Sonavane 2 1 Computer Science and Engineering Department, Walchand College of Engineering, Sangli, Maharashtra-416415,

More information

Morphological Image Processing

Morphological Image Processing Morphological Image Processing Binary image processing In binary images, we conventionally take background as black (0) and foreground objects as white (1 or 255) Morphology Figure 4.1 objects on a conveyor

More information

Fingerprint Verification System using Minutiae Extraction Technique

Fingerprint Verification System using Minutiae Extraction Technique Fingerprint Verification System using Minutiae Extraction Technique Manvjeet Kaur, Mukhwinder Singh, Akshay Girdhar, and Parvinder S. Sandhu Abstract Most fingerprint recognition techniques are based on

More information

REINFORCED FINGERPRINT MATCHING METHOD FOR AUTOMATED FINGERPRINT IDENTIFICATION SYSTEM

REINFORCED FINGERPRINT MATCHING METHOD FOR AUTOMATED FINGERPRINT IDENTIFICATION SYSTEM REINFORCED FINGERPRINT MATCHING METHOD FOR AUTOMATED FINGERPRINT IDENTIFICATION SYSTEM 1 S.Asha, 2 T.Sabhanayagam 1 Lecturer, Department of Computer science and Engineering, Aarupadai veedu institute of

More information

Minutiae Based Fingerprint Authentication System

Minutiae Based Fingerprint Authentication System Minutiae Based Fingerprint Authentication System Laya K Roy Student, Department of Computer Science and Engineering Jyothi Engineering College, Thrissur, India Abstract: Fingerprint is the most promising

More information

A New Approach To Fingerprint Recognition

A New Approach To Fingerprint Recognition A New Approach To Fingerprint Recognition Ipsha Panda IIIT Bhubaneswar, India ipsha23@gmail.com Saumya Ranjan Giri IL&FS Technologies Ltd. Bhubaneswar, India saumya.giri07@gmail.com Prakash Kumar IL&FS

More information

Fingerprint Matching using Gabor Filters

Fingerprint Matching using Gabor Filters Fingerprint Matching using Gabor Filters Muhammad Umer Munir and Dr. Muhammad Younas Javed College of Electrical and Mechanical Engineering, National University of Sciences and Technology Rawalpindi, Pakistan.

More information

Improving Latent Fingerprint Matching Performance by Orientation Field Estimation using Localized Dictionaries

Improving Latent Fingerprint Matching Performance by Orientation Field Estimation using Localized Dictionaries Available Online at www.ijcsmc.com International Journal of Computer Science and Mobile Computing A Monthly Journal of Computer Science and Information Technology IJCSMC, Vol. 3, Issue. 11, November 2014,

More information

MICRO-SEQUENCER BASED CONTROL UNIT DESIGN FOR A CENTRAL PROCESSING UNIT TAN CHANG HAI

MICRO-SEQUENCER BASED CONTROL UNIT DESIGN FOR A CENTRAL PROCESSING UNIT TAN CHANG HAI MICRO-SEQUENCER BASED CONTROL UNIT DESIGN FOR A CENTRAL PROCESSING UNIT TAN CHANG HAI A project report submitted in partial fulfillment of the requirement for the award of the degree of Master of Engineering

More information

Fingerprint Feature Extraction Using Hough Transform and Minutiae Extraction

Fingerprint Feature Extraction Using Hough Transform and Minutiae Extraction International Journal of Computer Science & Management Studies, Vol. 13, Issue 05, July 2013 Fingerprint Feature Extraction Using Hough Transform and Minutiae Extraction Nitika 1, Dr. Nasib Singh Gill

More information

THE COMPARISON OF IMAGE MANIFOLD METHOD AND VOLUME ESTIMATION METHOD IN CONSTRUCTING 3D BRAIN TUMOR IMAGE

THE COMPARISON OF IMAGE MANIFOLD METHOD AND VOLUME ESTIMATION METHOD IN CONSTRUCTING 3D BRAIN TUMOR IMAGE THE COMPARISON OF IMAGE MANIFOLD METHOD AND VOLUME ESTIMATION METHOD IN CONSTRUCTING 3D BRAIN TUMOR IMAGE SHAMSHIYATULBAQIYAH BINTI ABDUL WAHAB UNIVERSITI TEKNOLOGI MALAYSIA THE COMPARISON OF IMAGE MANIFOLD

More information

Numerical analysis and comparison of distorted fingermarks from the same source. Bruce Comber

Numerical analysis and comparison of distorted fingermarks from the same source. Bruce Comber Numerical analysis and comparison of distorted fingermarks from the same source Bruce Comber This thesis is submitted pursuant to a Master of Information Science (Research) at the University of Canberra

More information

An Approach to Demonstrate the Fallacies of Current Fingerprint Technology

An Approach to Demonstrate the Fallacies of Current Fingerprint Technology An Approach to Demonstrate the Fallacies of Current Fingerprint Technology Pinaki Satpathy 1, Banibrata Bag 1, Akinchan Das 1, Raj Kumar Maity 1, Moumita Jana 1 Assistant Professor in Electronics & Comm.

More information

Genetic Algorithm For Fingerprint Matching

Genetic Algorithm For Fingerprint Matching Genetic Algorithm For Fingerprint Matching B. POORNA Department Of Computer Applications, Dr.M.G.R.Educational And Research Institute, Maduravoyal, Chennai 600095,TamilNadu INDIA. Abstract:- An efficient

More information

RECOGNITION OF PARTIALLY OCCLUDED OBJECTS IN 2D IMAGES ALMUASHI MOHAMMED ALI UNIVERSITI TEKNOLOGI MALAYSIA

RECOGNITION OF PARTIALLY OCCLUDED OBJECTS IN 2D IMAGES ALMUASHI MOHAMMED ALI UNIVERSITI TEKNOLOGI MALAYSIA RECOGNITION OF PARTIALLY OCCLUDED OBJECTS IN 2D IMAGES ALMUASHI MOHAMMED ALI UNIVERSITI TEKNOLOGI MALAYSIA i RECOGNITION OF PARTIALLY OCCLUDED OBJECT IN 2D IMAGES ALMUASHI MOHAMMED ALI A dissertation submitted

More information

Biomedical Image Analysis. Mathematical Morphology

Biomedical Image Analysis. Mathematical Morphology Biomedical Image Analysis Mathematical Morphology Contents: Foundation of Mathematical Morphology Structuring Elements Applications BMIA 15 V. Roth & P. Cattin 265 Foundations of Mathematical Morphology

More information

Touchless Fingerprint recognition using MATLAB

Touchless Fingerprint recognition using MATLAB International Journal of Innovation and Scientific Research ISSN 2351-814 Vol. 1 No. 2 Oct. 214, pp. 458-465 214 Innovative Space of Scientific Research Journals http://www.ijisr.issr-journals.org/ Touchless

More information

Keywords: Fingerprint, Minutia, Thinning, Edge Detection, Ridge, Bifurcation. Classification: GJCST Classification: I.5.4, I.4.6

Keywords: Fingerprint, Minutia, Thinning, Edge Detection, Ridge, Bifurcation. Classification: GJCST Classification: I.5.4, I.4.6 Global Journal of Computer Science & Technology Volume 11 Issue 6 Version 1.0 April 2011 Type: Double Blind Peer Reviewed International Research Journal Publisher: Global Journals Inc. (USA) Online ISSN:

More information

This is the published version:

This is the published version: This is the published version: Youssif, A.A.A., Chowdhury, Morshed, Ray, Sid and Nafaa, H.Y. 2007, Fingerprint recognition system using hybrid matching techniques, in 6th IEEE/ACIS International Conference

More information

Fingerprint Verification applying Invariant Moments

Fingerprint Verification applying Invariant Moments Fingerprint Verification applying Invariant Moments J. Leon, G Sanchez, G. Aguilar. L. Toscano. H. Perez, J. M. Ramirez National Polytechnic Institute SEPI ESIME CULHUACAN Mexico City, Mexico National

More information

Image Enhancement Techniques for Fingerprint Identification

Image Enhancement Techniques for Fingerprint Identification March 2013 1 Image Enhancement Techniques for Fingerprint Identification Pankaj Deshmukh, Siraj Pathan, Riyaz Pathan Abstract The aim of this paper is to propose a new method in fingerprint enhancement

More information

EE795: Computer Vision and Intelligent Systems

EE795: Computer Vision and Intelligent Systems EE795: Computer Vision and Intelligent Systems Spring 2012 TTh 17:30-18:45 WRI C225 Lecture 04 130131 http://www.ee.unlv.edu/~b1morris/ecg795/ 2 Outline Review Histogram Equalization Image Filtering Linear

More information

automatic digitization. In the context of ever increasing population worldwide and thereby

automatic digitization. In the context of ever increasing population worldwide and thereby Chapter 1 Introduction In the recent time, many researchers had thrust upon developing various improvised methods of automatic digitization. In the context of ever increasing population worldwide and thereby

More information

Fingerprint Matching Using Minutiae Feature Hardikkumar V. Patel, Kalpesh Jadav

Fingerprint Matching Using Minutiae Feature Hardikkumar V. Patel, Kalpesh Jadav Fingerprint Matching Using Minutiae Feature Hardikkumar V. Patel, Kalpesh Jadav Abstract- Fingerprints have been used in identification of individuals for many years because of the famous fact that each

More information

Fingerprint Recognition using Fuzzy based image Enhancement

Fingerprint Recognition using Fuzzy based image Enhancement Fingerprint Recognition using Fuzzy based image Enhancement BhartiYadav 1, Ram NivasGiri 2 P.G. Student, Department of Computer Engineering, Raipur Institute of technology, Raipur, Chhattisgarh, India

More information

SEMANTICS ORIENTED APPROACH FOR IMAGE RETRIEVAL IN LOW COMPLEX SCENES WANG HUI HUI

SEMANTICS ORIENTED APPROACH FOR IMAGE RETRIEVAL IN LOW COMPLEX SCENES WANG HUI HUI SEMANTICS ORIENTED APPROACH FOR IMAGE RETRIEVAL IN LOW COMPLEX SCENES WANG HUI HUI A thesis submitted in fulfilment of the requirements for the award of the degree of Doctor of Philosophy (Computer Science)

More information

Fast and Robust Projective Matching for Fingerprints using Geometric Hashing

Fast and Robust Projective Matching for Fingerprints using Geometric Hashing Fast and Robust Projective Matching for Fingerprints using Geometric Hashing Rintu Boro Sumantra Dutta Roy Department of Electrical Engineering, IIT Bombay, Powai, Mumbai - 400 076, INDIA {rintu, sumantra}@ee.iitb.ac.in

More information

BORANG PENGESAHAN STATUS TESIS

BORANG PENGESAHAN STATUS TESIS UNIVERSITI MALAYSIA PAHANG BORANG PENGESAHAN STATUS TESIS JUDUL: RFID BASED SYSTEMATIC STUDENT S ATTENDANCE MANAGEMENT SYSTEM SESI PENGAJIAN: 2010/2011 Saya HANISAH BT HAMID ( 860210-02-5274 ) (HURUF BESAR)

More information

FILTERBANK-BASED FINGERPRINT MATCHING. Dinesh Kapoor(2005EET2920) Sachin Gajjar(2005EET3194) Himanshu Bhatnagar(2005EET3239)

FILTERBANK-BASED FINGERPRINT MATCHING. Dinesh Kapoor(2005EET2920) Sachin Gajjar(2005EET3194) Himanshu Bhatnagar(2005EET3239) FILTERBANK-BASED FINGERPRINT MATCHING Dinesh Kapoor(2005EET2920) Sachin Gajjar(2005EET3194) Himanshu Bhatnagar(2005EET3239) Papers Selected FINGERPRINT MATCHING USING MINUTIAE AND TEXTURE FEATURES By Anil

More information

Logical Templates for Feature Extraction in Fingerprint Images

Logical Templates for Feature Extraction in Fingerprint Images Logical Templates for Feature Extraction in Fingerprint Images Bir Bhanu, Michael Boshra and Xuejun Tan Center for Research in Intelligent Systems University of Califomia, Riverside, CA 9252 1, USA Email:

More information

The Design of Fingerprint Biometric Authentication on Smart Card for

The Design of Fingerprint Biometric Authentication on Smart Card for The Design of Fingerprint Biometric Authentication on Smart Card for PULAPOT Main Entrance System Computer Science Department, Faculty of Technology Science and Defence Universiti Pertahanan Nasional Malaysia

More information

Fingerprint Recognition Using Gabor Filter And Frequency Domain Filtering

Fingerprint Recognition Using Gabor Filter And Frequency Domain Filtering IOSR Journal of Electronics and Communication Engineering (IOSRJECE) ISSN : 2278-2834 Volume 2, Issue 6 (Sep-Oct 2012), PP 17-21 Fingerprint Recognition Using Gabor Filter And Frequency Domain Filtering

More information

DETECTION OF WORMHOLE ATTACK IN MOBILE AD-HOC NETWORKS MOJTABA GHANAATPISHEH SANAEI

DETECTION OF WORMHOLE ATTACK IN MOBILE AD-HOC NETWORKS MOJTABA GHANAATPISHEH SANAEI ii DETECTION OF WORMHOLE ATTACK IN MOBILE AD-HOC NETWORKS MOJTABA GHANAATPISHEH SANAEI A project report submitted in partial fulfillment of the requirements for the award of the degree of Master of Computer

More information

BLOCK-BASED NEURAL NETWORK MAPPING ON GRAPHICS PROCESSOR UNIT ONG CHIN TONG UNIVERSITI TEKNOLOGI MALAYSIA

BLOCK-BASED NEURAL NETWORK MAPPING ON GRAPHICS PROCESSOR UNIT ONG CHIN TONG UNIVERSITI TEKNOLOGI MALAYSIA BLOCK-BASED NEURAL NETWORK MAPPING ON GRAPHICS PROCESSOR UNIT ONG CHIN TONG UNIVERSITI TEKNOLOGI MALAYSIA BLOCK-BASED NEURAL NETWORK MAPPING ON GRAPHICS PROCESSOR UNIT ONG CHIN TONG A project report submitted

More information

Study of Local Binary Pattern for Partial Fingerprint Identification

Study of Local Binary Pattern for Partial Fingerprint Identification International OPEN ACCESS Journal Of Modern Engineering Research (IJMER) Study of Local Binary Pattern for Partial Fingerprint Identification Miss Harsha V. Talele 1, Pratvina V. Talele 2, Saranga N Bhutada

More information

Biometric Security Roles & Resources

Biometric Security Roles & Resources Biometric Security Roles & Resources Part 1 Biometric Systems Skip Linehan Biometrics Systems Architect, Raytheon Intelligence and Information Systems Outline Biometrics Overview Biometric Architectures

More information

Keywords Fingerprint enhancement, Gabor filter, Minutia extraction, Minutia matching, Fingerprint recognition. Bifurcation. Independent Ridge Lake

Keywords Fingerprint enhancement, Gabor filter, Minutia extraction, Minutia matching, Fingerprint recognition. Bifurcation. Independent Ridge Lake Volume 4, Issue 8, August 2014 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com A novel approach

More information

AUTOMATED STUDENT S ATTENDANCE ENTERING SYSTEM BY ELIMINATING FORGE SIGNATURES

AUTOMATED STUDENT S ATTENDANCE ENTERING SYSTEM BY ELIMINATING FORGE SIGNATURES AUTOMATED STUDENT S ATTENDANCE ENTERING SYSTEM BY ELIMINATING FORGE SIGNATURES K. P. M. L. P. Weerasinghe 149235H Faculty of Information Technology University of Moratuwa June 2017 AUTOMATED STUDENT S

More information

UNIVERSITI MALAYSIA PAHANG

UNIVERSITI MALAYSIA PAHANG IMAGE ENHANCEMENT AND SEGMENTATION ON SIMULTANEOUS LATENT FINGERPRINT DETECTION ROZITA BINTI MOHD YUSOF MASTER OF COMPUTER SCIENCE UNIVERSITI MALAYSIA PAHANG IMAGE ENHANCEMENT AND SEGMENTATION ON SIMULTANEOUS

More information

User Identification by Hierarchical Fingerprint and Palmprint Matching

User Identification by Hierarchical Fingerprint and Palmprint Matching User Identification by Hierarchical Fingerprint and Palmprint Matching Annapoorani D #1, Caroline Viola Stella Mary M *2 # PG Scholar, Department of Information Technology, * Prof. and HOD, Department

More information

Biometrics- Fingerprint Recognition

Biometrics- Fingerprint Recognition International Journal of Information & Computation Technology. ISSN 0974-2239 Volume 4, Number 11 (2014), pp. 1097-1102 International Research Publications House http://www. irphouse.com Biometrics- Fingerprint

More information

IMPLEMENTATION OF UNMANNED AERIAL VEHICLE MOVING OBJECT DETECTION ALGORITHM ON INTEL ATOM EMBEDDED SYSTEM

IMPLEMENTATION OF UNMANNED AERIAL VEHICLE MOVING OBJECT DETECTION ALGORITHM ON INTEL ATOM EMBEDDED SYSTEM IMPLEMENTATION OF UNMANNED AERIAL VEHICLE MOVING OBJECT DETECTION ALGORITHM ON INTEL ATOM EMBEDDED SYSTEM CHEONG WEI WEI UNIVERSITI TEKNOLOGI MALAYSIA IMPLEMENTATION OF UNMANNED AERIAL VEHICLE MOVING OBJECT

More information

HARDWARE-ACCELERATED LOCALIZATION FOR AUTOMATED LICENSE PLATE RECOGNITION SYSTEM CHIN TECK LOONG UNIVERSITI TEKNOLOGI MALAYSIA

HARDWARE-ACCELERATED LOCALIZATION FOR AUTOMATED LICENSE PLATE RECOGNITION SYSTEM CHIN TECK LOONG UNIVERSITI TEKNOLOGI MALAYSIA HARDWARE-ACCELERATED LOCALIZATION FOR AUTOMATED LICENSE PLATE RECOGNITION SYSTEM CHIN TECK LOONG UNIVERSITI TEKNOLOGI MALAYSIA HARDWARE-ACCELERATED LOCALIZATION FOR AUTOMATED LICENSE PLATE RECOGNITION

More information

Implementation of Minutiae Based Fingerprint Identification System using Crossing Number Concept

Implementation of Minutiae Based Fingerprint Identification System using Crossing Number Concept Implementation of Based Fingerprint Identification System using Crossing Number Concept Atul S. Chaudhari #1, Dr. Girish K. Patnaik* 2, Sandip S. Patil +3 #1 Research Scholar, * 2 Professor and Head, +3

More information

SUPERVISED MACHINE LEARNING APPROACH FOR DETECTION OF MALICIOUS EXECUTABLES YAHYE ABUKAR AHMED

SUPERVISED MACHINE LEARNING APPROACH FOR DETECTION OF MALICIOUS EXECUTABLES YAHYE ABUKAR AHMED i SUPERVISED MACHINE LEARNING APPROACH FOR DETECTION OF MALICIOUS EXECUTABLES YAHYE ABUKAR AHMED A project submitted in partial fulfillment of the requirements for the award of the degree of Master of

More information

IMPROVED IMAGE COMPRESSION SCHEME USING HYBRID OF DISCRETE FOURIER, WAVELETS AND COSINE TRANSFORMATION MOH DALI MOUSTAFA ALSAYYH

IMPROVED IMAGE COMPRESSION SCHEME USING HYBRID OF DISCRETE FOURIER, WAVELETS AND COSINE TRANSFORMATION MOH DALI MOUSTAFA ALSAYYH 4 IMPROVED IMAGE COMPRESSION SCHEME USING HYBRID OF DISCRETE FOURIER, WAVELETS AND COSINE TRANSFORMATION MOH DALI MOUSTAFA ALSAYYH A thesis submitted in fulfilment of the requirements for the award of

More information

Local Correlation-based Fingerprint Matching

Local Correlation-based Fingerprint Matching Local Correlation-based Fingerprint Matching Karthik Nandakumar Department of Computer Science and Engineering Michigan State University, MI 48824, U.S.A. nandakum@cse.msu.edu Anil K. Jain Department of

More information

SECURE-SPIN WITH HASHING TO SUPPORT MOBILITY AND SECURITY IN WIRELESS SENSOR NETWORK MOHAMMAD HOSSEIN AMRI UNIVERSITI TEKNOLOGI MALAYSIA

SECURE-SPIN WITH HASHING TO SUPPORT MOBILITY AND SECURITY IN WIRELESS SENSOR NETWORK MOHAMMAD HOSSEIN AMRI UNIVERSITI TEKNOLOGI MALAYSIA SECURE-SPIN WITH HASHING TO SUPPORT MOBILITY AND SECURITY IN WIRELESS SENSOR NETWORK MOHAMMAD HOSSEIN AMRI UNIVERSITI TEKNOLOGI MALAYSIA SECURE-SPIN WITH HASHING TO SUPPORT MOBILITY AND SECURITY IN WIRELESS

More information

Image Stitching Using Partial Latent Fingerprints

Image Stitching Using Partial Latent Fingerprints Image Stitching Using Partial Latent Fingerprints by Stuart Christopher Ellerbusch Bachelor of Science Business Administration, Accounting University of Central Florida, 1996 Master of Science Computer

More information

TOPIC : FINGERPRINT RECOGNITION

TOPIC : FINGERPRINT RECOGNITION TOPIC : FINGERPRINT RECOGNITION A fingerprint in its narrow sense is an impression left by the friction ridges of a human finger. The recovery of fingerprints from a crime scene is an important method

More information

Gesture based PTZ camera control

Gesture based PTZ camera control Gesture based PTZ camera control Report submitted in May 2014 to the department of Computer Science and Engineering of National Institute of Technology Rourkela in partial fulfillment of the requirements

More information

Multimodal Biometric Authentication using Face and Fingerprint

Multimodal Biometric Authentication using Face and Fingerprint IJIRST National Conference on Networks, Intelligence and Computing Systems March 2017 Multimodal Biometric Authentication using Face and Fingerprint Gayathri. R 1 Viji. A 2 1 M.E Student 2 Teaching Fellow

More information

AUTOMATIC APPLICATION PROGRAMMING INTERFACE FOR MULTI HOP WIRELESS FIDELITY WIRELESS SENSOR NETWORK

AUTOMATIC APPLICATION PROGRAMMING INTERFACE FOR MULTI HOP WIRELESS FIDELITY WIRELESS SENSOR NETWORK AUTOMATIC APPLICATION PROGRAMMING INTERFACE FOR MULTI HOP WIRELESS FIDELITY WIRELESS SENSOR NETWORK MOHD HUSAINI BIN MOHD FAUZI UNIVERSITI TEKNOLOGI MALAYSIA AUTOMATIC APPLICATION PROGRAMMING INTERFACE

More information

COLOUR IMAGE WATERMARKING USING DISCRETE COSINE TRANSFORM AND TWO-LEVEL SINGULAR VALUE DECOMPOSITION BOKAN OMAR ALI

COLOUR IMAGE WATERMARKING USING DISCRETE COSINE TRANSFORM AND TWO-LEVEL SINGULAR VALUE DECOMPOSITION BOKAN OMAR ALI COLOUR IMAGE WATERMARKING USING DISCRETE COSINE TRANSFORM AND TWO-LEVEL SINGULAR VALUE DECOMPOSITION BOKAN OMAR ALI A dissertation submitted in partial fulfillment of the requirements for the award of

More information

ENHANCING TIME-STAMPING TECHNIQUE BY IMPLEMENTING MEDIA ACCESS CONTROL ADDRESS PACU PUTRA SUARLI

ENHANCING TIME-STAMPING TECHNIQUE BY IMPLEMENTING MEDIA ACCESS CONTROL ADDRESS PACU PUTRA SUARLI ENHANCING TIME-STAMPING TECHNIQUE BY IMPLEMENTING MEDIA ACCESS CONTROL ADDRESS PACU PUTRA SUARLI A project report submitted in partial fulfillment of the requirements for the award of the degree of Master

More information

Fingerprint Retrieval Based on Database Clustering

Fingerprint Retrieval Based on Database Clustering Fingerprint Retrieval Based on Database Clustering Liu Manhua School of Electrical & Electronic Engineering A thesis submitted to the Nanyang Technological University in fulfillment of the requirements

More information

A Framework for Efficient Fingerprint Identification using a Minutiae Tree

A Framework for Efficient Fingerprint Identification using a Minutiae Tree A Framework for Efficient Fingerprint Identification using a Minutiae Tree Praveer Mansukhani February 22, 2008 Problem Statement Developing a real-time scalable minutiae-based indexing system using a

More information

Morphological Image Processing

Morphological Image Processing Morphological Image Processing Introduction Morphology: a branch of biology that deals with the form and structure of animals and plants Morphological image processing is used to extract image components

More information

Carmen Alonso Montes 23rd-27th November 2015

Carmen Alonso Montes 23rd-27th November 2015 Practical Computer Vision: Theory & Applications 23rd-27th November 2015 Wrap up Today, we are here 2 Learned concepts Hough Transform Distance mapping Watershed Active contours 3 Contents Wrap up Object

More information

INTEGRATION OF CUBIC MOTION AND VEHICLE DYNAMIC FOR YAW TRAJECTORY MOHD FIRDAUS BIN MAT GHANI

INTEGRATION OF CUBIC MOTION AND VEHICLE DYNAMIC FOR YAW TRAJECTORY MOHD FIRDAUS BIN MAT GHANI INTEGRATION OF CUBIC MOTION AND VEHICLE DYNAMIC FOR YAW TRAJECTORY MOHD FIRDAUS BIN MAT GHANI A thesis submitted in fulfilment of the requirements for the award of the degree of Master ofengineering (Mechanical)

More information

An introduction on several biometric modalities. Yuning Xu

An introduction on several biometric modalities. Yuning Xu An introduction on several biometric modalities Yuning Xu The way human beings use to recognize each other: equip machines with that capability Passwords can be forgotten, tokens can be lost Post-9/11

More information

Skeletonization Algorithm for Numeral Patterns

Skeletonization Algorithm for Numeral Patterns International Journal of Signal Processing, Image Processing and Pattern Recognition 63 Skeletonization Algorithm for Numeral Patterns Gupta Rakesh and Kaur Rajpreet Department. of CSE, SDDIET Barwala,

More information

This item is protected by original copyright

This item is protected by original copyright A-PDF Merger DEMO : Purchase from www.a-pdf.com to remove the watermark MEDICAL FACILITIES DATABASE MANAGEMENT SYSTEM By MUHAMMAD FAIZAL BIN OSMAN Report submitted in partial fulfillment of the requirements

More information

EECS490: Digital Image Processing. Lecture #17

EECS490: Digital Image Processing. Lecture #17 Lecture #17 Morphology & set operations on images Structuring elements Erosion and dilation Opening and closing Morphological image processing, boundary extraction, region filling Connectivity: convex

More information

Signature Recognition by Pixel Variance Analysis Using Multiple Morphological Dilations

Signature Recognition by Pixel Variance Analysis Using Multiple Morphological Dilations Signature Recognition by Pixel Variance Analysis Using Multiple Morphological Dilations H B Kekre 1, Department of Computer Engineering, V A Bharadi 2, Department of Electronics and Telecommunication**

More information

ISOGEOMETRIC ANALYSIS OF PLANE STRESS STRUCTURE CHUM ZHI XIAN

ISOGEOMETRIC ANALYSIS OF PLANE STRESS STRUCTURE CHUM ZHI XIAN ISOGEOMETRIC ANALYSIS OF PLANE STRESS STRUCTURE CHUM ZHI XIAN A project report submitted in partial fulfilment of the requirements for the award of the degree of Master of Engineering (Civil-Structure)

More information

CHAPTER 1 INTRODUCTION

CHAPTER 1 INTRODUCTION CHAPTER 1 INTRODUCTION 1.1 Introduction Pattern recognition is a set of mathematical, statistical and heuristic techniques used in executing `man-like' tasks on computers. Pattern recognition plays an

More information

Simulation of Zhang Suen Algorithm using Feed- Forward Neural Networks

Simulation of Zhang Suen Algorithm using Feed- Forward Neural Networks Simulation of Zhang Suen Algorithm using Feed- Forward Neural Networks Ritika Luthra Research Scholar Chandigarh University Gulshan Goyal Associate Professor Chandigarh University ABSTRACT Image Skeletonization

More information

A new approach to reference point location in fingerprint recognition

A new approach to reference point location in fingerprint recognition A new approach to reference point location in fingerprint recognition Piotr Porwik a) and Lukasz Wieclaw b) Institute of Informatics, Silesian University 41 200 Sosnowiec ul. Bedzinska 39, Poland a) porwik@us.edu.pl

More information

Interim Report Fingerprint Authentication in an Embedded System

Interim Report Fingerprint Authentication in an Embedded System Interim Report Fingerprint Authentication in an Embedded System February 16, 2007 Wade Milton 0284985 Jay Hilliard 0236769 Breanne Stewart 0216185 Analysis and Intelligent Design 1428 Elm Street Soeville,

More information

Fingerprint Recognition

Fingerprint Recognition Fingerprint Recognition Anil K. Jain Michigan State University jain@cse.msu.edu http://biometrics.cse.msu.edu Outline Brief History Fingerprint Representation Minutiae-based Fingerprint Recognition Fingerprint

More information

Fingerprint Recognition System

Fingerprint Recognition System Fingerprint Recognition System Praveen Shukla 1, Rahul Abhishek 2, Chankit jain 3 M.Tech (Control & Automation), School of Electrical Engineering, VIT University, Vellore Abstract - Fingerprints are one

More information

Implementation of Fingerprint Matching Algorithm

Implementation of Fingerprint Matching Algorithm RESEARCH ARTICLE International Journal of Engineering and Techniques - Volume 2 Issue 2, Mar Apr 2016 Implementation of Fingerprint Matching Algorithm Atul Ganbawle 1, Prof J.A. Shaikh 2 Padmabhooshan

More information

Fingerprint Identification System: Non-zero Effort Attacks for Immigration Control

Fingerprint Identification System: Non-zero Effort Attacks for Immigration Control Fingerprint Identification System: Non-zero Effort Attacks for Immigration Control Fatai Olawale W. Department of Computer Science University of Ilorin, Ilorin, Kwara State Oluwade Bamidele A. Department

More information

THREE BIT SUBTRACTION CIRCUIT VIA FIELD PROGRAMMABLE GATE ARRAY (FPGA) NOORAISYAH BINTI ARASID B

THREE BIT SUBTRACTION CIRCUIT VIA FIELD PROGRAMMABLE GATE ARRAY (FPGA) NOORAISYAH BINTI ARASID B THREE BIT SUBTRACTION CIRCUIT VIA FIELD PROGRAMMABLE GATE ARRAY (FPGA) NOORAISYAH BINTI ARASID B021010227 A report submitted in partial fulfillment of requirements for the award of the Degree of Bachelor

More information

International Journal of Signal Processing, Image Processing and Pattern Recognition Vol.9, No.2 (2016) Figure 1. General Concept of Skeletonization

International Journal of Signal Processing, Image Processing and Pattern Recognition Vol.9, No.2 (2016) Figure 1. General Concept of Skeletonization Vol.9, No.2 (216), pp.4-58 http://dx.doi.org/1.1425/ijsip.216.9.2.5 Skeleton Generation for Digital Images Based on Performance Evaluation Parameters Prof. Gulshan Goyal 1 and Ritika Luthra 2 1 Associate

More information

1. INTRODUCTION. AMS Subject Classification. 68U10 Image Processing

1. INTRODUCTION. AMS Subject Classification. 68U10 Image Processing ANALYSING THE NOISE SENSITIVITY OF SKELETONIZATION ALGORITHMS Attila Fazekas and András Hajdu Lajos Kossuth University 4010, Debrecen PO Box 12, Hungary Abstract. Many skeletonization algorithms have been

More information

Digital Image Processing Fundamentals

Digital Image Processing Fundamentals Ioannis Pitas Digital Image Processing Fundamentals Chapter 7 Shape Description Answers to the Chapter Questions Thessaloniki 1998 Chapter 7: Shape description 7.1 Introduction 1. Why is invariance to

More information

Signature :.~... Name of supervisor :.. ~NA.lf... l.?.~mk.. :... 4./qD F. Universiti Teknikal Malaysia Melaka

Signature :.~... Name of supervisor :.. ~NA.lf... l.?.~mk.. :... 4./qD F. Universiti Teknikal Malaysia Melaka "I hereby declare that I have read this thesis and in my opinion this thesis is sufficient in term of scope and quality for the reward of the Bachelor' s degree of Mechanical Engineering (Structure and

More information

BIOMETRIC MECHANISM FOR ONLINE TRANSACTION ON ANDROID SYSTEM ENHANCED SECURITY OF. Anshita Agrawal

BIOMETRIC MECHANISM FOR ONLINE TRANSACTION ON ANDROID SYSTEM ENHANCED SECURITY OF. Anshita Agrawal BIOMETRIC MECHANISM FOR ENHANCED SECURITY OF ONLINE TRANSACTION ON ANDROID SYSTEM 1 Anshita Agrawal CONTENTS Introduction Biometric Authentication Fingerprints Proposed System Conclusion References 2 INTRODUCTION

More information

Signature Verification Why xyzmo offers the leading solution

Signature Verification Why xyzmo offers the leading solution Dynamic (Biometric) Signature Verification The signature is the last remnant of the hand-written document in a digital world, and is considered an acceptable and trustworthy means of authenticating all

More information

International Journal of Advance Engineering and Research Development. Applications of Set Theory in Digital Image Processing

International Journal of Advance Engineering and Research Development. Applications of Set Theory in Digital Image Processing Scientific Journal of Impact Factor (SJIF): 4.72 International Journal of Advance Engineering and Research Development Volume 4, Issue 11, November -2017 Applications of Set Theory in Digital Image Processing

More information

Combined Fingerprint Minutiae Template Generation

Combined Fingerprint Minutiae Template Generation Combined Fingerprint Minutiae Template Generation Guruprakash.V 1, Arthur Vasanth.J 2 PG Scholar, Department of EEE, Kongu Engineering College, Perundurai-52 1 Assistant Professor (SRG), Department of

More information

Fingerprint Ridge Orientation Estimation Using A Modified Canny Edge Detection Mask

Fingerprint Ridge Orientation Estimation Using A Modified Canny Edge Detection Mask Fingerprint Ridge Orientation Estimation Using A Modified Canny Edge Detection Mask Laurice Phillips PhD student laurice.phillips@utt.edu.tt Margaret Bernard Senior Lecturer and Head of Department Margaret.Bernard@sta.uwi.edu

More information

CHAPTER 6 EFFICIENT TECHNIQUE TOWARDS THE AVOIDANCE OF REPLAY ATTACK USING LOW DISTORTION TRANSFORM

CHAPTER 6 EFFICIENT TECHNIQUE TOWARDS THE AVOIDANCE OF REPLAY ATTACK USING LOW DISTORTION TRANSFORM 109 CHAPTER 6 EFFICIENT TECHNIQUE TOWARDS THE AVOIDANCE OF REPLAY ATTACK USING LOW DISTORTION TRANSFORM Security is considered to be the most critical factor in many applications. The main issues of such

More information