# Fingerprint Quality Evaluation in a Novel Embedded Authentication System for Mobile Users

Authors: Giuseppe Vitello; Vincenzo Conti; Salvatore Vitabile; Filippo Sorbello
Journal: Mobile Information Systems
 (2015)

---

## Abstract

The way people access resources, data and services, is radically changing using modern mobile technologies. In this scenario, biometry is a good solution for security issues even if its performance is influenced by the acquired data quality. In this paper, a novel embedded automatic fingerprint authentication system (AFAS) for mobile users is described. The goal of the proposed system is to improve the performance of a standard embedded AFAS in order to enable its employment in mobile devices architectures. The system is focused on the quality evaluation of the raw acquired fingerprint, identifying areas of poor quality. Using this approach, no image enhancement process is needed after the fingerprint acquisition phase. The Agility RC2000 board has been used to prototype the embedded device. Due its different image resolution and quality, the experimental tests have been conducted on both PolyU and FVC2002 DB2-B free databases. Experimental results show an interesting trade-off between used resources, authentication time, and accuracy rate. The best achieved false acceptance rate (FAR) and false rejection rate (FRR) indexes are 0% and 6.25%, respectively. The elaboration time is 62.6 ms with a working frequency of 50 MHz.


---

## Body

## 1. Introduction

The growing number of mobile users has deeply influenced scenarios such as commercial, banking, and government applications. Due to the increasing security requirements, the way people access information resources, data communication and processing, is radically changing [1, 2]. In this field, biometric recognition systems are a good solution for mobile users authentication [3, 4].Depending on the application context, a biometric recognition system may be used as verification or identification system. A verification system checks the person’s identity by comparing the captured biometric characteristic with his/her own biometric template enrolled in the system. It conducts a one-to-one comparison to determine whether the identity claimed by the individual is true. An identification system recognizes the subject by searching the entire template database for a match. It conducts one-to-many comparisons and establishes person’s identity or fails if he/she is not enrolled in the system database, without the subject having to claim an identity. A biometric recognition system may be further classified as unimodal, when one or more instances of a single biometric trait (e.g., multiple impressions of a finger) are processed. The system is classified as multimodal, when it uses one or more instances of multiple biometric characteristics (e.g., fingerprint and face images) [5]. Multialgorithmic systems represent a particular multimodal systems class, where the same biometric trait is processed with different algorithms [4].To reduce the processing time in identification systems, biometric characteristics can be classified in an accurate and consistent way such that the input needs to be matched only with a database subset. Fingerprint classification, for example, can be performed using a wide variety of algorithms, almost all based on one or more of the following features: neural network [6], Gabor filter and support vector machine [7], genetic programming [8], singular points [9], and so forth. Unfortunately, singular points are not always present in a fingerprint image (e.g., in the partially fingerprint image acquisition). In that case, the approach proposed in [10] may be useful, where pseudosingularity points are detected and extracted for fingerprints classification and matching.Biometric systems are a rapidly evolving technology in mobile devices, with a very strong potential to be widely adopted in a broad range of human scenarios. However, there are many challenges to overcome in designing completely automatic and reliable systems, especially when input data are of poor quality. For example, fingerprint acquisitions not correctly performed, because of skin humidity, impressing pressure, large translation on sensor area, sensing mechanism, and so on, could lead to the following issues [11]:(i)
quite different ridges quality;(ii)
ridges and valleys pattern deformation;(iii)
insufficient contrast;(iv)
small foreground area;(v)
inadequate overlapping area between different images although they are captured from the same finger.In this paper, a novel embedded automatic fingerprint authentication system (AFAS) for mobile users is described. The goal of the proposed approach is to improve the performance of a standard embedded AFAS, in terms of used resources, execution time, and working frequency, in order to enable its employment in mobile devices architectures. Starting from the work described in [12], focused only on an advanced matching technique for partial fingerprints, the novel embedded AFAS has been prototyped adding the proposed fingerprint image quality evaluation module. This module is designed to find a measure that can characterize the quality of raw fingerprint images, only using the information achieved in the acquisition step. The quality index calculates and merges six different global quality indexes based on image contrast, ridges orientation certainty level, fingerprint’s center position, impressing pressure, and fingerprint size over the entire image. It is also specialized in identifying areas of poor quality. If the image overcomes the quality constraints only good areas are processed reducing the potential false minutiae. Otherwise, if the image is rejected, the system suggests to user a set of information about the not correct acquisition step, helping him to follow correct guidelines to obtain a better image quality in the next fingerprint acquisition task (Figure 1).Figure 1
Image quality evaluation module classifies the fingerprint image quality and identifies high quality areas. It checks if the fingerprint is centered over the image. If an image is rejected, a suggestions feedback is given, to the user for the next fingerprint acquisition tasks.The proposed AFAS architecture, designed for field programmable gate array (FPGA) devices using pipeline techniques and parallelisms to reduce the execution time, has been prototyped on the Agility RC2000 development board, equipped with a Xilinx Virtex-II xc2v6000 FPGA [13]. To evaluate the effectiveness of the proposed approach, three tests have been conducted starting from two different free databases, chosen for their different characteristics in terms of resolution and quality.The AFAS described in [14] has been extended with the proposed fingerprint image quality evaluation module. Experimental trials on the FVC2002 DB2-B database [15] show that the accuracy performance has been strongly increased. Then, the matching algorithm has been replaced with the advanced technique for partial fingerprints proposed in [12]. Experimental results on the PolyU database [16] show an interesting trade-off between required hardware resources, authentication time, and accuracy rate. Finally, the fingerprint image quality evaluation module has been replaced with a preprocessing task to enhance fingerprint images, a Gabor filter, and the system has been tested on the same PolyU database. The obtained experimental results show the validity of the proposed novel AFAS.The paper is structured as follows. Section2 reports the main literature works on fingerprint image quality evaluation methods. Section 3 describes the proposed novel fingerprint authentication system. Section 4 outlines the experimental results. Finally, conclusions are reported.


## 2. Remarks on Fingerprint Image Quality Evaluation Methods

One of the main techniques to test the performance of an automatic fingerprint recognition system relies heavily on the quality analysis of the acquired fingerprint image [17]. In literature many researchers have studied, proposed, and implemented different methods for evaluating the images quality, using, for example, artificial neural networks, micro- and macrofeatures analysis, and texture feature estimates.In [11] the authors propose a hybrid scheme to measure the quality of fingerprint images by combining both local and global characteristics. It uses not only local texture features but also some global factors such as the standard deviation of Gabor features, the foreground area and central position, the number of minutiae, and the existence of singular points. The authors define seven quality indexes and also two weighting methods, an overlapping area based method and a linear regression method, for computing the correlation between the final quality value and each quality index.In [18] the authors present a fast fingerprint enhancement algorithm, based on the estimated local ridge orientation and frequency, which can adaptively improve the clarity of ridge and valley structures of input fingerprint images. It models the ridge and valley patterns as a sinusoidal wave and then calculates the amplitude, frequency, and variance of the wave to determine the quality of the fingerprint regions.In [19] the authors define a method not aimed at selecting images of good visual appearance but aimed at identifying poor quality as well as invalid fingerprints for automatic fingerprint identification systems. It analyzes the image in the spatial domain and uses the orientation certainty to certify the localized texture pattern, while it uses ridge and valley structure to detect invalid images.In [20] the authors implement an effective quality classification method for fingerprint images based on neural networks. It uses effective area, energy concentration, spatial consistency, and directional contrast as quality indexes. A comparison with individual quality index thresholding and linear weighted sum method, on a private database, shows the higher quality classification accuracy of their method.In [21] the authors describe a novel method for estimating the quality of fingerprint images using both local and global analyses. They propose a fusion method mixing the information from ridge and valley line resolution, fingerprint area, and gray levels average and variance, using the golden section method to select the relevant weights value.In [22] the authors propose a novel quality-checking algorithm which considers the condition of the input fingerprints and the orientation estimation errors. First, the 2D gradients of the fingerprint image is separated into two sets of 1D gradients, and then the shape of the probability density functions of these gradients is measured in order to determine the fingerprint quality.In [23] the authors present an image quality assessment technique for a novel fingerprint multimodal algorithm to provide high accuracy under nonideal conditions. It uses the redundant discrete wavelet transform to assess the image quality, for high resolution fingerprint databases, by determining the presence of noise, smoothness, and edge information in a fingerprint image. Successively, in [24] the authors extend this technique designing a local image quality assessment algorithm. They use it as the first step of a novel algorithm for fast extraction and identification of level-3 features, such as pores, ridge contours, dots, and incipient ridges.After an exhaustive analysis of the above described methods for fingerprint image quality evaluation and in order to achieve the best trade-off between execution time and used resources for embedded devices, a mixed method has been designed and integrated in the proposed novel embedded AFAS. It is based on a fingerprint image global analysis in the spatial domain and inspired by works described in [11, 19].


