METHOD AND DEVICE FOR IDENTIFYING A PERSON FROM BIOMETRIC DATA

DE602021031078T2Active Publication Date: 2025-05-21IMPRIMERIE NAT
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
DE602021031078
Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-02-06
Filing Date
2021-02-03
Publication Date
2025-05-21
Estimated Expiration
2041-02-03

AI Technical Summary

Technical Problem

Existing biometric identification methods, such as the MCC indexing method, face challenges with information loss and increased error rates due to index loss and the creation of large index tables, making them unsuitable for large-scale identification in a timely manner, especially when dealing with databases of millions of individuals.

Method used

A method that generates synthetic indexes with class centers and intervals, using a hashing technique to minimize Hamming distance, allowing for faster and more accurate identification by creating a reduced and efficient indexing table that covers the entire space of biometric data, thereby reducing computation time and error.

Benefits of technology

This approach optimizes the identification process by minimizing information loss and reducing the size of the indexing table, leading to faster and more accurate identification of individuals in large databases, while maintaining high precision and reducing the computational burden.

✦ Generated by Eureka AI based on patent content.
Patent Text Reader

Abstract

Method for identifying a person from information contained in a large database, comprising at least the following steps: - for each biometric datum, calculating a binary template linked to each characteristic parameter of a biometric datum (402), - using a hashing method in order to obtain multiple indexes for each binary template, (403), - for each index obtained for a biometric datum, inserting an identifier corresponding to the biometric datum minimising the Hamming distance between the index in question and synthetic indexes corresponding to a set of intervals about a class centre (401) demarcating the class in order to obtain pairs {biometric datum identifier, person identifier} (404), - capturing at least one biometric datum specific to the person by means of an appropriate sensor (405), - searching (408) in the table for the closest biometric datum or data and issuing a result identifying or rejecting the identification of the person (406).
Need to check novelty before this filing date? Find Prior Art

Description

METHOD AND DEVICE FOR IDENTIFYING AN INDIVIDUAL FROM BIOMETRIC DATA

[0001] The invention relates to a method and a device for identifying an individual from biometric data. The biometric data can be fingerprints, a face, or the iris.

[0002] Identifying an individual is usually done using data stored in a database, which becomes very large when using fingerprints; the size of the database (order of magnitude of a country, number of individuals per country) can be on the order of 10 7 . The exhaustive comparison of the fingerprints of the individual sought with the N sets of fingerprints in the database is therefore very computationally expensive.

[0003] Various solutions exist in the prior art for classifying or indexing fingerprints, in order to be able to select a subset of the database containing the fingerprints most similar to those of the individual sought and reduce the volume of data to be used for comparison.

[0004] One indexing method is the technique based on 3D data structures (called cylinders), constructed from minute distances and angles, better known by the English abbreviation "MCC" for Minutia Cylinder-Code. This method consists of representing each minutia of the footprint by considering its local neighborhood. The local neighborhood of a minutia represents the behavior of that central minutia relative to its nearest neighbors. This local representation of the minutia's neighborhood is done in binary format using only "0"s and "1"s. The MCC indexing method therefore uses a binary representation of templates by considering each minutia of the footprint as a binary sequence. An MCC template T is a collection of |T| binary minutiae mi of length n. MCC indexing consists of constructing indexes on each minutia m tfrom the reference template received during individual enrollment. For individual identification, the method extracts all these minutiae in binary format. Then, for each of these minutiae, indexes are calculated using hash functions, and the various collisions with individuals already enrolled in the database are counted. When implementing this method, the loss of an index has a significant impact, as it corresponds to a loss of information and a possible increase in the rate error occurs during identification. Furthermore, this method requires the creation of a very large index table. Therefore, such a method is not really suitable for addressing large-scale identification problems within a limited timeframe.

[0005] The document by J. Falade et al, entitled “Comparative Study of Fingerprint Database Indexing Methods”, 2019, International Conference on Cyberworlds, IEEE, XP 033644947, concerns a comparative study of different indexing methods known from the prior art.

[0006] The technical teaching material for patent FR 2951 842 describes a method for improving the retrieval of document identifiers in a database. The user is identified by an identifier U which will be associated in a database with a captured biometric data point.

[0007] US patent application 2006 / 104484 discloses the search for “template” within a database.

[0008] One of the objectives of the present invention is to provide a method for identifying an individual using biometric data that corrects, in particular, the potential loss of information on enrollment and template identification in order to optimize the chances of identifying an individual. Furthermore, this method, due to the creation of class centers and synthetic indexes, allows for faster searching in large databases. These databases are on the order of a country's scale, for example.10 7 individuals.

