Finger Template Quality

General information about Neurotechnology and its software

Finger Template Quality

Postby cohnjarmack » Jun 05, 2017 12:53

Hi,

What is the exact value to be passed to setFingersQualityThreshold to ensure bad quality finger prints are not used?

I am using this SDK - Neurotec_Biometric_9_0_SDK_Trial,

and this is the code:

Code: Select all
        NSubject subject = new NSubject();
        NFinger finger = new NFinger();
        finger.setImage(image);
        subject.getFingers().add(finger);
        NBiometricStatus status = biometricClient.createTemplate(subject);
        if (status == NBiometricStatus.OK && subject.) {
            return Base64.encodeToString(subject.getTemplate().save().toByteArray(), Base64.DEFAULT);
        }


And the biometric client is initialized and the threshold is set as

Code: Select all
        NBiometricClient biometricClient = new NBiometricClient();
        biometricClient.setMatchingThreshold(24);
        biometricClient.setFingersMatchingSpeed(NMatchingSpeed.LOW);
        biometricClient.setFingersMaximalRotation(180);
        biometricClient.setFingersQualityThreshold((byte)80);
        biometricClient.initialize();


So the two questions I have are
1. What is the correct value for Finger quality threshold and what is the behaviour when it is not met? Also what is the range for this value?
2. Is there any way to get the quality of the template returned from biometricClient.createTemplate()?

Thanks!
Cohn
cohnjarmack
 
Posts: 17
Joined: May 26, 2017 10:46

Re: Finger Template Quality

Postby Martynas » Jun 06, 2017 07:09

Hello,

cohnjarmack wrote:1. What is the correct value for Finger quality threshold and what is the behaviour when it is not met? Also what is the range for this value?


We do not recommend to use finger templates, which quality is lower than 80, as lower quality templates will result in lower matching accuracy too.
The range of the Quality is from 0 to 100. If during extraction the quality value of the template will be lower than the threshold, then the "Bad Quality" status will be returned and template will not be extracted.

cohnjarmack wrote:2. Is there any way to get the quality of the template returned from biometricClient.createTemplate()?


Code: Select all
         for (NFRecord nfRec : subject.getTemplate().getFingers().getRecords()) {
            nfRec.getQuality();
         }
Best regards,

Martynas
Software Consultant
Neurotechnology
Martynas
Neurotechnology
 
Posts: 2192
Joined: Sep 19, 2008 10:02
Location: Vilnius, Lithuania

Re: Finger Template Quality

Postby cohnjarmack » Jun 06, 2017 10:23

Thanks for the answer. I tried doing that but I always get the quality as the number 254, even if I pass a blank image to the biometricClient. Is there some other setting which is required to enable this feature?
cohnjarmack
 
Posts: 17
Joined: May 26, 2017 10:46

Re: Finger Template Quality

Postby Martynas » Jun 06, 2017 11:32

Hi,

quality result as 254 means that the quality was not calculated at all.
Do you use this application on Android or ARM Linux device? If yes, then use such code biometricClient.setFingersFastExtraction(false); before template extraction.
If your application is for PC, then please check your code if you are not setting the biometricClient.setFingersFastExtraction with true value.
This parameter extracts the template without quality checking and without some other additional information. This allows to extract templates a little bit faster, but a bit different algorithm is used for extraction and such templates are not recommended to be used in large database, but rather recommended for tiny database, which will be used locally on the Android and/or ARM Linux devices. The accuracy of such templates are lower, then normal templates accuracy.
Best regards,

Martynas
Software Consultant
Neurotechnology
Martynas
Neurotechnology
 
Posts: 2192
Joined: Sep 19, 2008 10:02
Location: Vilnius, Lithuania

Re: Finger Template Quality

Postby cohnjarmack » Jun 06, 2017 12:23

Yes, it was on an Android device. That option increased the extraction time from ~800 ms to 1200 ms, but it did the trick. Will use the slower extraction algorithm then.

Thanks.
cohnjarmack
 
Posts: 17
Joined: May 26, 2017 10:46

Re: Finger Template Quality

Postby cohnjarmack » Jun 06, 2017 13:05

One more question though: If I use the slower algorithm for extraction and faster algorithm for identify task, will it be a problem? identify is an operation performed often, so the 500 ms saved there is valuable. Registration should check for finger quality, so will keep that as the slow algorithm.
cohnjarmack
 
Posts: 17
Joined: May 26, 2017 10:46

Re: Finger Template Quality

Postby Martynas » Jun 06, 2017 13:12

Hello,

if you want better matching (identifcation) accuracy, then do not use setFastFingerExtraction(true) at all.
Best regards,

Martynas
Software Consultant
Neurotechnology
Martynas
Neurotechnology
 
Posts: 2192
Joined: Sep 19, 2008 10:02
Location: Vilnius, Lithuania

Re: Finger Template Quality

Postby cohnjarmack » Jun 07, 2017 04:03

Looking at a 1% FAR. What would it be with the fast algorithm?
cohnjarmack
 
Posts: 17
Joined: May 26, 2017 10:46

Re: Finger Template Quality

Postby Martynas » Jun 07, 2017 05:58

Hi,

the accuracy will be lower than in normal algorithm case.
As it was written previously - do not use FastFingerExtraction at all, unless your database is very small or you are planing to use the verification on the Android device.
Best regards,

Martynas
Software Consultant
Neurotechnology
Martynas
Neurotechnology
 
Posts: 2192
Joined: Sep 19, 2008 10:02
Location: Vilnius, Lithuania

Re: Finger Template Quality

Postby cohnjarmack » Jun 08, 2017 06:11

Thanks, we will be comparing it locally on an Android device with only about 200 templates, so I think it should work for us. Will experiment and check.
cohnjarmack
 
Posts: 17
Joined: May 26, 2017 10:46


Return to Public

Who is online

Users browsing this forum: Bing [Bot] and 2 guests