## 3. The Proposed Novel Embedded Fingerprint Authentication System

The proposed minutiae based AFAS is focused on the acquired raw image quality evaluation identifying poor quality areas, such as dry and moist portions, in order to overcome the common problems in wrong acquisitions on mobile devices. The system checks if the distance between image center and the fingerprint center coordinates is lower than an experimental fixed threshold in order to extract the maximum number of corresponding minutiae. If this condition is verified and the image overcomes the quality constraints, only high quality image portions are processed. Otherwise, the image is rejected and the system gives to the user suggestion feedbacks about the wrong acquisition step, helping him to obtain a better image quality in the next fingerprint acquisition task. In addition, an advanced matching technique for user recognition, based on partial fingerprints, is performed to improve system accuracy [12]. This technique calculates a likelihood ratio by trying every possible overlap of the acquired fingerprint with the enrolled one. The rototranslation parameters computation is based on the similar minutiae pairs identification belonging to both fingerprints.Considering the functionalities of the proposed system, three main components can be identified: the interface module (IM), which enables the user to interact with the system, the acquisition module (AM), which deals with the fingerprint image acquisition, and the processing module (PM), based on the FPGA processing engine implementing the authentication phase (Figure2).Figure 2
System’s components: the user interface (UI), the acquisition module (AM), and the processing module (PM).Using the proposed PM, no image enhancement after fingerprint acquisition is performed. Therefore, a considerable saving in terms of execution time and hardware resources has been achieved with respect to a standard AFAS implementation. With more details, the proposed AFAS requires an image quality evaluation module, including a binarization module, a thinning module, a feature extraction module, an alignment module, and, finally, a matching module. Despite a standard AFAS implementation no normalization, enhancement, field orientation, filtered orientation and, smoothing tasks are required (Figure3).Figure 3
Comparison between the proposed AFAS (on the left) and the standard AFAS (on the right).In the following subsections the main submodules of the proposed novel AFAS will be described.


### 3.1. Image Quality Evaluation Module

This module, inspired by works described in [11, 19], evaluates the fingerprint image quality through a global analysis in the spatial domain. With more details, it analyzes the image by blocks, calculates the fingerprint central position, identifies the dry and moist blocks, and classifies the image quality into two levels.Figure4 shows the architecture of the proposed module, while the following subsections describe each submodule.Figure 4
The proposed architecture evaluates the fingerprint image quality level. Fingerprint quality evaluator module is composed of image blocks analyzer submodule, indexes calculator submodule, and quality level evaluator submodule. The Image Block Analyzer submodule is composed of Max Min Level Calculator submodule, Orientation Certainty Level Calculator submodule, Average Calculator submodule, Variance Calculator submodule, Block Analyzer submodule, and Fingerprint Center Calculator submodule.


#### 3.1.1. Blocks_Generator Submodule

This submodule reads a gray levels fingerprint image from the on-board memory, divides it into an ideal grid ofN=Nx*Ny nonoverlapping blocks, and sends them, pixel by pixel, to the Fingerprint_Quality_Level_Evaluator submodule. Each block has a fixed size depending on the used database: 30 × 30 and 40 × 40 pixels for the FVC2002 DB2-B and the PolyU database, respectively. This system also counts the blocks sent and sets thenew_block signal when the last pixel of the current block is sent.


#### 3.1.2. Fingerprint_Quality_Level_Evaluator Submodule

