0

I am trying to get the exact feature vector to save each fingerprint values in to the database. By according to the Adafruit library it display only the fingerprint template .But template is different for the same finger and I cannot identify the exact finger by matching from my client software.

Any help for this ? Any algorithm to convert this fingerprint template into feature vector or match each other.

Any method to get the character file (feature vector) from the fingerprint sensor ?

LahiruD
  • 93
  • 1
  • 12

2 Answers2

0

The algorithm for matching templates is unknown; the manufacturers did not release it probably because it's IP. You can't compare byte-by-byte because as you've discovered the generated template isn't always the same for the same finger. If you notice, there's a confidence value as well as different security levels implying there are different criteria for matching prints depending on the system parameters. The best you can probably do is store the templates on your database but use it as a second factor to authenticate users. What I mean is,

  • you can have a user enter some unique ID at a terminal and place their finger as well,
  • your Arduino queries your server with that ID as a key,
  • the server replies with the fingerprint template associated with that ID,
  • the Arduino forwards this template to the module and sends a command to perform a 1:1 match between the template just gotten from your database and the template just generated from the user's finger.
  • If they match, then you know you have the right user. Else, he's an impostor.

Or you can just make do with the local storage on the module and use your server only for assigning IDs during enrollment. If you still want to go ahead to get the character file from the module, you can try the UpChar command in the module's datasheet and see if you have any luck with it.

SoreDakeNoKoto
  • 1,175
  • 1
  • 9
  • 16
  • Hi Thank you for the descriptive answer. I think the supported library in github is not having upchar method declaration. Because as I seemed there are two libraries for adafruit fingerprint sensor. One is ZFM-20 and other one R305 whic I am using. As you said it is better to have a server to detect the values. Do you have any examples for creating a local storage and using it. – LahiruD Oct 01 '16 at 11:42
  • In my case it is about getting the fingerprint template value to the software application and save inside the compute (I assign 1 as ID, take two times and print the fingerprint template in serial and delete ID 1 fingerprint). Then when the scanning mood selection,I am getting the fingerprint template again and saving in the database in computer.So I hope to match it using a pattern matching algorithm.Still I am not found it – LahiruD Oct 01 '16 at 11:48
  • Last I checked there was only one library. The 2 modules are interchangeable. By 'local storage', I meant the internal flash library of the module where the templates are stored by default. You will have to read the datasheet and implement UpChar following the format of the other methods in the library. However, there is already a method and an example for printing a template to the serial port. Check the Adafruit library. – SoreDakeNoKoto Oct 01 '16 at 15:44
  • Yes it is already there.I am using it.But the two fingerprint template values are not same for a same finger .I will try to implement UpChar command.If you have sample implementation of it please put it here. Thank you – LahiruD Oct 02 '16 at 09:48
0

You can get the fingerprint templates using this library https://github.com/hmxmghl/Modified_AdafruitFingerprintSensor_Library

droptop
  • 1,372
  • 13
  • 24