Tuesday, May 19, 2009

Defining a control experiment

In order to assess the performance of a fingerprint recognition system under maritime environment, we first need to examine its performance under normal (dry) condition. By evaluating the system under typical dry condition, we define a control experiment to which we can compare the effects of water aging to the system.

To proceed with the controlled experiment, we first register the fingerprint of each volunteer under normal conditions, to use as a template. Once we uniquely determined the template, we then collect more dry prints from each individual. Then, we plot the ROC curve of the normal vs. normal print to analyze the behavior of the fingerprint recognition system when the dataset consists of only dry fingerprint samples. The following is a pictorial representation of the data organization defined for the controlled experiment.





Once we understood the behavior of the system under normal conditions, then we can proceed with evaluating the system under maritime environment.

Friday, April 3, 2009

A New Strategy !

Last quarter, we recruited students to contribute their fingerprint samples to our dataset; however, collecting everyone's pruney fingerprint was time consuming and inconvenient since they were required to hold their fingers in a cup of warm water for 20 minutes which did not let them do much while they were waiting. Although we expected to see a lot of pruning after exposing the subject's finger to water for 20 minute, the effect was minute. Thus in order to make the procedure more effective and less inconvenient, we came up with a new way of exposing fingers to water. Instead of having everyone immersing their fingers in warm water for 20-30 minutes, we will ask them to put on a surgical glove (latex or non-latex) that has a small amount of water inside it. Based on our observations, this procedure not only provides more wrinkly fingers in a shorter amount of time (15-20 minutes), but also allows the volunteers to continue their work as they are waiting. Therefore, this brilliant experimental proceduer will replace the old one as we continue our research.

Friday, March 20, 2009

Future Work

During the course of this quarter, we have generated several different experiments acquiring the histogram and ROC for the database. In future, we will be collecting more finger prints under the water aged conditions as more images will result in more concrete results. To acquire more data, especially with water aged finger prints, we may recruit students in swim team to contribute prints of their pruney fingers to our dataset.

Result & Conclusion

Upon running the algorithm on the entire data set, including both wet and dry finger prints, we achieved our initial results. As the ROC curve and histogram plot indicate, the algorithm does really well under the factors of water aging.


ROC curve of genuine vesus imposture match scores

There is a clear distinction between the scores of genuine versus those of the impostors. The ROC curve for the result also indicates that minutiae based algorithms overcomes the factor of water aging.


Histogram plot of genuine versus imposture match scores

Our next tests were with two separate data sets, one of which is just dry prints, and the other just wet prints. The histograms for these two experiments confirms our hypothesis that water aging does not significantly impact the performance of minutiae based algorithms.


Histogram of Genuine vs. Impostor scores for both dry and wet prints

In the test trial with just wet prints, we were assuming to see some variation in the impostor and genuine scores, believing that the image quality of the wet prints is not as good as those of the dry prints. However, the histogram plot in figure 6 indicates that the different quality did not deter the algorithm from matching the minutiae. Thus our initial hypothesis is confirmed with the results we achieved.

Monday, March 9, 2009

Approaches to Fingerprint Matching

The approaches to fingerprint matching can be classified into three classes:
1. Correlation-based matching
- Superimpose images – compare pixels
2. Minutiae-based matching
- Classical Technique – Most popular
- Compare extracted minutiae


3. Ridge Feature-based matching
- Compare the structures of the ridges
- Everything else


Minutiae-based techniques locates minutiae points and then map their relative placement on the finger. However, this approach also has some drawbacks according to Salil Prabhakar et al. One being the fact that it is hard to extract the minutiae points accurately in case we have low quality fingerprint image. Also this approach does not take into account the global pattern of ridges and furrows (Salil Prabhakar et al). Although the correlation-based method is able to overcome some of the difficulties of the minutiae-based approach, it is still not an option since it requires an exact location of a registration point and are affected by image translation and rotation. Lastly, ridge-feature-based matching is superior to the other two and is based on such feature as orientation map, ridge lines and ridge geometry.

Drawbacks and Issues

