Feature Requirements

The input passed on from the classifier is basically a fingerprint which is a distinct pattern of ridges and valleys on the finger surface of an individual. A ridge is defined to be a single curved segment whereas a valley is the area between two adjacent ridges. Minutiae points are the major features of the fingerprint input and are used in the matching of the fingerprints. These minutiae points are used to determine the uniqueness of the fingerprint input. A good quality input can have 25 to 80 minutiae depending on the sensor & scanner used. (RAVI. J* 2009)
Minutiae can be defined as the pints in the fingerprint where the ridges end or divide. There are multiple types divisions or ends in a ridge line which can be segregated as below:
  1. Ridge dots - These are extremely tiny ridges that are too short to be considered as a ridge line.
  2. Ridge endings - These are the end points of a ridge line.
  3. Ridge ponds/lakes - These are the cavity formed in between diverging ridges.
  4. Ridge islands - These are longer ridge dots that are found inside ridge ponds.
  5. Ridge bifurcations - These are points where ridges begin to diverge.
  6. Ridge spurs - These are any inclinations found on a ridge line.
  7. Ridge bridges - These are found on the point where two tiny ridges join adjacent to each other.
  8.  Ridge crossovers - These are found at the point of overlap between two ridge lines.
Once the pre classifier filters out the bad inputs, we will be using the classified data as an input parameter to our minutiae verification algorithm which takes the input and finds the ridges/points of the minutiae of the fingerprint provided. Then these points are used and compared to points already available in the database by matching the similar based on their minutiae.

Feature Extraction & Minutiae Matching

The first step for this verification approach is normalization, which results in a better contrast of the fingerprint input. After that, the fingerprint is segmented, which crops areas of the recorded input, which do not contain any relevant information. Then the input is transformed into a grey scale representation. We will then apply several correctional adjustments to the input such as changing the images brightness and contrast. Then the noise distortion in the input is filtered out using a Gabor filter.
A Gabor filter is linear filter which determines the output provided by it using a harmonic function which is then multiplied using a gaussian function. It consists of an orientation and frequency specific sinusoidal plane which is adjusted by a gaussian envelope. \cite{barbu2010} The Gabor filter selects and provided an apt visual representation of the input. Now, it is possible to create the feature map, which is used as the template. This template is matched in the subsequent matching step with templates of other fingerprints. The result of the matching is the matching score, which represents how good two fingerprints resemble each other.
The template matching is done by using a classifier which is based on the statistical based k-nearest neighborhood algorithm KNN. KNN algorithm makes use of euclidean distances to determine the distance between pixels in the fingerprint optical input. The euclidean distance can be calculate by using the formula \(d\left(x,y\right)=\sqrt{\left(x_1-y_1\right)^2+....+\left(x_n-y_n\right)^2}\) \cite{pentland1991}
The KNN algorithm assigns each pixel in the data input a label in the class set. Then the 'k' closest members are found by computing the euclidian distance between each pixel point and and by going through the distance matrix generated from this computation. Then k-closest points are then assigned a specific class label which closely related to the similarity in the distances. \cite{kaur2012}
We added this part of the application in the last stage of our .NET application. The output that is taken from the pre verification deep neural network is then passed through this classifier to determine the output of the initial input.