[0009] In the rest of the description, the term "representative" means that the synthetic indexes created are sufficient in number to cover the space of all the indexes needed to carry out the storage of a biometric database, for example fingerprints.

[0010] The term "discriminant" means that the synthetic indices do not overlap, are unique, and are sufficiently distant from each other.

[0011] The term "template" refers to the measurements that are stored when recording the morphological (fingerprint, hand shape, iris, ...), biological or behavioral characteristics of the person concerned.

[0012] By extension, the expression "biometric data" will also be used to refer to a person's behavioral characteristics.

[0013] The invention relates to a method for identifying an individual from information contained in a database, characterized in that it comprises at least the following steps: - Generate or use a table containing synthetic indexes corresponding to a set of intervals around a class center, - Enroll multiple biometric data by performing the following steps: - For each biometric data point to be enrolled, calculate a binary template linked to each characteristic parameter of that biometric data point. - Use a hashing method to obtain multiple indexes for each binary template, - For each index obtained for a biometric data point, insert an identifier corresponding to the biometric data point that minimizes the Hamming distance between the index considered and the synthetic indices bounding a cell, in order to obtain a table containing pairs [biometric data identifier, individual identifier] - Capture at least one biometric data specific to the individual using a suitable sensor, - Search in the table (containing the synthetic indexes) for the closest biometric data, compare the captured biometric data to the biometric data in the enrollment database and generate an identification result in case of a match between the said compared data or non-identification of the individual and process the result obtained.

[0014] According to one variant, fingerprints are used to identify an individual and the following steps are carried out: - Enroll multiple fingerprints by following these steps: - For each fingerprint, calculate a binary template linked to each minutiae of a fingerprint using a cylindrical minutiae code (CMC) method. - Use a hashing method to obtain multiple indexes for each binary template, - For each index obtained for a fingerprint, insert an identifier corresponding to the fingerprint that minimizes the Hamming distance between the index considered and the synthetic indices bounding said cell, in order to obtain a table containing pairs {minutiae identifier, individual identifier}, - To capture at least one fingerprint unique to the individual using a suitable sensor, and to transform said fingerprint into a binary digital format, - Search the synthetic index table for the closest fingerprint(s) and identify the individual or reject the identification by comparing the generated binary code to the minutiae stored in the index table.

[0015] To generate a table containing synthetic indexes, the process can perform the following steps: Let h be a hash function and the parameters conditionArrêtl, conditionArrêtl, t, e, MaxDH, min, ST, SI, With conditionArrêtl and conditionArrêtl two "timers" of predefined values ​​chosen according to a compromise between computation time and result accuracy, in fingerprinting, t, the probability of generating a bit at T on a synthetic index using a Bernoulli distribution, e, the distance between two neighboring indices of the same class center, with ee [3, 7], MaxDH: the maximum of the Hamming distance, min: a rejection parameter or minimum rejection threshold on the number of T, minimum number of bits at I' to validate a synthetic index, ST: all the classroom centers, SI: the set of synthetic output indices, h the size of the hash function, Initialize Step 1 - Create target indexes at IC centers, from distant classes to cover the index space, ! As long as the Stop condition holds, then: Create an index i by generating h bits with a Bernoulli distribution(T), If 3j G ST / dH(i,j) < MaxDH\minimumDel(i) < min then reject the index, where dH(i,j) is the Hammnig distance between index l and index j, the total number of bits diverging between two binary vectors i, Otherwise, validate index i as a class center {index i valid class center} and add it to the set of class centers ST <- ST + { / } End of loop If End of step 1 Step 2 - Create nearby, non-overlapping indices around each class center index (IC): Vj G ST isolate each center i of ST to construct indices 57} = {j} While \conditionArrèt2 execute the following loop: Create an index i by generating h bits with a Bernoulli(T) distribution Alternatively, consider index i as a valid synthetic index {valid final synthetic index i} Update all indices corresponding to intervals around a class center 57} <- 57} + {i}, 57} = set of intervals around a center, End of loop. End of while loop. End of step 2. Generate an SI set of synthetic indexes that includes class centers and intervals around those class centers. Vj,SI <- SI + 57}.

[0016] The enrollment phase of an individual in a database uses, for example, the indexes created in the synthetic index table and includes the following steps: For each fingerprint: - A calculation of the binary templates associated with each minutiae using the MCC method, - Obtaining multiple indices for each binary template using a hash function, - Inserting the fingerprint identifier into multiple cells of a table: for each index obtained for a fingerprint, the fingerprint identifier that minimizes the Hamming distance between the index in question and the synthetic indices bounding the cell is inserted into a cell. - At the end of this step, the table is completed with the identifiers of the real fingerprints of individuals which constitute a database.

