I have started with Matlab and Digital Image Processing. I am trying to do Fingerprint recognition. I found many research papers regarding this but I am unsure where to start. Concisely, what is the most basic approach/algorithm for doing fingerprint recognition ?
-
5$\begingroup$ Have you learnt the basics of image processing yet? Perhaps getting upto speed with that and then attempting something more challenging like fingerprint recognition might be a better idea. On the surface, it is as simple as pattern matching with a stored template, but when you dig deeper, there's different layers of advanced topics involved like identifying fingerprint patterns like ridges and whorls, knowing what features to look for and store (you can't do pixel matching on a database that could be in the millions) aligning and orienting the sample correctly with the template, etc. $\endgroup$– Lorem IpsumMar 17, 2012 at 18:48
-
$\begingroup$ Ideally you should always have done your research before posing a question here. $\endgroup$– Dipan MehtaApr 9, 2012 at 8:13
3 Answers
The following are the basics of image processing for finger prints
- Make sure you understand what a finger print is. It is basically a signature for every human being. Every finger on each hand on every person (even twins) have unique patterns. These patterns are of interest to you.
- These patterns are classified into categories. Deltas, circles etc.
- You must understand what valleys,ridges, bifurcations, etc are.
- Once you understand the two above and a bit more, you go onto fingerprint acquisition.
- Once you have an image. The interesting and difficult part begins. Such as segmentation, enhancement of certain patterns, noise reduction, finally encoding.
- The encoding part is the penultimate part. When you have an filter/processed image, you create a digital signature which is called encoding. This signature is what the whole fingerprint ended up in.
- You then create more digital signatures for other images.
- You make comparisons of these images, trying to figure out matches.
- Matching itself is another story. Where you will try to see false matches and true matches.
Still there are plenty of other things you need to do. But these are the basics. Lengthy but you can do it if you have interest in it :)
List item
-
$\begingroup$ thanks. How do you create a digital signature for these ? I currently store information regarding ridge endings and bifurcations. then I use elastic string matching algo to match them. Is there a better way ? $\endgroup$– krammerApr 11, 2012 at 6:24
-
1$\begingroup$ Well there are so many techniques out there. You are on the right track. But Matching can always be different. You could even use Manhattan distances as well. Matching minutias would be helpful. Take a this very good link on fingerprints. Will help you alot fingerchip.pagesperso-orange.fr/biometrics/types/… $\endgroup$– WajihApr 11, 2012 at 15:41
Take a look at this repository.
It uses oriented gabor filters to perform noise removal, thereby enhancing the image. It can also recover broken ridges up to a certain extent.
https://github.com/Utkarsh-Deshmukh/Fingerprint-Enhancement-Python