VeriFinger SDK 10.0 extract feature problems

General information about Neurotechnology and its software

VeriFinger SDK 10.0 extract feature problems

Postby swmun » May 30, 2018 05:51

Hello,
i have some problems with Qt arm 4.8 and VeriFinger SDK 10.0, FingerExtraction

1) extract feature from greyscale 256 color single finger raw image
image width [280] height [320] h_res [0.000000] v_res [0.000000]
image width [280] height [320] h_res [22.000000] v_res [22.000000]
NError[104]: [TID: 1073884128] (-10) Invalid sample resolution

Why did not change image resolution??
i tested identical operation in windows written c#. it works well.
Code: Select all
            try
            {
                NBuffer buffer(rawBytes, width*height);
                NImage image = NImage::FromData(NPF_GRAYSCALE_8U, width, width, height, width, buffer, 0, 0, width, height);
                qDebug("image width [%d] height [%d] h_res [%f] v_res [%f]
", image.GetWidth(), image.GetHeight(), image.GetHorzResolution(), image.GetVertResolution());
                image.SetResolutionIsAspectRatio(false);
                image.SetHorzResolution(500);
                image.SetVertResolution(500);
                qDebug("image width [%d] height [%d] h_res [%f] v_res [%f]
", image.GetWidth(), image.GetHeight(), image.GetHorzResolution(), image.GetVertResolution());

                NFinger finger;
                NSubject subject;
                finger.SetImage(image);
                subject.GetFingers().Add(finger);

                NBiometricStatus status = nbsInternalError;
                status = _biometricClient.CreateTemplate(subject);
                if (status == nbsOk)
                {
                    qDebug("Template extracted [%d]
", subject.GetTemplateBuffer().GetSize());
                }
                else
                {
                    qDebug("Template extracting fail [%d]
", status);
                }
            }
            catch (NError& ex)
            {
                ret = LastError(ex);
                qDebug("[%s] exception [%d] last error [%d]", __func__, ex.GetCode(), ret);
            }


2) extract feature from bmp file (500dpi)
image width [280] height [320] h_res [500.000000] v_res [500.000000]
image width [280] height [320] h_res [500.000000] v_res [500.000000]
NError[104]: [TID: 1073884128] (-200) Operation is not activated

i have internet license include finger extraction, mathing components in arm linux.
i confirmed connect to license server twice on application startup.
"Operation is not activated" is license error??
Code: Select all
            try
            {
                NImage image = NImage::FromFile(fn, NImageFormat::GetBmp(), 0, NULL);
                qDebug("image width [%d] height [%d] h_res [%f] v_res [%f]
", image.GetWidth(), image.GetHeight(), image.GetHorzResolution(), image.GetVertResolution());
                image.SetResolutionIsAspectRatio(false);
                if (image.GetHorzResolution() < 250)
                {
                    image.SetHorzResolution(500);
                }
                if (image.GetVertResolution() < 250)
                {
                    image.SetVertResolution(500);
                }
                qDebug("image width [%d] height [%d] h_res [%f] v_res [%f]
", image.GetWidth(), image.GetHeight(), image.GetHorzResolution(), image.GetVertResolution());

                NFinger finger;
                NSubject subject;
                finger.SetImage(image);
                subject.GetFingers().Add(finger);

                NBiometricStatus status = nbsInternalError;

                status = _biometricClient.CreateTemplate(subject);
                if (status == nbsOk)
                {
                    qDebug("Template extracted [%d]
", subject.GetTemplateBuffer().GetSize());
                }
                else
                {
                    qDebug("Template extracting fail [%d]
", status);
                }
            }
            catch (NError& ex)
            {
                ret = LastError(ex);
                qDebug("[%s] exception [%d] last error [%d]", __func__, ex.GetCode(), ret);
            }
swmun
 
Posts: 3
Joined: May 30, 2018 02:48

Re: VeriFinger SDK 10.0 extract feature problems

Postby MartynasV » May 30, 2018 15:11

Hello,
1) extract feature from greyscale 256 color single finger raw image
image width [280] height [320] h_res [0.000000] v_res [0.000000]
image width [280] height [320] h_res [22.000000] v_res [22.000000]
NError[104]: [TID: 1073884128] (-10) Invalid sample resolution

Minimal resolution is 250 vertical and 250 horizontal and you used 0 and 22.

2) extract feature from bmp file (500dpi)
image width [280] height [320] h_res [500.000000] v_res [500.000000]
image width [280] height [320] h_res [500.000000] v_res [500.000000]
NError[104]: [TID: 1073884128] (-200) Operation is not activated

Have you obtained those licenses in code before performing those operations?
If yes, then generate diagnostics via Activation Wizard and send it to support@neurotechnology.com with issue description.
Martynas V
Neurotechnology
MartynasV
Neurotechnology
 
Posts: 356
Joined: Feb 27, 2015 11:24
Location: Vilnius, Lithuania

Re: VeriFinger SDK 10.0 extract feature problems

Postby swmun » May 31, 2018 00:12

thanks for your reply.

but, You do not know what the problem is.

I wonder why it works differently in same library routines.

- Qt4.8 Arm linux
image width [280] height [320] h_res [0.000000] v_res [0.000000]
image width [280] height [320] h_res [22.000000] v_res [22.000000] => resolution change failed
NError[104]: [TID: 1073884128] (-10) Invalid sample resolution
Code: Select all
NBuffer buffer(rawBytes, width*height);
   NImage image = NImage::FromData(NPF_GRAYSCALE_8U, width, width, height, width, buffer, 0, 0, width, height);
   qDebug("image width [%d] height [%d] h_res [%f] v_res [%f]
", image.GetWidth(), image.GetHeight(), image.GetHorzResolution(), image.GetVertResolution());
   image.SetResolutionIsAspectRatio(false);
   image.SetHorzResolution(500);
   image.SetVertResolution(500);
   qDebug("image width [%d] height [%d] h_res [%f] v_res [%f]
", image.GetWidth(), image.GetHeight(), image.GetHorzResolution(), image.GetVertResolution());


- Windows10 C#
below code works well.
Code: Select all
Neurotec.IO.NBuffer buffer = new IO.NBuffer(rawBytes);
_image = NImage.FromData(NPixelFormat.Grayscale8U, 280, 280 , 320, 280, buffer, 0, 0, 280, 320);
_image.HorzResolution = 512;
_image.VertResolution = 512;

var _subjectFinger = new NFinger { Image = _image };
var _subject = new NSubject();
_subject.Fingers.Add(_subjectFinger);

NBiometricStatus status = NBiometricStatus.InternalError;
try
{
   status = await _biometricClient.CreateTemplateAsync(_subject);
   if (status != NBiometricStatus.Ok)
   {
      MessageBox.Show(string.Format(@"Extraction failed. Status: {0}", status), Text, MessageBoxButtons.OK);
   }
}
catch (Exception ex)
{
   Utils.ShowException(ex);
}
swmun
 
Posts: 3
Joined: May 30, 2018 02:48

Re: VeriFinger SDK 10.0 extract feature problems

Postby swmun » May 31, 2018 00:27

- Internet license activation problem (Arm linux, Qt 4.8)

Code: Select all
NString licStr = NFile::ReadAllText(N_T("/approot/license.lic"));
NLicense::Add(licStr);
bExtractorActivated = NLicense::ObtainComponents(N_T("/local"), N_T("5000"), N_T("Biometrics.FingerExtraction"));
bMatcherActivated = NLicense::ObtainComponents(N_T("/local"), N_T("5000"), N_T("Biometrics.FingerMatching"));

std::cout << "Finger Extractor activated [" << bExtractorActivated <<"]" << std::endl;
std::cout << "Finger Matcher activated [" << bMatcherActivated <<"]" << std::endl;


case 1. After 30 minutes (guess) from the last application start up time
1) Application down, Network down, System reset
2) Boot Complete, Application up, Network up
3) Check license
Result :
Finger Extractor activated [1]
Finger Matcher activated [1]

case 2. Within 30 minutes (guess) from the last application start up time
1) Application down, Network down, System reset
2) Boot Complete, Application up, Network up
3) Check license
Result :
Finger Extractor activated [0]
Finger Matcher activated [0]
Core/ErrorSuppressed Error: -1 : None of provided license files have NCheck license, No license instances left: FingerExtractor, None of provided license files have FingerFastExtractor license, None of provided license files have FingerClient license, None of provided license files have ABISClient license
Core/ErrorSuppressed Error: -1 : None of provided license files have NCheck license, No license instances left: FingerExtractor, None of provided license files have FingerFastExtractor license, None of provided license files have FingerClient license, None of provided license files have ABISClient license, No license instances left: FingerMatcher, None of provided license files have FingerFastMatcher license, None of provided license files have requested license, None of provided license files have requested license, None of provided license files have requested license, None of provided license files have requested license, None of provided license files have requested license, None of provided license files have requested license, None of provided license files have requested license, None of provided license files have requested license
swmun
 
Posts: 3
Joined: May 30, 2018 02:48

Re: VeriFinger SDK 10.0 extract feature problems

Postby MartynasV » Jun 12, 2018 14:33

swmun wrote:thanks for your reply.

but, You do not know what the problem is.

I wonder why it works differently in same library routines.

- Qt4.8 Arm linux
image width [280] height [320] h_res [0.000000] v_res [0.000000]
image width [280] height [320] h_res [22.000000] v_res [22.000000] => resolution change failed
NError[104]: [TID: 1073884128] (-10) Invalid sample resolution
Code: Select all
NBuffer buffer(rawBytes, width*height);
   NImage image = NImage::FromData(NPF_GRAYSCALE_8U, width, width, height, width, buffer, 0, 0, width, height);
   qDebug("image width [%d] height [%d] h_res [%f] v_res [%f]
", image.GetWidth(), image.GetHeight(), image.GetHorzResolution(), image.GetVertResolution());
   image.SetResolutionIsAspectRatio(false);
   image.SetHorzResolution(500);
   image.SetVertResolution(500);
   qDebug("image width [%d] height [%d] h_res [%f] v_res [%f]
", image.GetWidth(), image.GetHeight(), image.GetHorzResolution(), image.GetVertResolution());


- Windows10 C#
below code works well.
Code: Select all
Neurotec.IO.NBuffer buffer = new IO.NBuffer(rawBytes);
_image = NImage.FromData(NPixelFormat.Grayscale8U, 280, 280 , 320, 280, buffer, 0, 0, 280, 320);
_image.HorzResolution = 512;
_image.VertResolution = 512;

var _subjectFinger = new NFinger { Image = _image };
var _subject = new NSubject();
_subject.Fingers.Add(_subjectFinger);

NBiometricStatus status = NBiometricStatus.InternalError;
try
{
   status = await _biometricClient.CreateTemplateAsync(_subject);
   if (status != NBiometricStatus.Ok)
   {
      MessageBox.Show(string.Format(@"Extraction failed. Status: {0}", status), Text, MessageBoxButtons.OK);
   }
}
catch (Exception ex)
{
   Utils.ShowException(ex);
}

Hello,

Does the same C++ code work on Windows?
Please provide SDK revision number(can be found in SDK root directory, in Revision.txt file).
Martynas V
Neurotechnology
MartynasV
Neurotechnology
 
Posts: 356
Joined: Feb 27, 2015 11:24
Location: Vilnius, Lithuania

Re: VeriFinger SDK 10.0 extract feature problems

Postby MartynasV » Jun 12, 2018 14:37

swmun wrote:- Internet license activation problem (Arm linux, Qt 4.8)

Code: Select all
NString licStr = NFile::ReadAllText(N_T("/approot/license.lic"));
NLicense::Add(licStr);
bExtractorActivated = NLicense::ObtainComponents(N_T("/local"), N_T("5000"), N_T("Biometrics.FingerExtraction"));
bMatcherActivated = NLicense::ObtainComponents(N_T("/local"), N_T("5000"), N_T("Biometrics.FingerMatching"));

std::cout << "Finger Extractor activated [" << bExtractorActivated <<"]" << std::endl;
std::cout << "Finger Matcher activated [" << bMatcherActivated <<"]" << std::endl;


case 1. After 30 minutes (guess) from the last application start up time
1) Application down, Network down, System reset
2) Boot Complete, Application up, Network up
3) Check license
Result :
Finger Extractor activated [1]
Finger Matcher activated [1]