[0017] The process may also include the following steps: Let T be the template, F = a set of hash functions, l the number of hash functions, SI the database of synthetic indexes previously created during the initialization phase, SI ¹ 0 initialization of the set of synthetic indices, For each minute half of T, For each hash function f hk from F, do b = fhk( m i) = mln^dH b.SI)} dH the Hamming distance between b and SI b2= min2{dH(b,SI)} Enroll me t on b and b2 of the function f hk Finpour Finpour and b2 are the lower and upper bounds of the interval that frames the index b calculated for each minutia of the template to be enrolled.

[0018] Identifying an individual's fingerprint involves, for example, the following steps:

[0019] Let T = desired template, F = {f hl , ... .f M} ; IF the set of synthetic indices established previously, BD = {T lt ...} all the controlled templates, LC = {( T k ,s k )} the list of probable candidates with s k the accumulation score of each individual, SI ≠ 0, LC ≠ 0 Initialize a score counter S, For each minute half of T, For each hash function f hk of F, Initialize a collision counter A, b = fhk( m i) b = min1{dH(b,SI ' )} b2= min2{dH(b,SI)} The functions ml^ and mln2 calculate respectively the first and second minimum indices in the sense of the Hamming distance dH between an input index and a collection of indices, For each template t found on the indexes and b2 For each minutiae j found in collision on Z^, b2, read the collision by counting each line(y, t) of b lt b2, then adding it to collision counter A, Count the colliding templates A[t,j] + + / / EndFor EndFor EndFor Update the score table for template i §[t] = S [t] + Max j {A[t,j ]} EndFor Create the list of LC candidates by arranging S in descending order and use the candidate with the highest score value for the identification step.

[0020] The hash function is, for example, a similarity-sensitive hash function better known by the Anglo-Saxon abbreviation LSH (Locality Sensitive Hashing).

[0021] The process may also include an additional step of emitting a signal to open a gate following the identification of an individual.

[0022] The invention also relates to an individual identification system comprising a device for acquiring biometric data of said individual, connected to a data processing device comprising a database, a processor configured to execute the steps of the process according to the invention, a device for processing the identification result, said database comprising a table of synthetic indexes corresponding to a set of intervals around a class center.

[0023] The identification result processing device is a display device or a device that generates a control signal to open a means of access to an area.

[0024] The acquisition device is, for example, a fingerprint reader and the biometric data is a fingerprint.

[0025] Other features, details and advantages of the invention will become clearer upon reading the description made with reference to the accompanying drawings, which are given by way of non-limiting example and which represent, respectively:

[0026] Figure 1 is an illustration of an identification system using the method according to the invention,

[0027] Figure 2 is a schematic diagram illustrating the identification of an individual.

[0028] Figure 3 is a representation of the class midpoint indexes and synthetic indexes generated by the synthetic index generator; the indexes are used during the enrollment and identification of an individual.

[0029] Figure 4 illustrates the steps involved in identifying an individual.

[0030] Figure 5 illustrates the steps for constructing a binary template for a footprint,

[0031] Figure 6 is a comparison between the process of creating indexes for an impression according to the prior art method and the use of synthetic indexes created for indexing impressions implementing the method according to the invention.

[0032] The method according to the invention uses templates represented in binary form and relies in particular on the implementation of the following steps: The first phase involves generating a subset of representative and discriminating indexes, which leads to the creation of a synthetic index table (this is the system initialization). The second phase consists of enrolling a fingerprint database using the table created in the initialization phase. Finally, the third phase is the identification of a fingerprint in the enrolled fingerprint database. These three phases are detailed below.

[0033] Figure 1 illustrates an example of an identification system that can implement the method according to the invention. Such a system comprises, for example, a biometric data acquisition device 1, for example a fingerprint reader connected to a data processing device 2 comprising a database 3 in which the biometric data is stored, a processor 4 for executing the steps of the method according to the invention, and a display device 5 for the identification result. The database also includes the table generated after enrollment of a fingerprint database.

[0034] A first application of the method according to the invention consists, for example, in verifying the uniqueness of an identity within a population, that is to say, ensuring that a set of biometric data is linked to only one set of civil status data within a database. To this end, biometric data, for example fingerprints using a biometric sensor, and an individual's civil status data using a suitable acquisition device are acquired during an enrollment phase. This data is then transmitted to a biometric identification system, which searches the biometric data in a database for fingerprints that correspond to the new identity. Acquired fingerprints. If the fingerprints acquired during the process match fingerprints contained in this database, the next step will be to verify whether the "civil identity" recorded with these fingerprints corresponds to the identity of the person for whom the system has just acquired these fingerprints. To do this, the system will include a module configured to perform this comparison between civil identity data and issue an alert signal, for example, by displaying information indicating a mismatch between the civil data already present in the database and the newly recorded civil data.

[0035] The result of the comparison performed at processor 4 can generate a command signal to open a gate 6, granting access to a protected area, when the person identification result is positive. The gate will receive an opening signal generated by the processor if the individual's identification is validated.

[0036] The biometric data acquisition sensor can also be an iris scanner, when the data processed consists of an individual's iris characteristics. A camera configured to extract facial biometric data can also be used, or even a voice sensor if the data used to identify the individual consists of vocal parameters or cepstral vectors.

[0037] Figure 2 illustrates the principle of identifying an individual using specific indexes generated during the initialization phase of the process according to the invention. This initialization phase will be performed before the first enrollment.

[0038] When it is necessary to identify an individual, an identification request Rq is issued. The biometric data acquired by the fingerprint reader is transmitted, 21, to the processor 4 which will compare it using the database 3 of individuals already enrolled and known by the system.

[0039] The enrollment phase consists of performing interval enrollment for the template indices. This interval enrollment uses the synthetic indices generated previously, employing the synthetic index generation algorithm from the initialization phase. During enrollment, the process uses all the generated synthetic indices and then calculates the synthetic index intervals for each minutiae of the template in order to enroll them at the nearest interval(s).

[0040] The first phase of initializing the process according to the invention comprises the steps detailed below.

[0041] The first step involves constructing widely spaced indices. These indices constitute class centers represented by squares IC, (ICi,....ICg) in Figure 3, covering the space of possible indices. The second step involves constructing, around each class center, sufficiently close intervals of indices, while avoiding overlap, represented by circles 31 in Figure 3. The values ​​indicated in the circles are, for example: (1,1), (1,2), ..., (9,4).

[0042] The first phase of the process comprises the following steps: Let h be a hash function and the parameters conditionArrêtl, conditionArrêtl, t, e, MaxDH, min, ST, SI, With `conditionArrêtl` and `conditionArrêtl`, two timers chosen to stop the loops searching for synthetic indexes to be added, these timers have predefined values ​​chosen according to the trade-off between computation time and accuracy of the result in the fingerprint search. `t` is the probability of generating a bit at T on a synthetic index using a Bernoulli distribution. `e` is the distance between two neighboring indexes with the same class center, with `ee` [3, 7]. `MaxDH` is the maximum Hamming distance. `min` is a rejection parameter or minimum rejection threshold on the number of T's, and the minimum number of bits at `I`' to validate a synthetic index. ST The set of classroom centers, If the set of synthetic output indices obtained by the process, h is the size of the hash function (the number of bits fixed and selected for hashing by each function), Initialize Step 1 - Create target indexes (class centers, ICs) sufficiently far apart to cover the index space, leading to the creation of a representative set. ! As long as the Stop condition holds, then: Create an index i by generating h bits with a Bernoulli distribution(T), If 3j G ST / dH(i,j) < MaxDH\nombreMinimumDel(i ) < min then reject the index, where dH(i,j) is the Hammnig distance between index l and index j, i.e., the total number of bits diverging between two binary vectors i, and Otherwise, validate index i as a class center {index i valid class center} and add it to the set of class centers ST <- ST + ( End of loop If End of step 1.

[0043] Indexes, in general, are binary vectors made up of "0"s and "1"s. An index containing too many zeros cannot discriminate between elements. For example, to obtain a discriminating index, one would choose an index containing at least five "1"s. - Create relatively close, non-overlapping indexes around each class center index (IC): Vj G ST isolate each center i of ST to construct indices 57} = {j} While \conditionArrèt2 executes the following loop: Create an index i by generating h bits with a Bernoulli(T) distribution

[0044] if 3j' G 57} / dH(i,j') <£ [e, 2e]\nombreMinimumDel(i) < min then reject the index i Alternatively, consider index i as a valid synthetic index {valid final synthetic index i} Update all indices corresponding to intervals around a class center 57} <- 57} + { i}, 57} = set of intervals around a center, End of the loop End of while End of step 2 Generate an SI set of synthetic indexes that includes class centers and intervals around those class centers. Vj,SI <- SI + 57}.

