IMPLEMENTATION OF FINGERPRINT BIOMETRIC TEMPLATE SYSTEM IN EMBEDDED SOFTWARE DESIGN NOR FARIZAN BINTI ZAKARIA UNIVERSITI TEKNOLOGI MALAYSIA
IMPLEMENTATION OF FINGERPRINT BIOMETRIC TEMPLATE SYSTEM IN
EMBEDDED SOFTWARE DESIGN
NOR FARIZAN BINTI ZAKARIA
UNIVERSITI TEKNOLOGI MALAYSIA
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
iii
Specially dedicated to
dearest family and beloved husband
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.
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.
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.
vii
TABLE OF CONTENTS
CHAPTER TITLE PAGE
DECLARATION ii
DEDICATION iii
ACKNOWLEDGEMENT iv
ABSTRACT v
ABTRAK vi
TABLE OF CONTENTS vii
LIST OF TABLES x
LIST OF FIGURES xi
LIST OF ABREVIATIONS xiv
LIST OF APPENDICES xv
1 INTRODUCTION 1
1.1 Background 1
1.2 Problem Statement 2
1.3 Objective 4
1.4 Scope of Work 4
1.5 Project Contribution 6
1.6 Thesis Organization 6
2 LITERATURE REVIEW 8
2.1 Biometric Technologies 8
2.2 Fingerprint 11
2.3 Fingerprint Recognition System 14
2.4 Image Processing Stage 15
viii
2.4.1 Image Segmentation 16
2.4.2 Binarization 17
2.4.3 Noise Elimination 18
2.4.4 Smoothing 20
2.4.5 Thinning 23
2.5 Feature Extraction Stage 26
2.5.1 Minutiae Extraction 27
2.5.2 Minutiae Validation 29
2.6 Matching Stage 33
3 RESEARCH METHODOLOGY 36
3.1 Project Workflow 36
3.2 Embedded System Design Based on Nios Embedded
Processor 38
3.3 Software Functional Block Diagram 40
3.4 Tools and Software Used 42
4 DESIGN AND IMPLEMENTATION 43
4.1 System Architecture 43
4.2 Graphic User Interface 48
4.3 Image Processing Stage 50
4.3.1 Image Segmentation module 51
4.3.2 Binarization Module 53
4.3.3 Noise Elimination Module 56
4.3.4 Smoothing Module 61
4.3.5 Thinning Module 64
4.4 Feature Extraction Stage 67
4.4.1 Minutiae Extraction Module 68
4.4.2 Minutiae Validation Module 70
4.5 Matching Stage 73
4.5.1 Minutiae Matching Module 74
5 RESULT AND DISCUSSION 76
5.1 Image Processing Stage 76
ix
5.2 Feature Extraction Stage 80
5.3 Matching Stage 83
5.4 Fingerprint Biometric Template System 86
6 CONCLUSION 87
6.1 Concluding Remark 87
6.2 Recommendation of Future Work 88
REFERENCES 91
APPENDIX A 94
x
LIST OF TABLES
TABLE NO. TITLE PAGE
2.1 Comparison of biometric technologies 11
2.2 Properties of crossing number 28
3.1 Action invoke in GUI and FPGA development board for
each button 49
xi
LIST OF FIGURES
FIGURE NO. TITLE PAGE
1.1 Ridge ending and ridge bifurcation 3
1.2 General process in identifying a fingerprint 5
2.1 Core and delta points 12
2.2 Different kind minutiae points 13
2.3 Sweat pores 14
2.4 Fingerprint recognition system 14
2.5 Process in image processing stage 16
2.6 Structuring elements used in noise elimination process 20
2.7 Structuring elements used in smoothing 22
2.8 8-connectivity neighborhood 24
2.9 Structuring elements used in thinning process 25
2.20 Feature extraction stage 26
2.11 The basic properties of a minutiae 27
2.12 Example of a ridge ending and ridge bifurcation pixel with
its corresponding Crossing Number 29
2.13 Example of false minutiae structures 30
2.14 Example of validating a ridge ending candidate 32
2.15 Example of validating a ridge bifurcation candidate 32
3.1 Project Work Flow 37
3.2 System design procedure 40
3.3 Example of software functional block diagram 41
4.1 Architecture of Fingerprint Biometric Template System 44
4.2 Modules in fingerprint biometric template system 45
4.3 Software functional block diagram of FingerPrint.c 46
4.4 Behavioral flowchart of fingerprint biometric template system 47
xii
4.5 GUI for Fingerprint Biometric Template System 48
4.6 Image segmentation module 51
4.7 Flowchart for image segmentation module 52
4.8 Software functional block diagram for image_segmentation ( ) 53
4.9 Binarization module 54
4.10 Flowchart for binarization module 55
4.11 Code fragment calculating the average intensity value 56
4.12 Noise elimination module 57
4.13 Noise between ridges that has been removed 57
4.14 Flowchart for noise elimination module 58
4.15 Software functional block diagram for noise_elimination ( ) 59
4.16 Structuring elements used in FingerPrint.c 60
4.17 Example of out-of-bounds structuring elements 61
4.18 Smoothing module 61
4.19 Flowchart for smoothing module 62
4.20 Software functional block diagram for smoothing ( ) 63
4.21 Thinning module 64
4.22 Flowchart for thinning module 65
4.23 Software functional block diagram for thinning ( ) 66
4.24 Fragment code for thinning_condition ( ) 67
4.25 Flowchart for minutiae extraction 68
4.26 Source code to calculate crossing number 69
4.27 Software functional block diagram for minutie_extraction ( ) 70
4.28 Flowchart for minutiae validation module 71
4.29 Software functional block diagram for minutiae_validation ( ) 72
4.30 Direction of minutiae point 73
4.31 Flowchart for minutiae matching module 75
5.1 Input image 77
5.2 Result of image segmentation module 78
5.3 Result of binarization module 78
5.4 Result of noise elimination module 79
5.5 Result of smoothing module 79
5.6 Result of thinning module 80
5.7 Fragment result of minutiae extraction module 81
xiii
5.8 Result of minutiae validation module 82
5.9 Output of feature extraction stage 83
5.10 Images from the same fingerprint 84
5.11 Result of minutiae matching module 84
5.12 Images from different fingerprint 85
5.13 Result of minutiae matching module 85
5.14 Screen shot of embedded system result 86
6.1 Biometric-based key released 90
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
xv
LIST OF APPENDICES
APPENDIX TITLE PAGE
A Source Code For Every Module 94
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.
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.
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
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.
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 DatabaseSystem Database
Figure 1.2 : General process in identifying a fingerprint
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.
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.
REFERENCES
Altera Corporation (2003a). Nios 3.0 CPU Data Sheet. Altera Corporation.
Altera Corporation (2003b). Nios Embedded Processor: Software Development
Reference Manual. Altera Corporation.
Altera Corporation (2003c). Nios Software Development Tutorial. Altera
Corporation.
Altera Corporation (2003d). Nios Development Kit, APEX Edition: Getting Started
User Guide. Altera Corporation.
Bowman, E. (2000). Everything You Need To Know About Biometrics. Identix
Corporation.
Burdick, H. E. (1997). Digital Imaging: Theory and Applications. McGraw-Hill,
Inc.
Chapman, D. (1998). Sams Teach Yourself Visual C++®
6 in 21 Days. Indiana,
USA: Sams Publishing.
Chongzhi Jia, Mei Xie and Qingrong Li (2004). A Fingerprint Minutiae Matching
Approach Based on Vector Triangular Method and Ridge Structure. IEEE. 0-
7803-8647-7: 871-875.
Corriveau, J. P. (1998). A Step-by-Step Guide to C Programming. New Jersey:
Prentice-Hall International, Inc.
92
Eriksson, M. (2001). Biometrics: Fingerprint Based Identity Verification. Umea
University: Master Thesis.
Espinosa-Duro, V. (2001). Minutiae Detection Algorithm for Fingerprint
Recognition. IEEE. 0-7803-6636-0: 264-266.
Gonzalez R. C. and Woods R. E. (1993). Digital Image Processing. Addison-
Wesley.
Jain, A., Hong, L., Pankanti, S. and Bolle, R. (1997). An Identity Authentication
System Using Fingerprint. Proceeding of the IEEE. Vol. 85, pp. 1365-1388.
Lee, E. A. (2002). Embedded Software. In: Zelkowitz, M. ed. Advances in
Computers. London: Academic Press.
Lin Hong, Yifei Wan, and Anil Jain (1998). Fingerprint Image Enhancement:
Algorithm and Performance Evaluation. IEEE Transactions on Pattern Analysis
and Machine Intelligence. Vol. 20, No. 8.
Louis Coetzee (1992). Fingerprint Recognition. University of Pretoria: Thesis
Master of Degree
Maio, D. and Maltoni, D. (1997). Direct Gray-scale Minutiae Detection in
Fingerprints. IEEE Transactions on Pattern Analysis and Machine Intelligence.
Vol. 19, No. 1.
Maio, D., Maltoni, D., Jain, A. and Prabhakar, S. (2003). Handbook of Fingerprint
Recognition. New York: Springer Verlag.
Mehtre, B. M. (1993). Fingerprint Image Analysis for Automatic Identification.
Machine Vision and Application 6,2, pp 124 – 139.
Phillips, D (2000). Image Processing in C. Electronic Second Edition. Unpublished.
93
Thai, R. (2003). Fingerprint Image Enhancement and Minutiae Extraction. The
University of Western Austaralia: Honours Programme Report.
Tico, M. and Kuosmanen, P. (2000). An Algorithm for Fingerprint Image Post-
processing. Proceeding of 34th Asilomar Conference on Signals, System and
Computers. Vol. 2, pp 1735 – 1739.
Xio Sun and Zhuming Ai (1996). Automated Feature Extraction and Recognition of
Fingerprint Images. Proceesing of ICSP’96. pp 1086-1089.
Zhang T. Y. and Suen C. Y. (1984). A Fast Parallel Algorithm for Thinning Digital
Patterns. In: Haralick, R. M. ed.Communication of the ACM. No. 3, pp 236 –
239.