Fingerprint enrollment questions

General information about Neurotechnology and its software

Generic Component

Postby jainrahulsethi » May 23, 2013 05:15

Hi All,

I have an application whose task is to read fingerprint image from a Fingerprint Device and then convert it to Fingerprint ISO FMR. Now I want to make my application independent of the Device i.e. I want that my application should be able to communicate with every Fingerprint Device and extract the ISO FMR from the same. I don't want a Device specific integration (i.e. integrating with Device specific SDKs)

Kindly suggest how can i proceed. Heard something about BioAPI, but I don't have any idea about what exactly it is and even I am not sure whether it will be helpful in my case.

Admin: merged to "Fingerprint enrollment questions"
jainrahulsethi
 
Posts: 5
Joined: May 02, 2013 12:23

Re: Generic Component

Postby Martynas » May 23, 2013 07:50

jainrahulsethi wrote:Hi All,

I have an application whose task is to read fingerprint image from a Fingerprint Device and then convert it to Fingerprint ISO FMR. Now I want to make my application independent of the Device i.e. I want that my application should be able to communicate with every Fingerprint Device and extract the ISO FMR from the same. I don't want a Device specific integration (i.e. integrating with Device specific SDKs)

Kindly suggest how can i proceed. Heard something about BioAPI, but I don't have any idea about what exactly it is and even I am not sure whether it will be helpful in my case.]

Hello,

BioAPI is a framework, which provides the unified API for the biometric work flow. Companies, which support BioAPI, provide modules for the BioAPI framework. Our company provides only modules for fingerprint template extraction and matching for the BioAPI. Finger scanning modules are provided by the manufacturers of the scanners.

In case if you need to avoid scanner manufacturer SDK usage and to be able to capture images from different scanners and then to convert them to ISO templates, then you can consider VeriFinger 6.6 Extended SDK usage. It supports multiple different scanners and is able to convert extracted proprietary template to ISO format template. You can download a 30-day Trial version of the SDK to check if it suits your needs.
Best regards,

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

Which SDK I should choose

Postby amitamit281 » Jun 11, 2013 18:49

Hi,

I am newbie with Neurotec Biometric SDK. I have similar problem. Can you please suggest how to get ridge count between core and delta in VB.net?

Thanks in Advance.

Cheers
Amit

Admin: merged to "Fingerprint enrollment questions"
amitamit281
 
Posts: 1
Joined: Jun 11, 2013 18:39

Re: Which SDK I should choose

Postby Martynas » Jun 12, 2013 07:26

amitamit281 wrote:Hi,

I am newbie with Neurotec Biometric SDK. I have similar problem. Can you please suggest how to get ridge count between core and delta in VB.net?

Thanks in Advance.

Cheers
Amit

Hello,

Ridge count between minutiae can be found by using property MinutiaeNeighbours of the extracted NFRecord.
SDK does not have functionality to calculate the ridges between the core and delta, but there is a workaround, when all minutiae data is removed from template and the core and delta are replaced by minutiae and then the ridges are calculated between them. The sample source code in C# showing how to do that is below.
Code: Select all
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Neurotec.Biometrics;
using Neurotec.Biometrics.Gui;
using Neurotec.Images;
using Neurotec.Licensing;
using Neurotec.IO;

namespace RidgeCounts
{
   class Program
   {
      static void Main(string[] args)
      {
         string components = "Biometrics.FingerExtraction";

         if (args.Length != 1)
         {
            Console.WriteLine(string.Format("Please enter correct path and file name to the image."));
            return;
         }

         try
         {
            if (!NLicense.ObtainComponents("/local", 5000, components))
            {
               Console.WriteLine(string.Format("Could not obtain licenses for components: {0}", components));
               return;
            }

            NImage _image = NImage.FromFile(args[0]);
            NGrayscaleImage _grayscaleImage = _image.ToGrayscale();
            NFExtractor _extractor = new NFExtractor();
            
            if (_grayscaleImage.ResolutionIsAspectRatio
                  || _grayscaleImage.HorzResolution < 250
                  || _grayscaleImage.VertResolution < 250)
            {
               _grayscaleImage.HorzResolution = 500;
               _grayscaleImage.VertResolution = 500;
               _grayscaleImage.ResolutionIsAspectRatio = false;
            }

            NfeExtractionStatus extractionStatus;
               NFRecord record = _extractor.Extract(_grayscaleImage, NFPosition.Unknown, NFImpressionType.LiveScanPlain, out extractionStatus);
               if (extractionStatus == NfeExtractionStatus.TemplateCreated)
               {
                  record.Minutiae.Clear();

                  foreach (NFDelta delta in record.Deltas)
                  {
                     record.Minutiae.Add(new NFMinutia(delta.X, delta.Y, NFMinutiaType.Unknown, delta.Angle1));
                  }
                  record.Deltas.Clear();

                  foreach (NFCore core in record.Cores)
                  {
                     record.Minutiae.Add(new NFMinutia(core.X, core.Y, NFMinutiaType.Unknown, core.Angle));
                  }
                  record.Cores.Clear();

                  _extractor.UpdateTemplate(_grayscaleImage, record);

                  for (int i = 0; i < record.MinutiaeNeighbors[0].Length; i++)
                  {
                     if ((record.MinutiaeNeighbors[0][i].RidgeCount != -1) && (record.MinutiaeNeighbors[0][i].RidgeCount != 255))
                        Console.WriteLine(String.Format("Ridge count: {0}", record.MinutiaeNeighbors[0][i].RidgeCount));
                  }
               }
         }
         catch (Exception ex)
         {
            Console.WriteLine(ex.ToString());
         }
         finally
         {
            NLicense.ReleaseComponents(components);
         }
      }
   }
}
Best regards,

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

