Modelling and Simulation of Robust Biometric Fingerprint Recognition Algorithm

Fingerprint is a type of biometrics that is used for human recognition because it is rich in details called minutiae. The focus of this paper is to develop an algorithm for fingerprint recognition through extracting and matching of fingerprint image minutiae. In order to achieve accurate results, the fingerprint is first pre-processed to enhance its quality. An alignment-based matching algorithm was developed for minutia matching. This algorithm is capable of finding the correspondences between the input minutia pattern and the stored template minutia pattern without resorting to exhaustive search. The performance of the developed system was evaluated with matrix laboratory (MATLAB) software along with fingerprint from the standard FVC2000 fingerprint database and fingerprints from different people at university of Uyo. From the curves of false match rate (FMR) and false non match rate (FNMR) against similarity score, a threshold value of 0.4 was obtained as guided by the equal error rate (EER) value. For verification and identification testing, the developed system was able to accurately differentiate between genuine users and imposter irrespective of the orientation and noise level of the fingerprints.


Introduction
One major problem of the existing fingerprint image recognition system is the poor quality of the image acquired from the capturing device and this has plagued a lot of fingerprint recognition systems [1,2,3,4]. The low quality can be caused by the capturing device or the condition of the skins such as sweat, dry or wet skin or deformation of the skin [5]. The orientation of the fingerprint during capturing is also another problem confronting the system [6,7,8]. Some of the existing fingerprint recognition systems lack the ability to handle effectively the stated problems and as such, results in false rejection of authentic fingerprints and false acceptance of fake fingerprints. In order to improve on the quality, an enhancement algorithm based on the combination of Gabor filter [9,10,11,12] and Fast Fourier transform (FFT) [13,14,15,16] is developed.
The results of the two enhancement processes (Gabor filtering and FFT) are combined to get the final image before the minutiae are extracted. With regards to the image orientation, this system has a way of detecting a reference point (core point) for the image in the database and that of the queried image. Then, with the two reference points, the two images are rotated to the same direction (orientation) and the images are superimposed (matched) before computing the similarity score. The relevant mathematical expressions and procedure to achieve this are presented in this paper. Also, the proposed fingerprint system is simulated with MATLAB software and the performance analysis of the system is conducted using FVC2002 fingerprint database.

Methodology
In this paper, a simple and effective approach for fingerprint image enhancement and minutiae extraction which will address the noise and fingerprint orientation sensitivity problems common with the existing fingerprint recognition systems is designed. This work is divided into two parts which are the fingerprint registration and matching, as shown in Figures 1 and 2 respectively. Fingerprint registration aspect consists of capturing of the fingerprint while the Fingerprint enhancement includes normalization of the input fingerprint and it ends at storage as template in the database.

The Finger Print Registration Process
The detailed steps used in fingerprint registration in this paper are given in Figure 3.

Fingerprint Image Enhancement
Fingerprint Normalization: Normalization transforms an n-dimensional gray-scale image from one intensity range to another. Consider an n-dimensional gray-scale image with maximum intensity (denoted as MAX) and with minimum intensity (denoted as MIN) which gives a range of intensity denoted as MAX-MIN. Normalization will transform the image into another range of intensity with new maximum intensity (denoted as newMAX) and with new minimum intensity (denoted as newMIN) which gives a new intensity range given as newMAX-newMIN.
The transformation to the new intensity, IN is carried out by interpolation which is given as follows; Determination of the intensity threshold value: Determination of appropriate intensity threshold value is essential in fingerprint image enhancement process. The determination of the intensity threshold value is done using the following iterative method: i. Select an initial threshold (T k ) where K is the iteration counter , K =0 ii.
Segment the image into object and background pixels thereby creating two sets: iii. G1 = {f(m,n):f(m,n)>T} (object pixels) and G2 = {f(m,n):f(m,n) ≤T} (background pixels); where f(m,n) denotes the the pixel located in the mth column and nth row iv.
Compute the average of each set; where m1 = average value of G1 (object pixels) and m2 = average value of G2 (background pixels) v.
Generate a new threshold as follows; vii. If ≠ −1 then go to step ii, otherwise convergence point is reaches; output the threshold, .
Segmentation: Firstly, the image is divided into blocks and the grey-scale variance, V (k) for a block of size W x W is calculated for each block in the image as follows; Where 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. If V (k) < , then the block is assigned to be a background region; otherwise, it is assigned to be part of the foreground.
Binarization: Binarization is a process that is used to transform the image from a 256 level image to a 2 level image that gives the same information. It is accomplished by first dividing the image into blocks of 32 by 32. Then, the mean is calculated after which a binary image is created by colouring each pixel white or black, depending on a pixel's label (black for 0, white for 1).
Normally, an object pixel has a value of "1" while a background pixel has a value of "0." Orientation Estimation: The image orientation estimation is essential in the fingerprint image enhancement process. For a normalized image, N, the algorithm for the image orientation estimation is as follows: i. Segment the normalized image, N into block of size W by W ii. The gradients, δx(p, q) and δy(p, q) are computed for every given pixel, (p, q) in the block, where δx(p, q) and δy(p, q) are the gradient magnitudes in the x and y directions, respectively. The horizontal Sobel operator is used to compute the δx(p, q) while the vertical Sobel operator is used to compute the δy(p, q). The δx(p, q) and δy(p, q) are calculated as follows; δ y (p,q) = (Z 7 +2Z 8 +Z 9 )-(Z 1 +Z 2 +Z 3 ) δ X (p,q) = (Z 3 +2Z 6 +Z 9 )-(Z 1 +Z 4 +Z 7 ) iii. Estimation of the local orientation: First, the image is divided into W by W blocks. Then, the local orientation of each block centered at pixel (i, j) is computed as follows; Vy = ∑ .
= + /2 �� 2 δX (p, q) δy (p, q) The tangent value of the block direction is estimated as follows; Where θ is the block orientation. Next, the maximum reliability peak is computed. Furthermore, based on the estimated direction of each block, those blocks without significant information (ridges) are discarded.

