MegaMatcher SDK
VeriFinger SDK
FingerCell EDK
VeriLook SDK
Other products

Supported Scanners

Licensing Model


Fingerprint Identification System

Intro |  Why VeriFinger? |  Algorithm |  Tests and specifications |  Demo |  Related

Human fingerprints are unique to each person and can be regarded as some sort of signature, certifying the person's identity. The most famous application of this kind is in criminology. However, nowadays, automatic fingerprint matching is becoming increasingly popular in systems, which control access to physical locations, computer/network resources, bank accounts, or register employee attendance time in enterprises.

Straightforward matching between the fingerprint pattern to be identified and many already known patterns would not serve well due to its high sensitivity to errors (e.g. various noises, damaged fingerprint areas, or the finger being placed in different areas of fingerprint scanner window and with different orientation angles, finger deformation during the scanning procedure etc.).


A more advanced solution of this problem is to extract features of so called minutiae points (points where capillary lines have branches or ends) from the fingerprint image, and check matching between the sets of fingerprint features.However, the above outlined solution requires sophisticated algorithms for reliable processing of the fingerprint image, noise elimination, minutiae extraction, rotation and translation-tolerant fingerprint matching. At the same time, the algorithms must be as fast as possible for comfortable use in applications with large number of users. For developers who intend to implement the fingerprint recognition algorithm into a microchip, compactness of algorithm and small size of required memory may also be important. Though many fingerprint identification algorithms are proposed, in reality, achieving satisfactory fulfillment of all the discrepant requirements is still important problem.

Why VeriFinger?

Neurotechnologija has developed fingerprint identification algorithm VeriFinger 4.2, designed for biometric system integrators. VeriFinger has the capabilities of the most powerful fingerprint recognition algorithms:

  • Reliability. Receiver operating curves (ROC) obtained with four standard databases, given in the technical specifications section, were used in The Fingerprint Verification Competition 2004. These ROC indicate that VeriFinger reliability is one of the best at the competition.
  • Fingerprint matching speed is one of the highest among the competing identification algorithms. Fingerprint enrollment time is 0.2-0.4 sec., and VeriFinger can match 30000 fingerprints per second in 1:N identification mode. To confirm these results with your samples, please try VeriFinger evaluation program.
  • VeriFinger is available as a software development kit (SDK), but source code may also be made available for developers. VeriFinger source code is written in ANSI C, well structured and documented (source code description, optimization techniques description, mathematical function representation, operating samples etc).
  • VeriFinger is offered for competitive price. Developers can select from several types of SDK. Each of these kits is intended for the specific needs, and developers always can make an upgrade only by paying the difference between the current and more powerful SDK.