This submodule identifies the dry and moist fingerprint portions allowing the subsequent features extraction task to discard them in order to reduce the potential false minutiae number. In concurrent way, the submodule checks if the fingerprint is centered over the image and calculates six indexes, each measuring an image qualitative characteristic. It performs a linear combination of them obtaining the final quality index. Finally, it classifies the image quality into two classes.In the following subsections, the Fingerprint_Quality_Level_Evaluator submodules are described.(1) Image_Blocks_Analyzer Submodule. This submodule is able to process block by block the fingerprint image. For each block it calculates, in a concurrent way, the following features:(i)
max and min gray level: these local values are used to calculate the global max and min gray level of the entire image;(ii)
gray levels average and variance: these values are used to classify blocks as foreground/background and as dry/moist/good;(iii)
ridges orientation certainty level (ocl): this value, only for foreground blocks, is added to the ocl_accumulator signal, subsequently used for the calculation of the 2nd index.After that, in a concurrent way, it identifies the fingerprint high quality areas and calculates the fingerprint central position. The following subsections describe the main submodules of the proposed Image_Blocks_Analyzer submodule.Orientation_Certainty_Level_Calculator Submodule. A fingerprint image block generally consists of ridges separated by valleys with the same orientation. Ridges and valleys constant structure and regular orientation can be used to evaluate the quality of each considered block. They are analytically calculated through the gradient of the gray levels along the x and y directions of a pixel [19]. The covariance matrix C of the gradient vector for an image block of M points is given by(1)C=Edxdydxdy=accb,where(2)E•=1M∑M•.The ridges orientation certainty level (ocl) is calculated as shown in(3)ocl=100*a+b-a-b2+4c2a+b+a-b2+4c2.With low (high) ocl values, the local structure and orientation of ridges and valleys are very regular (irregular), and therefore the block has good (wrong) quality (Figure 5). With more details, this submodule is further composed of two submodules, implementing a two-stage pipeline (Figure 6). While the first submodule calculates the covariance matrix C of block j, the second submodule calculates the ocl value of j-1 block.Figure 5
Examples of different ocl values.Figure 6
Orientation_Certainty_Level_Calculator submodule.Average_Calculator and Variance_Calculator Submodules. Average and variance are important characteristics for evaluating the block quality: average measures the luminosity, while variance measures the contrast. A low average value is linked to a block prevalently containing ridges (because it is dark), while a low variance value entails that the block does not contain any useful portion of the fingerprint (because it has a low contrast).The Average_Calculator submodule stores the incoming block pixels on a shift register and sends the pixels of the previous block in order to achieve the best trade-off between requested resources and execution time.Block_Analyzer Submodule. The ocl characteristic is not sufficient to quantify the clearness of the fingerprint ridges and valleys pattern when the skin humidity is also considered. For a moist block the ridges are too thick, since it has low average value. On the other hand, the ridges are too thin for a dry block, since it has a high average value. So, the average value is heavily influenced by the background gray level intensity (Figure 7). In this work, the gray level intensity of the image background is fixed to be the average value of the first image block, since it does not usually contain part of the fingerprint. If the block contains part of the fingerprint (i.e., the fingerprint covers the entire image) the background gray level is assumed as dark.Figure 7
Examples of average and variance values with dark and bright background.This submodule compares the average value of the first block with an experimental fixed threshold classifying the background as dark or bright and setting moist and dry thresholds. These values are experimentally fixed and depend on the used database. For example, on the FVC2002 DB2-B, the dry thresholds are 140 and 180 for bright and dark background, respectively, while the moist thresholds are 80 for dark background and 100 otherwise. Successively, it classifies each block as foreground or background using the incoming variance value. The foreground threshold is not influenced by the background gray level and it is experimentally fixed to 190.Fingerprint_Center_Calculator Submodule. This submodule calculates, in a concurrent way, the fingerprint central position (Figure 8). It checks if the considered block belongs to the column Nx/2, Nx/4, or 3Nx/4. If so then, if it is of foreground, a value equal to the block size is added to the relevant column foreground accumulator (an accumulator for each considered column); otherwise only if this accumulator value is zero, the same value is added to the relevant column background accumulator (i.e., the background blocks below the fingerprint are discharged). Concurrently, the same check is performed on the rows Ny/2, Ny/4, or 3Ny/4, and, in the same way, the relevant row background or foreground accumulator is increased. Finally, for the last block, the column foreground accumulator with the highest value is selected and the y-coordinate of the fingerprint’s center is calculated as the sum of the half value stored in the selected foreground accumulator and the relevant column background accumulator value. Concurrently, the x-coordinate of the fingerprint’s center is calculated in the same way.Figure 8
Example of a FVC2002 fingerprint’s center calculation.(2) Indexes_Calculator Submodule. Among common quality indexes present in literature and reported in the related works section, this subsystem concurrently calculates six global indexes, designed in order to realize a module reducing used resources and execution time. To make all indexes compatible, they have normalized in the range of [0,100]. High index value entails a good image quality.Index1_Calculator Submodule. The first index measures the contrast between fingerprint and background. This value is calculated as the difference between the maximum and the minimum gray level value of the entire image:(4)index_1=100*max⁡⁡_gl-min⁡⁡_gl255.Index2_Calculator Submodule. The second index extends to the whole image the considerations about the block orientation certainty level estimation, thus globally measuring the clarity and continuity of ridges and valleys orientation. It is calculated by averaging all the ocl values relating to only foreground blocks:(5)index_2=100-ocl_accumulatorforeground_blocks.Index3_Calculator Submodule. The third index measures the humidity of the entire image and it is calculated as the ratio between the number of moist blocks and the number of foreground blocks:(6)index_3=100-100*moist_blocksforeground_blocks.Index4_Calculator Submodule. The fourth index measures the dryness of the entire image and it is calculated as the ratio between the number of dry blocks and the number of foreground blocks:(7)index_4=100-100*dry_blocksforeground_blocks.Index5_Calculator Submodule. The fifth index measures the image area occupied by the foreground blocks. It is an estimate of the fingerprint size over the entire image and it is calculated as the ratio between the number of foreground blocks and the total number of blocks:(8)index_5=100*foreground_blocksN.Index6_Calculator Submodule. The sixth index measures the position of the fingerprint over the entire image: too large translation caused by human behavior can generate an insufficient overlapping area between images captured from the same finger. It is calculated as the average of two values, i6x and i6y:(9)index_6=i6x+i6y2with(10)i6x=100-100*xcf-xcixci,i6y=100-100*ycf-yciyci,where xcf and ycf are the coordinates of the fingerprint’s center, while xci and yci are the coordinates of the image’s center.In addition, this subsystem checks if the distance between the respective coordinates of the image’s center and the fingerprint’s center is lower than a threshold (experimentally fixed to 100) and then sets theis_centered signal.(3) Quality_Level_Calculator Submodule. First, this subsystem calculates the final fingerprint quality index as linear combination of the previous six indexes. As described in [11], a linear regression method is used for weights calculation. They are experimentally determined by performing tests to observe the behavior of the change in the final quality index while one index is changing and the others are constant. Experimental results show that the most relevant indexes are ocl, fingerprint moisture, and fingerprint dryness. Then, by comparing the final quality index value with a threshold (experimentally fixed to 65), this subsystem classifies the image quality level asGood orBad. Finally, the subsequent tasks are performed only if the quality isGood and the fingerprint is centered over the image.


### 3.2. Binarization Module

This module gives out an image where pixels assume a binary value: white as background and black as foreground (Figure9). Binarization is performed using the local gray range technique described in [25]. In this adaptive technique the threshold is set at the average of the maximum and minimum gray values in a local window of size 9 × 9.Figure 9
Example of fingerprint binarization.


### 3.3. Thinning Module

This module reduces the ridge thickness to the unitary value (Figure10), using the Zhang-Suen algorithm described in [26]. For the realization of the thinning algorithm on FPGA, a 3 × 3 mask has been used in order to implement a two-stage pipeline.Figure 10
Example of fingerprint thinning.


### 3.4. Features Extraction Module

For the minutiae extraction, the algorithm proposed in [14] has been optimized and extended: in order to reduce the system execution time and the potential false minutiae, only the good areas, computed by the image quality evaluation module, of a central area of 240 × 320 pixels, are processed. The proposed approach improves the performance of a standard embedded AFAS, such as would a Gabor filtering process in order to reconstruct the poor quality areas. Figure 11 shows the minutiae extracted using the Gabor filter, to reconstruct image areas of poor quality, and using the image quality evaluation, to discard those areas. As depicted, the Gabor filter approach introduces two false bifurcations and discards two terminations, while the proposed approach discards two bifurcations and one termination.Figure 11
(a) Image 2_1_5 from PolyU database; (b) minutiae extracted with a Gabor filter and without the image quality evaluation; (c) minutiae extracted with the image quality evaluation and without a Gabor filter.
(a)
(b)
(c)


### 3.5. Alignment and Matching Modules

The computation of a likelihood ratio in fingerprint authentication is obtained by trying all the possible overlapping of the acquired fingerprint with the one enrolled in the system [12]. The rototranslation parameters computation is based on the identification of two similar pairs of minutiae belonging to both fingerprints (Figure 12). A threshold (experimentally fixed to 175) based on Euclidean distance is used to generate the minutiae pairs.Figure 12
Rototranslation parameters computation.First, rototranslation parameters are computed only if the value of Euclidean distance between each minutiae pair of both fingerprints is lower than a threshold (experimentally fixed to 20). The rotation parameter is based on the differences between the corresponding angles in the selected minutiae pairs. If the gap between each of these differences with respect to the other is lower than a threshold (experimentally fixed to 1.5) the rotation parameter is the average of the calculated differences. In the same way, the translation parameter is based on the differences between the respective Cartesian coordinates in the selected minutiae pairs. If the gap between each coordinate distance is lower than a threshold (experimentally fixed to 30) the translation parameter is the average of the respective calculated differences.Then, the rototranslation is performed and, for each minutia, differences between respective coordinatesx-y (diffxy) and angles (difftheta) are calculated. Only when these differences are lower than two thresholds (xythreshold and thetathreshold, experimentally fixed to 15 and 0.785, resp.) a first partial score is obtained and normalized in the range of [0,1]. The complete score is calculated as(11)si=0.75*1-max⁡⁡diffxyxythreshold+0.25*1-max⁡⁡diffthetathetathreshold,where higher importance has been made to the differences between respective coordinates rather than to angles, due to rounding problems on data.Finally, among all complete scores, only the greater is considered. Therefore, the final matching score is calculated adding the 12 highest obtained scores. In accordance with the USA guidelines in the forensic field, when two fingerprints have a minimum of 12 corresponding minutiae, these are regarded as coming from the same finger [27].


