Results
The database we used is generated from a fingerprint generation program written by the Biometric System Lab [13]. This program allows us to generate random fingerprints with different types, like right loop, left loop, arch and tanted. It also allows us to vary the ridge size and noise of the image. After generating the images, we do rotation and translation of the images to obtain a set of 3 prints for each finger. In total, we have 8 sets of fingerprints.
Since there is no quick and robust way to test if minutiae extraction is good, we take a sample of the fingerprints, run the ridge tracing algorithm on each print and visually determine the number of minutiae missed and the number of false minutiae found.
The following table
contains the results on a collection of 17 fingerprints. The prints are labeled
as R if it is a right loop, L if left loop and A if arch type..
Image |
Total Minutiae Found |
Missing |
False Minutiae |
Percent Error |
A1 |
31 |
1 |
1 |
6.45 |
A2 |
27 |
1 |
1 |
7.40 |
A3 |
29 |
0 |
0 |
0.00 |
A4 |
21 |
0 |
0 |
0.00 |
L1 |
26 |
0 |
1 |
3.84 |
L2 |
22 |
1 |
0 |
4.54 |
L3 |
26 |
1 |
0 |
3.84 |
L4 |
25 |
1 |
1 |
8.00 |
L5 |
17 |
1 |
0 |
5.88 |
L6 |
24 |
1 |
2 |
12.50 |
L7 |
33 |
0 |
5 |
15.15 |
L8 |
25 |
0 |
1 |
4.00 |
L9 |
30 |
2 |
5 |
23.33 |
R1 |
30 |
3 |
4 |
23.33 |
R2 |
26 |
2 |
1 |
11.53 |
R3 |
26 |
1 |
0 |
3.84 |
R4 |
26 |
0 |
0 |
0.00 |
|
|
|
|
|
Total |
444 |
15 |
22 |
8.33 |
As can be seen, the maximum percentage error is about 23% and the average error is 8.3%. This shows that the extraction process is very accurate. However, one drawback is that the process takes a long time, typically on the order of 20 min for a point of size 560 x 560. To get faster results, we can increase the pixel step taken during the ridge tracing, but this will give rise to more inaccurate results. Although time is not an important factor for the reference image in the database, it will be critical for the test image for an online verification system. Hence, a trade-off between accuracy and speed has to be made.
2. Verification Results
Accuracy
We carried out 2 set of
tests for fingerprint verification. First, we tested each image against the
other 2 images from the same finger. Since there are 24 images, there were a
total of 48 tests. Of these only 1 failed the verification test. The points
scored was 4 (remember that we set the acceptance score to 5). Of those that
have successful matches, most of them scored about 10.
Hence, we have about 98% accuracy in correct fingerprint verification.
The second set of test consisted of running each image against the other 21 images from different fingers. Therefore, there were a total of 504 tests. Of these, there were 6 false acceptance. Hence our false acceptance rate is about 1.2%. The highest score for false acceptance was 7.
We therefore find our verification technique to be very robust if the minutiae extraction is reasonably good. For example, consider the following images (only part of the finger is shown) from the same finger. Once again, the crosses represent the minutiae found. As can be seen, there are a number of false or missing minutiae. However, we actually were able to match these two particular images correctly.
(a) (b)
Figure 16. These 2 images are from the same finger. However, it can be seen that there are false as well as missing minutiaes in both images.
A lot of the credit actually goes to the “additional reward” for better matching mentioned in Stage 2 of the verification process. Before the use of this additional reward scheme, verification was actually really poor due to false features. The reward scheme basically “amplifies” the points difference scored by the correct and wrong images. This shows that our technique works very well even in the presence of some false features.
Also, since some of the images are rotated (one by 90 degrees) or translated, we see that our algorithm is also rotational and translational invariant.
In the case where correct verification is important (for example in a security system), we can always increase the minimum points scored to about 10. The accuracy in correct fingerprint verification will drop (but still remain quite high), but the person whose identity needs to be cleared, can always present his/her finger again. What is important, is that there is minimal false acceptance.
Speed
Verification speed is in the order of 2 or 3 seconds for images of the same finger, while it is about 1 second for images of two different fingers (because there are fewer candidates coming off stage 1 of the verification process).
However, minutiae extraction takes a rather longer time. While this does not matter to the reference image since it is already in the database, it does matter for the test image, since we would not want a person to wait a long time in the case of a security system.