[0045] At the end of the initialization phase, we have a set of synthetic indices.

[0046] Figure 3 is a diagram representing the distribution of synthetic indices created by the execution of the steps in the initialization phase. The target indices, the class centers, are created by the execution of step 1 and indicated by their number, IC-i,..., ICg in this example. On the global search space, a large distance between these class centers translates into a large Hamming distance, MaxDH. Synthetic indices are characterized by a pair (a, b), where a indicates the originating class center and b its unique number within that class. Each synthetic index is unique; it delimits the extent of its class center and avoids the overlap maintained by the minimum Hamming distance, min, in step 2. The synthetic index constitutes an interval boundary.

[0047] The function nombreMinimumDel(i) allows counting the number of Ί' contained in a created index and uses the variable min as the minimum rejection threshold on the number of Ί'.

[0048] Figure 4 illustrates the steps enabling the exploitation of synthetic indexes to carry out the enrollment and then the identification of an individual using the process of the invention.

[0049] The second phase of the process is an enrollment phase of an individual 407. It is carried out using the synthetic indices 401 generated during the initialization phase.

[0050] The 407 enrollment phase will include the following for each fingerprint: - A calculation of the binary templates linked to each minutiae using the MCC method, 402, - Obtaining multiple indices for each binary template using multiple hash functions, for example the LSH method, 403, For each minutiae in the template, we generate a few indexes using a hashing technique, then we calculate the synthetic indexes closest to these indexes using Hamming distance (referencing the index table from the 401 initialization). These synthetic indexes are those created during initialization and represent the interval boundaries used for this enrollment phase. For each minutiae, after calculating the synthetic interval boundaries, we enroll these minutiae onto these boundaries. That is, for each index of each minutiae, we write the minutiae number and the individual's identifier (the identifier is either their name or their recorded registration number) onto the corresponding boundary. This creates an index table representing the enrollment of individuals in the database. Each row of the index table contains pairs (m) where m tThis indicates the minutiae number of the template for the individual with identifier j that we are trying to enroll. It should be noted that each index k of the index table was previously created synthetically and is used here as a boundary for enrolling each of the individual minutiae. - At the end of this step, the index table is completed with the identifiers of the real fingerprints of individuals that make up the database, 404.