## 3.1. Image Quality Evaluation Module

This module, inspired by works described in [11, 19], evaluates the fingerprint image quality through a global analysis in the spatial domain. With more details, it analyzes the image by blocks, calculates the fingerprint central position, identifies the dry and moist blocks, and classifies the image quality into two levels.Figure4 shows the architecture of the proposed module, while the following subsections describe each submodule.Figure 4
The proposed architecture evaluates the fingerprint image quality level. Fingerprint quality evaluator module is composed of image blocks analyzer submodule, indexes calculator submodule, and quality level evaluator submodule. The Image Block Analyzer submodule is composed of Max Min Level Calculator submodule, Orientation Certainty Level Calculator submodule, Average Calculator submodule, Variance Calculator submodule, Block Analyzer submodule, and Fingerprint Center Calculator submodule.


### 3.1.1. Blocks_Generator Submodule

This submodule reads a gray levels fingerprint image from the on-board memory, divides it into an ideal grid ofN=Nx*Ny nonoverlapping blocks, and sends them, pixel by pixel, to the Fingerprint_Quality_Level_Evaluator submodule. Each block has a fixed size depending on the used database: 30 × 30 and 40 × 40 pixels for the FVC2002 DB2-B and the PolyU database, respectively. This system also counts the blocks sent and sets thenew_block signal when the last pixel of the current block is sent.


### 3.1.2. Fingerprint_Quality_Level_Evaluator Submodule

This submodule identifies the dry and moist fingerprint portions allowing the subsequent features extraction task to discard them in order to reduce the potential false minutiae number. In concurrent way, the submodule checks if the fingerprint is centered over the image and calculates six indexes, each measuring an image qualitative characteristic. It performs a linear combination of them obtaining the final quality index. Finally, it classifies the image quality into two classes.In the following subsections, the Fingerprint_Quality_Level_Evaluator submodules are described.(1) Image_Blocks_Analyzer Submodule. This submodule is able to process block by block the fingerprint image. For each block it calculates, in a concurrent way, the following features:(i)
max and min gray level: these local values are used to calculate the global max and min gray level of the entire image;(ii)
gray levels average and variance: these values are used to classify blocks as foreground/background and as dry/moist/good;(iii)
ridges orientation certainty level (ocl): this value, only for foreground blocks, is added to the ocl_accumulator signal, subsequently used for the calculation of the 2nd index.After that, in a concurrent way, it identifies the fingerprint high quality areas and calculates the fingerprint central position. The following subsections describe the main submodules of the proposed Image_Blocks_Analyzer submodule.Orientation_Certainty_Level_Calculator Submodule. A fingerprint image block generally consists of ridges separated by valleys with the same orientation. Ridges and valleys constant structure and regular orientation can be used to evaluate the quality of each considered block. They are analytically calculated through the gradient of the gray levels along the x and y directions of a pixel [19]. The covariance matrix C of the gradient vector for an image block of M points is given by(1)C=Edxdydxdy=accb,where(2)E•=1M∑M•.The ridges orientation certainty level (ocl) is calculated as shown in(3)ocl=100*a+b-a-b2+4c2a+b+a-b2+4c2.With low (high) ocl values, the local structure and orientation of ridges and valleys are very regular (irregular), and therefore the block has good (wrong) quality (Figure 5). With more details, this submodule is further composed of two submodules, implementing a two-stage pipeline (Figure 6). While the first submodule calculates the covariance matrix C of block j, the second submodule calculates the ocl value of j-1 block.Figure 5
Examples of different ocl values.Figure 6
Orientation_Certainty_Level_Calculator submodule.Average_Calculator and Variance_Calculator Submodules. Average and variance are important characteristics for evaluating the block quality: average measures the luminosity, while variance measures the contrast. A low average value is linked to a block prevalently containing ridges (because it is dark), while a low variance value entails that the block does not contain any useful portion of the fingerprint (because it has a low contrast).The Average_Calculator submodule stores the incoming block pixels on a shift register and sends the pixels of the previous block in order to achieve the best trade-off between requested resources and execution time.Block_Analyzer Submodule. The ocl characteristic is not sufficient to quantify the clearness of the fingerprint ridges and valleys pattern when the skin humidity is also considered. For a moist block the ridges are too thick, since it has low average value. On the other hand, the ridges are too thin for a dry block, since it has a high average value. So, the average value is heavily influenced by the background gray level intensity (Figure 7). In this work, the gray level intensity of the image background is fixed to be the average value of the first image block, since it does not usually contain part of the fingerprint. If the block contains part of the fingerprint (i.e., the fingerprint covers the entire image) the background gray level is assumed as dark.Figure 7
Examples of average and variance values with dark and bright background.This submodule compares the average value of the first block with an experimental fixed threshold classifying the background as dark or bright and setting moist and dry thresholds. These values are experimentally fixed and depend on the used database. For example, on the FVC2002 DB2-B, the dry thresholds are 140 and 180 for bright and dark background, respectively, while the moist thresholds are 80 for dark background and 100 otherwise. Successively, it classifies each block as foreground or background using the incoming variance value. The foreground threshold is not influenced by the background gray level and it is experimentally fixed to 190.Fingerprint_Center_Calculator Submodule. This submodule calculates, in a concurrent way, the fingerprint central position (Figure 8). It checks if the considered block belongs to the column Nx/2, Nx/4, or 3Nx/4. If so then, if it is of foreground, a value equal to the block size is added to the relevant column foreground accumulator (an accumulator for each considered column); otherwise only if this accumulator value is zero, the same value is added to the relevant column background accumulator (i.e., the background blocks below the fingerprint are discharged). Concurrently, the same check is performed on the rows Ny/2, Ny/4, or 3Ny/4, and, in the same way, the relevant row background or foreground accumulator is increased. Finally, for the last block, the column foreground accumulator with the highest value is selected and the y-coordinate of the fingerprint’s center is calculated as the sum of the half value stored in the selected foreground accumulator and the relevant column background accumulator value. Concurrently, the x-coordinate of the fingerprint’s center is calculated in the same way.Figure 8
Example of a FVC2002 fingerprint’s center calculation.(2) Indexes_Calculator Submodule. Among common quality indexes present in literature and reported in the related works section, this subsystem concurrently calculates six global indexes, designed in order to realize a module reducing used resources and execution time. To make all indexes compatible, they have normalized in the range of [0,100]. High index value entails a good image quality.Index1_Calculator Submodule. The first index measures the contrast between fingerprint and background. This value is calculated as the difference between the maximum and the minimum gray level value of the entire image:(4)index_1=100*max⁡⁡_gl-min⁡⁡_gl255.Index2_Calculator Submodule. The second index extends to the whole image the considerations about the block orientation certainty level estimation, thus globally measuring the clarity and continuity of ridges and valleys orientation. It is calculated by averaging all the ocl values relating to only foreground blocks:(5)index_2=100-ocl_accumulatorforeground_blocks.Index3_Calculator Submodule. The third index measures the humidity of the entire image and it is calculated as the ratio between the number of moist blocks and the number of foreground blocks:(6)index_3=100-100*moist_blocksforeground_blocks.Index4_Calculator Submodule. The fourth index measures the dryness of the entire image and it is calculated as the ratio between the number of dry blocks and the number of foreground blocks:(7)index_4=100-100*dry_blocksforeground_blocks.Index5_Calculator Submodule. The fifth index measures the image area occupied by the foreground blocks. It is an estimate of the fingerprint size over the entire image and it is calculated as the ratio between the number of foreground blocks and the total number of blocks:(8)index_5=100*foreground_blocksN.Index6_Calculator Submodule. The sixth index measures the position of the fingerprint over the entire image: too large translation caused by human behavior can generate an insufficient overlapping area between images captured from the same finger. It is calculated as the average of two values, i6x and i6y:(9)index_6=i6x+i6y2with(10)i6x=100-100*xcf-xcixci,i6y=100-100*ycf-yciyci,where xcf and ycf are the coordinates of the fingerprint’s center, while xci and yci are the coordinates of the image’s center.In addition, this subsystem checks if the distance between the respective coordinates of the image’s center and the fingerprint’s center is lower than a threshold (experimentally fixed to 100) and then sets theis_centered signal.(3) Quality_Level_Calculator Submodule. First, this subsystem calculates the final fingerprint quality index as linear combination of the previous six indexes. As described in [11], a linear regression method is used for weights calculation. They are experimentally determined by performing tests to observe the behavior of the change in the final quality index while one index is changing and the others are constant. Experimental results show that the most relevant indexes are ocl, fingerprint moisture, and fingerprint dryness. Then, by comparing the final quality index value with a threshold (experimentally fixed to 65), this subsystem classifies the image quality level asGood orBad. Finally, the subsequent tasks are performed only if the quality isGood and the fingerprint is centered over the image.