Ridge Frequency Estimation
In addition to the orientation image, another important parameter that is used in the construction of the Gabor filter is the local ridge frequency. The frequency image represents the local frequency of the ridges in a fingerprint. The first step in the local ridge frequency estimation stage is to divide the image into blocks of size W x W. Then, project the grey level values of all the pixels located inside each block along a direction orthogonal to the local ridge. The ridge spacing is calculated by counting the number of pixels between consecutive minutiae points in the projected waveform. Given R (i,j) as the ridge spacing, for a block of size W×W, then the ridge frequency F (i,j) is given as; The ridge frequency values are presented in terms of ridge wavelength.
Gabor filtering is used in image enhancement process. The filtering stage is applied to enhance the clarity of the ridge structures while reducing noise in the image. Filtering is used for edge detection, for finding the boundaries of objects or structures within images. The even-symmetric Gabor filter is constructed using ridge orientation and ridge frequency parameters. A Gabor filter can be viewed as a sinusoidal plane of particular frequency and orientation modulated by a Gaussian envelope as follows; s(x, y) : Complex sinusoid (12) The Gabor filter is given as; G( , , , ) = exp �− 2 2 2 + 2 2 2 � exp( (2  )) (13) Where f is the frequency of the cosine wave, is the local orientation, and are the standard deviations of the Gaussian envelope along the x and y axes, respectively, and θ and θ define the x and y axes of the filter coordinate frame, respectively.

Combination of Gabor filtering and Fourier Transform (FFT) Fingerprint Enhancement Processes
In this work, a combination of Gabor filtering and Fourier Transform (FFT) fingerprint enhancement processes are used as shown in Figure 5.

Secondary Features
Secondary features, such as Euclidean distance and oriental estimation are the two major types of minutiae features: the ridges ending points (that is, where a ridges ends) and the bifurcation points (that is, the spot where a ridge splits into two ridges) as shown in Figure 6. After extracting minutiae points, the distance in between all minutiae points are mapped for provide robustness of algorithm of fingerprint matching system.

Minutiae Extraction
In this work minutiae extraction was perform using the skeleton image and the crossing number method. The approach involves using a 3 x 3 window (Table 1) to examine the local neighbourhood of each ridge pixel in the image. A pixel is then classified as a ridge ending if it has only one neighbouring ridge pixel in the window, and a pixel is classified as a bifurcation if it has three neighbouring ridge pixels. The CN value which is defined as half the sum of the differences between pairs of adjacent pixels in the eight neighbourhoods is then computed as shown in Table 1. Crossing number n is calculated as follows; Fingerprint image post processing: False minutiae may be introduced into the image due to factors such as noisy images, and image artefacts created by the thinning process. Hence, after the minutiae are extracted, it is necessary to employ a post processing stage in order to validate the minutiae. In this paper, the minutiae validation algorithm by Tico and Kuosmanen [17,18] is used to eliminate false minutiae.

Fingerprint Matching
After the fingerprint registration, the next stage is the matching which is the process used to determine whether two sets of fingerprints come from the same finger. Prior to the matching process, minutiae alignment is executed to improve the robustness of the image. In order to match an input image to those in the database, the core points of both fingerprint images (cropped around the core) are chosen as reference points. This is done after the orientation field of the image has been calculated. In order to align, translate and rotate all other minutia with respect to the reference minutia, the following mathematical expression is used; θr= θ'(i,j) − θ (i,j))+ (θ'( , ) − θ ( , ))) 2 (17) where θ'(i, j) and θ (i, j) are orientations of the reference point blocks of processed (test) image and database fingerprint images, respectively. Similarly, θ'(m, n) and θ(m, n) are orientations of any block (m, n) of processed image and database fingerprint images respectively. The test fingerprint image is then rotated by θr.