So in the last post, we have tested the proposed algorithm on a small scale database and got some unexpected result. So in this post, we will justify our theories mentioned in the last post using tested results.

First, let's reiterate the problems. One of the issues is the match score for two different prints from identical fingers of the same individual was high while it should have been zero or very close to zero. This problem is plainly illustrated in the table below. Looking at row 1, column 2, we get a very high match score while we expect a really low value. Ironically, in column 3, and 4 we get really low values while we should have been getting a high value because now we are comparing the prints of two different individuals.

In the last post, we identified the problem to be the cropping and its size. Well, we were partially right! Let's look at the the cropped images for all four images:

Visually image 3 and 4 are very similar but their match score is still too high (5.0642). We still expect lower!

Note in cropped images above, the core is only visible in image 3 and 4; even there, we do not have the complete view of it.

So according to our experimental result and after careful examination of the source code, it seems that Dr. Yang is using correlation-based matching technique in which he superimposes the images and compare pixels. This technique cannot be used for our application because it is not invariant to translation and rotation. Thus, for the time being we drop this algorithm as an option and we pursue an alternative.

Wednesday, March 4, 2009

Result for a small scale database

This week we explored different fingerprint algorithms (e.g. libfprint, SDKs of Sensors A & B, ...) to compare our fingerprint samples and compute a match score. We finally found a free novel texture-based Automatic Fingerprint Authentication System (AFAS) proposed by Dr. JuCheng Yang from Chonbuk National University in Korea.

Brief Description of Algorithm

First, it pre-process a fingerprint image and enhances the image by Short Time Fourier Transform (STFT) analysis. Then, a set of invariant moment features, as a kind of texture features, are extracted from a Region of Interest (ROI) area based on the reference point from the enhanced fingerprint image. Each set of invariant moments contain seven invariant moments. Fingerprint verification is realized by Euclidean distance between the two corresponding features of the test fingerprint image and template fingerprint image in the database. This computation is illustrated by the equation below,

E = norm (invMoment_img1 - invMoment_img2)

where E is the Euclidean distance, norm is the built function in MATLAB (i.e. norm(x) is the Euclidean length of vector x). We take the norm of the difference between the invariant moments of two images and that gives us a matching score between two fingerprint images.

Result

The following table illustrates the matching scores of fingerprint samples of the same individual. The samples include both normal and pruney fingerprint samples.



The scores in the diagonal is the Euclidean distance of the same image; hence, the magnitude is zero. The higher the score, the lower the similarities between the two images.

Due to lack of enough samples, we ran this algorithm for a combination of prints of both thumb and index fingers.

Pictorial Visualization of Result

Let's look at some of the scores above and see if they make sense. The maximum value (i.e. 10.34529) corresponds to the matching score between image 8 and image 9.

These two are pruney fingerprint samples of the index finger of the same individual that are taken on the same day. In other word, the amount of pruning and the fingerprint patterns should be identical. Now you may ask why the scores are high in this case. There are a couple of factors that we need to note in our analysis:
  1. The role of preprocessing
  2. The two different fingerprint registration techniques provided by SDK
Part of the preprocessing portion of the algorithm crops 320 x 240 images to 64 x 64 ; whereas the original image size in our database is 352 x 544. So we might have to assign a different size to our cropped images in order to get better result.

Second point refers to the two different methods to save fingerprint samples which could result in slight variations in the result.

Let's look at another interesting comparison and its corresponding score:




The images above correspond to the fingerprint samples of index finger of the same person taken on the same day. The match score provided by the algorithm for these two is 6.576957274! This is a high value considering the fact that it is the same finger and the same day. We think this is due to variations such as orientation in placement of the finger on the scanner as well as two different methods for registration and recording the samples.


Result for fingers with higher pruning effects

This is the result for an individual who had the highest pruning effect among the entire volunteers. And the scores are as follows:


Next steps ?!

We are a few steps away in our implementation from plotting ROC curves. The following steps are required before we proceed to ROC analysis.
  • Develop a concrete labeling system
  • Identify genuine vs impostor
  • ROC curve