The present invention relates to the field of biometric matching, and, more particularly, to fingerprint image data matching and related methods.
Biometric identification is a robust and reliable way to identify a person. The typical benefits of biometric identification are that each and every person has the needed biometric characteristics to be identified and that those biometric characteristics are unique to each individual. There are several typical biometric characteristics that are used for identification purposes, for example, fingerprints, retinal scans, and voiceprints.
Fingerprint biometric scanners have enjoyed substantial commercial success. These scanners have been implemented in commonplace security and access applications, for example, for providing access to buildings and sections therein, and electronic devices, such as cell phones and laptop computers.
Given the utility of fingerprint biometrics in identifying people, the use of fingerprint biometrics has naturally found great acceptance in the forensic sciences. Indeed, many law enforcement agencies maintain large databases of fingerprint biometrics from criminals and certain civilians. Accordingly, if a fingerprint is found in connection with an investigation, the investigating agency may query their database with the fingerprint in an attempt to match the fingerprint with one stored in the database, thereby determining the identity of the person who left the fingerprint.
Of course, this aforementioned matching process typically works best when the input fingerprint is clean and detailed, thereby depicting accurately the common fingerprint patterns. Nevertheless, in practice, for whatever reasons, the typical found fingerprint is a latent fingerprint, which is typically accidentally left by the person. In other words, the latent fingerprint typically may include only a small portion of the surface of the finger. Furthermore, the latent fingerprint may include distortions, for example, smudges. Therefore, it may be advantageous to process and clean up the latent fingerprint before submitting it for matching to a database.
An approach to pre-processing the latent fingerprint may be to apply a directional filter operation to the latent fingerprint. The directional filter operation may break the latent fingerprint down into blocks and categorize each block based upon whether the direction of the ridges flow can be determined and the strength of such a determination. During this pre-processing, the user may manually apply a threshold operation in an ad hoc manner that removes any blocks not having a threshold direction magnitude. The user may adjust the threshold direction magnitude and review the processed latent fingerprint image to determine whether it satisfactory for submission for matching to the database. A potential drawback to this approach is the intensive user input in the pre-processing, which may make pre-processing a large number of latent fingerprints onerous.
Another approach is disclosed in U.S. Patent Application Publication No. 2006/0147096 to Lee et al. Lee et al. discloses a fingerprint image filtering method including applying a directional filter to the input fingerprint image, and normalizing the directional fingerprint image. The method also includes dividing the normalized directional fingerprint image into blocks and classifying each one of the blocks as background and foreground image data.
Another approach is disclosed in U.S. Patent Application Publication No. 2007/0047783 to Kim et al. Kim et al. discloses a method for processing a fingerprint image including extracting a fingerprint region from the fingerprint image, and extracting ridge direction from the fingerprint region.
In view of the foregoing background, it is therefore an object of the present invention to provide a fingerprint matcher that readily processes latent fingerprints.
This and other objects, features, and advantages in accordance with the present invention are provided by a fingerprint matcher comprising a memory configured to store reference fingerprint data, and a controller cooperating with the memory. The controller is configured to determine ridge flow direction magnitude values for each block of a plurality of blocks of input fingerprint data, and iteratively identify blocks of the input fingerprint data in which the respective ridge flow direction magnitude values exceed an iteratively decremented threshold until reaching a stopping point thereby defining a final set of identified blocks of the input fingerprint data. The controller is configured to determine a match between the reference fingerprint data and the final set of identified blocks of the input fingerprint data. Advantageously, the fingerprint matcher may process and match latent fingerprints, even of low quality, automatically without intervention of the user.
In particular, the controller is configured to iteratively determine a potential stopping point value based upon a perimeter of a given set of identified blocks of the fingerprint input data and an area thereof. The controller is configured to determine the stopping point based upon an increase in the iteratively determined potential stopping point values. For example, in some embodiments, the given set of identified blocks of the fingerprint input data may be contiguous. More specifically, the controller is configured to iteratively determine the potential stopping point value based upon a square of the perimeter of the given set of identified blocks of the input fingerprint data divided by the area thereof.
In other embodiments, the controller is configured to binarize the input fingerprint data. For example, each of the plurality of blocks may comprise a 16-pixel by 16-pixel block.
Another aspect is directed to a method of operating a fingerprint matcher receiving reference fingerprint data. The fingerprint matcher may include a memory and a controller cooperating therewith. The method includes determining ridge flow direction magnitude values for each block of a plurality of blocks of input fingerprint data using the memory and controller, and iteratively identifying blocks of the input fingerprint data in which the respective ridge flow direction magnitude values exceed an iteratively decremented threshold until reaching a stopping point thereby defining a final set of identified blocks of the input fingerprint data using the memory and controller. The method also includes determining a match between the reference fingerprint data and the final set of identified blocks of the input fingerprint data using the memory and controller.
a and 2b are a direction magnitude diagram and a corresponding ridge flow pattern diagram, respectively, from the fingerprint matcher of
a-4c are, during a first iteration in the fingerprint matcher of
a-5c are, during a second iteration in the fingerprint matcher of
a-6c are, during a third iteration in the fingerprint matcher of
a-7c are, during a fourth iteration in the fingerprint matcher of
a-8c are a latent fingerprint for processing, a ridge flow diagram corresponding to the processed latent fingerprint in the first iteration, and a ridge flow diagram corresponding to the processed latent fingerprint in the fourth iteration, respectively, in the fingerprint matcher of
The present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which preferred embodiments of the invention are shown. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Like numbers refer to like elements throughout.
Referring initially to
The controller 22 is configured to receive and process input fingerprint data 40 (
Referring briefly and additionally to
As will be appreciated by those skilled in the art, the ridge direction finding filter is similar to the Hough Transform in that it finds the energy along a linear path. There are 16 different directions in the direction finding filter bank 50 that are used by the filter to evaluate ridge direction. These 16 direction slits start with the horizontal and increase in angle uniformly (including the vertical—slit 9), with slit 16 almost being back to horizontal.
Once all the ridge directions are found in the fingerprint, a ridge smoothing operation is applied to enhance ridge flow continuity such that now there are not a few discrete directions, but many possible directions with floating point precision. The filter steerable banks 60, 70 are used for deciding whether a pixel is on a ridge or valley (i.e., black or white) for binarization. This filter is aligned orthogonal to the ridge flow direction per 16×16 pixel blocks. The grayscale pixel intensities in this filter are used to make the decision on an individual pixel-by-pixel basis. If there is no strong direction found for ridge flow above a user defined threshold, then the block is labeled a “blur block” and no fingerprint minutiae are extracted from that region of the fingerprint.
Referring now additionally to
The controller 22 is configured to iteratively identify blocks of the input fingerprint data 40 in which the respective ridge flow direction magnitude values exceed a threshold value. Based upon these identified blocks, the controller 22 creates a blur map 41a of the identified blocks. The blur map 41a masks off blocks that do not satisfy the applied quality metric, in this case, a minimum direction magnitude threshold value. The controller 22 is configured to determine a largest contiguous (connected) collection of blocks 45 in the blur map 41a and determine a perimeter and area calculation for the contiguous collection of blocks. From these calculations, the controller 22 determines a dimensionless ratio of the square of the perimeter of the largest contiguous collection of blocks 45 divided by the area of the same collection of blocks (P2/A) (Block 33). The threshold process provides a corresponding ridge flow diagram 41b for the identified blocks. Of course, in other embodiments, the above calculations need not be limited only to the largest collection of contiguous blocks 45, but may include all the identified blocks.
At Block 33, if the ratio P2/A has decreased in value, the controller 22 is configured to decrement the threshold value and return to Block 32 to restart the process (Block 34), i.e. each of the ratio P2/A represents a potential stopping point. In the illustrated embodiment, the controller 22 reduces the threshold value by %10, but other values may be used. Of course, to enable finer control of the process and to determine the most efficient ratio, the decrement amount may be smaller, but this may increase the computational overhead of the process.
Referring now additionally to
The fourth iteration defines a ridge flow diagram 44b with a final set of identified blocks of the input fingerprint data 40. During the illustrated four iterations, the threshold value (direction magnitude value) is decreased sequentially: 38, 34, 31, and 28. The ratio P2/A has the following corresponding values during the four iterations: 52.6, 41.7, 28.8, and 32.0.
Referring now additionally to
Advantageously, the controller 22 of fingerprint matcher 20 is configured to process and match latent input fingerprint data automatically based upon the above disclosed iterative process. Of course, the fingerprint matcher 20 can operate without user intervention, which enables the processing of large amounts of data in an efficient manner. The ratio P2/A provides the fingerprint matcher 20 with the best magnitude threshold value that filters out blocks with substantial distortion that would reduce the effectiveness of the subsequent matching process, but without being too aggressive and removing helpful ridge flow characteristics. The adjusting of the direction magnitude threshold value may help recover more print from noisy latent input fingerprint images.
As will be appreciated by those skilled in the art, an exemplary implementation of source code for calculating the direction magnitude values of the input fingerprint data is shown hereinbelow.
Many modifications and other embodiments of the invention will come to the mind of one skilled in the art having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is understood that the invention is not to be limited to the specific embodiments disclosed, and that modifications and embodiments are intended to be included within the scope of the appended claims.