Fingerprint Alignment
Aligning two fingerprints is carried out based on the following procedure: Step 1: Define the reference point, known as the core that will be used to align the two fingerprints efficiently.
Step 2: Shift the two fingerprint images so that the locations of the cores of the two fingerprints are at the same fixed point.
Step 3: Rotate the two fingerprint images to minimize the rotation variance. One approach is to make use of the average orientation of two regions located at both sides of the core, in which case the fingerprint image is rotated with respect to the core point and the rotation stops when the angles between the average orientations of both regions and the vertical axis have a minimized difference.

Matching Score
The fingerprints matching similarity score value is calculated as a percentage of the paired number of minutia points (with some variations).The similarity between minutia points from the two fingerprints, as a percentage of the paired minutia points is done using the following mathematical expression; Where Nm denotes the number of paired minutia points, while NT and NQ denote the number of minutia points in sets T and Q respectively. The score ranges from 0 to 1. It can also be expressed as percentage using 100*S.

Results and Discussion
In this work, the developed fingerprint recognition algorithm was implemented using MATLAB. Seventy-two samples of fingerprints (eight samples from each of nine different fingerprints) from FVC2002 database was used in the testing of the algorithm. The FVC2002 database is made up of four different databases (DB1, DB2, DB3 and DB4) collected using different sensors and technologies. For DB1, low cost optical sensor "Secure Desktop Scanner" by Key Tronic was used; for DB2, low cost capacitive sensor "Touch Chip" by ST Microelectronics was used; for DB3, optical sensor "DF-90" by Identicator Technology was used; and for DB4, synthetic fingerprint generation was used.

Similarity Score Curve
All the fingerprints in the database were matched with one another separately, and similarity score was generated for each matching set. The plot of the false matching rates and false non-matching rates against common similarity scores is shown in Figure 7.

Registration of Fingerprints
From the FVC 2002, fingerprints from nine different people were pre-processed; the minutiae were extracted and stored as templates. The original images and minutiae for each of the fingerprint of the person is presented in Figure 8 for Fingerprint of 101_1 to Fingerprint of 109_1.

Fingerprint Verification
Here, a fingerprint is verified by matching with the supposed fingerprint in the database. In this work, three fingerprints of different orientations and noise levels of the same person, as well as two other persons' fingerprints (called impostors) were used for the testing of the system. A matching score is generated for each matching fingerprint (as shown in Figure  9).

Fingerprint Identification
Fingerprint is identified by matching the presented fingerprint against all the registered fingerprints in the database. In this work, three authentic fingerprints of different orientations and noise levels, and one imposter's fingerprint were used for the testing of the system. The results in Figure 10 show the fingerprints with their minutiae along with the matching scores of the presented fingerprints against each of the template's fingerprints. From the similarity score curve in Figure 7, it can be seen that equal error rate (EER) is 0.38 which can be used as the threshold. However, 0.4 was chosen as the threshold to ensure that no genuine user is rejected. Again, in Figure  9, the matching scores gotten for minutiae matching of fingerprint103_1 against103_1, minutiae matching of fingerprint 103_2 against 103_1 and minutiae matching of fingerprint 103_6 against 103_1 are above the threshold value, whereas, the matching scores gotten for minutiae matching of fingerprint101_3 against 103_1 and minutiae matching of fingerprint 105_8 against 103_1 are below the threshold value. With this, it is clear that the developed system is able to accurately verify authentic fingerprints.
From the results on similarity scores of fingerprint in Figure 10, it can be seen that it is only when a fingerprint (to be identified) is matched against the fingerprint of the same finger in the database template that the matching score was above the threshold. For instance, in Figure 10, the fingerprint 101_5 against 101_1 gave a matching score of 0.6742, while 101_5 against 102_1 gave a matching score of 0.2440. With this, it is clear that the developed system is able to accurately identify authentic fingerprints.

Conclusions
Modelling and simulation of robust biometric fingerprint recognition algorithm was developed to take care of the deficiencies of the existing fingerprint recognition system which concerns the fingerprint quality and the fingerprint orientation. In this work the quality of the fingerprint was enhanced with a combination of Fourier Transform (FFT) and Gabor filters approaches. Sample fingerprints were used to evaluate the fingerprints matching capability of the system and the results show that the developed system is able to accurately identify authentic fingerprints.