Fingerprint matching is process that involves scanning an image, then testing that image against a database of known fingerprints to find out if a match has occurred. This process of finding a "correlation" between two pictures can be executed in one of two ways using signal processing: In the Time/Spatial Domain or in the Frequency Domain. In addition to written analysis, be sure to check out the Matlab .m files on the sidebar.
The Time/spatial domain process of matching involves using 2D Convolution
to find a correlation between two image matrices. In order to find a correlation, first we can use the Matlab command "conv2" as our workhorse. Once the two images are convolved, the maximum value in the matrix is obtain using the command "max."
- Advantages: Known Method that works, fairly robust
- Disadvantages: Calculations take up many clock cycles i.e. fairly expensive, timewise
Just like in the spatial domain, in the frequency domain we use a Matched Filter to determine the correlation between two images. The frequency domain counterpart to 2D convolution is multiplication using Fourier manipulation. That is, instead of spending a great deal of clock cycles convolving two large images (256x256), we simply can perform the FFT on the two image matrices and then multiply the result. In order to get good results, it is also necessary to use the "normalized" matrices with Matlab's "norm" command. More specifically, we used the Frobenius Norm, also called the Euclidean Norm.
Here is the process in full:
- Take Frobenius Norm of both images
- Perform the FFT on both images
- Multiply the resultant matrices together
- Similarly to spatial domain, find the maximum value, or correlation
Since the multiplication in the Fourier domain is the same as convolution in the time/spatial domain, we choose Fourier analysis for sake of pure speed and wait time. In Matlab, the "FFT" command is just more optimized for faster calculations, and the difference is noticable.
- Advantages: Same as spatial domain method only much faster
- Disadvantages: Doesn't take into account angular orientation of the fingerprint. Only 2D.