Journal 22
Journal 22
FINGERPRINT RECOGNITION
Abstract—Fingerprints are rich in details which are in the written in ANSI C programming language. So MEX-files are
form of discontinuities in ridges known as minutiae and are used to run c programming code in MATLAB. First
unique for each person. This paper describes implementation fingerprint image is enhanced and minutiae are extracted.
and evaluation of an existing fingerprint recognition system in The extracted minutiae are passed through the function that
MATLAB environment. The selected system is developed by match two minutiae patterns and produce a match score.
National Institute of Standards and Technology (NIST) Genuine match and imposter match classification is
denoted as Biometric Image Software (NBIS). The NBIS performed based on the match score. Performance of the
source code is written in ANSI C programming language. To system is evaluated on various fingerprint databases and the
be able to evaluate the algorithm in MATLAB a C language
results obtained are presented in Receiver Operating
MEX-files has been used. The NBIS support both minutiae
extraction and minutiae matching functions that have been
characteristics (ROC) graphs.
employed in the evaluation. The implemented system has been II. OPERATIONS PERFORMED ON FINGERPRINT
tested on a Fingerprint Verification Competition (FVC)
database. The results are presented as Receiver Operating Minutiae from the fingerprint image can be extracted
Characteristics (ROC) graphs. directly from the raw grayscale fingerprints. However, the
extraction process is difficult and not that accurate due to the
Keywords- Biometric; NIST Fingerprint Verification; MEX- sensor noise present in the fingerprint image. The skin
File; ROC graphs. conditions on the fingertip also influence the overall quality
of the captured fingerprints. Due to these reasons the
I. INTRODUCTION extracted minutiae from the fingerprint may contain both real
and false minutiae. To minimize extraction of false minutiae
“Biometrics” (bios metron = “life measurement”) is from the fingerprint image the NBIS incorporates a pre-
defined as the automated methods of identifying or processing and post-processing stage in the minutiae
authenticating the identity of a living person based upon one extraction procedure. Fig.1 illustrates operations performed
or more intrinsic physical or behavioral traits. A number of to limit the number of extracting false minutiae from the
biometric technologies have been developed and are being fingerprint.
used in numerous applications such as secure identification
and personal verification solutions etc. Some examples of
different biometrics are fingerprints, face recognition, iris,
retina scan, signature etc. “Although biometrics emerged
from its extensive use in law enforcement to identify
criminals (e.g., illegal aliens, security clearance for
employees for sensitive jobs, fatherhood determination,
forensics, and positive identification of convicts and
prisoners), it is being increasingly used today to establish
person recognition in a large number of civilian
applications”[1]. Human Fingertips are fully formed at about
seven months of fetus development and ridge configurations
which form distinctive patterns. One’s fingerprint is formed
those patterns do not change throughout the life of an Figure 1. Flowchart representing operations performed by the NBIS
individual except due to accidents such as bruises and cuts before and after extracting minutiae.
on the fingertips. Print of these patterns is known as
fingerprints [2]. A. Pre-processing
This paper is written based on Master Thesis[3]. In this Fingerprint images acquired with various sensors will
paper implement and evaluation of NIST Biometric Image have different levels of the dynamic range altering the image
Software for fingerprint recognition in MATLAB contrast. Therefore a pre-processing operation in form of
environment is performed. The NBIS source code is entirely
978-1-4244-8594-9/10/$26.00 2010
c IEEE 207
contrast enhancement should be performed before extracting Pattern scanning is performed both horizontally and
the minutiae from the fingerprint. The contrast enhancement vertically with 2x3 pixel window size. Patterns represented
can be performed with various methods. For example in Fig.4 illustrate procedure for detecting the minutiae points
histogram equalization can increase the contest of the image. in the binarized fingerprint image. Two patterns in the Fig.4
The function trim_histtails_contrast_boost() developed by represent ridge endings and rest represents bifurcations.
NIST use a histogram modulation for increasing the contrast
of the fingerprint image, see Fig.2. Quality of the image can
also be increased by using the filters. Low pass filter lowers
the noise from the image. Band pass filter can lower
undesired noise from orientations which helps to preserve
true ridges [4]. Image enhancement can also be performed
using Fourier transform method [5].
B. Minutiae Extraction
Fingerprint image is a line patterns consisting of ridges,
valleys, cores, deltas, pores etc as shown in Fig.3a. The most
interesting patterns are ridge endings and ridge bifurcations.
These patterns are used for comparing two fingerprints with
each other. Fig.3b illustrates ridge ending and ridge
bifurcation which plays a vital role in fingerprint matching
known as minutiae. These ridge ending and ridge bifurcation
do not change over time, therefore well suited for fingerprint
matching. Fingerprint usually consists of 40 to 100 minutiae
points. Figure 5. Minutiae obtained with NIST’s method, includiong both true
and false minutiae.
C. Post processing
Minutiae extracted from the fingerprint consist of real
and to some extent of false minutiae. Various types of false
minutiae are shown in Fig.6. The number of falsely detected
minutiae depends upon the quality of the fingerprint. The
extracted minutiae should be filtered to remove as many of
the false minutiae as possible without removing real
minutiae. The redundant minutiae in the fingerprint are of the
Figure 3. (a) Fingerprint image, (b) Fingerprint image with bifurcations form
and terminations. • a)Minutiae points adjacent to each other
• b)Minutiae near the borders
• c)Spike, break, bridge, hole as shown in the Fig.6
The NBIS before detecting the minutiae from the
fingerprint converts the grayscale image into binarized image
where black pixels represents ridges and white pixels
represents valleys. Based on the ridge flow direction
associated with the block the pixel is assigned a binary value.
For this process each pixel in the image must be analyzed for
assigning white and black pixel. Then the binary image is
scanned to identify ridge endings and ridge bifurcation.
Figure 7. ( a) Fingerprint image containing both false and real minutiae, IV. MEX-FILES
(b)Fingerprint image after thresholding minutiae based on the quality, real Algorithms developed by NIST for minutiae extraction
minutiae “o” and false minutiae “+”.
and fingerprint matching are written in C programming
language. Converting the source files written in C language
III. FINGERPRINT MATCHING into MATLAB script is very complex and time consuming.
To overcome this problem MEX-Files are used. MATLAB is
BOZORTH3 is an algorithm included in NBIS that
time consuming for processing large amount of data and its
matches two minutiae patterns with each other and produces
performance is very poor while working with images, due to
a match score. Matching between the fingerprints can be
slow looping functionalities. To overcome this problem it is
performed as one-to-one (verification) or one-to-many
advisable to divide the source code into different
(identification). Bozorth3 algorithm includes three steps for
functionalities and compile the codes individually[6].
fingerprint matching
• Construction of Intra-Fingerprint Minutiae A. Mex-Files Working Procedure with Example
Comparison Tables. First build the MEX-File and change the path of the
• Construction of Inter-Fingerprint Compatibility current directery of MATLAB for accessing the executable
Table. file. Input parameters are passed from MATLB to executable
• Traverse Inter-Fingerprint Compatibility Table file to perform total functionality. In this example a
constructed in second step. fingerprint image is passed from MATLAB to executable
A. Results obtained for Genuine match and Imposter file which performs image boosting operation and the output
is given back to MATLAB as shown in Fig.9.
match
First minutiae tables are constructed for both probe and
gallery fingerprint as shown in Fig.8. These tables are given
to the minutiae matcher for generating the scores. S(P1,P2)
REFERENCES
[1] Anil K. Jain, Arun Ross and Salil Prabhakar “An Introduction to
Biometric Recognition,” Appeared in IEEE Transactions on Circuits
and Systems for Video Technology, Special Issue on Image- and
Video-Based Biometrics, Vol. 14, No. 1, January 2004.
Figure 11. Plotting FMR(t) and FNMR(t) obtained from genuine and [2] D. Maltoni, D. Maio, A.K. Jain and S. Prabhakar, Handbook of
imposter distributions (3500 genuine pairs and 67319 imposter pairs). Fingerprint Recognition, Springer, 2003, ISBN 0-387-95431-7.
[3] “Implementation and Evaluation of NIST Biometric Image Software
for Fingerprint Recognition,” Master Thesis, Blekinge Institute of
Technology(in Printing).
[4] Lavanya, B.N.; Raja, K.B.; Venugopal, K.R.; Patnaik, L.M.; ,
"Minutiae Extraction in Fingerprint Using Gabor Filter
Enhancement," Advances in Computing, Control, &
Telecommunication Technologies, 2009. ACT '09. International
Conference on , vol., no., pp.54-56, 28-29 Dec. 2009.
[5] User's Guide to NIST Biometric Image Software (NBIS) available at,
http://www.nis.gov/cgi-bin//get_pdf.cgi?pub_id=51097.
[6] ”Hand book for “Calling C and Fortran
Programs from MATLAB” available at
http://www.karenkopecky.net/Teaching/Cclass/MatlabCallsC.pdf.
[7] Alnadabi, M.; Johnstone, S.; , "Speech/music discrimination by
detection: Assessment of time series events using ROC
graphs," Systems, Signals and Devices, 2009. SSD '09. 6th
International Multi-Conference on , vol., no., pp.1-5, 23-26 March
2009.
[8] Tom Fawcett,”ROC Graphs: Notes and Practical Considerations for
Figure 12. Plotting FMR(t) and 1-FNMR(t) obtained from genuine and References” , available at
imposter distributions (3500 genuine pairs and 67319 imposter pairs). http://home.comcast.net/~tom.fawcett/public_html/papers/ROC101.p
df,.
[9] Maio, D.; Maltoni, D.; Cappelli, R.; Wayman, J.L.; Jain, A.K.;,
VII. CONCLUSION "FVC2000: fingerprint verification competition," Pattern Analysis
and Machine Intelligence, IEEE Transactions on , vol.24, no.3,
NBIS source code for fingerprint recognition is written in pp.402-412, Mar 2002. 007.357670.
ANSI C programming language. The NBIS is implemented
with MEX-files routine to allow evaluation of the system in
MATLAB environment. This C language MEX-files enables
to run C code without reimplementing it as MATLAB script.
Two MEX-file functions are developed with NBIS which
helps to extract minutiae from grayscale fingerprint image
and match two minutiae patterns to produce a match score.