## 3.1.1. Blocks_Generator Submodule

This submodule reads a gray levels fingerprint image from the on-board memory, divides it into an ideal grid ofN=Nx*Ny nonoverlapping blocks, and sends them, pixel by pixel, to the Fingerprint_Quality_Level_Evaluator submodule. Each block has a fixed size depending on the used database: 30 × 30 and 40 × 40 pixels for the FVC2002 DB2-B and the PolyU database, respectively. This system also counts the blocks sent and sets thenew_block signal when the last pixel of the current block is sent.


## 3.1.2. Fingerprint_Quality_Level_Evaluator Submodule

This submodule identifies the dry and moist fingerprint portions allowing the subsequent features extraction task to discard them in order to reduce the potential false minutiae number. In concurrent way, the submodule checks if the fingerprint is centered over the image and calculates six indexes, each measuring an image qualitative characteristic. It performs a linear combination of them obtaining the final quality index. Finally, it classifies the image quality into two classes.In the following subsections, the Fingerprint_Quality_Level_Evaluator submodules are described.(1) Image_Blocks_Analyzer Submodule. This submodule is able to process block by block the fingerprint image. For each block it calculates, in a concurrent way, the following features:(i)
max and min gray level: these local values are used to calculate the global max and min gray level of the entire image;(ii)
gray levels average and variance: these values are used to classify blocks as foreground/background and as dry/moist/good;(iii)
ridges orientation certainty level (ocl): this value, only for foreground blocks, is added to the ocl_accumulator signal, subsequently used for the calculation of the 2nd index.After that, in a concurrent way, it identifies the fingerprint high quality areas and calculates the fingerprint central position. The following subsections describe the main submodules of the proposed Image_Blocks_Analyzer submodule.Orientation_Certainty_Level_Calculator Submodule. A fingerprint image block generally consists of ridges separated by valleys with the same orientation. Ridges and valleys constant structure and regular orientation can be used to evaluate the quality of each considered block. They are analytically calculated through the gradient of the gray levels along the x and y directions of a pixel [19]. The covariance matrix C of the gradient vector for an image block of M points is given by(1)C=Edxdydxdy=accb,where(2)E•=1M∑M•.The ridges orientation certainty level (ocl) is calculated as shown in(3)ocl=100*a+b-a-b2+4c2a+b+a-b2+4c2.With low (high) ocl values, the local structure and orientation of ridges and valleys are very regular (irregular), and therefore the block has good (wrong) quality (Figure 5). With more details, this submodule is further composed of two submodules, implementing a two-stage pipeline (Figure 6). While the first submodule calculates the covariance matrix C of block j, the second submodule calculates the ocl value of j-1 block.Figure 5
Examples of different ocl values.Figure 6
Orientation_Certainty_Level_Calculator submodule.Average_Calculator and Variance_Calculator Submodules. Average and variance are important characteristics for evaluating the block quality: average measures the luminosity, while variance measures the contrast. A low average value is linked to a block prevalently containing ridges (because it is dark), while a low variance value entails that the block does not contain any useful portion of the fingerprint (because it has a low contrast).The Average_Calculator submodule stores the incoming block pixels on a shift register and sends the pixels of the previous block in order to achieve the best trade-off between requested resources and execution time.Block_Analyzer Submodule. The ocl characteristic is not sufficient to quantify the clearness of the fingerprint ridges and valleys pattern when the skin humidity is also considered. For a moist block the ridges are too thick, since it has low average value. On the other hand, the ridges are too thin for a dry block, since it has a high average value. So, the average value is heavily influenced by the background gray level intensity (Figure 7). In this work, the gray level intensity of the image background is fixed to be the average value of the first image block, since it does not usually contain part of the fingerprint. If the block contains part of the fingerprint (i.e., the fingerprint covers the entire image) the background gray level is assumed as dark.Figure 7
Examples of average and variance values with dark and bright background.This submodule compares the average value of the first block with an experimental fixed threshold classifying the background as dark or bright and setting moist and dry thresholds. These values are experimentally fixed and depend on the used database. For example, on the FVC2002 DB2-B, the dry thresholds are 140 and 180 for bright and dark background, respectively, while the moist thresholds are 80 for dark background and 100 otherwise. Successively, it classifies each block as foreground or background using the incoming variance value. The foreground threshold is not influenced by the background gray level and it is experimentally fixed to 190.Fingerprint_Center_Calculator Submodule. This submodule calculates, in a concurrent way, the fingerprint central position (Figure 8). It checks if the considered block belongs to the column Nx/2, Nx/4, or 3Nx/4. If so then, if it is of foreground, a value equal to the block size is added to the relevant column foreground accumulator (an accumulator for each considered column); otherwise only if this accumulator value is zero, the same value is added to the relevant column background accumulator (i.e., the background blocks below the fingerprint are discharged). Concurrently, the same check is performed on the rows Ny/2, Ny/4, or 3Ny/4, and, in the same way, the relevant row background or foreground accumulator is increased. Finally, for the last block, the column foreground accumulator with the highest value is selected and the y-coordinate of the fingerprint’s center is calculated as the sum of the half value stored in the selected foreground accumulator and the relevant column background accumulator value. Concurrently, the x-coordinate of the fingerprint’s center is calculated in the same way.Figure 8
Example of a FVC2002 fingerprint’s center calculation.(2) Indexes_Calculator Submodule. Among common quality indexes present in literature and reported in the related works section, this subsystem concurrently calculates six global indexes, designed in order to realize a module reducing used resources and execution time. To make all indexes compatible, they have normalized in the range of [0,100]. High index value entails a good image quality.Index1_Calculator Submodule. The first index measures the contrast between fingerprint and background. This value is calculated as the difference between the maximum and the minimum gray level value of the entire image:(4)index_1=100*max⁡⁡_gl-min⁡⁡_gl255.Index2_Calculator Submodule. The second index extends to the whole image the considerations about the block orientation certainty level estimation, thus globally measuring the clarity and continuity of ridges and valleys orientation. It is calculated by averaging all the ocl values relating to only foreground blocks:(5)index_2=100-ocl_accumulatorforeground_blocks.Index3_Calculator Submodule. The third index measures the humidity of the entire image and it is calculated as the ratio between the number of moist blocks and the number of foreground blocks:(6)index_3=100-100*moist_blocksforeground_blocks.Index4_Calculator Submodule. The fourth index measures the dryness of the entire image and it is calculated as the ratio between the number of dry blocks and the number of foreground blocks:(7)index_4=100-100*dry_blocksforeground_blocks.Index5_Calculator Submodule. The fifth index measures the image area occupied by the foreground blocks. It is an estimate of the fingerprint size over the entire image and it is calculated as the ratio between the number of foreground blocks and the total number of blocks:(8)index_5=100*foreground_blocksN.Index6_Calculator Submodule. The sixth index measures the position of the fingerprint over the entire image: too large translation caused by human behavior can generate an insufficient overlapping area between images captured from the same finger. It is calculated as the average of two values, i6x and i6y:(9)index_6=i6x+i6y2with(10)i6x=100-100*xcf-xcixci,i6y=100-100*ycf-yciyci,where xcf and ycf are the coordinates of the fingerprint’s center, while xci and yci are the coordinates of the image’s center.In addition, this subsystem checks if the distance between the respective coordinates of the image’s center and the fingerprint’s center is lower than a threshold (experimentally fixed to 100) and then sets theis_centered signal.(3) Quality_Level_Calculator Submodule. First, this subsystem calculates the final fingerprint quality index as linear combination of the previous six indexes. As described in [11], a linear regression method is used for weights calculation. They are experimentally determined by performing tests to observe the behavior of the change in the final quality index while one index is changing and the others are constant. Experimental results show that the most relevant indexes are ocl, fingerprint moisture, and fingerprint dryness. Then, by comparing the final quality index value with a threshold (experimentally fixed to 65), this subsystem classifies the image quality level asGood orBad. Finally, the subsequent tasks are performed only if the quality isGood and the fingerprint is centered over the image.


