1. Introduction¶
The GBS Fingerprint SDK is a fingerprint recognition library that comes packaged with a Software Development Kit (SDK), allowing you to integrate biometrics in a wide range of applications. Thanks to its support for several programming languages, code samples, and its documentation, you’ll start developing your application in a matter of minutes.
2. Installing the SDK¶
2.1. Licensing¶
The GBS Fingerprint SDK requires a software license to work correctly.
It is distributed with a trial license valid for 90 days*. After this period a license must be
purchased by sending an email to info@griaule.com and must be installed in C:\ProgramData\Griaule.
Note
For questions, please contact the Griaule Biometrics support sending an email to support@griaule.com.
2.2. Installing¶
You must have one of the following versions of the SDK to perform the install. Verify if the version you have is compatible with your OS.
- GBS Fingerprint SDK (x86-64)
- GBS Fingerprint SDK (x86)
- GBS Fingerprint SDK (Linux)
To install the SDK, double-click on the file and follow the on-screen instructions.
2.3. Folder Overview¶
Directory | Description |
---|---|
bin | Contains all the files needed by the GBS Fingerprint SDK library. This folder mainly contains DLLs. |
doc | The Fingerprint SDK documentation files. |
inc | Import files for some of the supported languages (DLL only). |
lib | Libraries to access the GBS Fingerprint SDK in your C++ and C++.NET applications. |
samples | Contains the samples source codes and binaries. |
2.4. Operating Systems and Fingerprint Reader devices supported¶
Once the GBS Fingerprint SDK is installed the supported devices are also installed.
The following table specifies which models are supported according to the Operating System.
Operating System
Architecture
|
Win 10
64 Bits
|
Win 10
32 Bits
|
Win 8.1
64 Bits
|
Win 8.1
32 Bits
|
Win 8
64 Bits
|
Win 8
32 Bits
|
Win 7
64 Bits
|
Win 7
32 Bits
|
---|---|---|---|---|---|---|---|---|
Cogent Cs500e | YES | YES | YES | YES | YES | YES | YES | YES |
Crossmatch EF200 / Watson | YES | YES | YES | YES | YES | YES | YES | YES |
Crossmatch LSCAN Guardian | NO | YES | NO | YES | NO | YES | NO | YES |
Crossmatch Verifier 320 LC | YES | YES | YES | YES | YES | YES | YES | YES |
Digent Izzix FD1000 | NO | YES | NO | YES | NO | YES | NO | YES |
Digital Persona U.are.U 4000 | YES | YES | YES | YES | YES | YES | YES | YES |
Digital Persona U.are.U 4500 | YES | YES | YES | YES | YES | YES | YES | YES |
Digital Persona U.are.U 5100 | YES | YES | YES | YES | YES | YES | YES | YES |
Futronic FS52 | NO | YES | NO | YES | NO | YES | NO | YES |
Futronic FS80 | YES | YES | YES | YES | YES | YES | YES | YES |
Futronic FS80H | YES | YES | YES | YES | YES | YES | YES | YES |
Futronic FS81H | YES | YES | YES | YES | YES | YES | YES | YES |
Futronic FS88 | YES | YES | YES | YES | YES | YES | YES | YES |
Futronic FS88H | YES | YES | YES | YES | YES | YES | YES | YES |
Greenbit Multiscan 527 | YES | YES | YES | YES | YES | YES | YES | YES |
Lumidigm M301 | YES | YES | YES | YES | YES | YES | YES | YES |
Lumidigm V302 | YES | YES | YES | YES | YES | YES | YES | YES |
Lumidigm V311 | YES | YES | YES | YES | YES | YES | YES | YES |
Lumidigm V371 | YES | YES | YES | YES | YES | YES | YES | YES |
IDTech Biomag IDT-4012-DP | YES | YES | YES | YES | YES | YES | YES | YES |
IDTech Biomag IDT-4033-NG | YES | YES | YES | YES | YES | YES | YES | YES |
IB Sherlock | YES | YES | NO | NO | NO | NO | NO | NO |
Integrated Biometrics Watson Mini | YES | YES | YES | YES | YES | YES | YES | YES |
IB Kojak | YES | YES | NO | YES | NO | YES | NO | YES |
Nitgen eNBioScan-D | NO | YES | NO | NO | NO | NO | NO | NO |
Nitgen Hamster DX | NO | YES | NO | YES | NO | YES | NO | YES |
Nitgen Hamster II | NO | YES | NO | YES | NO | YES | NO | YES |
Nitgen Hamster II DX / III | NO | YES | NO | YES | NO | YES | NO | YES |
Secugen Hamster IV | YES | YES | YES | YES | YES | YES | YES | YES |
Secugen Hamster Plus | YES | YES | YES | YES | YES | YES | YES | YES |
Secugen Hamster Pro 20 | YES | YES | YES | YES | YES | YES | YES | YES |
Suprema BioMini | NO | YES | NO | YES | NO | YES | NO | YES |
Suprema BioMini Plus | NO | YES | NO | YES | NO | YES | NO | YES |
Suprema BioMini Slim | NO | YES | NO | YES | NO | YES | NO | YES |
Suprema RealScan-D | YES | YES | YES | YES | YES | YES | YES | YES |
Suprema RealScan-G10 | YES | YES | YES | YES | YES | YES | YES | YES |
Suprema SFU-S20 | NO | YES | NO | YES | NO | YES | NO | YES |
TechMag Biopass | YES | YES | YES | YES | YES | YES | YES | YES |
UPEK Eikon | NO | YES | NO | YES | NO | YES | NO | YES |
UPEK Eikon Touch | NO | YES | NO | YES | NO | YES | NO | YES |
Virdi FOH02 | YES | YES | YES | YES | YES | YES | YES | YES |
Virdi FOH04 | YES | YES | YES | YES | YES | YES | YES | YES |
Zvetco Verifi P5000 | NO | YES | NO | YES | NO | YES | NO | YES |
Zvetco Verifi P6000-B | NO | YES | NO | YES | NO | YES | NO | YES |
Reader | Libraries |
---|---|
CrossMatch V320
|
GBSFingerprintCapPluginCrossMatch320.dll
LScanEssentials.dll
QtCore4.dll
QtGui4.dll
QtNetwork4.dll
QtWebKit4.dll
|
Other CrossMatch
|
GBSFingerprintCapPluginCrossMatchP.dll
GBSFingerprintCapPluginCrossMatch300.dll
intl.dll
libglib-2.0-0.dll
USB4XX.dll
|
Digent
|
GBSFingerprintCapPluginDigent.dll
FingerAPI22Ex.dll
IZZIX20.dll TCI.dll
|
Futronic FS
|
GBSFingerprintCapPluginFutronicFS50.dll
ftrScanAPI.dll
|
Other Futronic
|
GBSFingerprintCapPluginFutronic.dll
ftrScanAPI.dll
|
Nitgen Hamster
|
GBSFingerprintCapPluginHams.dll
NBioBSP.dll
|
Nitgen eNBioScan-D
|
GBSFingerprintCapPluginNitgenD.dll
eNBioScan-D
NBioScan.dll
|
Nitgen eNBioScan-F
|
GBSFingerprintCapPluginNitgenF.dll
eNBioScan-F
NBioBSP.dll
|
Integrated Biometrics Watson Mini
|
GBSFingerprintCapPluginIB.dll
IBScanUltimate.dll
|
Lumidigm
|
GBSFingerprintCapPluginLumi.dll
LumiAPI.dll
LumiCore.dll
LumiInOpAPI.dll
plugin/AlgoDvc.dll
plugin/IEngine_Plus.dll
plugin/MercuryDvc.dll
plugin/PreProcV31_INT16.dll
plugin/SDvc.dll
plugin/VenusDvc.dll
|
Suprema RealScan-D
|
GBSFingerprintCapPluginRealD.dll
RS_SDK.dll
|
Other Suprema
|
GBSFingerprintCapPluginSuprema.dll
UFLicense.dat
UFScanner.dll
|
UPEK TouchChip
|
GBSFingerprintCapPluginUpek.dll
bsapi.dll
TCI.dll
|
Virdi FOH02
|
GBSFingerprintCapPluginVirdi2.dll
UCBioBSP.dll
VHMLib.dll
|
Note
If your fingerprint reader is not listed in the table above and for further information, please contact us by email info@griaule.com.
2.5. Programming Language Support¶
GBS Fingerprint SDK supports multiple programming languages, including Java, C++ and C#/.NET.
3. Features¶
3.1. Technical Characteristics¶
Capture:
- Detects fingerprint readers plug/unplug;
- Automatic finger detection;
- Supports BMP files for fingerprint image saving/loading;
- Maximum image size of 1280 x 1280 pixels;
- Minimum image size of 50 x 50 pixels;
- Maximum resolution of 1000 DPI;
- Minimum resolution of 125 DPI;
Extraction:
Average extraction time of 100ms;
Note
Images of 300 x 300 pixels. Machine: Pentium4 2.8GHz, 512MB RAM.
Maximum image size of 500 x 500 pixels;
Note
Larger images are cropped.
Minimum image size of 50 x 50 pixels;
Average template size of 400 bytes;
Matching:
Note
The Identification one-to-many is not performed by the GBS Fingerprint SDK.
Verification speed: up to 100/s.
Note
Images of 100 x 100 pixels. Machine: Pentium4 2.8GHz, 512MB RAM.
3.2. Threshold and Rotation Tolerance¶
The verification function in Fingerprint SDK library are governed by two important parameters: threshold and rotation tolerance.
The threshold is the minimum score needed to state that two fingerprints do match. The default value is 20 for the verification process, ensuring a 1% FRR.
The rotation tolerance defines the maximum acceptable angle variation (in degrees) between two fingerprints being compared that will result in a match. This value is valid in both clockwise and counterclockwise directions, so the maximum value that can be set is 180. The default value is -1.
3.3. What’s New on Fingerprint SDK¶
- Added AFIS (Automatic Fingerprint Identification System) functionality: patterns are identified by software in fingerprint images and are used for comparison with another fingerprint image patterns to determine if they came from the same finger and ultimately, from the same person.
- Added converter to WSQ functionality. The WSQ is the best image format for fingerprints. It reaches a great compression with high image quality.
- Image formats supported when converting to WSQ: BMP, JPEG, JPEG 2000, TIFF, GIF and PNG.
- Added support to more Fingerprint Readers;
- Added support to Windows 7, 8 and 8.1 32-bit and 64-bit.
- Fixed some bugs from the Fingerprint SDK 2009;
- Dropped the concept of Context;
- Dropped the editions IDENTIFICATION and VERIFICATION;
- Does not perform multi-thread operations such as identification one-to-many;
- Performs fingerprint extraction and verification (matching one-to-one).
4. How to migrate from the Fingerprint SDK 2009 to the new GBS Fingerprint SDK¶
This section highlights the main differences introduced when comparing the new Fingerprint SDK and the Fingerprint SDK 2009.
4.1. The GBS Fingerprint SDK¶
In the Fingerprint SDK 2009, a MatchingContext object is where the biometric operations (fingerprint minutiae extraction and fingerprint matching) occur. All methods in a MatchingContext object are synchronized, thus to execute N biometric operations at the same time, N MatchingContext objects must be created.
In the new Fingerprint SDK, the Matching Context is not applicable anymore. The application continues to be thread-safe, but only single-threaded operations are performed at a time. For multi-thread operations, such as Identification (one-to-many), the GBS Server is needed. For further information regarding this software of the Griaule Biometric Suite, please contact the Griaule Biometrics support (support@griaule.com).
4.1.1. New API: discontinued and new methods¶
The following tables match the discontinued methods of the previous softwares (Fingerprint SDK 2009, AFIS 2.0 and WSQ 1.2) with the new ones that replace them, if applicable. The value NA indicates that the method’s functionality has been discontinued in the current release of the SDK.
Tip
The table below has four columns. If any columns are hidden, you can scroll to the side using the arrow keys.
Fingerprint 2009 | Afis | WSQ | GBS Fingerprint |
---|---|---|---|
GrInitialize | GriauleAfisInitialize | GrInitialize | |
GrCapInitialize | GriauleAfisCapInitialize | GrCapInitialize | |
GrFinalize | GriauleAfisFinalize | GrFinalize | |
GrCapFinalize | GriauleAfisCapFinalize | GrCapFinalize | |
GrExtract | GriauleAfisExtract | NA | |
GrExtractEx | GriauleAfisExtractEx | GrExtract | |
GrConvertTemplate | GriauleAfisConvertTemplate | GrConvertTemplate | |
GrCreateContext | GriauleAfisCreateContex | NA | |
GrDestroyContext | GriauleAfisDestroyContext | NA | |
GrVerify | GriauleAfisVerify | GrVerify | |
GrSetVerifyParameters | GriauleAfisSetVerifyParameters | GrSetVerifyParameters | |
GrGetVerifyParameters | GriauleAfisGetVerifyParameters | GrGetVerifyParameters | |
GrIdentify | GriauleAfisIdentify | NA | |
GrIdentifyPrepare | GriauleAfisIdentifyPrepare | NA | |
GrSetIdentifyParameters | GriauleAfisSetIdentifyParameters | NA | |
GrGetIdentifyParameters | GriauleAfisGetIdentifyParameters | NA | |
GrCapStartCapture | GriauleAfisCapStartCapture | GrCapStartCapture | |
GrCapStopCapture | GriauleAfisCapStopCapture | GrCapStopCapture | |
GriauleAfisCapCapture | NA | ||
GriauleAfisGetProcessedImage | NA | ||
GriauleAfisGetTemplate | NA | ||
GriauleAfisGetTemplateEx | NA | ||
GriauleAfisSetTemplate | NA | ||
GriauleAfisGetTemplateInfo | NA | ||
GriauleAfisGetMinutiaInfo | NA | ||
GriauleAfisGetSegmentInfo | NA | ||
GriauleAfisAddMinutia | NA | ||
GriauleAfisRemoveMinutia | NA | ||
GriauleAfisGetNearestMinutia | NA | ||
GriauleAfisGetNearestSegment | NA | ||
GriauleAfisRecalculateSegment | NA | ||
GriauleAfisSetPatternClassification | NA | ||
GriauleAfisGetPatternClassification | NA | ||
GriauleAfisGetMatchInfo | NA | ||
GriauleAfisGetMatchMinutia | NA | ||
GriauleAfisGetMatchSegment | NA | ||
GriauleAfisRawImageToHandle | NA | ||
GriauleAfisSaveRawImageToFile | NA | ||
GriauleAfisLoadImageFromFile | NA | ||
GriauleAfisDisplay | NA | ||
GriauleAfisSegmentTwoFingers | GrSegmentNFingers | ||
GriauleAfisSegmentFourFingers | GrSegmentNFingers | ||
GriauleAfisFreeBlockData | |||
GriauleAfisSetCaptureParameters | GrSetCaptureParameters | ||
GriauleAfisGetCaptureParameters | GrGetCaptureParameters | ||
GriauleAfisSetCaptureThresholds | GrSetCaptureThresholds | ||
GriauleAfisGetCaptureThresholds | GrGetCaptureThresholds | ||
GriauleAfisSetDisplayColors | NA | ||
GriauleAfisGetDisplayColors | NA | ||
GriauleAfisSetExtractParameters | NA | ||
GriauleAfisGetExtractParameters | NA | ||
GriauleAfisSetPostMatchParameters | NA | ||
GriauleAfisGetPostMatchParameters | NA | ||
GriauleAfisGetVersion | NA | ||
GriauleAfisInitializeStandard | NA | ||
GriauleAfisAddFingerprintToStandard | NA | ||
GriauleAfisExportStandard | NA | ||
GriauleAfisAddicaoToStandard | NA | ||
GriauleAfisAddExceptionToStandard | NA | ||
GriauleAfisAddBioDataToStandard | NA | ||
GrCapAddPlugin | NA | ||
GrCapRawImageToHandle | NA | ||
GrCapSaveRawImageToFile | NA | ||
GrCapLoadImageFromFile | NA | ||
GrBiometricDisplay | GrBiometricDisplay | ||
GrBiometricDisplayRaw | NA | ||
GrSetBiometricDisplayColors | GrSetBiometricDisplayColors | ||
GrGetGrFingerVersion | GrGetVersion | ||
GrSetLicenseFolder | GrSetLicenseFolder | ||
GrInstallLicense | GrInstallLicense | ||
GrGetLicensePath | NA | ||
GrStartEnroll | GrStartConsolidation | ||
GrEnroll | GrConsolidate | ||
GrEncodeBase64 | GrExtract | ||
GrDecodeBase64 | GrExtract | ||
GrisBase64Encoding | GrExtract | ||
griaulewsq_raw2wsq | GrConvertImage | ||
griaulewsq_wsq2raw | GrConvertImage | ||
griaulewsq_free | GrConvertImage | ||
griaulewsq_loadFromFile | GrLoadFromFile | ||
GrSaveToFile | |||
griaulewsq_getVersion | GrConvertImage | ||
griaulewsq_saveToBMPFile | GrConvertImage | ||
griaulewsq_saveToJPEGFile | GrConvertImage | ||
griaulewsq_saveToJPEG200OFile | GrConvertImage | ||
griaulewsq_saveToGIFFile | GrConvertImage | ||
griaulewsq_saveToTIFFFile | GrConvertImage | ||
griaulewsq_iso197944_to_raw | GrConvertImage | ||
griaulewsq_iso197944_to_raw_single | GrConvertImage | ||
griaulewsq_raw_to_iso197944_single | GrConvertImage | ||
griaulewsq_raw_to_iso197944 | GrConvertImage | ||
griaulewsq_saveToiso197944File_single | GrConvertImage | ||
griaulewsq_saveToiso197944File | GrConvertImage | ||
griaulewsq_saveToWSQFile | GrConvertImage | ||
griaulewsq_saveToPNGFile | GrConvertImage | ||
griaulewsq_setComment | GrConvertImage | ||
griaulewsq_getComment | GrConvertImage | ||
griaulewsq_setLicenseFolder | GrConvertImage | ||
griaulewsq_requestAuthorization | GrConvertImage | ||
griaulewsq_rawmageToHandle | GrConvertImage | ||
griaulewsq_memleak_start | GrConvertImage | ||
griaulewsq_memleak_chec | GrConvertImage | ||
GrGetCaptureInfo | GrGetCaptureInfo | ||
GrGetReaderInfo | GrGetReaderInfo | ||
GrSetReaderInfo | GrSetReaderInfo | ||
GrSetCrypt | NA | ||
GrDecrypt | NA |
4.1.2. Methods Signature Simplified: Gr_IMAGE and Gr_TEMPLATE¶
In the Fingerprint SDK 2009, several primitive types must be passed as parameters of the API functions in order to define an image or a template. In the GBS Fingerprint SDK, new classes define how Image and Template data must be defined. They encapsulate the necessary information and allow a clearer understanding of the API.