FingerTemplates questions

Postby tina » Jun 19, 2013 17:47

In my project, I want to transform NTemplate to ANSI-template. When I use "FMRecordCreateFromNFRecord", it works fine with no error. But "FMRecordSaveToMemory" gives an error code -200.

Is this because I don't have the license of "Biometrics.Standards.FingerTemplates" or something else?

Admin: merged to "Fingerprint enrollment questions"
tina
 
Posts: 3
Joined: Feb 25, 2013 23:59

Re: FingerTemplates questions

Postby Martynas » Jun 20, 2013 07:57

tina wrote:In my project, I want to transform NTemplate to ANSI-template. When I use "FMRecordCreateFromNFRecord", it works fine with no error. But "FMRecordSaveToMemory" gives an error code -200.

Is this because I don't have the license of "Biometrics.Standards.FingerTemplates" or something else?

Hello,

Yes, this is due to missing license for Biometrics.Standards.FingerTemplates component. you need to activate the FingerClient license on the computer, where this functionality will be used.
Best regards,

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

c++ codes for minutiae extraction

Postby shiva » Aug 14, 2013 06:48

hi friends! I need c++ codes for minutiae extraction pls help me

Admin: merged to "Fingerprint enrollment questions"
shiva
 
Posts: 1
Joined: Aug 14, 2013 06:42

Re: c++ codes for minutiae extraction

Postby Martynas » Aug 14, 2013 10:29

shiva wrote:hi friends! I need c++ codes for minutiae extraction pls help me

Hello,

The C++ source code is available in FingerSampleWX sample, which source code is provided in the SDK.
Best regards,

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

Fixing Fingerprint Template Size

Postby Srinivas_VSR » Aug 24, 2013 19:43

Hi,

I have a requirement to fix the fingerprint template size to 800 bytes so that i can encode that into 2d barcode.
Please suggest me how to fix the fingerprint template size.

Srinivas

Admin: merged to "Fingerprint enrollment questions"
Srinivas_VSR
 
Posts: 1
Joined: Aug 24, 2013 19:14

Re: Fixing Fingerprint Template Size

Postby Martynas » Aug 29, 2013 11:34

Srinivas_VSR wrote:Hi,

I have a requirement to fix the fingerprint template size to 800 bytes so that i can encode that into 2d barcode.
Please suggest me how to fix the fingerprint template size.

Srinivas

Hello,

the template size depends on the minutes extracted. so if you need to have a fixed size of the template then it should have a fixed amount of minutiae extracted.
Best regards,

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

VeriFinger SDK

Postby lookingfor » Oct 30, 2013 03:11

Hi all
How can i get processed image (same as VeriFinger demo application). I want to use C API.
Thanks

Admin: merged to "Fingerprint enrollment questions"
lookingfor
 
Posts: 2
Joined: Oct 29, 2013 10:03

Re: VeriFinger SDK

Postby Martynas » Oct 30, 2013 08:32

lookingfor wrote:Hi all
How can i get processed image (same as VeriFinger demo application). I want to use C API.
Thanks

Hello,

you need to set what kind of image will be returned to NFExtractor object.
i.e. if you want to get the barbarized image, then such code should be used.

Code: Select all
        NfeReturnedImage ret = nferiBinarized;
   result = NfeCreate(&extractor);
   result = NObjectSetParameter(extractor, NFEP_RETURNED_IMAGE, &ret);
   result = NfeExtract(extractor, grayscale_image, nfpUnknown, nfitLiveScanPlain, &extractionStatus, &record);


Then the grayscale_image variable will be a binarized image.
Best regards,

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

Re: VeriFinger SDK

Postby lookingfor » Nov 01, 2013 01:51

It"s done, thank you very much.
lookingfor
 
Posts: 2
Joined: Oct 29, 2013 10:03

Verifinger max image size

Postby icoulter » Dec 16, 2013 12:21

Is there a maximum size that Verifinger supports for images? Images from our partners are 750*800 and possibly also need to handle 1000 * 1000?

Other vendors we've seen in the past often limit input size to 512x512 or smaller.

Admin: merged to "Fingerprint enrollment questions"
icoulter
 
Posts: 2
Joined: Sep 03, 2013 10:35

Re: Verifinger max image size

Postby vaidasz » Dec 16, 2013 12:41

icoulter wrote:Is there a maximum size that Verifinger supports for images? Images from our partners are 750*800 and possibly also need to handle 1000 * 1000?

Other vendors we've seen in the past often limit input size to 512x512 or smaller.


Hello,

We do not have any limits for image size. Just make sure that you set the correct resolution (ppi) as the incorrect template will be extracted.
Vaidas Z
Neurotechnology
vaidasz
Neurotechnology
 
Posts: 559
Joined: Apr 30, 2010 06:57
Location: Vilnius, Lithuania

VeriFinger Biometrics.FingerDetection