## 3.2. Binarization Module

This module gives out an image where pixels assume a binary value: white as background and black as foreground (Figure9). Binarization is performed using the local gray range technique described in [25]. In this adaptive technique the threshold is set at the average of the maximum and minimum gray values in a local window of size 9 × 9.Figure 9
Example of fingerprint binarization.


## 3.3. Thinning Module

This module reduces the ridge thickness to the unitary value (Figure10), using the Zhang-Suen algorithm described in [26]. For the realization of the thinning algorithm on FPGA, a 3 × 3 mask has been used in order to implement a two-stage pipeline.Figure 10
Example of fingerprint thinning.


## 3.4. Features Extraction Module

For the minutiae extraction, the algorithm proposed in [14] has been optimized and extended: in order to reduce the system execution time and the potential false minutiae, only the good areas, computed by the image quality evaluation module, of a central area of 240 × 320 pixels, are processed. The proposed approach improves the performance of a standard embedded AFAS, such as would a Gabor filtering process in order to reconstruct the poor quality areas. Figure 11 shows the minutiae extracted using the Gabor filter, to reconstruct image areas of poor quality, and using the image quality evaluation, to discard those areas. As depicted, the Gabor filter approach introduces two false bifurcations and discards two terminations, while the proposed approach discards two bifurcations and one termination.Figure 11
(a) Image 2_1_5 from PolyU database; (b) minutiae extracted with a Gabor filter and without the image quality evaluation; (c) minutiae extracted with the image quality evaluation and without a Gabor filter.
(a)
(b)
(c)


## 3.5. Alignment and Matching Modules

The computation of a likelihood ratio in fingerprint authentication is obtained by trying all the possible overlapping of the acquired fingerprint with the one enrolled in the system [12]. The rototranslation parameters computation is based on the identification of two similar pairs of minutiae belonging to both fingerprints (Figure 12). A threshold (experimentally fixed to 175) based on Euclidean distance is used to generate the minutiae pairs.Figure 12
Rototranslation parameters computation.First, rototranslation parameters are computed only if the value of Euclidean distance between each minutiae pair of both fingerprints is lower than a threshold (experimentally fixed to 20). The rotation parameter is based on the differences between the corresponding angles in the selected minutiae pairs. If the gap between each of these differences with respect to the other is lower than a threshold (experimentally fixed to 1.5) the rotation parameter is the average of the calculated differences. In the same way, the translation parameter is based on the differences between the respective Cartesian coordinates in the selected minutiae pairs. If the gap between each coordinate distance is lower than a threshold (experimentally fixed to 30) the translation parameter is the average of the respective calculated differences.Then, the rototranslation is performed and, for each minutia, differences between respective coordinatesx-y (diffxy) and angles (difftheta) are calculated. Only when these differences are lower than two thresholds (xythreshold and thetathreshold, experimentally fixed to 15 and 0.785, resp.) a first partial score is obtained and normalized in the range of [0,1]. The complete score is calculated as(11)si=0.75*1-max⁡⁡diffxyxythreshold+0.25*1-max⁡⁡diffthetathetathreshold,where higher importance has been made to the differences between respective coordinates rather than to angles, due to rounding problems on data.Finally, among all complete scores, only the greater is considered. Therefore, the final matching score is calculated adding the 12 highest obtained scores. In accordance with the USA guidelines in the forensic field, when two fingerprints have a minimum of 12 corresponding minutiae, these are regarded as coming from the same finger [27].


## 4. Experimental Results

The proposed approach introduces interesting characteristics for mobile devices. The architectural implementation on FPGA, considering its working frequency (50 MHz), achieves the performance of the highly competitive systems, realizing a good trade-off between accuracy rate, used resources, and execution time. To evaluate the accuracy performances of the proposed authentication system, the well-known false recognition rate (FRR) and false acceptance rate (FAR) indexes have been used and two different free databases with different characteristics in terms of resolution and quality have been used.The following subsections report the used databases and datasets description, the execution time, the required hardware resources, and the authentication performance of the proposed AFAS.


### 4.1. Databases Description

#### 4.1.1. FVC2002 DB2-B Database

This free downloadable database has been made available for the second edition of the international fingerprint verification competition [28]. It contains 80 fingerprint images of 296 × 560 pixels, with a resolution of 569 dpi. The images has been acquired from 10 users (8 acquisitions for user of the same finger), via the scanner Biometrika FX2000 [29], with a maximum rotation of about 35 degrees between impressions (Figure 13).Figure 13
Two example images of the FVC2002 DB2-B acquired by Biometrika FX2000 sensor.
(a)
(b)


#### 4.1.2. PolyU Database

This free downloadable database has been built at the Hong Kong Polytechnic University [16]. It contains 1480 fingerprint images of 480 × 640 pixels, with a resolution around 1,200 dpi of 148 users (10 acquisitions for user of two fingers, Figure 14). Each image name has been described using three numbers in the following way: first number represents the user, second number represents the finger, and third number represents the different acquisition.Figure 14
Two example images of the Hong Kong Polytechnic University.
(a)
(b)


