Department of Electrical and Computer Engineering, American University of Beirut, Beirut, Lebanon. ... provide major evidence for forensic investigations and.
FINGERPRINT IDENTIFICATION SOFTWARE FOR FORENSIC APPLICATIONS Ziad Abu-Faraj, Ph.D., Member, ZEE&. Abdallah Atie, B.E., StudentMember, ZEEE, Kamal Chebaklo, B.E., StudeBt Member, ZEEe Edouard Khoukaz, B.E., StudentMember, ZEEE Department of Electrical a n d Computer Engineering, American University of Beirut, Beirut, Lebanon.
ABSTRACT: F i h g e y Y h t ident&ation is b/-oad& established as one of the most reliable identC;cation methods for .foTensic and n~n~firensic applications. Neveytheless, die to growth ih volume of jngeqv-int databases, pe/formance reqiiirements, and speed limitations of the n?ff/?lin/process, Automated Fingerprint 1dentl;fi’ation Systems @Fig are extensive& needed This paper describes the design and implementation oja cost-e@ fiveAF!S system that operates in four stages: enhancement,-’-class&ution, featwe extraction and matchingkdentqication. This system has been tested on two sets of mult@le ,finge//;avtirTimages acquired using an inked impression method These tests have co@med system accuracy and reliabili’foc forensic appkcations.
1. INTRODUCTION Fingerprints are a result of an anatomical manifestation of a pattern of ridges and furrows of the epidermic layer at the anterior aspect of the fingertips. This pattern is determined during the fetal development, and is believed to provide a unique signature for every individual and for each finger. Therefore, fingerprints constitute one of the most reliable biometrics identification schemes, and are universally accepted as a legitimate proof of identity. Accordingly, fingerprints provide major evidence for forensic investigations and in criminal science [l]. Additionally, they are used in contemporary security systems for access control.
2. MATERIALS AND METHODS The algorithms developed in this study for the Fingerprint Analyst were implemented using Matlab v.5.3 (The Math Works Inc., Natick, MA, USA), they were then converted to C++ using Mideva (The Math Works Inc., Natick, MA, USA). The GUI and final application were designed and developed in Borland C++ Builder v.3.0 (Inprise Corp., Scotts Valley, CA, USA). The software was implemented on an MS Windows-98 (Microsoft Corp., Redmond, WA, USA) platform installed on a 350 MHz Intel Pentium-II-based personal computer with 64 MB RAM. The Fingerprint Analyst requires an input fingerprint image, which can be acquired either from an inkless fingerprint scanner (on-line method) or from an inked impression digitized using a standard flatbed scanner (off-line method). The system requires that the fingerprint image is formatted into a 400x400 grayscale image and saved in a TIFF format. Ultimately, the extracted features are saved into a local database; this database was designed using Borland C++ Builder’s Paradox Database Engine. Fingerprint identification is processed through several stages, which include enhancement, classification, feature extraction, and matchinghdentification, respectively.
An Automatic Fingerprint Identification System (AFIS) consists of an image-processing engine comprised of various processing stages, ultimately resulting in a fingerprint matchinghdentification [2]. A number of algorithms are currently used to extract features and match fingerprints, the most prevalent of which are the nzhutiae-based and the ,filter-based The former matches the fingerprints using the pattern of minutiae extracted, which are irregularities in the patterns of the ridges, while the latter uses a filter to capture the local and global details of the fingerprint [3].
2.1 Enhancement The performance of a minutiae-extraction-algorithm relies heavily on the quality of the input fingerprint image. Accordingly, an enhancement stage has been incorporated at the front end of the system to minimize any noise introduced in a fingerprint image due to scratches, aberration in skin and impression conditions, or during the acquisition procedure. The result of this procedure is a refined image clarifying the ridge structure, which is saved in a temporary file.
Several commercial AFIS systems are currently available; however, those that provide enhancement, classification, and matching of fingerprints use proprietary source code and do not allow any customization. In addition, those that provide increased accuracy are amongst the most expensive.
0-7803-6542-9/00/$10.000 2000 IEEE
In this study, we have developed a cost-effective and reliable AFIS software, named “Fingerprint Analyst”, using proven and reliable methods, and an added database capability to accommodate large volumes of fingerprints. This software is capable of enhancement, classification, feature extraction, and matchinghdenti fication of fingerprint images.
The algorithm used to implement the enhancement stage was originally adopted from Hong et al. [4]. However, it has been modified in this study to improve performance by the proper selection of optimal filters,
299
and was further customized using an object-oriented approach to improve run-time processing. Ridges are primarily characterized by their orientation, 8, and their frequency, J.' Using these two characteristics, the enhancement stage adaptively processes each fingerprint. Accordingly, enhancement starts by applying a 2-D Gaussian low-pass filter to the fingerprint and eliminates noise and spurious ridges. The pixels are enhanced using the local mean and variance of 5x5 blocks. The fingerprint is then divided into 16x16 non-overlapping blocks. The local gradients, G, and G,, in the x- and y-directions, respectively, of each block centered at pixel (i, j) are calculated using a Wiener filter, and the block's orientation, e(i, j), is calculated using the following equation [I]:
In the blocks where no minutiae exist, the average distance between two consecutive peaks of the signal is denoted by T(i,j), while the blocks' frequency is given by Q(i,j) = (l/T(i, j)). When the computed frequency contains no consecutive peaks, or falls outside the specified range of [1/3, 1/25], the frequency is interpolated using a 5x5 averaging mask. Additionally, a segmentation procedure is used to separate the image foreground from the background and highlights the fingerprint as a region of interest [ 11. Once the two most intrinsic characteristics of fingerprints are computed, we can use frequency- and orientation-discriminating Gabor fillers to remove noise and reshape the ridges. The Gabor filter used (with block orientation $, frequency,f; and 8, and 6, as space constants of the Gaussian envelope along the x- and yaxes, respectively) has the following, form [4]:
x4 = xcos Q, + ysin $
(8)
y, = -xsin $ + ycos$
(9)
where, 6, and 6, are empirically determined and, consequently, both set to 4. If G is the smoothed image, 8 the smoothed orientation, and F the ridge frequency, then the enhanced image, E, is computed as follows: Various factors affect the quality of the fingerprint, and consequently the quality of the calculated orientation field, which may contain inaccurate orientation angles. With its gradual and slow variation, orientation irregularities could be fixed with a low-pass filter [SI. The frequency, Js of ridges provides an approximation of the number of pixels between the ridges. This frequency is calculated by modeling the gray levels as sinusoidal signals, and then computing the distance (in pixels) between each consecutive white peaks. The fingerprint is divided into 16x16 non-overlapping blocks, and an l x w (32xl6)-oriented window, normal to the local orientation, is generated for each block. The sinusoidal signal inside the oriented window models the ridges and valleys of the respective block. Accordingly, for every center (i, j) of the blocks, the signature X[O], X[1], ... X[31] in the oriented window is computed as follows:
where, (i, j) are the coordinates of the center of the block, and WG is the size of the Gabor filter, which is 11x1 1 pixels.
2.2 Classification Automatic fingerprint identification is computationally demanding, especially when large databases are considered. However, with an efiticient classification, fingerprints could be matched with those within the same class [6]. In this study, a fingerprint is classified in one of 5 classes, namely: right lclop (R), left loop (L), whorl (W), arch (A), and tented arch (T). In minutiaebased classification techniques, the variability in the number of extracted minutiae may result in fingerprint misclassification. This handicap was overcome with the use of a customized filter-based classification technique of the algorithm described by Jain et a/I [7], which yields a fixed number of features. The first step is to locate the center of the fingerprint. Using the previously calculated orientation field, the slopes perpendicular to the local orientation are
300
2.3 Extraction
computed. The slopes between 0 and nl2 are then traced down until a block with a slope not within that range is encountered; that block is then marked. The center of the block with the highest number of marks is considered to be the center of the fingerprint. Since most of the information in a fingerprint is found in its lower part, the center is shifted 40 pixels down, and the fingerprint is cropped by a 223x223 mask around the center.
For automatic feature extraction, minutiae are restricted to two kinds: Ti@e ending and ridge bfurcation. A ridge ending is defined as the point where a ridge ends abruptly, while a ridge bifurcation is defined as the point where a ridge forks or diverges into branch ridges. The feature extraction stage is divided into four parts: ridge detection, minutiae extraction, post processing, and storing of parameters in the database.
The cropped fingerprint is divided into five concentric bands from the center (with a radius of 20 pixels), and a center hole (with a radius of 12 pixels). Each band is divided into 12 sectors, where individual sectors are normalized separately to get a mean of 100 and a variance of 100. The center hole and the area outside the sectors are equated to zero, since they contain no relevant information to the classification process.
A. Ridge Detectionpixels can be identified as being ridge pixels using the property that gray level values on ridges attain their maxima along a direction normal to the ridge orientation [1]. Thus, we consider the local maxima of a projection waveform of an I x w (32x16)oriented window along the direction perpendicular to the orientation field [2]. Also, two neighboring pixels on either side of the peak are retained. B. Minutiae Extraction3efore the minutiae can be extracted, the ridge map obtained must be thinned using a standard skeletonization algorithm. Minutiae extraction is trivial once an ideal thinned ridge map is obtained: a ridge pixel is identified as bifurcation if it has three neighboring ridge pixels, and as a ridge ending if it has one neighboring ridge pixel [I]. However, due to the presence of undesired spikes and breaks in the thinned ridge map, the minutiae detected are not all genuine and a post processing stage is required to filter out the undesired features. C. Post Processing: The post processing stage eliminates spurious features based on the following heuristics [2]: i- Ridge break elimination: Two end points with the same orientation and within a threshold distance of 10 pixels are removed. ii- Duplicate bfurcation ehmination: If several bifurcations are forming a small cluster then remove them all except the one in the middle of the cluster. iii-Spike elimination: An end point connected with a bifurcation and within a threshold distance of 8 pixels is removed. iv- Boundary efecfscts: The features detected within 16 pixels of the border are deleted. D. Storing of Parameters in t h e DatabasGDr each remaining minutiae, we record and store the following parameters in the database: x-coordinate, y-coordinate, and orientation, 0.
A set of Gabor filters of size 33x33 pixels are then generated as described in Equation 7 , but using six fixed angles (O,nl6,nl3,nl2,2nl3,5nl6). The Gabor filters were used to remove noise while preserving ridge structures and clarifying them in a certain direction. This results in six filtered images, where each one emphasizes a certain direction. The variance is then computed in each of the 62 obtained sectors. The variance reflects the ridge direction in that region of the fingerprint. A higher variance means that the ridges are going in the direction of the Gabor filter, while a low variance means that the ridges had another direction and the filtering smoothed them out.
If Cie(x,y) is the pixel of sector i in the &oriented filtered image, Mie is the mean of the pixel values of Cie, and Ki is the number of pixels in sector 4 then, the standard deviation, $0, is computed as follows:
The resulting 360 values constitute the Finger-Code [7], and are specific to each class. Whenever a fingerprint is to be matched, its Finger-Code is calculated and compared to 5 pre-defined Finger-Codes, characterizing 5 classes of fingerprints. Finally, using a Kth nearest neighbor classifier, a fingerprint could be classified appropriately. Threshold values could be calculated by using a training set, with which a maximum Euclidean distance to the best match, and a minimum distance between the first and second best match are fixed. Any value outside this range with respect to a specific class is rejected.
2.4 Matching / Identification The objective of the matchinghdentification stage is to determine whether the extracted minutiae set of a query fingerprint matches a template in the database. Three steps are involved in this process [8]: registration, minutiae pairing, and matching score computation. A. Registration: Because the two point sets may have different orientations, scales, and translations, they must be transformed (registered) into a common frame of
301
reference using a generalized Hough Transform [8]. The task is to find the transformation that makes the g,reatest number of minutiae, in the input and template sets, match. II. Minutiae PairingAfter registration, the two point sets are compared: two minutiae are paired if their three characteristics (x,y,O) match within a tolerance window. (1. Matching Score Computation:Finally, after finding all the matches in a set, a matching score is computed. A list of top-ten scoring sets is returned as result of the matching phase.
In order to account for intra-test variability, each individual provided two inked impressions (off-line) from the same finger, which were collected on different days. The collected images were accordingly appended into two different sets (10 fingerprint images each). In order to generate the confusion matrix, each set was then digitized using different flatbed scanners: an HP6200C (Hewlett Packard, Palo Alto, CA, USA) and an Agfa Snapscan (Agfa, Mortsel, Belgium). The Fingerprint Analyst software described in this study allows the automated identification of individuals through successive processing stages, ultimately leading to matching the key fingerprint with a record in the database. The system has been tesled with a random selection of fingerprint images. Validation tests have confirmed system accuracy and relia,bility, and suggest system use in firther forensic applications and as a practical low-cost identification tool. The small data set used in this study was only intended for validation purposes and to demonstrate the operation of the Fingerprint Analyst software, and inot to hypothesize any issue in the field of criminal science. In our lab, the
3. RESULTS AND DISCUSSION The performance of the enhancement and feature extraction stages of the Fingerprint Analyst were tested using the goodness index (GI) [4] on 10 randomly selected fingerprints obtained from a database of 168 images (2 1 persons, 8 fingerprints/person) [SI. The results were rated on a 0-1 scale; where, 1 indicates that there are no missing or spurious minutiae. The results obtained from this study are illustrated in Table I.
Image
t
5
Goodness Index (GI) Without Enhancement With Enhancement 0.34 0.40 0.21 I 0.34 0.10 I 0.30 0.29 0.38 0.3 1 I 0.42 0.24 I 0.32 0.12 0.39
4. BIBLIOGRAPHY
I
i
t; I
Jain A, Prabhakar S, Pankanti S. “Matching and Classification: A Case Study in Fingerprint Domain.” Submitted. Proc. Indian Nationd Science Academy,
I
2000.
II I
Ratha N, Chen S, Jain A. “Adaptive Flow Orientation Based Feature Extractions in Fingerprint Images.” IEEE Transuc/iom on Patfern Ana&sis and Machine Inte//zgence, Vol. 18, No. 8, pp. 799-813, August 1996. Jain A, Prabhakar S, Pankanti S, Hong L. “Fingercode: A Filterbank for Fingerprint Representation and Matching.”
0.25 0.24 0.05
S.D.
0.30 0.04
The classification stage was then tested on 50 fingerprints [9], and a confusion matrix was obtained as illustrated in Table 11.
151 [61
Finally, the matchinghdentification stage was tested using images of the right-hand thumb fingerprint collected from 10 adult volunteers, constituting a different source from that used in the previous stages.
-
Table I1 Confusion Matrix
1 True I Class W R
w 6 0
Assigned Class L A R 1 1 1 1 0 7
L71
[81
T 0 2
191
302
IEEE Computer Society Conference on
Computer fision and Patfern Recognition, June 23-25, 1999, pp. 187-193, Colorado, USA. Hong L, Wan Y, Jain A. “Fingerprint Image Enhancement: Algorithm and Performance Evaluation.” IEEE Transactions on Pat/ern .dna/Ysis and Machihe Znfe//iignce,Vol. 20, No. 8, pp. 77’1- 789, August 1998. Jain A, Prabhakar S, Pankanti S, Hong L. “FilterbankBased Fingerprint Matching.” ILZE Transactions on Image Processing, Vol. 9, No.$ pp. 846-859, May 2000. Jain A, Hong L. “Classification of Fingerprint Images.” The /Zrb Scandinavian Confireme on fnrage Ana/Ysis, June 7- 1 1, 1999, Kangerlussuaq, Greenland. Jain A, Prabhakar S, Hong L. “A Multichannel Approach to Fingerprint Classification.” LEE‘ Transactions on Pa//ernAna/Yszi and Machine Zntt?/hgeme,Vol. 2 I , No. 4, pp. 348-359, April 1999. Ratha N, Karu K, Chen S, Jain A. “A Real-Time Matching System for Large Fingerprint Databases.” 1EEE Transactions on Pattern Ana&sis and Machine Zn/e//zgence,Vol. 18, No. 8, pp. 799-8 13, August 1996. Biometrics System Laboratory. University of Bologna, Bologna, Italy.