Artigo Revisado por pares

Efficient fingerprint matching using GPU

2017; Institution of Engineering and Technology; Volume: 12; Issue: 2 Linguagem: Inglês

10.1049/iet-ipr.2016.1021

ISSN

1751-9667

Autores

Mubeen Ghafoor, Shahzaib Iqbal, Syed Ali Tariq, Imtiaz Ahmad Taj, Noman M. Jafri,

Tópico(s)

Forensic Fingerprint Detection Methods

Resumo

IET Image ProcessingVolume 12, Issue 2 p. 274-284 Research ArticleFree Access Efficient fingerprint matching using GPU Mubeen Ghafoor, Corresponding Author Mubeen Ghafoor mubeen.ghafoor@comsats.edu.pk Department of Computer Science, COMSATS Institute of Information Technology, Islamabad, PakistanSearch for more papers by this authorShahzaib Iqbal, Shahzaib Iqbal Department of Electrical Engineering, Abasyn University, Islamabad, PakistanSearch for more papers by this authorSyed Ali Tariq, Syed Ali Tariq Department of Electrical Engineering, Abasyn University, Islamabad, PakistanSearch for more papers by this authorImtiaz A. Taj, Imtiaz A. Taj Department of Electrical Engineering, Capital University of Science and Technology, Islamabad, PakistanSearch for more papers by this authorNoman M. Jafri, Noman M. Jafri Department of Electrical Engineering, Abasyn University, Islamabad, PakistanSearch for more papers by this author Mubeen Ghafoor, Corresponding Author Mubeen Ghafoor mubeen.ghafoor@comsats.edu.pk Department of Computer Science, COMSATS Institute of Information Technology, Islamabad, PakistanSearch for more papers by this authorShahzaib Iqbal, Shahzaib Iqbal Department of Electrical Engineering, Abasyn University, Islamabad, PakistanSearch for more papers by this authorSyed Ali Tariq, Syed Ali Tariq Department of Electrical Engineering, Abasyn University, Islamabad, PakistanSearch for more papers by this authorImtiaz A. Taj, Imtiaz A. Taj Department of Electrical Engineering, Capital University of Science and Technology, Islamabad, PakistanSearch for more papers by this authorNoman M. Jafri, Noman M. Jafri Department of Electrical Engineering, Abasyn University, Islamabad, PakistanSearch for more papers by this author First published: 01 February 2018 https://doi.org/10.1049/iet-ipr.2016.1021Citations: 4AboutSectionsPDF ToolsRequest permissionExport citationAdd to favoritesTrack citation ShareShare Give accessShare full text accessShare full-text accessPlease review our Terms and Conditions of Use and check box below to share full-text version of article.I have read and accept the Wiley Online Library Terms and Conditions of UseShareable LinkUse the link below to share a full-text version of this article with your friends and colleagues. Learn more.Copy URL Share a linkShare onFacebookTwitterLinkedInRedditWechat Abstract Graphical processing unit (GPU) has proven a beneficial tool in handling computationally intensive algorithms, by introducing massive parallelism in the calculations. In this study, an effective and low-cost fingerprint identification (FI) solution is proposed that can exploit the parallel computational power of GPU proficiently. It is achieved by mapping a generalised minutia neighbour-based novel encoding and matching algorithm on low-cost GPU technology. The proposed solution achieves high accuracy in comparison with two open source matchers and it is shown to be scalable by comparing matching performance on different GPUs. The proposed GPU implementation employs multithreading and loop unrolling, which minimises the use of nested loops and avoids sequential matching of encoded minutia features. After a thorough and careful designing of data structures, memory transfers and computations, a GPU-based fingerprint matching system is developed. It achieves on average 50,196 fingerprint matches per second on a single GPU. As compared to the sequential central processing unit implementation, the proposed system achieves a speed up of around 92 times, while maintaining the accuracy. The proposed system with matcher integrated on GPU can be considered as a good, low-cost, robust and efficient solution for large-scale applications of automated FI systems. 1 Introduction Human authentication has gained a lot of importance worldwide in corporate and public security systems, consumer electronics applications, Internet-based businesses and banking transactions. In this regard, fingerprint-based automated identification systems are considered as most commonly used systems because of their high degree of uniqueness and high acceptability of human fingerprints [1, 2]. A fingerprint comprises of oriented ridge and valley combinations and possesses high degree of distinctiveness because of their certain features, commonly known as minutiae [3]. Minutia points are the various small details that can be derived from local ridge characteristics of a fingerprint [1]. Most common minutia points are ridge endings and ridge bifurcations, as shown in Fig. 1. Fig. 1Open in figure viewerPowerPoint Fingerprint structure Most widely used fingerprint identification (FI) techniques rely on these minutia features because these are very accurate and they support latent fingerprint matching [4, 5]. Although many different minutia-based encoding and matching techniques have been proposed over the years, the basic methodology remains the same, and that is each minutia is encoded and matched based on the relative distances and angles with neighbouring minutiae [6, 7]. Jiang and Yau [8] proposed a rotation and translation invariant encoding and matching technique based on minutia-triplet structure. In that technique, both local and global minutia structures were used. A consolidation stage was applied to validate whether the local matching results held at the global level as well. Jea and Govindaraju [9] employed neural networks to calculate normalised matching score within the overlapping region of candidate and template fingerprints. Ratha et al. [10] proposed fixed-radius-based local encoding technique to overcome the problems of spurious or missing minutiae. Tico and Kuosmanen [11] proposed minutia encoding and matching based on the orientation fields in the close vicinity of individual minutiae. Feng [12] presented a hybrid technique that used fixed-radius local minutiae as well as orientation information for fingerprint matching. Chikkerur et al. [13] proposed local matching based on K-plet structure using dynamic programming followed by a dual-graph traversal (coupled breath first search) algorithm for global matching. Cappelli et al. [14, 15] proposed a fixed-length encoding and matching technique, minutia cylindrical code (MCC), where each minutia was taken as reference and a three-dimensional (3D) code structure was generated based on its neighbouring minutiae in its localised region. Cappelli and Ferrara [16] proposed a novel hybrid fusion approach by combining level-1 (local orientations and frequencies) and level-2 (minutiae) features for fingerprint retrieval system. These minutiae-based matching algorithms are very accurate and reliable. However, the matching algorithm, which is the core of FI, is computationally very intensive, and due to its sequential execution on general purpose computers, the identification time for large-scale database becomes impractical. Fingerprint matching algorithms are ideal for parallel computing devices such as multi-core central processing units (CPUs), clusters, digital signal processor (DSP) kits, field programmable gate array (FPGA) and graphical processing unit (GPU) hardware accelerators. Peralta et al. [17] proposed a two-level parallelised cluster framework that combined process-level and thread-level parallelisms. For large-scale automated FI system (AFIS), cluster-based solutions are expensive, as their cost depends on the number of high-end computers used in the cluster [18]. DSP-based accelerators offer limited parallelism and they may not be adequate for exploiting the maximum parallelism of minutiae-based fingerprint matching algorithms. FPGAs offer massively parallel architecture and researchers have exploited this attribute for fingerprint and iris identification systems [5, 19, 20]. Jiang and Crookes [21] proposed an FPGA-based parallel fingerprint matching process with early jump-out control on Xilinx Virtex-E to speed up the matching process. The main limitation of using FPGA boards is the low data throughput from databank to FPGA board [22], also FPGA boards are expensive and have complex and long design cycle. 1.1 GPU as hardware accelerator for AFIS As compared to FPGA and multi-core computing devices, GPUs are more cost-effective in terms of price/performance ratio and also because of ease in system development and system integration. A GPU is composed of hundreds of cores that can handle thousands of threads simultaneously. The GPU technology has been revolutionised, especially when NVIDIA [23-25] introduced 'compute unified device architecture' (CUDA) in 2006. GPUs have been used efficiently in many general processing computing applications [26-30]. For iris identification systems, researchers used GPUs for fast human iris matching [31, 32]. Broussard et al. [33] claimed 24.65 million iris matches per second. Iris-based matching involves much simpler exclusive OR operations, hence its matching rate is much higher than the exhaustive point pattern-based fingerprint matching. Gutiérrez et al. [34] presented an optimised implementation of MCC-based fingerprint matcher on NVIDIA's Tesla and GeForce GPUs and claimed a speed up of 56.6 times compared with the CPU implementation on a single GPU. The fast parallel-processing power of the GPU along with its high bandwidth capacity provides tremendous acceleration for computation-intensive applications such as large-scale AFIS. 1.2 Objectives and salient features The objective of the proposed work is to provide an efficient, accurate and low-cost AFIS solution for large-scale databases. The proposed study employs optimisation of FI algorithm using low-cost GPU as an alternative to the costlier solutions for such computationally heavy task. The proposed identification algorithm is developed by modifying n-nearest neighbouring minutiae-based existing encoding and matching algorithm. These minutiae are structured and matched in such a way that it is beneficial for parallel processing on low-cost GPU technology. Keeping in mind the GPU architecture (given in Section 3), following are the design objectives considered while devising the proposed GPU algorithm: (i) The proposed algorithm is designed to be inherently parallel unlike sequential algorithms such as Chikkerur's K-plet [13], so that it is capable of efficiently exploiting the parallel computational power of GPU. (ii) The proposed algorithm uses local matching technique to match each minutia in template finger-code with all the minutiae in candidate finger-code to find the similarity score. (iii) The proposed algorithm is robust, efficient and capable of achieving high accuracy in identification. (iv) The proposed GPU implementation minimises memory transfer operations. The candidate finger-code size is kept small; this will not only reduce frequent memory transfers between CPU and GPU, but it will also enable to keep large number of candidate finger-codes on the GPU. (v) The proposed implementation design is simple yet scalable, and it is not specific to a particular GPU. If the GPU hardware is replaced or improved, the algorithm will adapt itself to give high performance. (vi) The proposed GPU implementation performs bulk of comparison operations in parallel by utilising GPU multithreading, where different threads are used to match different minutia-code pairs in parallel. (vii) The computations involved in matching a template and candidate fingerprint are predominantly based on subtractions and then applying thresholds on the encoded features. On CPU, these computations are performed in sequential order using nested loops. In the proposed GPU implementation, nested loops are avoided by using loop-unrolling strategy. (viii) The proposed GPU implementation makes use of multiple streaming processors to achieve high parallelism. The rest of this paper is organised such that the different phases of FI are discussed in Section 2. Section 3 discusses the GPU and NVIDIA CUDA architecture. Section 4 discusses the proposed implementation of fingerprint encoding and matching on GPU. Finally, the results of the proposed implementation are discussed in Section 5. 2 Proposed methodology for FI process Most accurate fingerprint matching techniques depend on minutia features. To reliably extract minutia features, fingerprint images are enhanced prior to feature extraction. The enhancement stage is intended to improve the image quality by performing different operations such as removing distortions, increasing contrast between ridges and valleys and connecting false broken points of ridges [35-37]. Minutia features are then extracted from the skeletonised image after performing fingerprint enhancement and minutiae post-processing [38]. Each minutia point is represented by Min_List (xj, yj, θj)T, (j = 1, 2, …, N), where x and y are the location coordinates of the jth minutia, θ is its orientation with respect to the x-axis and N is the total number of minutia features extracted from a candidate fingerprint image. 2.1 Feature encoding After the extraction of the minutia features from the fingerprint image, the next stage is the feature encoding. At this stage, each minutia point in Min_List is chosen as reference minutia and it is encoded based on its neighbouring minutiae. To encode a fingerprint image, following procedure is used: 1) For each minutia (minutiaj) from minutia list (Min_List) where j is the index of reference minutia: (a) For each p, where p = 1, 2, …, n and n represents the number of nearest minutiae used to encode each minutia point: Select index q of nearest neighbouring minutia based on the Euclidean distance between minutiaj and all other minutiae in Min_List, where q ≠ j. A new subset of Min_List is formed by selecting minutiaq from Min_List and saving into n_nearestj such that (1) (b) An encoded minutia list (m'j) is created based on the relative distance and angle (rp, θp, φp) features between minutiaj and n_nearestj computed in step 1.a. Features rp, θp, φp for each minutia (m'j) are computed as below: (2) (3) (4)where (5) (6)where p = 1, 2, …, n. The encoded minutia (m'j) is a combination of rp, θp, φp features of n-nearest minutiae, which does not include the reference minutia itself, as given in step 1.b (7) The encoded minutia m'j can algorithmically be represented as (8) 2) The final encoded list E for a given candidate fingerprint is a combination of all individual encoded minutiae m'j, which have been encoded based on n-nearest neighbours as given by (7). This encoded list can be represented as (9)where N is the number of minutiae in fingerprint. The encoded list E that is generated for the candidate fingerprint is saved in an encoded database C. To encode all candidate images in a database, encoding steps 1 and 2 are repeated and the encoded list E is generated for every image. Each encoded list E is then added to the candidate database C. 2.2 Fingerprint matching and identification In FI, a new fingerprint is acquired from a sensor and its template finger-code T is generated as it was generated for candidate fingerprints using (1)–(9) in Section 2.1. To find identity of template fingerprint, its template finger-code T is matched with all the candidate finger-codes available in database C. The identity of candidate finger-code that gives the maximum similarity with template finger-code is declared to be the identity of template fingerprint. To find the similarity between one template finger-code T with one candidate finger-code Cc, the minutia pairs are matched by employing an exhaustive point pattern search algorithm, where every minutia-code mi from template finger-code is matched with all minutia-codes m'j in candidate finger-code. Consider the example shown in Fig. 2 where a template fingerprint with M minutiae is matched with candidate fingerprint with N minutiae. Fig. 2Open in figure viewerPowerPoint Minutiae pair matching The exhaustive search algorithm is required because the order of occurrence of minutiae is not certain especially in case of any missing or spurious neighbouring minutiae. The similarity between candidate finger-code consisting of N minutiae and template finger-code consisting of M minutiae is evaluated by computing the ratio of total number of matched minutia pairs with maximum possible minutia pair matches. Total number of matched minutia pairs are calculated by computing the sum of Score_matrix that contains the matching result for every minutia pair, as shown in (10)–(12) (10) (11) (12)where i = 1, 2, …, M and j = 1, 2, …, N. To match one minutia pair (mi, m'j) from template minutiae mi and candidate minutiae m'j, the corresponding encoded features (rp, θp, φp) and (r'p, θ'p, φ'p), where p = 1, 2, …, n, associated with mi and m'j are compared and their result is computed as acci,j. Since encoded minutia encoding consists of n-neighbours, therefore matching one minutia pair (mi, m'j) requires n2 feature comparisons. The encoded features (rp, θp, φp) and (r'p, θ'p, φ'p) are compared by calculating Diffi,j(k) that computes the differences between features of mi and m'j. The corresponding minutia pair (mi, m'j) is said to be matched if more than neighbor_threshold features out of n2 features are matched as shown in (13) and (14) below: (13) (14)where Γr(i, j), Γθ(i, j) and Γφ(i, j) show whether the absolute difference between the encoded features (rp, θp, φp) and (r'p, θ'p, φ'p) that correspond to minutia pairs mi and m'j are within the given threshold or not, as given by (15)–(17) below: (15) (16) (17)where thr, thθ and thφ are the different thresholds for maximum allowable differences between the encoded features (rp, θp, φp) and (r'p, θ'p, φ'p), and ∇ri,j(k), ∇θi,j(k) and ∇φi,j(k) represent the absolute differences between a pair of encoded minutia features from template finger-code T and candidate finger-code Cc, as given by (18)–(20) below: (18) (19) (20)The overall computational complexity of matching a template fingerprint T with candidate fingerprint Cc based on minutia neighbour point pattern matching algorithm becomes M × N × n2. In case of large-scale AFIS, the computational complexity of AFIS becomes unfeasible for CPU-based systems, where all the computations are performed sequentially. In the proposed paper, a GPU-based parallel architecture is proposed for fingerprint encoding and matching that parallelises fingerprint matching and brings down the computational time substantially. Following section gives a brief overview of the GPU architecture and introduces NVIDIA CUDA programming architecture. 3 GPU and NVIDIA CUDA architecture To transform or map CPU algorithm to GPU, it is important to have a good understanding of GPU architecture so that the computational power of GPU can be optimally utilised. NVIDIA CUDA is the hardware/software architecture where hardware architecture is presented as a group of multithreaded streaming multiprocessors (SMs) as shown in Fig. 3. Fig. 3Open in figure viewerPowerPoint CUDA architecture The software of NVIDIA CUDA is an extension of the C programming language (CUDA C). Each SM has a collection of G grids where each grid executes G different CUDA C functions, which are called kernels. Each grid has a collection of blocks and subsequently each block can have a maximum of 1024 threads. Each thread executes the same kernel code in parallel. Blocks and threads hierarchy is shown in Fig. 4. Fig. 4Open in figure viewerPowerPoint GPU threads and blocks hierarchy At a lower level, threads are grouped into sets of 32 threads called warps that run in parallel and switching between them is very fast. Various types of memory exist in GPU architecture as shown in Figs. 3 and 4, which can be accessed by the CUDA threads [25]. The largest memory of GPU is known as global memory, which is used for communication between GPU and CPU. Each thread has access to its own set of fast access registers and small private local memory. Threads of the same block have access to shared memory which is faster than global memory and it is also used for communication between the threads. GPUs have highly parallel architecture for parallel computations; however, GPU memory allocations and data transfers remain a key bottleneck for GPU tasks [25]. 4 Proposed methodology for encoding and matching on GPU Keeping in mind the guidelines discussed in Section 1.2, following section discusses the steps involved in the proposed implementation of algorithm on GPU. 4.1 Encoding for the proposed GPU implementation Design objective discussed in guideline 6 in Section 1.2 is achieved by employing GPU multithreading to match minutia-code pairs in parallel. GPU multithreading is used in such a way that M × N threads are executed in parallel, where each thread is responsible for comparing one minutia pair out of the total possible M × N minutia pair combinations from template and candidate finger-codes. For each minutia-code pair match, all feature vectors of template minutia-code are matched with all feature vectors of candidate minutia-code. Feature vector for a minutia point is constructed based on its nearest n-neighbouring minutiae and f features for each minutia. During minutia-code pair matching, n2 comparisons are required where n feature vectors of template finger-code are matched with n feature vectors of candidate finger-code, which requires a nested loop. Design objective discussed in guideline 7 in Section 1.2 is achieved by using loop-unrolling strategy. Using this strategy, template and candidate finger-codes are restructured such that point-to-point comparisons between minutia-codes can be performed without the need of nested loops. In the proposed methodology, the size for each minutia-code becomes n2 × f, where value of f is three. To restructure the candidate finger-code, encoded list E is traversed sequentially and the minutia encodings m'j represented by rp, θp, φp features (where p = 1, 2, 3, …, n) for n-nearest minutiae is modified as shown in Fig. 5a. The modified minutia encodings for all minutiae in candidate finger-code (m'code) can algorithmically be represented as (21) (22)where j = 1, 2, …, N. Fig. 5Open in figure viewerPowerPoint Restructured minutiae (a) Candidate minutia structure, (b) Template minutiae structure To restructure the template finger-code, encoded list E is again traversed sequentially and the minutia encodings mi represented by rp, θp, φp features for n-nearest minutiae are modified as shown in Fig. 5b. The modified minutia encodings for all minutiae in template finger-code (mcode) can algorithmically be represented as (23) (24)where i = 1, 2, …, M. The proposed methodology for fingerprint matching on GPU is discussed in the next section. For this purpose, the template finger-code is copied to GPU memory and then matched with all the candidate finger-codes available in GPU. 4.2 Implementation of matching algorithm on GPU The proposed matching algorithm on GPU is divided into two steps which are executed in different kernels. First kernel 'minutiae pair matching kernel' is responsible for comparing minutia pairs and computing their local similarity scores, which are stored in Score_matrix at index corresponding to each minutia pair. Second kernel 'consolidated score calculation kernel' uses the local similarities from the Score_matrix and calculates a consolidated similarity score for template and candidate finger-codes. Explanation of both kernels is given next. 4.2.1 Kernel 1 'minutiae pair matching kernel' For a given template finger-code with M minutiae to be matched with candidate finger-code with N minutiae, 'minutiae pair matching kernel' is launched with M × N threads. These M × N threads are divided into t threads per block. The total number of blocks B required to execute Kernel 1 can be given by computing the ceiling value of M × N threads divided by t threads per block, as given by (25) (25)The comparisons for each thread are primarily based on operations such as subtractions and then applying thresholds for the given minutia-code pair. The block diagram for 'minutiae pair matching kernel' is shown in Fig. 6 and the pseudo-code for steps executed in this kernel is shown in Fig. 7a. In the pseudo-code, variables u and v represent the minutia indexes of restructured or loop-unrolled template and candidate finger-codes [given by (21) and (23)] that are compared in each thread (tid). Indexes u and v are computed using (26) and (27) (26) (27)where tid = 1, 2, …, (M × N). Fig. 6Open in figure viewerPowerPoint 'Minutiae pair matching kernel' Fig. 7Open in figure viewerPowerPoint GPU algorithm pseudo-codes (a) 'Minutiae pair matching kernel', (b) 'Consolidated score calculation kernel' The comparisons in each thread are carried out such that each thread runs in parallel and matches a minutia-code pair from template and candidate finger-codes. The matching result is stored in the Score_matrix as local similarity score of each minutia-code pair. This Score_matrix is used as input for next kernel 'consolidated score calculation kernel'. Minutia-code pair comparisons are carried out using (28)–(30) below, which are modified versions of (18)–(20) in accordance to restructured encoded lists for GPU, which are given by (21) and (23): (28) (29) (30)where u and v are given by (26) and (27), and k = 1, 2, …, n2. 4.2.2 Kernel 2 'consolidated score calculation kernel' Consolidated matching score of template and candidate finger-codes is calculated by computing the sum of the Score_matrix that is created by 'minutiae pair matching kernel'. 'Consolidated score calculation kernel' is launched with τ threads, where τ = minimum(M, N) threads per block, and one block per grid. Score_matrix is 1D and it could contain minutiae that get matched against multiple minutiae. To calculate sum of unique minutia pairs matched, 1D Score_matrix is broken into minimum of (M, N) rows and maximum of (M, N) columns. Then, multiple minutia pairs matched in each row are only counted once. Pseudo-code for 'consolidated score calculation kernel' is shown in Fig. 7b. Score_matrix is first traversed row wise, where each row is processed in a separate thread id (tid) to check if there is a match at any index in that row. If a minutia pair match is found, then one is stored in Row_match at index indicated by thread id (tid). After all rows of Score_matrix are processed in each thread and Row_match is filled, then sum of Row_match is calculated in the same kernel. This sum is then used to calculate similarity score of template and candidate finger-codes. Section 5 presents the results and performance of the proposed fingerprint matching algorithm on both CPU and GPU. 5 Results and discussion 5.1 Fingerprint matching results on CPU To carry out comparisons, fingerprint matching results are computed on publicly available databases FVC2002 DB1-A and DB2-A [39]. The total number of subjects in each database is hundred (100) and each subject has eight (8) fingerprint samples. For performance evaluation, the FVC2002 [39] testing protocol has been adopted, where equal error rate (EER) performance indicator is used [1]. For EER calculation, false non-matching rate (FNMR) and false matching rate (FMR) are computed. FNMR or genuine matching is calculated by matching each fingerprint sample of a subject with the remaining samples of the same subject. FMR or imposter matching is calculated by matching first fingerprint sample of each subject with the first fingerprint sample of remaining subjects. EER represents the system's performance independent of threshold selection and is given by either FMR or FNMR, at a threshold where both FMR and FNMR are equal [1]. The enhancement algorithm used in performance evaluation is based on Wang et al.'s [36] log-Gabor-based enhancement technique. The enhanced images are then binarised followed by thinning process and extraction of minutia points [38]. To compare the performance and accuracy of the proposed fingerprint matching algorithm, comparisons are made with open source K-plet [13] and Bozorth3 [40] matching algorithms. K-plet matching algorithm was proposed by Chikkerur et al. [13] and its C++ source code is available at: 'http://sites.google.com/site/sharatchikkerur/code'. The National Institute of Standards and Technology (NIST) Bozorth3 [40] matching algorithm is available at: https://www.nist.gov/services-resources/software/nist-biometric-image-software-nbis. The EERs of Chikkerur et al.'s [13] implementation on DB1-A and DB2-A are 1.64 and 2.08% respectively, and its performance in terms of matching speed comes out to be 1.25 fingerprint matches/s. The EERs of Bozorth3 [40] matcher on DB1-A and DB2-A come out to be 2.47 and 3.63%, respectively, and it achieves an average matching speed of 274 and 270 matches/s. The average times of the proposed fingerprint matching algorithm on Core I-3 computer comes out to be 984 and 962 fingerprint matches/s and achieves minimum EERs of 1.56 and 1.73% on DB1-A and DB2-A, respectively. Table 1 gives the comparison of EER and matching speeds of these three algorithms. Table 1. EER and matching speed comparison of the proposed algorithm with K-plet and Bozorth3 matchers Algorithm Number of matches DB1-A DB2-A EER, % Time, s Matching speed, matches/s EER, % Time, s Matching speed, matches/s Chikkerur et al. [13] 7750 1.64 6195 1.25 2.08 6198

Referência(s)
Altmetric
PlumX