Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to convert fingerprint to unique id to use it for searching in database?

I have fingerprint reader secugen and I have been able to get my application to control the fingerprint device by scanning fingerprints and I have been able to save them to mysql database!

After saving the fingerprints to the db, I now want to search for the user using fingerprint, and I can't search using new fingerprint because the fingerprint saved as blob/img. so I need to convert fingerprint to unique id to use it for searching in database?

I have mysql database with 9,000,000 user. Now I can get any user information by using user's (username)

SELECT USERS FROM members WHERE username=username_var

But now I can't use WHERE in my query because I have fingerprint template which is instead of (username) and the fingerprint will be changed every time, so i can't use the fingerprint in my query like (username) when i use WHERE in my query.

All fingerprint SDK have functions can help me with this but they are not so fast and take 7 minutes to search and that's a very long time.

I do not know what to do and how. I hope that you you understand my problem

like image 613
ss.5 Avatar asked May 14 '16 20:05

ss.5


1 Answers

There is a common misconception that there is a way to convert a fingerprint image into a unique ID that can be compared against the same way a password or a hash of a password can be compared. In reality, all fingerprint algorithms that I know of operate on some basic principles.

Extraction
The first step in processing a fingerprint image is extraction. This typically involves a number of image processing algorithms to create a clean, binarized version of the image. This is then processed for minutia points and other data points that are useful when comparing images. These points are stored in a data struct called a template. Because no two impressions of a finger will ever be exactly the same, even these templates cannot be hashed and compared for equality. The only way to compare fingerprints is with a matching algorithm.

Matching
Matching takes two templates and compares them. Most of the time this involves taking the relative locations of similar minutia points in each image. Sometimes the templates need to be rotated to accommodate variations in the users placement of their finger. The algorithm then takes the results of all these comparisons and generates a score that represents how confident the algorithm is that the two templates match.

Once a score is generated the application can check to see if is high enough to consider as a match.

No biometric algorithm is perfect. Algorithms have their accuracy measured by two metrics, the False Accept Rate (FAR) and the False Reject Rate (FRR). As you work to lower the FAR, you inevitably will increase the FRR as the threshold for matching will increase.

like image 157
mageos Avatar answered Sep 17 '22 15:09

mageos