[0051] To enroll an individual, we assume that the template T is in binary format, with each minutiae of the individual's fingerprint having a length n that can exceed 1500 bits. We also assume that the initialization phase has already been executed at least once to initialize the system. The process will calculate, for each minutiae of the fingerprint, the two closest synthetic indexes, in terms of Hamming distance, relative to the synthetic indexes already generated (during the initialization phase). The process will enroll the minutiae based on these two closest synthetic indexes; this is called "interval enrollment."

[0052] The steps implemented for this enrollment are as follows: Let T be the template, F = {f hl , ....f M} a set of hash functions, l the number of hash functions, SI the synthetic index database previously created during the initialization phase, SI ¹ 0 initialization of the set of synthetic indices, For each minute half of T, For each hash function f hk from F, do b = fhk( m i) = mln^dH b.SI)} dH the Hamming distance between b and SI b2= min2{dH(b,SI)} Enroll mi on b and b2 of the function f hk by writing {m i T) on the new lines of the index table at numbers b and b2 Finpour Finpour ; b and b2 are the lower and upper bounds of the interval that frames the index b calculated for each minutia of the template to be enrolled.

[0053] The third phase corresponds to a fingerprint identification phase 408. We will search in the database of fingerprints enrolled during the enrollment phase 404 for the fingerprints closest to the new fingerprint acquired 405 for identification.

[0054] To identify a binary template (a set of minutiae) for an individual, the process searches for the two closest synthetic indices for each index of each minutia. Using the two synthetic indices representing the found boundaries, the process consults each row of the index table and reads, counting the minutiae and the corresponding previously enrolled template identifiers for each row. The process then increments a scoring table corresponding to the similarity score of each template found at the synthetic reading boundaries.

[0055] The first part is an extraction step corresponding to a capture of biometric data 405, then a binary template calculation 402. The second part will read and count a set of collisions for templates that belong to the same synthetic indexes for each of the hash functions by exploiting the result of the hash function 403, the search in the database of enrolled fingerprints 406 and in the table of synthetic indexes 404.

[0056] The identification process consists of two steps: extracting the binary template (biometric capture 405 and calculation of the binary template 402) and then the identification itself. In the first part, the process extracts the corresponding binary template, 402. In the second part of the identification process, the process calculates the similarity score for each minutiae using each of the hash functions. This is the similarity score mentioned earlier. It is also called a collision in the algorithm's description. Reading a collision involves, for a given minutiae, after finding the synthetic indices representing the boundaries, counting all the minutiae of the previously enrolled templates in order to increment the score table.The collision is read by step 403 followed by the lookup step in the lookup table and the generation of a signal 406 and finally the collision scores counted by this step 406 in the lookup step in the fingerprint table 404.