case 2. Within 30 minutes (guess) from the last application start up time
1) Application down, Network down, System reset
2) Boot Complete, Application up, Network up
3) Check license
Result :
Finger Extractor activated [0]
Finger Matcher activated [0]
Core/ErrorSuppressed Error: -1 : None of provided license files have NCheck license, No license instances left: FingerExtractor, None of provided license files have FingerFastExtractor license, None of provided license files have FingerClient license, None of provided license files have ABISClient license
Core/ErrorSuppressed Error: -1 : None of provided license files have NCheck license, No license instances left: FingerExtractor, None of provided license files have FingerFastExtractor license, None of provided license files have FingerClient license, None of provided license files have ABISClient license, No license instances left: FingerMatcher, None of provided license files have FingerFastMatcher license, None of provided license files have requested license, None of provided license files have requested license, None of provided license files have requested license, None of provided license files have requested license, None of provided license files have requested license, None of provided license files have requested license, None of provided license files have requested license, None of provided license files have requested license

Hello,

Are you using trial SDK?
In case 2, does the same license file starts working again after 12 hours?
Martynas V
Neurotechnology
MartynasV
Neurotechnology
 
Posts: 356
Joined: Feb 27, 2015 11:24
Location: Vilnius, Lithuania


Return to Public

Who is online

Users browsing this forum: No registered users and 4 guests

cron