Summary: This is an Elec 301 end-of-year project. It involves the optimization of fingerprint recognition through different procedures such as convolution and matched filtering. Also included are the classifcation of different fingerprints according to their composition of lines, arches, and/or swirls. This classification is used in conjunction with the aforementioned procedures and other techniques such as deblurring.
| Thumbprint Spectrum |
|---|
Historically, there has always been a need for effective authentication solutions. Biometrics has been proven to be an effective answer to this problem because of the uniqueness that biometric keys possess. Therefore, the challenge now is to develop effective biometric solutions optimized to certain constraints depending on the needs and resources of the end user. Some will prefer solutions with real-time results while others will prefer solutions that are nearly error-free. Our research focuses on using the fundamentals of digital signal processing to bring about the optimized solutions.
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."
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:
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.
Now that we have looked at the two different domains and tested their equivalence, we move on to further optimization of this classification process. Go to the module, "Classification of Images".