[0057] The steps of the third phase are as follows: Let T = desired template, F = {f hl , ....f M} ; IF set of synthetic indices established previously BD = {1^ ...} the set of templates already enrolled previously and to be checked; Entire database LC = {( T k ,s k )} the list of probable candidates where T k is the candidate's identifier and s k the similarity score found for this candidate for each individual, SI ≠ 0, LC ≠ 0 Initialize a score counter S, For each minute half of T For each hash function f hk of F Initialize a collision counter A b = fhk( m i) b = min1{dH(b,SI ' )} b2= min2{dH(b,SI)} For each template t found in the indices b and b2 For each minutiae j found in collision on è 1; b2, read the collision by counting each line(), t) of b l b2, then adding the collision to collision counter A. Count the colliding templates A[t,j] + + / / EndFor EndFor EndFor Update the score table for a template t §[t] = S [t] + Max j {A[t,j ]} EndFor Create the list of LC candidates by ranking S in descending order. The highest scores are the most likely candidates.

[0058] The counter is, for example, a score accumulator matrix. It is initialized to store the total score at the end. The search for a template is performed minute by minute. For each minute, the score is recorded in the accumulator matrix A, then transferred at the end of the minute's loop to S to store the final result. This accumulator is updated for each minute traversed.

[0059] The functions ml^ and mln2 calculate the first and second minimum indices, respectively, in the sense of the Hamming distance dH, between an input index and a collection of indices. The list of LC candidates in descending order allows us to find the closest candidate at the top of the search table.

[0060] At the end of this step, the processor will emit a signal indicating whether an individual has been identified or rejected. This signal may be displayed as the identification result on the screen of the display device 7. It may also be a command signal that activates a gate providing access to an area or site, 406.

[0061] Figure 5 shows the first step of the indexing process: the extraction of fingerprint descriptors. Its purpose is to transform a fingerprint image into a binary digital format. Thus, phase 5 consists of extracting the different minutiae M, (x, y, t,) characterized by their x, y, and t coordinates and their orientation, ten minutiae Mi, ..., M 10 , in the example. Then phase 52 is the creation of a binary template MCC. Each minutia M, is represented as a binary code BCi, BC2,..., BC10, (10100101), 53. In practice the binary vector of a minutia of the fingerprint is long (up to more than 1500 bits).

[0062] The second step, illustrated in Figure 6, consists of indexing the MCC template, 43. Several fixed hash functions, 51, are then used; these are sequences of bits placed at fixed positions for all binary minutiae. This allows a minutiae to be represented by a subset of bits fixed by each of these functions, for example, three hash functions Hi, H2, and H3. Bits ii, 15, and ig are those chosen for function Hi. Since each hash function uses three bits in this example, the interval [0; (2 3-1)] Let [0; 7] be the total index space for each hash function. We will then submit each minutiae to the hash functions in order to index the fingerprint. The fingerprint is indexed by creating an index for each of its constituent minutiae. idi ,i corresponds to the index linked to the minutiae idi and the hash function fm, i.e. the value 1 in the table, id-1,1 corresponds to the index linked to the minutiae id2 and the hash function ÎH2, i.e. the value 0 in the table, and so on for all the indices.

[0063] Two indexing cases are represented using hash functions. Case 62 is the classical indexing of the MCC method existing in the prior art, and case 63 presents the indexing according to the invention.

[0064] In method 62, classical MCC, after passing each binary code of the minutiae through each of the hash functions, we obtain Mi possible index intervals represented on the interval of possible indices for each function. In the example, we obtain a total of thirty indices for the hash represented in the index table. It should be noted that for each of the hash functions, the indices are represented on the interval [0; 7] in the index table.

[0065] Part 63 illustrates the method for indexing the minutiae of the fingerprint according to the invention. First, the space of possible indexes is controlled. The method creates a set of fixed indexes within this space. These indexes are fixed and constitute the representation boundaries of the fingerprint indexes. Indeed, no additional indexes can be created by a minutiae. In the example, the indexes 1, 3, 5, and 7 are chosen (normally generated by the synthetic index creation algorithm) as synthetic and fixed for the different hash functions. Thus, after passing each minutiae through the three hash functions, we calculate the two closest Hamming distances between the minutiae to be indexed and the synthetic indexes created.