#### 4.1.3. Datasets Description

Starting from the above description databases, two different datasets have been built:(i)
thedataset1 has been generated using the entire FVC2002 DB2-B database (10 users, 8 acquisitions for user);(ii)
thedataset2 has been generated using a consistent subset of the PolyU database (100 users with 5 acquisitions for user of the same finger).


### 4.2. Authentication Performance

Starting from the AFAS described in [14] and used as comparison, three different tests have been conducted:(1)
the AFAS has been extended with the proposed fingerprint image quality evaluation module and tested on thedataset1;(2)
the AFAS has been extended with the proposed fingerprint image quality evaluation module and, moreover, the matching algorithm has been replaced with the advanced technique, based on partial fingerprints, proposed in [12] and tested on thedataset2;(3)
the AFAS has been extended with a preprocessing task, based on the Gabor filter, to enhance fingerprint images and, moreover, the matching algorithm has been replaced with the advanced technique, based on partial fingerprints, proposed in [12] and tested on thedataset2.Table1 illustrates the authentication performance in terms of FAR and FRR indexes for the three performed tests.Table 1
FAR and FRR indexes of the three performed tests.
Test number
FAR
FRR
1.
0%
6.25%
2.
0%
8.00%
3.
0%
9.00%


### 4.3. Execution Time

The following tables (Tables2, 3, and 4) and Figure 15 illustrate the elaboration times, for the three performed tests, required by each single task, with a working frequency of 50 MHz.Table 2
Execution times of test number 1.
Task
Execution time (msec)
Image quality evaluation
3.9
Binarization
2.2
Thinning
39.0
Minutiae extraction
13.7
Matching
3.8
Total
62.6Table 3
Execution times of test number 2.
Task
Execution time (msec)
Image quality evaluation
3.9
Binarization
2.2
Thinning
39.0
Minutiae extraction
13.7
Matching
2.35 × 103
Total
2.4 × 103Table 4
Execution times of test number 3.
Task
Execution time (msec)
Gabor filter
2.4 × 103
Binarization
2.2
Thinning
39.0
Minutiae extraction
13.7
Matching
2.35 × 103
Total
4.8 × 103Figure 15
Elaboration times required by each processing task for the three performed tests.


### 4.4. Hardware Resources

The following tables (Tables5, 6, and 7) depict the required hardware resources, for the three performed tests, used by each single task on the Agility RC2000 development board. Figure 16 illustrates the total used hardware resources for the three performed tests.Table 5
Used resources of test number 1.
Resource type
Image quality evaluation
Binarization
Thinning
Minutiae extraction
Matching
Slices
5.83%
0.14%
0.67%
21.80%
0.34%
Multiplier blocks
4.17%
0.00%
0.00%
19.44%
0.69%
RAM blocks
0.69%
0.69%
0.69%
14.58%
6.25%
IOBs
4.98%
4.98%
0.00%
0.00%
10.57%Table 6
Used resources of test number 2.
Resource type
Image quality evaluation
Binarization
Thinning
Minutiae extraction
Matching
Slices
5.83%
0.14%
0.67%
21.80%
65.97%
Multiplier blocks
4.17%
0.00%
0.00%
19.44%
1.39%
RAM blocks
0.69%
0.69%
0.69%
14.58%
0.69%
IOBs
4.98%
4.98%
0.00%
0.00%
10.57%Table 7
Used resources of test number 3.
Resource type
Gabor filter
Binarization
Thinning
Minutiae extraction
Matching
Slices
11.41%
0.14%
0.67%
21.80%
65.97%
Multiplier blocks
2.78%
0.00%
0.00%
19.44%
1.39%
RAM blocks
1.39%
0.69%
0.69%
14.58%
0.69%
IOBs
4.98%
4.98%
0.00%
0.00%
10.57%Figure 16
Used hardware resources, for the three performed tests.


### 4.5. Discussion and Comparisons

User authentication is one of the most challenging issues for system and network security. A robust authentication mechanism is based on the use of biometric access control methods, processing one or more biometrics (such as a fingerprint). There are many approaches to deal with fingerprint verification. In recent literature publications, few findings have been on design and prototyping of an embedded biometric recognizer. For example, in [30] the authors proposed an implementation of a hardware identification system. However, the fingerprint matching phase was not developed and presented, so that no direct comparison with this work can be addressed. The remaining fingerprint processing tasks had been implemented in a FPGA device with a clock frequency of 27.65 MHz and a processing time of 589.6 ms. Compared with this system, the achieved execution times denote high performance levels. In [11] the authors use local texture features as well as some global factors such as the standard deviation of Gabor features, the foreground area and central position, the number of minutiae, and the existence of singular points. They produce a good analysis about equal error rate (EER) for three databases: FVC2002 DB2A, Fujitsu database, and FVC2002 DB4A. In [18] the authors have developed a software fast fingerprint enhancement algorithm which can adaptively improve the clarity of ridge and valley structures based on the local ridge orientation and ridge frequency. Experimental results show that their enhancement algorithm is capable of improving both the goodness index and the verification performance. The whole execution time of the enhancement algorithm on a Pentium 200MHZ is 2.49 sec, with FAR = 0.01% and FRR = 27% (without enhancement) and FRR = 9% (with enhancement) using the MSU fingerprint database (700 live-scan images; 10 per individual each). In [23, 24] the authors present an image quality assessment software technique for a novel fingerprint multimodal algorithm to provide high accuracy under nonideal conditions. Their study was based on a small number of minutia features. This is likely to be the case with latent fingerprints collected at a crime scene. Specifically, the performance of their fusion algorithm is studied when the number of minutiae is between 5 and 10. Experimental results show that while the performance of existing fusion algorithm decreases if compared to the performance of complete rolled fingerprints, the proposed approach is able to compensate for the limited partial information. The approach shows FRR between 91.35% and 97.98% with FAR = 0.01%, using a comprehensive database with rolled and partial fingerprint images of different quality and arbitrary number of features.


## 4.1. Databases Description

### 4.1.1. FVC2002 DB2-B Database

This free downloadable database has been made available for the second edition of the international fingerprint verification competition [28]. It contains 80 fingerprint images of 296 × 560 pixels, with a resolution of 569 dpi. The images has been acquired from 10 users (8 acquisitions for user of the same finger), via the scanner Biometrika FX2000 [29], with a maximum rotation of about 35 degrees between impressions (Figure 13).Figure 13
Two example images of the FVC2002 DB2-B acquired by Biometrika FX2000 sensor.
(a)
(b)


### 4.1.2. PolyU Database

This free downloadable database has been built at the Hong Kong Polytechnic University [16]. It contains 1480 fingerprint images of 480 × 640 pixels, with a resolution around 1,200 dpi of 148 users (10 acquisitions for user of two fingers, Figure 14). Each image name has been described using three numbers in the following way: first number represents the user, second number represents the finger, and third number represents the different acquisition.Figure 14
Two example images of the Hong Kong Polytechnic University.
(a)
(b)


### 4.1.3. Datasets Description

Starting from the above description databases, two different datasets have been built:(i)
thedataset1 has been generated using the entire FVC2002 DB2-B database (10 users, 8 acquisitions for user);(ii)
thedataset2 has been generated using a consistent subset of the PolyU database (100 users with 5 acquisitions for user of the same finger).


## 4.1.1. FVC2002 DB2-B Database

