a process using inter-ridge distances in pixels relating to fingerprints
By estimating and resizing inter-ridge distances in pixels, the method addresses the issue of unknown image resolution in fingerprint verification, enhancing accuracy and reliability in fingerprint matching.
Patent Information
- Authority / Receiving Office
- FR · FR
- Patent Type
- Patents
- Current Assignee / Owner
- IDEMIA PUBLIC SECURITY FRANCE
- Filing Date
- 2023-03-17
- Publication Date
- 2026-05-15
AI Technical Summary
Existing fingerprint verification methods rely on known image resolution, which can lead to unreliable results when the resolution of the proof image is unknown.
A method that estimates inter-ridge distances in pixels for both the proof and reference fingerprints, resizes the proof image to match the reference inter-ridge distance, and compares the resized image to verify correspondence without requiring prior knowledge of the resolution.
Enables reliable fingerprint verification by accurately estimating inter-ridge distances and resizing images, reducing errors in matching fingerprints, even when resolution is unknown.
Abstract
Description
Title of the invention: A method using inter-ridge distances in pixels relating to fingerprints. FIELD OF THE INVENTION
[0001] The present invention relates to the field of processing applied to images showing fingerprints. STATE OF THE ART
[0002] Methods for identifying or authenticating an individual using their fingerprints are known, these methods comprising the following steps. Conventionally, a proof image showing a proof fingerprint of an individual is acquired, and this image is compared with a reference image showing a reference fingerprint, so as to verify a match between the proof fingerprint and the reference fingerprint. If such a match is found, then the individual is considered to have been previously enrolled.
[0003] The reliability of these methods is based on prior knowledge of the resolution of the proof image (generally expressed in pixels per inch, abbreviated as dpi).
[0004] However, there are certain situations in which the resolution of the proof image is not known. Description of the invention
[0005] One object of the invention is to verify whether a proof fingerprint corresponds reliably to a reference fingerprint, without needing to know the image resolution.
[0006] This goal is achieved by a method for processing a proof image showing a proof fingerprint, the method comprising the following computer-implemented steps: estimating a first inter-ridge distance of the proof fingerprint, the first inter-ridge distance of the proof being a distance in pixels; obtaining a reference inter-ridge distance relating to a reference fingerprint shown in a reference image, the reference inter-ridge distance being a distance in pixels; resizing the proof image into a resized proof image so that the first inter-ridge distance of the proof in pixels corresponds to the reference inter-ridge distance in pixels; and a comparison command between the resized proof image and the reference image, so as to verify a correspondence between the proof fingerprint and the reference fingerprint.
[0007] This method may also include the following optional features, taken alone or in combination whenever technically possible.
[0008] Preferably, the method further includes steps of: estimating a second proof inter-ridge distance relating to the proof fingerprint, the second proof inter-ridge distance being a distance in pixels; and repeating the resizing and comparison command steps for the second proof inter-ridge distance, instead of the first proof inter-ridge distance.
[0009] Preferably, the resizing and comparison command steps are repeated only if the comparison between the resized proof image and the reference image has resulted in a finding that the proof fingerprint and the reference fingerprint do not match.
[0010] Preferably, the method comprises the following steps: generating a classification map from the proof image, the classification map comprising, for each block forming part of a plurality of blocks of the proof image and for each class of a plurality of pixel distance classes, a score associated with the block and the class, the score associated with the block and the class being indicative of a probability of existence in the proof image of a segment passing through the block and whose length in pixels constitutes an inter-ridge distance of the fingerprint included in the class; generating a local inter-ridge distance map from the classification map, the local inter-ridge distance map comprising, for each block of the plurality of blocks, an estimated local inter-ridge distance in pixels for the block;and estimation of the test inter-ridge distance from the local inter-ridge distance map and a class of interest that is part of the plurality of pixel distance classes, the estimation comprising a selection, in the local inter-ridge distance map, of local inter-ridge distances of interest according to a criterion of proximity to the class of interest, and a calculation of an average between the local inter-ridge distances of interest. ;
[0011] Preferably, the estimated local inter-ridge distance in pixels for a block is calculated from: a first score indicating a maximum probability of existence among the scores associated with the block, the first score being associated with a first class belonging to the plurality of distance classes, and a first distance value in pixels included in the first class; optionally, a second score associated with a second class, the second class being adjacent to the first class in the plurality of distance classes in pixels, and a second distance value in pixels included in the second class; and optionally, a third score associated with a third class, the third class being adjacent to the first class in the plurality of distance classes in pixels, and the third class being distinct from the second class, and a third distance value in pixels included in the third class.
[0012] Preferably, the estimated local inter-ridge distance in pixels for a block is calculated as an average of the first distance value, the second distance value and the third distance value, respectively weighted by the first score, the second score and the third score.
[0013] Preferably, the method comprises the steps of: generating a preliminary classification map from the proof image, the preliminary classification map comprising, for each block of a set of blocks covering the entire proof image and for each class of the plurality of distance classes in pixels, a preliminary score associated with the block and the class, the preliminary score associated with the block and the class being indicative of a probability of existence in the proof image of a segment passing through the block and whose length in pixels constitutes an inter-edge distance of the fingerprint included in the class; from the proof image, generating a binary mask estimating, for each block of the set of blocks, whether the block shows a fingerprint or not;application of the binary mask to the preliminary classification map so as to generate the classification map, the plurality of blocks being restricted to each block that the binary mask estimates to show a fingerprint. ;
[0014] Preferably, the generation of the preliminary classification map is implemented by a first neural network, and the generation of the binary mask is implemented by a second neural network operating in parallel with the first neural network, the application of the binary mask to the preliminary classification map including for example a Hadamard product between the preliminary classification map and the binary mask.
[0015] Preferably, the method further comprises an extraction of features from the proof image by a neural network without a normalization layer, the classification map being derived from the extracted features.
[0016] Preferably, the local inter-ridge distances of interest selected according to the criterion of proximity to the class of interest are local inter-ridge distances included in an interval having bounds determined from a distance value included in the reference class, the interval forming a neighborhood around the distance value.
[0017] Preferably, the method includes steps of: calculating a histogram from the classification map, the histogram comprising, for each class forming part of the plurality of pixel distance classes, an aggregate score obtained by aggregating the scores associated with the class; and detecting at least one local maximum of the histogram, the class of interest being associated with a local maximum detected in the histogram.
[0018] Preferably, each block is a pixel of the image.
[0019] Preferably, the plurality of distance classes follows the following rule: the higher the median value of a class in the plurality of distance classes, the larger the class size.
[0020] A computer program product is also proposed, comprising program code instructions for executing the steps of the preceding process when this program is executed by a computer.
[0021] A computer-readable memory is further proposed, storing instructions executable by the computer for carrying out the steps of the preceding process. DESCRIPTION OF FIGURES
[0022] Other features, objectives and advantages of the invention will become apparent from the following description, which is purely illustrative and not limiting, and which should be read in conjunction with the accompanying drawings on which:
[0023] Fig. 1 schematically illustrates an image processing device according to one embodiment.
[0024] The [Fig.2] is a flowchart of steps of an image processing method according to one embodiment.
[0025] Fig. 3 comprises two images: on the left, an image showing a latent fingerprint, and on the right, a visual representation of a local inter-ridge distance map produced by applying the process of Fig. 2 to the image on the left.
[0026] The [Fig.4] is a portion of an image annotated so as to show an inter-peak distance.
[0027] Fig. 5 comprises two images: on the left, another image showing a latent fingerprint, and on the right, a histogram from the image on the left.
[0028] Fig. 6a shows a series of results obtained by applying to images a process using a neural network comprising normalization layers.
[0029] Fig. 6b shows a series of results obtained by applying to images a process using a neural network without a normalization layer.
[0030] Throughout the figures, similar elements bear identical references. DETAILED DESCRIPTION OF THE INVENTION
[0031] With reference to [Fig.1], an image processing device 1 comprises a processor 10, a communication interface 12 and a memory 14.
[0032] The processor 10 is configured to implement certain steps of an image processing method that will be described later. The processor 10 can have any structure. The processor comprises one or more cores, each core being configured to execute the code instructions of a program in such a way as to implement the aforementioned steps. It will be seen later that this program uses neural networks.
[0033] The communication interface 12 is adapted to allow the image processing device 1 to receive images to be processed and to communicate with a server 2. The communication interface 12 is of any type. For example, it is wired (Ethernet) or wireless using any communication protocol (Wi-Fi, Bluetooth, etc.).
[0034] The memory 14 is adapted to store data manipulated or produced by the processor 10. The memory 14 is of any type. Conventionally, the memory 14 comprises volatile memory for storing data temporarily, and non-volatile memory for storing data persistently, that is, in a way that retains the data when the non-volatile memory is powered off.
[0035] The memory 14 is in particular adapted to store an image received by the processing device 1, and intended to be processed by the processor.
[0036] The image processing device 1 may also include an image sensor 16 displaying fingerprints. The sensor may optionally include a transparent surface serving as a support for a finger, so as to stabilize the finger and thus clearly display a fingerprint of the finger in an image provided by the sensor.
[0037] Server 2 stores a database comprising reference images showing reference fingerprints relating to previously enrolled reference individuals. Distance classes in pixels
[0038] As will be seen later, the processing device 1, and more particularly the processor 10, is configured to implement processing based on a plurality of N predefined pixel distance classes.
[0039] Each of the N classes includes a set of distance values in pixels which is specific to it, this set of values being defined in advance.
[0040] As stated above, distances are expressed in pixels, and not in a unit of length (such as the inch or the meter) or in a unit dependent on a unit of length (as is the case with resolution, usually expressed in pixels per inch, abbreviated as dpi). In this text, it is assumed that a distance in pixels can be a decimal value, and is therefore not necessarily an integer.
[0041] Each class has a size that characterizes the number of distance values in pixels included in the class. Furthermore, each class has a median distance value in pixels.
[0042] Within the plurality of N classes, the classes are ordered according to their respective median values. Thus, the plurality of N classes comprises two extrema, and possibly N-2 intermediate classes if N>2. Each intermediate class A median class has two adjacent classes within the plurality of N classes. In contrast, each extremal class has only one adjacent class.
[0043] By convention, the classes are assigned respective indices ranging from 1 to N, in order of median value. Thus, an intermediate class with index i is adjacent to the classes with indices i-1 and i+1.
[0044] Preferably, the classes are contiguous, in the sense that for all i from 1 to N-1 the upper bound of the class with index i is equal to the lower bound of the class with index i+1. In this way, the respective intervals of the classes placed end to end cover a continuous interval, without strong redundancy (except for the bounds in the case where the intervals are closed).
[0045] Preferably, the plurality of N classes follows this rule: the higher the median value of a class, the larger its size. In other words, for any i from 1 to Nl, the class with index i+1 is larger than the class with index i. We will see later that this characteristic is advantageous.
[0046] In a non-limiting embodiment, each pixel distance class is an interval of pixel distance values. This interval includes a lower bound (minimum pixel distance value) and an upper bound (maximum pixel distance value). In this embodiment, the size of a class is the length of the interval (from the lower bound to the upper bound). Furthermore, the median value of the class is, in this embodiment, the middle value of the interval, that is, a value equidistant from the lower and upper bounds.
[0047] For example, a plurality of classes respecting all the principles defined above is detailed in the following table (we have N=5): Class index Values included in the class (expressed in pixels) Class size (expressed in pixels) 1 [10,11] 1 2 [H, 12.1] 11.1 3 [12.1, 13.31] 1.21 4 [13.31, 14.64] 1.33 5 [14.64, 16.11] 1.47
[0048] This plurality of 5 classes covers an overall range from 10 to 16.11 pixels. This interval makes sense because it covers a range of inter-ridge distances in pixels measurable in a database of fingerprint images with varying resolutions (approximately 500 dpi to approximately 1000 dpi). Image processing method
[0049] With reference to the flowchart of [Fig.2], a process implemented by device 1 comprises the following steps.
[0050] In step 102, the processing device 1 receives a proof image showing a proof fingerprint of an individual. Here, the qualifier "proof" is intended to distinguish the received image from the reference images stored by the server.
[0051] Two types of fingerprints are distinguished: fingerprints shown in images acquired by a dedicated image sensor (called "tenprints" in English), and so-called "latent" fingerprints, shown in photographs acquired by a generic device, that is, a device not specifically designed for acquiring fingerprints. For example, in a police investigation, a photograph of a fingerprint left on a surface, acquired by such a generic device, can be used as a proof image. The surface on which the latent fingerprint was left may have extraneous patterns that could compromise the accuracy of the estimation performed by the aforementioned methods.
[0052] The proof image may have been acquired by the image sensor (if present) or by another image sensor, in which case the proof fingerprint is of the tenprint type. Alternatively, the proof image may be received via the communication interface and be latent.
[0053] The proof image comprises a plurality of pixels forming a two-dimensional grid. Each pixel has a specific position in this grid, as well as light information. The color information is of any type: one-component (greyscale), three-component (red, green, blue, for example), etc.
[0054] All or part of the pixels of the proof image show the proof fingerprint.
[0055] Fig. 3 shows on the left an example of a proof image showing a latent fingerprint that can be processed by device 1. It can be seen that the latent fingerprint does not cover the entire image, and is even only partially visible.
[0056] As a reminder, a fingerprint is a pattern formed by ridges on an individual's finger. Two adjacent ridges are separated by an inter-ridge distance. Inter-ridge distances vary from one fingerprint to another. Figure 4 shows an inter-ridge distance appearing in a zoomed-in portion of the image. As can be seen in this figure, an inter-ridge distance extends over a certain number of pixels.
[0057] The resolution of the proof image is not known by the processing device 1.
[0058] Returning to [Fig. 2], the processor 10 implements the following steps from the proof image.
[0059] In step 104, the processor extracts features from the proof image using an extraction neural network. The extracted features are generally referred to in the literature as "feature maps".
[0060] Conventionally, a neural network comprises a succession of layers. Each layer includes neurons that take their inputs from neurons in the preceding layer. It is known that these layers have various functions. In particular, a normalization layer is known to normalize the data it takes as input, so as to limit dispersion in the output data of the neural network.
[0061] The extraction neural network may be convolutional, in which case at least one of the layers of the neural network is a convolutional layer.
[0062] The extraction neural network has the particularity of lacking a normalization layer. We will see later that this absence of a normalization layer constitutes an advantage, contrary to what one might initially think.
[0063] In a step 106, the processor 10 generates a preliminary classification map from the proof image. More specifically, the preliminary classification map is generated by the processor 10 using a classification neural network that takes as input the features extracted by the extraction neural network, the classification neural network having been previously trained.
[0064] The classification neural network performs a classification function on the N classes of inter-ridge distances in pixels discussed previously, and the classification map reflects the result of this classification.
[0065] The preliminary classification card includes, for each block of a set of blocks covering the entire proof image and for each class making up the plurality N of classes, a preliminary score associated with the block and the class.
[0066] In the present text, a "block" of an image constitutes a contiguous region of the image comprising one or more pixels of the image. In a preferred embodiment, each block considered is actually a pixel of the proof image. In this case, the set of blocks covering the entire image is the set of pixels of the proof image, so that the number of preliminary scores is equal to N multiplied by the number of pixels of the proof image.
[0067] The preliminary score Pi associated with a block and the index class i is indicative of a probability of existence, in the proof image, of a segment passing through the block and whose length constitutes an inter-ridge distance of the fingerprint included in the index class i.
[0068] In one embodiment, the preliminary score Pi associated with a block and the class The index i is directly the probability of existence as defined above. The preliminary score Pi then has a value between 0 and 1. In this case, the higher the value of the preliminary score, the higher the probability of existence. However, it is understood that the preliminary score Pi can be indicative of such a probability of existence, without necessarily being presented directly in the form of that probability. Indeed, the preliminary score can be a piece of data from which such a probability of existence can be deduced.
[0069] In conclusion, we can consider that the operation performed by the classification neural network is to partition the proof image into blocks, and to assign to each block a discrete distribution of N scores P[, ..., P^ respectively associated with the classes of indices ranging from 1 to N. These scores Pi indicate which are the inter-ridge distance values most likely to be shown by the corresponding block.
[0070] In the vast majority of images showing a fingerprint, the fingerprint does not cover the entire image but is only visible in a portion of it (this is notably the case for the image shown on the left of [Fig. 3]). Thus, the proof fingerprint may only be visible in certain blocks of the proof image, which are conventionally called "blocks of interest," while the other blocks of the proof image provide no relevant information about the proof fingerprint. Ultimately, the initial set of blocks, covering the entire image, comprises a plurality of blocks of interest, this plurality of blocks of interest forming a subset of the initial set of blocks.
[0071] To take this aspect into account, the processor 10 generates in a step 108 a binary mask estimating, for each block in the set of blocks, whether the block is a block of interest (i.e. a block showing a fingerprint) or not (i.e. a block not showing a fingerprint).
[0072] The binary mask is generated by a semantic segmentation neural network that takes as input the features extracted by the extraction neural network, the semantic segmentation neural network having been previously trained. The semantic segmentation neural network operates in parallel with the classification neural network.
[0073] For example, the binary mask assigns the value 1 to each block of interest (considered to show a fingerprint), and the value 0 to the other blocks (considered not to show a fingerprint).
[0074] To assign a value of 0 or 1, the semantic segmentation neural network can implement the following substeps.
[0075] In a first substep, the segmentation neural network generates a segmentation map from the features previously extracted from the proof image. The segmentation map includes, for each block, a probability that The block shows a fingerprint. This probability has a value between 0 and 1.
[0076] In a second substep, the segmentation neural network determines a threshold to be applied to the segmentation map. Preferably, the threshold is equal to the maximum probability of the segmentation map multiplied by a predefined coefficient strictly less than 1, for example 0.65.
[0077] In a third substep, the segmentation neural network thresholds the segmentation map using the determined threshold, so as to produce the binary mask. During this substep, any probability below the threshold is set to zero, while any probability above the threshold is set to 1.
[0078] In a step 110, the processor applies the binary mask to the preliminary classification map so as to generate a masked classification map.
[0079] For example, the application of the binary mask to the preliminary classification map includes a Hadamard product between the preliminary classification map and the binary mask (this product being represented on [Fig.2] by the sign X).
[0080] The masked classification map includes, for each block of interest and for each class of the plurality N of classes, a score associated with the block of interest and the class. The score associated with a block and a class indicates the probability of existence in the reference image of a segment passing through the block and whose length constitutes an inter-ridge distance of the fingerprint included in the class.
[0081] We see that the masked classification map has a content similar to that of the classification map generated by the classification neural network used upstream.
[0082] Each score of the masked classification card, which is associated with a block of interest and a given class, is derived from the preliminary score associated with that block of interest and that class.
[0083] Preferably, each score in the masked classification chart, which is associated with a block of interest and a given class, is precisely the preliminary score associated with that block of interest and that class. In other words, a preliminary score that is associated with a block of interest also appears as a score in the masked classification chart, without any change in its value.
[0084] However, the masked classification map is restricted to blocks of interest.
[0085] This restriction can be achieved in several ways.
[0086] The restriction can be implemented so that the masked classification map includes N scores P[, ..., only for the blocks of interest, i.e., the blocks that have been designated by the binary mask as showing a fingerprint. In this case, the number of scores contained in the classification map The number of masked areas is less than the number of preliminary scores contained in the preliminary classification map. In this case, only the scores relating to blocks of interest in the proof image are retained (only the block(s) showing a fingerprint according to the binary mask), and the scores relating to the other blocks in the block set covering the entire image are eliminated.
[0087] Alternatively, the restriction to blocks of interest is achieved by forcing the value of any score relating to a block that is not a block of interest to a value indicating that the score is irrelevant, for example by forcing this value to zero. In the remainder of the process, the processor can thus recognize an irrelevant score and therefore ignore it.
[0088] Regardless of the nature of the restriction applied, the application of the binary mask can be considered as a filtering of the preliminary classification map, allowing the processor to subsequently perform operations limited to the relevant scores. This reduces the hardware resources required for the later implementation of subsequent steps in the process. Furthermore, this restriction improves the accuracy of the estimation provided by the process by excluding areas of no interest.
[0089] In a step 112, the processor 10 generates a local inter-edge distance map from the masked classification map.
[0090] The local inter-ridge distance map includes, for each block of interest, an estimated local inter-ridge distance in pixels for the block of interest. Here, the term "local" is used to illustrate that a local inter-ridge distance is information associated with a block that constitutes only a portion of the proof image, and not more global information.
[0091] An estimated local inter-ridge distance in pixels for a block is calculated from selective data from the masked classification map and the plurality of N classes.
[0092] This selective data includes an indicative score Pk representing the maximum probability of existence among the N scores P^, ..., P^ associated with the block under consideration. Thus, in the case where the indicative score of the maximum probability of existence is a score with a maximum value, the index k of the first score is:
[0093] £ = argmax ( p. )
[0094] The selective data also include a Ck value included in the index class k associated with the Pk score. For example, the Ck value is the median value of the index class k.
[0095] Taking into account the Pk and Ck data makes it possible to obtain a relevant local inter-ridge distance. Indeed, the masked classification map indicates that if there exists in the proof image a segment passing through the block in question and whose length If this constitutes an inter-ridge distance, then the most probable hypothesis is that this length is included in the class with index k. This is what the P^ score reflects, indicating a maximum probability of existence. Taking this class into account allows for a more precise distance estimation.
[0096] If k>l, then the selective data for calculating the local inter-edge distance associated with a block preferably include: • the Pk-i score associated with the index class k-1 (which is therefore a class adjacent to the index class k in the plurality of N classes), • a CkA distance value included in the index class k-1, such as the median value of the index class k-1.
[0097] If k <N, alors les données sélectives pour calculer la distance inter-crêtes locale associée à un bloc comprennent de préférence : • the score P^+i associated with the index class k+1 (which is therefore a class adjacent to the index class k in the plurality of classes), • a distance value Ck+i included in the index class k+1, such as the median value of the index class k+1.
[0098] Thus, it is preferable to take into account the class(es) adjacent to the most relevant class with index k, and to disregard other classes. This has the advantage of further refining the estimation of the local inter-ridge distance.
[0099] If the <k<N, alors la distance inter-crêtes locale associée au bloc considéré peut être calculée de la manière suivante :
[0100] Pk / \i+Pkck+i\+^
[0101] The local inter-ridge distance is thus an average of the distances Ck_^ Ck and respectively weighted by the corresponding scores P^ and Pk+\- With such a calculation, an interpolation is performed allowing the output to be given values that are part of a continuous and non-discrete space, which also helps to refine the estimation made.
[0102] An example of a local inter-ridge distance map obtained from the proof image on the left of [Fig. 3] is shown to the right. The black area corresponds to irrelevant blocks. The blocks of interest can be seen covering a specific area of the image. This area includes different shades of gray to illustrate that the estimated local inter-ridge distances in this area have different values, with a maximum value of 13.
[0103] The processor 10 selects at least one class of interest from the plurality of distance classes, using the masked classification map. Each class of interest can be selected by the processor 10 using steps 114, 116, which are as follows.
[0104] In step 114, the processor 10 calculates a histogram from the masked classification map. The histogram includes, for each of the N pixel distance classes, an aggregate score obtained by aggregating the scores associated with the class, these scores being associated with the different blocks of interest retained in the masked classification map. Thus, if the masked classification map contains NM scores, where M is the number of blocks of interest identified by the binary mask, then the aggregate score for the class with index i results from the aggregation of the M scores P, respectively associated with the M blocks of interest. Since there are N classes, N aggregate scores are produced in this step 114.
[0105] A particularly low-cost aggregation in terms of material resources simply consists of summing the M scores Pi respectively associated with the M blocks of interest to obtain the aggregate score of the index class i. Other types of aggregation could however be carried out instead of a summation in step 114.
[0106] In step 116, the processor 10 detects at least one score constituting a local maximum of the histogram. Each class of interest is a class associated with a score constituting a detected local maximum.
[0107] It should be noted that the histogram calculated in step 114 may include a single local maximum or several local maxima. For example, [Fig. 5] shows on the left another example of a proof image containing spurious signals (slanted lines), and on the right shows the histogram obtained from this proof image. This histogram includes two local maxima: a primary local maximum of high value (greater than 0.12) associated with a class of interest whose values are slightly less than 20 pixels, and a secondary local maximum of lower value (between 0.10 and 0.12) associated with another class whose values are slightly greater than 10 pixels.
[0108] For the sake of clarity, we will initially assume that only one local maximum is detected at step 116, and consequently that the processor selects only one class of interest from the plurality of N distance classes in pixels.
[0109] In a step 118, the processor 10 estimates an average inter-ridge distance of the proof fingerprint from the local inter-ridge distance map and the selected class of interest. Estimation 118 comprises the following substeps.
[0110] It is recalled that the local inter-ridge distance map comprises M local inter-ridge distances in pixels respectively associated with the M blocks of interest previously retained in the masked classification map.
[0111] In a first substep of step 118, the processor 10 selects distances of interest from among the M local inter-edge distances in pixels respectively associated with the M blocks of interest, based on a criterion of proximity to the class of interest. A local inter-edge distance whose value is close to the values of the The class of interest is selected here. In contrast, a local inter-ridge distance whose value is far from the values of the class of interest is not selected.
[0112] Preferably, the distances of interest are the local inter-ridge distances in pixels having values within an interval whose bounds are determined from a distance value included in the class of interest.
[0113] For example, the interval is centered on the median value of the class of interest and has a predefined length. Alternatively, the lower bound is equal to (100 - x)% of the median value of the class of interest, and the upper bound of the interval is equal to (100 + x)% of the median value of the class of interest, with x between 0 and 100, for example 35. Regardless of the method of constructing the interval, the interval represents a bounded neighborhood around a value from the class of interest.
[0114] In another substep, the processor calculates an average between the distances of interest selected in the previous substep.
[0115] The result of this average calculation is the estimated average inter-ridge distance in pixels for the proof fingerprint.
[0116] This estimated average inter-ridge distance in pixels is obtained without requiring prior knowledge of the resolution of the proof image. Indeed, none of the steps 102, 104, 106, 108, 110, 112, 114, 116, 118 used such a resolution as a parameter; the process worked exclusively on distances expressed in pixels.
[0117] It is possible that the reference images stored by the server may have a different resolution than the proof image (the latter being unknown). In this event, comparing the proof image with the reference images could lead to missed detections or false positives.
[0118] To overcome this problem, the device 1 obtains in a step 120 a reference inter-ridge distance, expressed in pixels, relating to a reference fingerprint shown in a reference image stored in the database.
[0119] To obtain this average inter-ridge distance at step 120, the processing device 1 can send a request to the server 2 via its communication interface 12, and the server 2 returns the reference inter-ridge distance in pixels in response to the request.
[0120] For example, the reference inter-ridge distance in pixels is calculated in advance, i.e. before sending the request to obtain it, for example when enrolling the reference image with server 2. Alternatively, server 2 can estimate this reference inter-ridge distance upon receiving the request, for example by means of steps 104 to 118 applied to a reference image stored by server 2.
[0121] In a step 122, the processing device 1 resizes the proof image into a resized image, so that the estimated average inter-edge distance in pixels corresponds to the reference inter-edge distance in pixels. This resizing is typically a scaling, that is, without a transformation that changes the aspect ratio of the proof image.
[0122] The sizing step 122 can thus include calculating a scale factor as a ratio of the reference inter-ridge distance in pixels to the estimated average inter-ridge distance in pixels for the proof image, and applying this scale factor to the proof image to obtain the resized image.
[0123] For example, suppose that the estimated average inter-edge distance for the proof image is equal to 5 pixels, and that the obtained reference inter-edge distance is equal to 10 pixels. In this case, the proof image is resized so that the inter-edge distance of the proof image changes from 5 pixels to 10 pixels in the resized image, using a scaling factor of 2 (10 divided by 5).
[0124] In a step 124, the processor 10 commands a comparison between the resized proof image and the reference image, so as to verify a correspondence between the proof fingerprint and the reference fingerprint.
[0125] The comparison, known from the prior art, is typically performed by server 2. To initiate this comparison, the processing device 1 can send a comparison request and the resized image to server 2. The resized image can, for example, be sent to the server in encrypted form for greater confidentiality.
[0126] We saw earlier that the processor 10 can, in certain cases, select not one but several classes of interest (particularly if several local maxima are detected in the histogram at step 116). This can occur in proof images containing multiple spatial frequencies, and in which the proof fingerprint coincides with other periodic signals, as for example in [Fig. 5] discussed earlier. In this case, step 118 is repeated for each class of interest, so as to produce several average distances in pixels respectively associated with the classes of interest.
[0127] Furthermore, steps 122 and 124 are first implemented based on the average pixel distance associated with the class of interest for which a local maximum with the highest value among the detected local maxima was found. If it is found that the resized image and the proof image do not match, then steps 122 and 124 are implemented again based on another average distance. Thus, the different local maxima are successively tested in decreasing order of probability.
[0128] We have seen previously that the N classes have increasing sizes with their median. This is advantageous because we have more accuracy for small inter-ridge distances, which are more sensitive to small absolute errors (for example, making an error of 1 is more serious for an expected distance of 3 than for an expected distance of 20).
[0129] It has also been seen previously that the extraction neural network is preferably devoid of a normalization layer. The inventors discovered that the presence of normalization layers in the extraction neural network introduces biases in the estimation of the average distance in pixels, especially when the proof fingerprint rests on a noisy background. Indeed, textures appearing in the proof image around the proof fingerprint can disrupt the proper functioning of the network on the fingerprint areas and result in an incorrect average distance (excessively overestimated or underestimated).
[0130] To confirm this discovery, comparative tests were carried out, consisting of implementing the process with a batch-type normalization layer, adding progressive padding of random noise to highly visible (tenprint) fingerprints. Figure 6a shows a series of results obtained with the normalization layer, and Figure 6b shows a series of results obtained without a normalization layer for the same fingerprint. The images on a white background, with a gray border where applicable, are the input proof images, and the images on a black background are the corresponding local distance maps obtained. In Figures 6a and 6b, the padding corresponds to the gray border around the white square containing the proof fingerprint. It can be seen that the absence of a normalization layer results in local distance maps that are much more resistant to injected noise.
[0131] Furthermore, to measure the added value of the resizing step, the inventors conducted comparative tests consisting of implementing comparisons between a proof image and a reference image (step 124) with and without prior resizing of the proof image. The extent to which the comparison results were erroneous (false positives or missed matches) was then verified. An accuracy gain of approximately 14 points was observed when resizing was implemented before comparison. In some cases, the error decreased from 17% to 2.2%, representing almost eight times less error.
Claims
Demands
1. A method for processing a proof image showing a proof fingerprint, the method comprising the following computer-implemented steps: • estimating (118) a first proof inter-ridge distance relating to the proof fingerprint, the first proof inter-ridge distance being a distance in pixels, and a second proof inter-ridge distance relating to the proof fingerprint, the second proof inter-ridge distance being a distance in pixels, • obtaining (120) a reference inter-ridge distance relating to a reference fingerprint shown in a reference image, the reference inter-ridge distance being a distance in pixels, • resizing (122) the proof image to a resized proof image such that the first proof inter-ridge distance in pixels corresponds to the reference inter-ridge distance in pixels,• a comparison command (124) between the resized proof image and the reference image, so as to verify a match between the proof fingerprint and the reference fingerprint; • repetition of the resizing steps (122) and the comparison command (124) for the second inter-ridge distance of the proof, instead of the first inter-ridge distance of the proof, provided that the comparison between the resized proof image and the reference image resulted in a finding that the proof fingerprint and the reference fingerprint do not match.
2. A method according to any one of the preceding claims, comprising the following steps: • generation (110) of a classification map from the proof image, the classification map comprising, for each block forming part of a plurality of blocks of the image of proof and for each class of a plurality of distance classes in pixels, a score associated with the block and the class, the score associated with the block and the class being indicative of a probability of existence in the proof image of a segment passing through the block and whose length in pixels constitutes an inter-edge distance of the fingerprint included in the class, generation (112) of a local inter-ridge distance map from the classification map, the local inter-ridge distance map comprising, for each block in the plurality of blocks, an estimated local inter-ridge distance in pixels for the block, estimation (118) of the first test inter-ridge distance from the local inter-ridge distance map and a class of interest that is part of the plurality of pixel distance classes, estimation (118) comprising a selection, in the local inter-ridge distance map, of local inter-ridge distances of interest according to a criterion of proximity to the class of interest, and a calculation of an average between the local inter-ridge distances of interest.
3. A method according to the preceding claim, wherein the estimated local inter-edge distance in pixels for a block is calculated from: • a first score ( / ¾) indicating a maximum probability of existence among the scores associated with the block, the first score being associated with a first class belonging to the plurality of distance classes, and a first distance value in pixels (Ck) included in the first class, • Optionally, a second score (Pm) associated with a second class, the second class being adjacent to the first class in the plurality of pixel distance classes, and a second pixel distance value (C^.j) included in the second class, • Optionally, a third score (^4+1) associated with a third class, the third class being adjacent to the first class in the plurality of pixel distance classes, and the third class being distinct from the second class, and a third pixel distance value (C^j) included in the third class.
4. A method according to the preceding claim, wherein the estimated local inter-edge distance in pixels for a block is calculated as an average of the first distance value, the second distance value and the third distance value, respectively weighted by the first score, the second score and the third score.
5. A method according to any one of claims 2 to 4, further comprising the steps of: • generating (106) a preliminary classification map from the proof image, the preliminary classification map comprising, for each block in a set of blocks covering the entire proof image and for each class in the plurality of pixel distance classes, a preliminary score associated with the block and the class, the preliminary score associated with the block and the class being indicative of the probability of existence in the proof image of a segment passing through the block and whose length in pixels constitutes an inter-edge distance of the fingerprint included in the class, • from the proof image, generating (108) a binary mask estimating, for each block in the set of blocks, whether or not the block shows a fingerprint,• application (110) of the binary mask to the preliminary classification map so as to generate the classification map, the plurality of blocks being restricted to each block that the binary mask estimates to show a fingerprint.
6. A method according to the preceding claim, wherein the generation of the preliminary classification map is implemented by a first neural network, and the generation of the binary mask is implemented by a second neural network operating in parallel with the first neural network, the application (110) of the binary mask to the preliminary classification map comprising, for example, a product Hadamard between the preliminary classification map and the binary mask.
7. A method according to any one of claims 2 to 6, further comprising an extraction (104) of features from the proof image by a neural network devoid of a normalization layer, the classification map being derived from the extracted features.
8. A method according to any one of claims 2 to 7, wherein the local inter-ridge distances of interest selected according to the criterion of proximity to the class of interest are local inter-ridge distances included in an interval having bounds determined from a distance value included in the reference class, the interval forming a neighborhood around the distance value.
9. A method according to the preceding claim, comprising steps of • calculating a histogram from the classification map, the histogram comprising, for each class forming part of the plurality of pixel distance classes, an aggregate score obtained by aggregating the scores associated with the class, • detecting at least one local maximum of the histogram, the class of interest being associated with a local maximum detected in the histogram.
10. A method according to any one of claims 2 to 9, wherein each block is a pixel of the image.
11. A method according to any one of claims 2 to 10, wherein the plurality of distance classes obeys the following rule: the higher the median value of a class in the plurality of distance classes, the larger the class size.
12. Product computer program comprising program code instructions for carrying out the steps of the process according to any one of the preceding claims, when such program is executed by a computer.
13. Computer-readable memory storing computer-executable instructions for carrying out the steps of the process according to any one of claims 1 to 11.