[0066] The minutiae are indexed on the two nearest bounds (interval indexing). This allows the index table to be controlled over the entire possible range; the creation of indexes to be generalized for each binary minutiae; information loss in case of a bit value change; and the accuracy of fingerprint identification to be maximized.

[0067] Indeed, in the method according to the prior art 62, the index table 64 grows as each new possible index is generated for a hash by a hash function. For example, for function H3, index 1 is only created for minutiae 9 (idg in the index table). It is therefore impossible to predict or foresee a fixed size for the index table. Consequently, there are a large number of possible indexes to search the index table, and, more importantly, very few indexes are filled. This is why, in the method according to the invention 63, the number of index intervals is fixed and the size of the index table is completely controlled. This will accelerate the indexing process.

[0068] Similarly, in part 63 according to the invention, indexing is not based on the exact value produced by a minutiae, unlike in part 62 according to the prior art. In two samples of the same fingerprint acquired at two different times, the minutiae are not absolutely identical bit by bit. 1, 2, 3... or more bits may be different depending on the acquisition conditions. The prior art does not allow for such control, and if a bit changes, the generated index is not identical for the two minutiae of the two fingerprint samples. When a bit varies, the indexing of the exact minutiae changes; however, the index remains valid over the same interval, 65. The method thus allows for maintaining interval indexing. The method according to the invention increases the accuracy rate by controlling the loss of information related to bit variations.

[0069] The example given was for an identification method using fingerprints. Without departing from the scope of the invention, the steps described above apply to the identification of an individual from the iris, or any other A biometric characteristic of an individual, considering instead of the meticulous detail used for fingerprinting a particular feature of the biometric parameter used, such as the iris, or a morphological parameter. A person skilled in the art will adapt the template calculation methods to each application; for example, in the case of iris identification, a person skilled in the art will use a Daugmant algorithm to generate a binary code associated with the iris.

[0070] The method according to the invention offers the following advantages: the use of an indexing table with a reduced number of entries, and a synthetic generation of indexes that ensures the discriminating and representative nature of the table's indexes. The method improves processing performance in terms of speed and accuracy compared to the MCC indexing method, thus enabling faster individual recognition.

Claims

DEMANDS 1. A method for identifying an individual from information contained in a database, characterized in that it comprises at least the following steps: - Generate or use a table containing synthetic indexes corresponding to a set of intervals around a class center, (401), - Enroll multiple biometric data (407) by performing the following steps: - For each biometric data point, calculate a binary template linked to each characteristic parameter of a biometric data point, (402), - Use a hashing method to obtain multiple indexes for each binary template, (403), - For each index obtained for a biometric data, insert an identifier corresponding to the biometric data minimizing the Hamming distance between the index considered and the synthetic indices bounding a cell, in order to obtain a table containing pairs {biometric data identifier, individual identifier}, (404), - Capture at least one biometric data specific to the individual using a suitable sensor and calculate a binary template, (402, 405), - Search (408) in the table for the closest biometric data, compare the captured biometric data to the biometric data in the database, generate an identification result in case of a match between the said compared data or non-identification of the individual, (404, 406) and process the result obtained.

2. Identification method according to claim 1 characterized in that fingerprints are used to identify an individual and the following steps are performed: - Enroll multiple fingerprints by following these steps: - For each fingerprint, calculate a binary template linked to each minutiae of a fingerprint using a cylindrical minutiae code (CMC) method. - Use a hashing method to obtain multiple indexes for each binary template, - For each index obtained for a fingerprint, insert an identifier corresponding to the fingerprint that minimizes the Hamming distance between the index considered and the synthetic indices bounding said cell, in order to obtain a table containing pairs, {minutie identifier, individual identifier}, - To capture at least one fingerprint unique to the individual using a suitable sensor, and to transform said fingerprint into a binary digital format, - Search the table for the closest fingerprint(s) and identify the individual or reject the identification by comparing the generated binary code to the minutiae stored in the index table.