This free downloadable database has been made available for the second edition of the international fingerprint verification competition [28]. It contains 80 fingerprint images of 296 × 560 pixels, with a resolution of 569 dpi. The images has been acquired from 10 users (8 acquisitions for user of the same finger), via the scanner Biometrika FX2000 [29], with a maximum rotation of about 35 degrees between impressions (Figure 13).Figure 13
Two example images of the FVC2002 DB2-B acquired by Biometrika FX2000 sensor.
(a)
(b)


## 4.1.2. PolyU Database

This free downloadable database has been built at the Hong Kong Polytechnic University [16]. It contains 1480 fingerprint images of 480 × 640 pixels, with a resolution around 1,200 dpi of 148 users (10 acquisitions for user of two fingers, Figure 14). Each image name has been described using three numbers in the following way: first number represents the user, second number represents the finger, and third number represents the different acquisition.Figure 14
Two example images of the Hong Kong Polytechnic University.
(a)
(b)


## 4.1.3. Datasets Description

Starting from the above description databases, two different datasets have been built:(i)
thedataset1 has been generated using the entire FVC2002 DB2-B database (10 users, 8 acquisitions for user);(ii)
thedataset2 has been generated using a consistent subset of the PolyU database (100 users with 5 acquisitions for user of the same finger).


## 4.2. Authentication Performance

Starting from the AFAS described in [14] and used as comparison, three different tests have been conducted:(1)
the AFAS has been extended with the proposed fingerprint image quality evaluation module and tested on thedataset1;(2)
the AFAS has been extended with the proposed fingerprint image quality evaluation module and, moreover, the matching algorithm has been replaced with the advanced technique, based on partial fingerprints, proposed in [12] and tested on thedataset2;(3)
the AFAS has been extended with a preprocessing task, based on the Gabor filter, to enhance fingerprint images and, moreover, the matching algorithm has been replaced with the advanced technique, based on partial fingerprints, proposed in [12] and tested on thedataset2.Table1 illustrates the authentication performance in terms of FAR and FRR indexes for the three performed tests.Table 1
FAR and FRR indexes of the three performed tests.
Test number
FAR
FRR
1.
0%
6.25%
2.
0%
8.00%
3.
0%
9.00%


## 4.3. Execution Time

The following tables (Tables2, 3, and 4) and Figure 15 illustrate the elaboration times, for the three performed tests, required by each single task, with a working frequency of 50 MHz.Table 2
Execution times of test number 1.
Task
Execution time (msec)
Image quality evaluation
3.9
Binarization
2.2
Thinning
39.0
Minutiae extraction
13.7
Matching
3.8
Total
62.6Table 3
Execution times of test number 2.
Task
Execution time (msec)
Image quality evaluation
3.9
Binarization
2.2
Thinning
39.0
Minutiae extraction
13.7
Matching
2.35 × 103
Total
2.4 × 103Table 4
Execution times of test number 3.
Task
Execution time (msec)
Gabor filter
2.4 × 103
Binarization
2.2
Thinning
39.0
Minutiae extraction
13.7
Matching
2.35 × 103
Total
4.8 × 103Figure 15
Elaboration times required by each processing task for the three performed tests.


## 4.4. Hardware Resources

The following tables (Tables5, 6, and 7) depict the required hardware resources, for the three performed tests, used by each single task on the Agility RC2000 development board. Figure 16 illustrates the total used hardware resources for the three performed tests.Table 5
Used resources of test number 1.
Resource type
Image quality evaluation
Binarization
Thinning
Minutiae extraction
Matching
Slices
5.83%
0.14%
0.67%
21.80%
0.34%
Multiplier blocks
4.17%
0.00%
0.00%
19.44%
0.69%
RAM blocks
0.69%
0.69%
0.69%
14.58%
6.25%
IOBs
4.98%
4.98%
0.00%
0.00%
10.57%Table 6
Used resources of test number 2.
Resource type
Image quality evaluation
Binarization
Thinning
Minutiae extraction
Matching
Slices
5.83%
0.14%
0.67%
21.80%
65.97%
Multiplier blocks
4.17%
0.00%
0.00%
19.44%
1.39%
RAM blocks
0.69%
0.69%
0.69%
14.58%
0.69%
IOBs
4.98%
4.98%
0.00%
0.00%
10.57%Table 7
Used resources of test number 3.
Resource type
Gabor filter
Binarization
Thinning
Minutiae extraction
Matching
Slices
11.41%
0.14%
0.67%
21.80%
65.97%
Multiplier blocks
2.78%
0.00%
0.00%
19.44%
1.39%
RAM blocks
1.39%
0.69%
0.69%
14.58%
0.69%
IOBs
4.98%
4.98%
0.00%
0.00%
10.57%Figure 16
Used hardware resources, for the three performed tests.


## 4.5. Discussion and Comparisons

User authentication is one of the most challenging issues for system and network security. A robust authentication mechanism is based on the use of biometric access control methods, processing one or more biometrics (such as a fingerprint). There are many approaches to deal with fingerprint verification. In recent literature publications, few findings have been on design and prototyping of an embedded biometric recognizer. For example, in [30] the authors proposed an implementation of a hardware identification system. However, the fingerprint matching phase was not developed and presented, so that no direct comparison with this work can be addressed. The remaining fingerprint processing tasks had been implemented in a FPGA device with a clock frequency of 27.65 MHz and a processing time of 589.6 ms. Compared with this system, the achieved execution times denote high performance levels. In [11] the authors use local texture features as well as some global factors such as the standard deviation of Gabor features, the foreground area and central position, the number of minutiae, and the existence of singular points. They produce a good analysis about equal error rate (EER) for three databases: FVC2002 DB2A, Fujitsu database, and FVC2002 DB4A. In [18] the authors have developed a software fast fingerprint enhancement algorithm which can adaptively improve the clarity of ridge and valley structures based on the local ridge orientation and ridge frequency. Experimental results show that their enhancement algorithm is capable of improving both the goodness index and the verification performance. The whole execution time of the enhancement algorithm on a Pentium 200MHZ is 2.49 sec, with FAR = 0.01% and FRR = 27% (without enhancement) and FRR = 9% (with enhancement) using the MSU fingerprint database (700 live-scan images; 10 per individual each). In [23, 24] the authors present an image quality assessment software technique for a novel fingerprint multimodal algorithm to provide high accuracy under nonideal conditions. Their study was based on a small number of minutia features. This is likely to be the case with latent fingerprints collected at a crime scene. Specifically, the performance of their fusion algorithm is studied when the number of minutiae is between 5 and 10. Experimental results show that while the performance of existing fusion algorithm decreases if compared to the performance of complete rolled fingerprints, the proposed approach is able to compensate for the limited partial information. The approach shows FRR between 91.35% and 97.98% with FAR = 0.01%, using a comprehensive database with rolled and partial fingerprint images of different quality and arbitrary number of features.


## 5. Conclusion

In this work a novel embedded AFAS improving the performance in terms of both used resources and execution time has been proposed. It is focused on the raw image quality evaluation of the acquired fingerprint, identifying areas of poor quality. It is designed to find a measure to characterize the quality of raw fingerprint images, using only the information obtained in the acquisition step. In addition, an advanced matching technique for user recognition using partial fingerprints has been developed to increase system accuracy. The best achieved FAR and FRR indexes are 0% and 6.25%, respectively. The required elaboration time is 62.6 ms with a working frequency of 50 MHz.The proposed prototype has been implemented on the Agility RC2000 development board, addressing interesting characteristics for security in mobile device applications and enabling its use in commercial, banking, and government scenarios.



---

*Source: 401975-2015-03-24.xml*