Postby Kosntantin » Dec 16, 2013 19:33

Ther is an operation in VeriFinger SDK named Biometrics.FingerDetection.
I can see it in samples for Android com.neurotec.samples.licensing.LicensingManager

public static final String LICENSE_FINGER_DETECTION = "Biometrics.FingerDetection";

But I can't find anything in documentation about this feature.

I'm wondering what it is and how to use it. We have important use case where
fingerprint scanning must be started by the finger touch without any other user
activity (e.g. be pressing buttons, clicking mouse etc - generally speaking there
are no buttons and no mouse at all - one passive display and one fingerprint
scanner).

Is is possible in VeriFinger ?

Thanks.

Admin: merged to "Fingerprint enrollment questions"
Kosntantin
 
Posts: 10
Joined: Mar 05, 2013 14:26

Re: VeriFinger Biometrics.FingerDetection

Postby Martynas » Dec 17, 2013 10:43

Kosntantin wrote:Ther is an operation in VeriFinger SDK named Biometrics.FingerDetection.
I can see it in samples for Android com.neurotec.samples.licensing.LicensingManager

public static final String LICENSE_FINGER_DETECTION = "Biometrics.FingerDetection";

But I can't find anything in documentation about this feature.

I'm wondering what it is and how to use it. We have important use case where
fingerprint scanning must be started by the finger touch without any other user
activity (e.g. be pressing buttons, clicking mouse etc - generally speaking there
are no buttons and no mouse at all - one passive display and one fingerprint
scanner).

Is is possible in VeriFinger ?

Thanks.

Hello,

FingerDetection enables the component which allows to detect fingers on the scanned multiple fingerprint images.
In your case if you need to scan the fingerprint of the user without interaction of the user, then the only solution is to capture the fingerprint constantly. For this you will need to implement your application so it would use Capture() method in a loop and take your implemented action once the fingerprint image is returned.
Best regards,

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

Re: VeriFinger Biometrics.FingerDetection

Postby Kosntantin » Dec 17, 2013 14:00

Thanks Martyans.

Unfortunatelly capturing in a loop in my case is not very good
idea since on mobile devices constantly powered on finger scanner
will consume all available battery very quickly.

I'm thinking about device specific features such as "sleep and capture"
when most of the time the finger scanner is in standby mode. And
only if it detects a touch it turns full power and starts scanning.
(for example in upek ET510/ET710 models: btw they provide
SDK to use scanners in android devices in non-rooted mode).

Thanks.
Kosntantin
 
Posts: 10
Joined: Mar 05, 2013 14:26

Re: VeriFinger Biometrics.FingerDetection

Postby Martynas » Dec 17, 2013 14:20

Kosntantin wrote:Thanks Martyans.

Unfortunatelly capturing in a loop in my case is not very good
idea since on mobile devices constantly powered on finger scanner
will consume all available battery very quickly.

I'm thinking about device specific features such as "sleep and capture"
when most of the time the finger scanner is in standby mode. And
only if it detects a touch it turns full power and starts scanning.
(for example in upek ET510/ET710 models: btw they provide
SDK to use scanners in android devices in non-rooted mode).

Thanks.

Hello Kosntantin,

we do not support these upek devices in any of our SDKs, but we do not limit the customer to use it. In such case you can use the SDK of the manufacturer to get the image from the device and pass the scanned image to our SDK functions.
Best regards,

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

Help with BCT ANSI and BCT FMR byte buffers [Finger]

Postby monkeyhandz » Mar 05, 2014 13:26

Hi

Our finger scanners can send templates in the BCT ANSI, or BCT FMR standards. We are using the Java SDK for MegaMatcher 4.5.1.

We receive the template in binary form, in a Java ByteBuffer, how do I go about getting this into a NTemplate format so I can using it for matching.
I thought I should use the following code
Code: Select all
new FMRecord(byteBuffer, BDIFStandard.ANSI)

but this results in the following exception
Code: Select all
java.lang.RuntimeException: FMRecord saved CbeffProductId value is invalid
   at com.neurotec.lang.NResult.checkAll(NResult.java:302)
   at com.neurotec.lang.NResult.raiseError(NResult.java:312)
   at com.neurotec.lang.NResult.check(NResult.java:223)
   at com.neurotec.biometrics.standards.FMRecord.create(FMRecord.java:463)
   at com.neurotec.biometrics.standards.FMRecord.<init>(FMRecord.java:374)
   at com.liquidtelecom.lbg.formats.LoadANSITemplate.tryANSI(LoadANSITemplate.java:76)
   at com.liquidtelecom.lbg.formats.LoadANSITemplate.main(LoadANSITemplate.java:179)
Caused by: com.neurotec.io.NIOException: FMRecord saved CbeffProductId value is invalid
   at com.neurotec.io.IOErrorCreator.create(IOErrorCreator.java:18)
   at com.neurotec.lang.ChainedErrorCreator.create(ChainedErrorCreator.java:20)
   at com.neurotec.lang.NError.get(NError.java:143)
   at com.neurotec.lang.NError.get(NError.java:163)
   at com.neurotec.lang.NError.getLast(NError.java:177)
   at com.neurotec.lang.NResult.checkUnchecked(NResult.java:234)
   ... 6 more