3. A method according to claim 1 or 2 characterized in that, to generate a table containing synthetic indexes, the following steps are performed: Let h be a hash function and the parameters conditionArrêtl, conditionArrêtl, t, e, MaxDH, min, ST, SI, With conditionArrêtl and conditionArrêtl two "timers" of predefined values ​​chosen according to a compromise between computation time and accuracy of the result, in fingerprinting, t, the probability of generating a bit at T on a synthetic index using a Bernoulli distribution, e, the distance between two neighboring indices of the same class center, with ee [3, 7], MaxDH: the maximum Hamming distance, min: a rejection parameter or minimum rejection threshold on the number of T's, minimum number of bits at I' to validate a synthetic index, ST: all the classroom centers, SI: the set of synthetic output indices, h the size of the hash function, Initialize Step 1 - Create target indexes (CI centers) of distant classes to cover the index space. As long as the conditionArrêtl parameter is not reached: Create an index i by generating h bits with a Bernoulli distribution (t), If 3j G ST / dH(i,j ) < MaxDH\nombreMinimumDel(i ) < min then reject the index, where dH(i,j ) is the Hammnig distance between index i and index j, the total number of bits diverging between two binary vectors i, Otherwise, validate index i as a class center {index i valid class center} and add it to the set of class centers ST <- ST + {i} Step 2 - Create around each class center index IC, close, non-overlapping indices: for any j belonging to V, set of s class centers ST, isolate each center i of ST to construct indices 57} = {j} As long as the value of the conditionArrêtl parameter is not reached, execute the following steps: Create an index i by generating h bits with a Bernoulli(T) distribution if 3j ' G 57} such that dH(i,j ') <£ [e, 2e] \nombreMinimumDel(i) < min then reject the index i Alternatively, consider index i as a valid synthetic index {valid final synthetic index i} Update all indices corresponding to intervals around a class center 57} <- 57} + {i}, 57} = set of intervals around a center, Generate an SI set of synthetic indices that includes class centers and intervals around these class centers by adding the values ​​57} to the SI set for all values ​​of j.

4. A method according to claim 2 characterized in that the phase of enrolling an individual in a database uses the indexes created in the synthetic index table and comprises the following steps: For each fingerprint: - A calculation of the binary templates associated with each minutiae using the MCC method, - Obtaining multiple indices for each binary template using a hash function, - Inserting the fingerprint identifier into multiple cells of a table: for each index obtained for a fingerprint, the fingerprint identifier that minimizes the Hamming distance between the index in question and the synthetic indices bounding the cell is inserted into a cell. - At the end of this step, the table is completed with the identifiers of the real fingerprints of individuals which constitute a database.

5. A method according to claim 4 characterized in that it comprises the following steps: Let T be the template, F = {f hl , a set of hash functions, l the number of hash functions, SI the database of synthetic indexes previously created during the initialization phase, SI ¹ 0 initialization of the set of synthetic indices, For each minute half of T, For each hash function f hk of F, calculate b = fhk( m i) = mln^dH b.SI)} dH the Hamming distance between b and SI b2= min2{dH(b,SI)} Enroll me t on b and b2 of the function f hk b and b2 are the lower and upper bounds of the interval that frames the index b calculated for each minutia of the template to be enrolled.

6. A method according to any one of claims 2 and 4 to 5, characterized in that the identification of an individual's fingerprint comprises the following steps: Let T be the desired template, F = {f hl , .... f M} ; IF the set of synthetic indices established previously, BD = {T l ...} all the controlled templates, LC = {(T k ,s k )} the list of probable candidates with s k the accumulation score of each individual, Initialize the set of synthetic indices established previously and the list of probable candidates to the value zero. Initialize a score counter S, For every minute m t of T, For each hash function f hk of F, Initialize a collision counter A, calculate b = fhk( m i) b = min1{dH(b,SI ' )} b2= min2{dH(b,SI )} The functions ml^ and mln2 calculate respectively the first and second minimum indices in the sense of the Hamming distance dH between an input index and a collection of indices, For each template t found in the indices b and b2 For each minutiae j found in collision on b, b2, read the collision by counting each line(), t) of b l b2, then by entering it into collision counter A Count the colliding templates Update the score table for template t, §[t] = §[t] + Maxj {A[t,j]} a.vecMax j {A[t,j]} the maximum value of the sum of the colliding templates. Create the list of LC candidates by arranging S in descending order and use the candidate with the highest score value for the identification step.

7. A method according to any one of the preceding claims characterized in that the hash function is an LSH function.

8. A method according to any one of the preceding claims characterized in that it comprises an additional step of emitting a signal to open a gantry following the identification of an individual.

9. Individual identification system comprising a device for acquiring biometric data of said individual, connected to a data processing device (2) comprising a database (3), a processor (4) configured to execute the steps of the process according to any one of claims 1 to 8, a device for processing the identification result, said database (3) comprising a table of synthetic indexes corresponding to a set of intervals around a class center.

10. System according to claim 9 characterized in that the identification result processing device is a display device (5).

11. System according to claim 9 characterized in that the identification result processing device is a device generating a control signal for opening a means of access to an area.

12. System according to any one of claims 10 and 11 characterized in that the acquisition device is a fingerprint reading device and the biometric data is a fingerprint.