Automatic Fingerprint Recognition


Automated algorithms for fingerprint recognition have long been a problem studied in computer science. Since every person has a unique set of fingerprints, this method has become common for personal identification. Databases consisting of millions of fingerprints are stored on file for this purpose. It is our hope to be able to provide significant speed improvements in the fingerprint matching phase.


In order to implement a successful algorithm of this nature, it is necessary to understand the topology of a fingerprint. A fingerprint consists of many ridges and valleys that run next to each other. The ridges bend in such ways as to form both local and global structures (see Figure 1); either of which can be used to identify the fingerprint. The global level structures consist of many ridges that form arches, loops, whirls and other more detailed classifications. The local level structures, called minutiae, are further classified as either endpoints or bifurcations. Minutiae are also given an associated position and direction.

Figure 1 - Global and Local Fingerprint Structures


Most approaches to recognizing a fingerprint involve five basic stages: (i) acquisition, where the image is obtained from hardware or a file; (ii) pre-processing, which may include thinning, noise reduction, image enhancements and error correction; (iii) structural extraction, where global and local structures may be found; (iv) post-processing, where the structures are converted into a more useful format; (v) and then matching, where fingerprints are compared against a database. These stages are shown in Figure 2.


Figure 2 - Stages of Fingerprint Algorithm


The procedure that was used for minutiae extraction can be implemented reliably and efficiently. Most other methods studied were far more complicated and did not necessarily improve efficiency. In any case, the minutiae extraction process is required only once per fingerprint test, which makes the running time of minutiae extraction negligible when compared to the running time of the matching phase over a large database. The results at successive stages in the minutiae extraction process are shown in Figure 3.


Our current research efforts are directed towards the matching phase of fingerprint recognition for macro-databases consisting of a large numbers of prints. We are in the process of developing a customized algorithm to run on FPGA. The expected result looks promising and we are expecting to find a significant speed improvement in the matching phase when it is finished.