If you want the received template byte data I can send it to you (I wasn't sure if I should post biometrics on this forum).

Kind regards
David Smith

Admin: merged to "Fingerprint enrollment questions"
monkeyhandz
 
Posts: 16
Joined: Jul 21, 2013 19:24

Re: Help with BCT ANSI and BCT FMR byte buffers

Postby Martynas » Mar 05, 2014 13:53

monkeyhandz wrote:Hi

Our finger scanners can send templates in the BCT ANSI, or BCT FMR standards. We are using the Java SDK for MegaMatcher 4.5.1.

We receive the template in binary form, in a Java ByteBuffer, how do I go about getting this into a NTemplate format so I can using it for matching.
I thought I should use the following code
Code: Select all
new FMRecord(byteBuffer, BDIFStandard.ANSI)

but this results in the following exception
Code: Select all
java.lang.RuntimeException: FMRecord saved CbeffProductId value is invalid
   at com.neurotec.lang.NResult.checkAll(NResult.java:302)
   at com.neurotec.lang.NResult.raiseError(NResult.java:312)
   at com.neurotec.lang.NResult.check(NResult.java:223)
   at com.neurotec.biometrics.standards.FMRecord.create(FMRecord.java:463)
   at com.neurotec.biometrics.standards.FMRecord.<init>(FMRecord.java:374)
   at com.liquidtelecom.lbg.formats.LoadANSITemplate.tryANSI(LoadANSITemplate.java:76)
   at com.liquidtelecom.lbg.formats.LoadANSITemplate.main(LoadANSITemplate.java:179)
Caused by: com.neurotec.io.NIOException: FMRecord saved CbeffProductId value is invalid
   at com.neurotec.io.IOErrorCreator.create(IOErrorCreator.java:18)
   at com.neurotec.lang.ChainedErrorCreator.create(ChainedErrorCreator.java:20)
   at com.neurotec.lang.NError.get(NError.java:143)
   at com.neurotec.lang.NError.get(NError.java:163)
   at com.neurotec.lang.NError.getLast(NError.java:177)
   at com.neurotec.lang.NResult.checkUnchecked(NResult.java:234)
   ... 6 more


If you want the received template byte data I can send it to you (I wasn't sure if I should post biometrics on this forum).

Kind regards
David Smith

Hi,

use this code below to avoid the error you are receiving. The SDK also includes the sample "fmrecord-sample" which can be used as reference to code, which would open FMRecords.

Code: Select all
new FMRecord(byteBuffer, BDIFTypes.FLAG_DO_NOT_CHECK_CBEFF_PRODUCT_ID, BDIFStandard.ANSI)
Best regards,

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

Re: Help with BCT ANSI and BCT FMR byte buffers

Postby monkeyhandz » Mar 05, 2014 14:04

Hi

I just saw that and now I'm getting the following exception:
Code: Select all
java.lang.RuntimeException: FmrFingerView saved minutia is invalid
   at com.neurotec.lang.NResult.checkAll(NResult.java:302)
   at com.neurotec.lang.NResult.raiseError(NResult.java:312)
   at com.neurotec.lang.NResult.check(NResult.java:223)
   at com.neurotec.biometrics.standards.FMRecord.create(FMRecord.java:463)
   at com.neurotec.biometrics.standards.FMRecord.<init>(FMRecord.java:384)
   at com.liquidtelecom.lbg.formats.LoadANSITemplate.tryANSI(LoadANSITemplate.java:77)
   at com.liquidtelecom.lbg.formats.LoadANSITemplate.main(LoadANSITemplate.java:181)
Caused by: com.neurotec.io.NIOException: FmrFingerView saved minutia is invalid
   at com.neurotec.io.IOErrorCreator.create(IOErrorCreator.java:18)
   at com.neurotec.lang.ChainedErrorCreator.create(ChainedErrorCreator.java:20)
   at com.neurotec.lang.NError.get(NError.java:143)
   at com.neurotec.lang.NError.get(NError.java:163)
   at com.neurotec.lang.NError.getLast(NError.java:177)
   at com.neurotec.lang.NResult.checkUnchecked(NResult.java:234)
   ... 6 more


It could be that the template is incorrectly formatted. I can send you the template to check, or is there a spec for the Template formats (I'm guessing there is, but I can't seem to find any on google).

Kind regards
David Smith
monkeyhandz
 
Posts: 16
Joined: Jul 21, 2013 19:24

Re: Help with BCT ANSI and BCT FMR byte buffers

Postby Martynas » Mar 05, 2014 14:24

monkeyhandz wrote:Hi

I just saw that and now I'm getting the following exception:
Code: Select all
java.lang.RuntimeException: FmrFingerView saved minutia is invalid
   at com.neurotec.lang.NResult.checkAll(NResult.java:302)
   at com.neurotec.lang.NResult.raiseError(NResult.java:312)
   at com.neurotec.lang.NResult.check(NResult.java:223)
   at com.neurotec.biometrics.standards.FMRecord.create(FMRecord.java:463)
   at com.neurotec.biometrics.standards.FMRecord.<init>(FMRecord.java:384)
   at com.liquidtelecom.lbg.formats.LoadANSITemplate.tryANSI(LoadANSITemplate.java:77)
   at com.liquidtelecom.lbg.formats.LoadANSITemplate.main(LoadANSITemplate.java:181)
Caused by: com.neurotec.io.NIOException: FmrFingerView saved minutia is invalid
   at com.neurotec.io.IOErrorCreator.create(IOErrorCreator.java:18)
   at com.neurotec.lang.ChainedErrorCreator.create(ChainedErrorCreator.java:20)
   at com.neurotec.lang.NError.get(NError.java:143)
   at com.neurotec.lang.NError.get(NError.java:163)
   at com.neurotec.lang.NError.getLast(NError.java:177)
   at com.neurotec.lang.NResult.checkUnchecked(NResult.java:234)
   ... 6 more


It could be that the template is incorrectly formatted. I can send you the template to check, or is there a spec for the Template formats (I'm guessing there is, but I can't seem to find any on google).

Kind regards
David Smith

Hello,

please send your issue detailed description to support@neurotechnology.com along with several such templates.
Best regards,

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

Find a way to compress template of finger [Finger]

Postby Jacen » Apr 14, 2014 17:26

Hi Everyone,
For recently project , we intend to put the finger template into card which only has 4k size memory.But the template i got for one finger is around 6K. Besides other information i want to put in card. maybe the memory for one finger is less 1.5K.

So I just wonder to know is there a way to reduce size of template to make the requirement upon possible?

Thanks

Admin: merged to "Fingerprint enrollment questions"
Jacen
 
Posts: 6
Joined: Apr 14, 2014 17:12

Re: Find a way to compress template of finger

Postby Martynas » Apr 15, 2014 08:34

Jacen wrote:Hi Everyone,
For recently project , we intend to put the finger template into card which only has 4k size memory.But the template i got for one finger is around 6K. Besides other information i want to put in card. maybe the memory for one finger is less 1.5K.

So I just wonder to know is there a way to reduce size of template to make the requirement upon possible?

Thanks

Hello,

if you are using flat fingerprint images and your extracted template is approx. of 6 KB size, then you are extracting the Large template. it is possible to set that the extracted fingerprint template would be of the Small size, then the size of the fingerprint template should be approx. 1 KB.
If even smaller size fo the template is needed then it is possible to convert the Neurotechnology template to ISO/IEC 19794-2:2005 Compact or Normal Card template, which will use even less amount of memory, but conversion to this format will loose some information from Neurotechnology proprietary template and usage of such templates will result in lower matching accuracy.
Best regards,

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

Error Feature Extraction Failed (QualityCheckFailed)

Postby edjogu » Apr 23, 2014 20:40

Hi.
when trying to register the fingerprints of a client, the application displays the following message:
Code: Select all
Feature Extraction Failed (QualityCheckFailed)

But while trying to register the fingerprints of another client, successfully registers fingerprints.
What could happen?
This is the code:
Code: Select all
try
            {
                if (request.Image == null)
                    throw (new Exception("fingerprint image is not defined"));

                ObtainLicense(request.LicenseServiceAddress, request.LicenseServicePort, FeatureExtractionLicense);

                extractor = new NFExtractor();

                record = extractor.Extract(request.Image, NFPosition.Unknown, NFImpressionType.Unknown, out extractionStatus);
                if (extractionStatus != NfeExtractionStatus.TemplateCreated)               
                    throw( new Exception(string.Format("feature extraction failed ( {0} )", extractionStatus)));               
            }
            catch (Exception exp)
            {
                throw (new Exception(exp.Message));
            }
            finally
            {
                if (extractor != null)
                    extractor.Dispose();
            }

            return (record);

Thanks in advance.

Admin: merged to "Fingerprint enrollment questions"
edjogu
 
Posts: 11
Joined: Jan 20, 2014 00:57

ReURGENTE: Error Feature Extraction Failed (QualityCheckFail

Postby edjogu » Apr 24, 2014 14:28

Hi.
when trying to register the fingerprints of a client, the application displays the following message:
feature extraction failed(QualityCheckFailed)
But while trying to register the fingerprints of another client, successfully registers fingerprints.
What could happen?
This is the code:
Code: Select all
try
            {
                if (request.Image == null)
                    throw (new Exception("fingerprint image is not defined"));

                ObtainLicense(request.LicenseServiceAddress, request.LicenseServicePort, FeatureExtractionLicense);

                extractor = new NFExtractor();

                record = extractor.Extract(request.Image, NFPosition.Unknown, NFImpressionType.Unknown, out extractionStatus);
                if (extractionStatus != NfeExtractionStatus.TemplateCreated)               
                    throw( new Exception(string.Format("feature extraction failed ( {0} )", extractionStatus)));               
            }
            catch (Exception exp)
            {
                throw (new Exception(exp.Message));
            }
            finally
            {
                if (extractor != null)
                    extractor.Dispose();
            }

            return (record);

Thanks in advance.
edjogu
 
Posts: 11
Joined: Jan 20, 2014 00:57

Re: Error Feature Extraction Failed (QualityCheckFailed)

Postby Martynas » Apr 28, 2014 11:54

edjogu wrote:Hi.
when trying to register the fingerprints of a client, the application displays the following message:
feature extraction failed(QualityCheckFailed)
But while trying to register the fingerprints of another client, successfully registers fingerprints.
What could happen?
This is the code:
Code: Select all
try
            {
                if (request.Image == null)
                    throw (new Exception("fingerprint image is not defined"));

                ObtainLicense(request.LicenseServiceAddress, request.LicenseServicePort, FeatureExtractionLicense);

                extractor = new NFExtractor();

                record = extractor.Extract(request.Image, NFPosition.Unknown, NFImpressionType.Unknown, out extractionStatus);
                if (extractionStatus != NfeExtractionStatus.TemplateCreated)               
                    throw( new Exception(string.Format("feature extraction failed ( {0} )", extractionStatus)));               
            }
            catch (Exception exp)
            {
                throw (new Exception(exp.Message));
            }
            finally
            {
                if (extractor != null)
                    extractor.Dispose();
            }

            return (record);

Thanks in advance.

Hello,

the fingerprint quality is checked during the extraction of the template. If the quality does not pass the set Quality threshold, then the error message is shown. You can set the lower quality threshold, but it is not recommended to use fingeprints, which has low quality, as it leads to false minutiae extraction and this leads to inaccurate matching results.
Best regards,

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

Create template from image or finger

Postby guilespi » May 10, 2014 16:50

I"m using a two-finger scanner, but want to create separate templates for each finger.

The problem is BiometricClient creates templates from Subjects and not from fingers nor images.

What"s the proper way to create separate templates for each of the subject"s fingers?

This is because I"m expecting to enroll with two fingers but use only one finger for identification/verification later on, and only ask for the second finger if needed, I"m assuming storing separate templates for each finger is best given that scenario.

Is this the proper approach?

Thanks

Admin: merged to "Fingerprint enrollment questions"
guilespi
 
Posts: 11
Joined: Apr 29, 2014 02:56

Set Minimum Minutia Count in C++

Postby nurzico » May 11, 2014 12:36

I have low quality fingerprints so i have to set minimum minutia count manually before extracting fingerprint.
In Java i can set it easily. But in C++ i can"t it.
Help me please

Admin: merged to "Fingerprint enrollment questions"
nurzico
 
Posts: 25
Joined: Sep 25, 2013 07:36

Re: Create template from image or finger

Postby Martynas » May 13, 2014 06:51

guilespi wrote:I"m using a two-finger scanner, but want to create separate templates for each finger.

The problem is BiometricClient creates templates from Subjects and not from fingers nor images.

What"s the proper way to create separate templates for each of the subject"s fingers?

This is because I"m expecting to enroll with two fingers but use only one finger for identification/verification later on, and only ask for the second finger if needed, I"m assuming storing separate templates for each finger is best given that scenario.

Is this the proper approach?

Thanks

Hello,

the correct approach is to create the single template with multiple fingers in it and enroll it into the database.
Best regards,

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

Re: Set Minimum Minutia Count in C++

Postby Martynas » May 13, 2014 06:59

nurzico wrote:I have low quality fingerprints so i have to set minimum minutia count manually before extracting fingerprint.
In Java i can set it easily. But in C++ i can"t it.
Help me please

Hi,

use function NObjectSetParameter. i.e. NObjectSetParameter(extractor, NFEP_MIN_MINUTIA_COUNT, &minutiaeCount);

Do not use low quality images, as they will result in low matching accuracy.
Best regards,

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

Minutiae extraction

Postby jin_zhe » May 13, 2014 07:09

Dear Consultant

Under the new version of Neurotec Biometric 5.0 SDK Trial, is there any samples code for C# provided to extraction minutiae?

thanks

Admin: merged to "Fingerprint enrollment questions"
jin_zhe
 
Posts: 11
Joined: Oct 07, 2009 08:14

Re: Minutiae extraction

Postby Martynas » May 13, 2014 07:13

jin_zhe wrote:Dear Consultant

Under the new version of Neurotec Biometric 5.0 SDK Trial, is there any samples code for C# provided to extraction minutiae?

thanks

Hello,

yes, there is such code. As usually all available tutorials are provided in SDKs "tutorials" folder. The tutorial "EnrollFingerFromImage" shows how to extract the template.
The tutorial "ShowTemplateContent" shows how to view the content of the extracted template.
Best regards,

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

Re: Minutiae extraction

Postby jin_zhe » May 13, 2014 09:04

Martynas wrote:Hello,

yes, there is such code. As usually all available tutorials are provided in SDKs "tutorials" folder. The tutorial "EnrollFingerFromImage" shows how to extract the template.
The tutorial "ShowTemplateContent" shows how to view the content of the extracted template.



Thanks Marynas,

Another problem followed that once we perform creation of fingerprint template like "_biometricClient.BeginCreateTemplate(_subject, OnExtractionCompleted, null);" how can we retrieve the template (i.e. NTemplate)? I did this "var template = _subject.GetTemplate();" but it seems not work.

pls help on this.

thanks
jin_zhe
 
Posts: 11
Joined: Oct 07, 2009 08:14

Re: Minutiae extraction

Postby Martynas » May 13, 2014 09:12

jin_zhe wrote:Thanks Marynas,

Another problem followed that once we perform creation of fingerprint template like "_biometricClient.BeginCreateTemplate(_subject, OnExtractionCompleted, null);" how can we retrieve the template (i.e. NTemplate)? I did this "var template = _subject.GetTemplate();" but it seems not work.

pls help on this.

thanks

Hi,

isn't the tutorial working?
It should save the template too.
Best regards,

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

Re: Minutiae extraction

Postby jin_zhe » May 13, 2014 10:09

Martynas wrote:Hi,

isn't the tutorial working?
It should save the template too.



Dear Martynas,

The problem is that after we perform template extraction using tutorial "EnrollFingerFromImage", we cannot retrieve the template (of course minutiae also cannot be extracted). Noted that we use such statement to create template "_biometricClient.BeginCreateTemplate(_subject, OnExtractionCompleted, null);"

after that, we think that we can retrieve the template using "template = _subject.GetTemplate();"
is _subject.GetTemplate() correct way to get template? if not please point out which function is to get template?

by the way, in tutorial "ShowTemplateContent" only show the template load from a file, which is not our situation.

thanks
jin_zhe
 
Posts: 11
Joined: Oct 07, 2009 08:14

Re: Minutiae extraction

Postby Martynas » May 13, 2014 11:06

Hi,

jin_zhe wrote:The problem is that after we perform template extraction using tutorial "EnrollFingerFromImage", we cannot retrieve the template (of course minutiae also cannot be extracted).


What message is shown in the "EnrollFingerFromImage" tutorials output? Is it "Template extracted" or "Extraction failed"?

jin_zhe wrote:Noted that we use such statement to create template "_biometricClient.BeginCreateTemplate(_subject, OnExtractionCompleted, null);"
after that, we think that we can retrieve the template using "template = _subject.GetTemplate();"
is _subject.GetTemplate() correct way to get template? if not please point out which function is to get template?


NSubject.GetTemplate returns the NTemplate, NSubject.GetTemplateBuffer returns the NBuffer with the template.
Questions is when are you using this method: straight after BeginCreateTemplate was called, or in OnExtractionCompleted method?

jin_zhe wrote:by the way, in tutorial "ShowTemplateContent" only show the template load from a file, which is not our situation.


All our provided samples and tutorials are working with templates saved as files. But you always can load the NTemplate from memory too. Please take a look at the documentation of the SDK, section "9.2.2.1.50 NTemplate Class", where all constructors of the NTemplate are shown.
Best regards,

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

Re: Create template from image or finger

Postby guilespi » May 13, 2014 13:05

Can you please explain why and how does it work?

If I have a multi-finger template, will a single finger match against this template in a verification or identification phase?

Thanks
guilespi
 
Posts: 11
Joined: Apr 29, 2014 02:56

Re: Create template from image or finger

Postby Martynas » May 13, 2014 13:22

Hello,

guilespi wrote:Can you please explain why


Actually it is your choice, but in our opinion it much better to have a dtaabse, where each record has unique identifier, then to have the database will have multiple records with same identifiers, as separate records for each finger will be enrolled.

if the gallery (database) has multifinger templates, and if the probe (query) template has only one finger, then during matching (verification/identification) the probe finger will be matched with each finger in multifinger template, if the probe finger position is not known. If the position of the probe finger is known, then it will use only these fingers for matching from the gallery template, which have the same finger position or the position is unknown.
Best regards,

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

Re: Create template from image or finger

Postby guilespi » May 13, 2014 13:29

Martynas wrote:Actually it is your choice, but in our opinion it much better to have a dtaabse, where each record has unique identifier, then to have the database will have multiple records with same identifiers, as separate records for each finger will be enrolled.

if the gallery (database) has multifinger templates, and if the probe (query) template has only one finger, then during matching (verification/identification) the probe finger will be matched with each finger in multifinger template, if the probe finger position is not known. If the position of the probe finger is known, then it will use only these fingers for matching from the gallery template, which have the same finger position or the position is unknown.

Great, point taken.

We were thinking about enrolling the thumb separately anyway, but clearly having a template with all the fingers is better if selective matching is possible.

Thanks!
guilespi
 
Posts: 11
Joined: Apr 29, 2014 02:56

ISO template

Postby nurzico » Jun 17, 2014 10:26

Is it possible to make an ISO complaint template just using Fingerprint Client license? If yes then how?

Admin: merged to "Fingerprint enrollment questions"
nurzico
 
Posts: 25
Joined: Sep 25, 2013 07:36

Re: ISO template

Postby Martynas » Jun 17, 2014 10:54

nurzico wrote:Is it possible to make an ISO complaint template just using Fingerprint Client license? If yes then how?

Hello,

yes, it is possible. First of all you need to extract the NTemplate, then convert it to FMRecord (ISO template).
Take a look at EnrollFingerFromImage and NTemplateToFMRecord tutorials.
Best regards,

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

Re: ISO template

Postby nurzico » Jun 17, 2014 12:13

Thanks Martynas :)
nurzico
 
Posts: 25
Joined: Sep 25, 2013 07:36

Re: Fingerprint enrollment questions

Postby Tritglorlee » Jun 30, 2014 02:40

Srinivas_VSR wrote:Hi,

I have a requirement to fix the fingerprint template size to 800 bytes so that i can encode that into 2d barcode.
Please suggest me how to fix the fingerprint template size.

Srinivas

as long as we can fix the fingerprint template size to bytes values, we can encode that into 2d barcode by implementing a barcode creating application within .net application.
Tritglorlee
 
Posts: 1
Joined: Jun 30, 2014 02:28

Re: Fingerprint enrollment questions

Postby Martynas » Jul 02, 2014 09:51

Hello,

please write an email to support@neurotechnology.com.
Best regards,

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

ISO/IEC 19794-2:2005 format

Postby YudhiPrabowo » Jul 16, 2014 03:42

SO/IEC 19794-2:2005 describe 3 kinds of fingerprint template format : record, normal, and compact format

I have Neurotec Biometric SDK v4.3. Bought it +- 1-2 years ago.
I have searching from PDF documentation, there is class named FMCard. In the manual, it written like this "Provides functionalty for converting ISO/IEC19794-2:2005 card format standard templates to and from Neurotechnology Finger Records (NFRecords)

What "ISO/IEC19794-2:2005 card format standard templates" means? is it normal format? is Neurotec SDK support all format (record, normal, and compact)?
Is there any sample code for learning about ISO 19794-2 format?

Thank you

Admin: merged to "Fingerprint enrollment questions"
YudhiPrabowo
 
Posts: 2
Joined: Jul 16, 2014 03:16

Re: ISO/IEC 19794-2:2005 format

Postby vaidasz » Jul 16, 2014 12:02

Hello,

YudhiPrabowo wrote:I have Neurotec Biometric SDK v4.3. Bought it +- 1-2 years ago.

If you are developing a new application, I would strongly recommend to update the SDK to Neuroetc Biometric 5.0 SDK. Please note, that the API has significantly changed.
If you are upgrading your application I would also recommend to update the SDK to Neurotec Biometric 4.5 SDK. The API in this version has not changed. You might make some slight modifications in your source code if you decide to do upgrade.
The SDK could be upgraded using download link and password provided to you when you purchased the SDK.

YudhiPrabowo wrote:I have searching from PDF documentation, there is class named FMCard. In the manual, it written like this "Provides functionalty for converting ISO/IEC19794-2:2005 card format standard templates to and from Neurotechnology Finger Records (NFRecords)

What "ISO/IEC19794-2:2005 card format standard templates" means? is it normal format? is Neurotec SDK support all format (record, normal, and compact)?
Is there any sample code for learning about ISO 19794-2 format?


Our SDK support all 3 formats: Fingerprint Minutiae Format (FMREcord), Fingerprint Card Format (FMCard Normal) and Compact Fingerprint Card Format (FMCard Compact).
How to convert from/to NTemplate to/from FMRecord it is shown in tutorials provided with SDK:
Neurotec_Biometric_5_0_SDK\Tutorials\BiometricStandards\CS\FMRecordToNTemplateCS
Neurotec_Biometric_5_0_SDK\Tutorials\BiometricStandards\CS\NTemplateToFMRecordCS
To convert NTemplate to FMCard Compact/Normal size use the following code:
Code: Select all
FMCard.writeCompactSizeMinutiae(nfRecord, fMCMinutiaOrder)
FMCard.writeNormalSizeMinutiae(nfRecord, fMCMinutiaOrder)

Where nFRecord is NFRecord and fMCMinutiaOrder (for example) FMCMinutiaOrder.NONE.
Vaidas Z
Neurotechnology
vaidasz
Neurotechnology
 
Posts: 559
Joined: Apr 30, 2010 06:57
Location: Vilnius, Lithuania

Doubts about template conversion

Postby Daniel » Jul 30, 2014 14:49

Hi all,

Recently i've started to allow template standard formats and now i have some doubts with what the conversion tools can and can't do.

First of all, my application is made in Java and the tutorials and examples I'm following are the Java projects.

As we can see in the tutorials, we can do these operations:

  • Convert directly from NFRecord to FMRecord and vice versa.
  • Convert from NTemplate to ANTemplate and vice versa.
  • Get a NImage from an ANTemplate.
  • Get an image collection of eyes, faces or/and fingers from IIRecord, FCRecord or FIRecord objects; convert each one into NImage and NGrayscaleImage and finally compose a NTemplate Object, extracting the records from the NGrayscaleImage objects.
  • Extract an IIRecord, FCRecord or FIRecord directly from a NImage.
I've already implemented most of that features (Except operations with ANTemplate), and If I don't leave nothing on the way, my questions are:

Can I get an image collection from an NFRecord (for example) and get NImage objects using the images contained in the collection?

Can I obtain directly IIRecord, FCRecord, FIRecord objects from a NTemplate (or any NT record object)?

P.S. I don't know if there was another opened thread to make this questions, sorry if I've opened a second thread with the same kind of issue

Admin: merged to "Fingerprint enrollment questions"
Daniel Gómez
Umanick Technologies S.L.
http://about.me/thelhonir
Daniel
 
Posts: 4
Joined: Jul 04, 2013 10:55
Location: Spain

Re: Doubts about template conversion

Postby Martynas » Jul 31, 2014 09:22

Hello,

Daniel wrote:Can I get an image collection from an NFRecord (for example) and get NImage objects using the images contained in the collection?


It is not possible to retrieve the image from the template (NTemplate/NFRecord) as the image is not saved in it.

Daniel wrote:Can I obtain directly IIRecord, FCRecord, FIRecord objects from a NTemplate (or any NT record object)?


Due to same reason mentioned above it is not possible to create the IIRecord, FCRecord, FIRecord from NTemplate. IIRecord, FCRecord, FIRecord contains images, while NTemplate do not.
Best regards,

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

PreviousNext

Return to Public

Who is online

Users browsing this forum: No registered users and 2 guests

cron