VeriFinger fingerprint recognition algorithm follows the commonly accepted fingerprint identification scheme, which uses a set of specific fingerprint points (minutiae). However, it contains many proprietary algorithmic solutions, which enhance the system performance and reliability. Some of them are listed below:

  • Adaptive image filtration algorithm allows to eliminate noises, ridge ruptures and stuck ridges, and extract minutiae reliably even from poor quality fingerprints, with processing time of about 0.2 - 0.4 seconds (all times are given for Pentium 4, 3 GHz processor). You can look at the screenshot of VeriFinger evaluation program showing an example of initial fingerprint image (left window), and the same image after the noise filtering and processing by VeriFinger (right window), with minutiae positions and directions marked by red circles and lines.
  • VeriFinger functions can be used in 1:1 matching (verification), as well as 1:N mode (identification).
  • VeriFinger is fully tolerant to fingerprint translation and rotation. Such tolerance is usually reached by using Hough transform-based algorithms, but this method is quite slow and unreliable. VeriFinger uses a proprietary fingerprint matching algorithm instead, which currently enables to match 30000 fingerprints per second and identify fingerprints even if they are rotated, translated and have only 5 - 7 similar minutiae (usually fingerprints of the same finger have 20 - 40 similar minutiae).
  • VeriFinger does not require presence of the fingerprint core or delta points in the image, and can recognize a fingerprint from any part of it.
  • VeriFinger can use the database entries, which were pre-sorted using certain global features. Fingerprint matching is performed first with the database entries having global features most similar to those of the test fingerprint. If matching within this group yields no positive result, then the next record with most similar global features is selected, and so on, until the matching is successful or the end of the database is reached. In most cases there is fairly good chance that the correct match will be found already in the beginning of the search. As a result, the number of comparisons required to achieve fingerprint identification decreases drastically, and correspondingly, the effective matching speed increases.
  • VeriFinger has the fingerprint enrollment with features' generalization mode. This mode generates the collection of the generalized fingerprint features from three fingerprints of the same finger. Each fingerprint image is processed and features are extracted. Then the three collections of features are analyzed and combined into a single generalized features collection, which is written to the database. This way, the enrolled features are more reliable and the fingerprint recognition quality considerably increases.
  • VeriFinger 4.2 includes algorithm modes that help to achieve better results for specific scanner. Modes are following:
    • Universal;
    • DigitalPersona U.are.U family scanners;
    • Identix Touch View and DFR-2090 scanner;
    • Cross Match Verifier 300 scanner;
    • BiometriKa FX 2000 scanner;
    • Precise Biometrics 100 SC scanner;
    • KeyTronis Security Desktop scanner;
    • ST Microelectronics TouchChip sensor;
    • Identicator Technology DF-90
    • AuthenTec AES4000 and AF-S2 sensors;
    • Atmel FingerChip sensor;
    • BMF BLP-100 sensor;
    • SecuGen Hamster scanner.
    Please note, that VeriFinger algorithm itself provides parameters' optimization for scanners, but does not provide interface for scanners. Please, check out VeriFinger 4.2 SDK for more information about interface with scanners.

Reliability test results and technical specifications

Click to enlarge
VeriFinger was tested with fingerprint sets from many scanners. The most interesting testing results are those obtained with standard databases, because in this case they can be compared with testing results of other algorithms. Usually the algorithm recognition quality is expressed by receiver operating curves (ROC), which show the dependence of false rejection rate on the false acceptance rate. We present ROC obtained from the databases used in Fingerprint Verification Competition (FVC2002).

As can be seen from the ROCs, VeriFinger false rejection rate is only 0.75 - 5% at the false acceptance rate of 0.001%. In real applications this result is even better thanks to the feature generalization used in VeriFinger (FVC test scheme did not allow to include it during these tests). The other specifications of the algorithm are presented below. These parameters have been determined for a PC with 3 GHz Pentium 4 processor.

Required fingerprint resolution > 250 dpi
Fingerprint processing time 0.2 - 0.4 seconds
Matching speed * 30000 fingerprints/second
Size of one record in the database ** 150 - 300 Bytes
Maximum database size unlimited

* VeriFinger 4.2, for sufficiently large databases (500 or more fingerprints). Use with smaller sample fingerprint database, typically yields lower speed.
** Average fingerprint with image size 300 x 300 pixels.

These results were also confirmed by the tests performed by our customers.


Click to enlarge

VeriFinger demo could be downloaded for evaluation of the VeriFinger fingerprint recognition algorithm. The application enrolls and identifies fingerprints from image file or supported fingerprint scanner, and can calculate receiver operating curves (ROC) with custom fingerprint databases.
There are two demo applications available for download:

  • Windows 9x/ME/NT/2000/XP application that supports input from DigitalPersona U.are.U (U.are.U Integrator Gold 2.3 is required), SecuGen Hamster III, BiometriKa FX 2000, Startek FM200, Tacoma CMOS, Identix DFR2090, Cross Match V300 USB and STMicroelectronics TCRU1C scanners, LighTuning LTT-C500, Atmel FingerChip, AuthenTec AF-S2 and AES4000 sensors, TIFF and BMP image files.
  • Linux application that supports input from AuthenTec AF-S2 and AES4000 sensors, BiometriKa FX2000, Startek FM200, Tacoma CMOS and Fujitsu MBF200 scanners or TIFF image files.

Sample fingerprint images can be also downloaded for evaluation purposes.

Related products:

These products are based on VeriFinger algorithm: