Bio Mini SDK For Android 2.0.1 Reference Manual
User Manual:
Open the PDF directly: View PDF .
Page Count: 74
Download | |
Open PDF In Browser | View PDF |
BioMini SDK for Android V2.0.1 Table of Contents 1.1 What's New ............................................................................................................................................................................. 3 1.2 History ....................................................................................................................................................................................... 3 1.3 Overview .................................................................................................................................................................................. 6 2. Getting Started ......................................................................................................................................................................... 8 2.1 Environment Setting................................................................................................................................................... 8 Project generation ..................................................................................................................................................... 8 3. Development .......................................................................................................................................................................... 13 3.1 Enrollment Tutorial .................................................................................................................................................. 13 3.2 Verification Tutorial.................................................................................................................................................. 15 3.3 APIs ................................................................................................................................................................................. 18 3.4 Definitions ................................................................................................................................................................... 59 3.4.1 ENUM ............................................................................................................................................................... 59 3.4.2 Class .................................................................................................................................................................. 63 4. Appendix .................................................................................................................................................................................. 68 What is Biometrics? ........................................................................................................................................................ 68 Scanners ............................................................................................................................................................................. 71 BioMini Slim 2 .......................................................................................................................................................... 71 BioMini Plus 2 .......................................................................................................................................................... 72 BioMini Slim .............................................................................................................................................................. 72 BioMini Combo ........................................................................................................................................................ 73 BioMini......................................................................................................................................................................... 74 1. Introduction The BioMini Android SDK provides the specific functions to capture fingerprints, to display scanner real-time images on the screen while the finger is on the platen. 1.1 What's New Version 2.0.1 Application speed improved due to Libusb-1.0 module Bugfix. 1.2 History Version 2.0.0 SDK renewal – SDK is not compatible with older version due to interface & API change S/W LFD supporting device added: BioMini Slim Bugfix. Version 1.4.5 S/W LFD supporting device added: BioMini Plus2, BioMini Slim2 New API added UFA_ExtractTemplateFromWSQ() UFA_ExtractTemplateFromBMP() Capture speed improved: BioMini Slim2 Version 1.4 Supporting device added: BioMini Slim2 BioMini CardSDK interface module added Compatible with new Suprema fingerprint scanners: BioMini Slim 2 (BM-Slim2) Redefine the followings from UFA_XXX to ENUM type ECODE PARAM TEMPLATE_TYPE FRAME_RATE SCANNER_OPTIONS Added new parameter Enable auto sleep mode - UFA_PARAM_ENABLE_AUTOSLEEP Added new functions UFA_SetSleep UFA_IsAwake UFA_GetCompanyID UFA_GetCoreCoordinate Version 1.3 Supporting device added: BioMini Plus2 Compatible with new Suprema fingerprint scanners: BioMini Plus2 (SFR550) Changed the development tool from ADT/Eclipse to Android Studio/Gradle Added new parameter as below Support 360-degree matching - UFA_PARAM_AUTO_ROTATE parameter Added new functions as below UFA_SetDevice UFA_GetCaptureImageBufferToBMPBuffer UFA_GetCaptureImageBufferToWSQBufferVar UFA_GetCaptureImageBufferToWSQBufferVarEx UFA_GetFeatureNumber UFA_GetFPQuality Version 1.2 Compatible with new Suprema fingerprint scanners: BioMini and SFU-410 BioMiniAndroid - Added new functions as below Save capture image data of bmp format Set device callback Get version string Set capture frame rate Check scanner capture status IBioMiniDeviceCallback - Abstract class for callback to check device attached Version 1.1 Add NIST certified WSQ format - UFA_GetCaptureImageBufferToWSQBuffer Main class name typo fixed Version 1.0 BioMini SDK for Android release Supporting device added: BioMini Slim Googleplay Demo release Support BioMini Slim, BioMini Combo(fingerprint scanner only) and SFU-S20 BioMiniAndroid - Managing scanner, fingerprint template extraction and 1:1 matching Added fingerprint image capturing function Added fingerprint template extraction function Added 1:1 matching function 1.3 Overview SDK Structure BioMini Android SDK consists of the following BioMiniFactory class that manages BioMini equipment, Instance and manages actual device handler. IBioMiniDevice interface that extracts from instanceized BioMiniFactory and controls actual machine operation BioMini SDK for Android is based on Factory pattern. BioMini Device instance (Handler) matches with each BioMini device and each Instance operates separately. SDK Package Consists of Path File Name Description : /bin/biominisample.apk Sample APK package with latest SDK / /doc/xxxxxx.pdf Manual Document /lib/libBioMini.aar This version of the Android library /sample Android studio sample directory /sample/biominisample/src/main/res/lay Layout xml file mapped to MainActivity out.xml /sample/biominisample/src/main/java/co MainActivity of Sample application m/suprema/biominisample/MainActivity. java System Requirements The following minimum system requirements are necessary in order to use the SDK described in this document Operating System: Android 4.1 (Jelly Bean / API Level 17) or above Hardware: Cpu : Quad-Core 1.7GHz or better Memory: 2G or more memory Supported platform : ARMeabi / ARMeabi-V7a / x86 Supported programming language : Java (Java library with JNI) Supported scanner : BioMini Slim 2, BioMini Plus 2, BioMini Slim, BioMini Android USB Host API 2. Getting Started 2.1 Environment Setting Project generation 1. Generate a new application project in Android Studio. 2. Execute File → New → Module menu. 3. Select “Import .JAR/.AAR Package” type and clik Next button. 4. Select BioMini Android SDK (libBioMini_v20.aar) in File name and click Finish button to close. 5. Execute File → Project Structure menu. 6. Select 'app' or 'other main module' in the left list and click 'Dependencies' tab. 7. Click right mouse button, select '+' and click '3 Module dependency'. After then select :libBioMini_v20. 8. Generate BioMiniAndroid object to control device according to Android SDK programming guide. 3. Development 3.1 Enrollment Tutorial 1. Preliminaries //import biomini android package import com.suprema.BioMiniFactory; import com.suprema.CaptureResponder; import com.suprema.IBioMiniDevice; 2. Find scanner device, get user permission and SDK Initialize private static BioMiniFactory mBioMiniFactory = null; @Override protected void onCreate(Bundle savedInstanceState) { . . . // allocate SDK instance mBioMiniFactory = new BioMiniFactory(mainContext) { @Override public void onDeviceChange(DeviceChangeEvent event, Object dev) { if (event == DeviceChangeEvent.DEVICE_ATTACHED && mCurrentDevice == null) { new Thread(new Runnable() { @Override public void run() { . . . if (mBioMiniFactory != null) { // find BioMini device, get user permission and SDK initialize mCurrentDevice = mBioMiniFactory.getDevice(0); } } } }).start(); } 3. Parameters // set security level parameter : 1~7 [4:default] mCurrentDevice.setParameter(new IBioMiniDevice.Parameter(IBioMiniDevice.ParameterType.SECURITY_LEVEL, security_level)); // set sensitivity parameter : 0~7 [7:default] mCurrentDevice.setParameter(new IBioMiniDevice.Parameter(IBioMiniDevice.ParameterType.SENSITIVITY, sensitivity_level)); // set timeout parameter : 0~ [10000:default] mCurrentDevice.setParameter(new IBioMiniDevice.Parameter(IBioMiniDevice.ParameterType.TIMEOUT, timeout)); // set LFD level parameter : 0 ~ 5 [0:default] mCurrentDevice.setParameter(new IBioMiniDevice.Parameter(IBioMiniDevice.ParameterType.DETECT_FAKE, lfd_level)); // set fast mode parameter : 1 or 0 [1:default] mCurrentDevice.setParameter(new IBioMiniDevice.Parameter(IBioMiniDevice.ParameterType.FAST_MODE, fast_mode?1:0)); // set scanning mode parameter : 1 or 0 [1:default] mCurrentDevice.setParameter(new IBioMiniDevice.Parameter(IBioMiniDevice.ParameterType.SCANNING_MODE, crop_mode?1:0)); // set external trigger parameter : 1 or 0 [1:default] mCurrentDevice.setParameter(new IBioMiniDevice.Parameter(IBioMiniDevice.ParameterType.EXT_TRIGGER, ext_trigger?1:0)); // set auto sleep mode parameter : 1 or 0 [0:default] mCurrentDevice.setParameter(new IBioMiniDevice.Parameter(IBioMiniDevice.ParameterType.ENABLE_AUTOSLEEP, auto_sleep?1:0)); 4. Capture image and extract template ((ImageView) findViewById(R.id.imagePreview)).setImageBitmap(null); IBioMiniDevice.CaptureOption option = new IBioMiniDevice.CaptureOption(); option.captureTemplate = true; // capture fingerprint image mCurrentDevice.captureSingle(option, new CaptureResponder() { @Override public boolean onCaptureEx(final Object context, final Bitmap capturedImage, final IBioMiniDevice.TemplateData capturedTemplate, final IBioMiniDevice.FingerState fingerState) { runOnUiThread(new Runnable() { @Override public void run() { if(capturedImage != null) { ImageView iv = (ImageView) findViewById(R.id.imagePreview); if(iv != null) { iv.setImageBitmap(capturedImage); } } } }); if(capturedTemplate != null) { mUsers.add(new UserData(userName, capturedTemplate.data, capturedTemplate.data.length)); } 5. Uninitialize scanner module else if (mCurrentDevice != null && event == DeviceChangeEvent.DEVICE_DETACHED && mCurrentDevice.isEqual(dev)) { mCurrentDevice = null; } 3.2 Verification Tutorial 1. Preliminaries //import biomini android package import com.suprema.BioMiniFactory; import com.suprema.CaptureResponder; import com.suprema.IBioMiniDevice; 2. Create matcher private static BioMiniFactory mBioMiniFactory = null; @Override protected void onCreate(Bundle savedInstanceState) { . . . // allocate SDK instance mBioMiniFactory = new BioMiniFactory(mainContext) { @Override public void onDeviceChange(DeviceChangeEvent event, Object dev) { if (event == DeviceChangeEvent.DEVICE_ATTACHED && mCurrentDevice == null) { new Thread(new Runnable() { @Override public void run() { . . . if (mBioMiniFactory != null) { // find BioMini device, get user permission and SDK initialize mCurrentDevice = mBioMiniFactory.getDevice(0); } } } }).start(); } 3. Set Parameters // set security level parameter : 1~7 [4:default] mCurrentDevice.setParameter(new IBioMiniDevice.Parameter(IBioMiniDevice.ParameterType.SECURITY_LEVEL, security_level)); // set sensitivity parameter : 0~7 [7:default] mCurrentDevice.setParameter(new IBioMiniDevice.Parameter(IBioMiniDevice.ParameterType.SENSITIVITY, sensitivity_level)); // set timeout parameter : 0~ [10000:default] mCurrentDevice.setParameter(new IBioMiniDevice.Parameter(IBioMiniDevice.ParameterType.TIMEOUT, timeout)); // set LFD level parameter : 0 ~ 5 [0:default] mCurrentDevice.setParameter(new IBioMiniDevice.Parameter(IBioMiniDevice.ParameterType.DETECT_FAKE, lfd_level)); // set fast mode parameter : 1 or 0 [1:default] mCurrentDevice.setParameter(new IBioMiniDevice.Parameter(IBioMiniDevice.ParameterType.FAST_MODE, fast_mode?1:0)); // set scanning mode parameter : 1 or 0 [1:default] mCurrentDevice.setParameter(new IBioMiniDevice.Parameter(IBioMiniDevice.ParameterType.SCANNING_MODE, crop_mode?1:0)); // set external trigger parameter : 1 or 0 [1:default] mCurrentDevice.setParameter(new IBioMiniDevice.Parameter(IBioMiniDevice.ParameterType.EXT_TRIGGER, ext_trigger?1:0)); // set auto sleep mode parameter : 1 or 0 [0:default] CurrentDevice.setParameter(new IBioMiniDevice.Parameter(IBioMiniDevice.ParameterType.ENABLE_AUTOSLEEP, auto_sleep?1:0)); 4. Verify IBioMiniDevice.CaptureOption option = new IBioMiniDevice.CaptureOption(); option.captureTemplate = true; // capture fingerprint image mCurrentDevice.captureSingle(option, new CaptureResponder() { @Override public boolean onCaptureEx(final Object context, final Bitmap capturedImage, final IBioMiniDevice.TemplateData capturedTemplate, final IBioMiniDevice.FingerState fingerState) { runOnUiThread(new Runnable() { @Override public void run() { if(capturedImage != null) { ImageView iv = (ImageView) findViewById(R.id.imagePreview); if(iv != null) { iv.setImageBitmap(capturedImage); } } } }); if(capturedTemplate != null) { boolean isMatched = false; String matchedName = ""; for(UserData ud : mUsers) { if(mCurrentDevice.verify( capturedTemplate.data, capturedTemplate.data.length, ud.template, ud.template.length)) { isMatched = true; matchedName = ud.name; break; } } if(isMatched) { // Match found, Verify OK } else { // No match found, Verify template not match } } else { // Template is not extracted } return true; } 5. Uninitialize scanner module else if (mCurrentDevice != mCurrentDevice.isEqual(dev)) { mCurrentDevice = null; } null && event == DeviceChangeEvent.DEVICE_DETACHED && 3.3 APIs 1. getParameter() - Gets the parameter value. 2. setParameter() - Sets the parameter value. 3. captureSingle() - Captures single image. Captured image is returned by parameter. 4. startCapturing() - Starts capturing. 5. isCaptuing() - Checks whether the scanner is capturing or not. 6. getFeatureNumber() - Gets the number of Minutiae from template data. 7. getFPQuality() - Calculates the quality score of an image as defined in NISTIR 7151: FingerPrint Image Quality. The score would be between 1(excellent) and 5(poor). 8. abortCapturing() - Aborts capturing which is started by startCapturing(). 9. extractTemplate() - Extracts a template from the stored image buffer which is acquired using captureSingle() or startCapturing(). 10. clearCaptureImageBuffer() - Clears the capture image buffer. 11. verify() - Compares two extracted templates. 12. getCompanyID() - Returns the company ID of device. 13. getCoreCoordinate() - Returns the coordinates of the fingerprint Core in the captured image 14. errString() - Gets the error string from ErrorCode 15. isAwake() - Check whether the currently connected device is SleepMode * Supported Device: BioMini Slim(PID: 0x0407), BioMini Slim 2(PID: 0x0408) 16. popPerformanceLog() - Gets the processing log 17. getImageWidth() - Gets width of target image 18. getImageHeight() - Gets height of target image 19. getCaptureImageAsWsq() - Makes an WSQ image from captured raw image data, with the specific width and height 20. getCaptureImageAsBmp() - Make a BMP formatted array from the captured image buffer 21. getDeviceInfo() - Gets the device information 22. setEncryptionKey() - Sets the encryption key 23. encrypt() - Encrypts the data 24. decrypt() - Decrypts the data 25. getLastError() - Gets the last ErrorCode 26. getSDKInfo() - Gets the revision information of SDK 27. getDeviceCount() - Gets the number of devices 28. getDevice() - Gets the device 29. captureAuto() - Unimplemented. This API will be implemented 30. activate() - This API used for device control however it is unnecessary in application development. 31. deactivate() - This API used for device control however it is unnecessary in application development. 32. isInUse() - This API used for device control however it is unnecessary in application development. 33. isEqual() - This API used for device control however it is unnecessary in application development. Create BioMiniFactory instance private static BioMiniFactory mBioMiniFactory = null; public IBioMiniDevice mCurrentDevice = null; private MainActivity mainContext; . . . @Override protected void onCreate(Bundle savedInstanceState) { . . . mainContext = this; . . . } mBioMiniFactory = new BioMiniFactory(mainContext) { @Override public void onDeviceChange(DeviceChangeEvent event, Object dev) { if (event == DeviceChangeEvent.DEVICE_ATTACHED && mCurrentDevice == null) { new Thread(new Runnable() { @Override public void run() { int cnt = 0; while (mBioMiniFactory == null && cnt < 20) { SystemClock.sleep(1000); cnt++; } if (mBioMiniFactory != null) { mCurrentDevice = mBioMiniFactory.getDevice(0); } } }).start(); } else if (mCurrentDevice != null && event == DeviceChangeEvent.DEVICE_DETACHED && mCurrentDevice.isEqual(dev)) { Log.d(TAG, "mCurrentDevice removed : " + mCurrentDevice); mCurrentDevice = null; } } }; 3.3.1 IBioMiniDevice.getParameter - Gets the parameter value. Public Parameter getParameter(ParameterType type); - Parameter ParameterType type : Parameter type; one of parameters ParameterType Code Description TIMEOUT 0 Timeout (millisecond unit) (0: infinite) SENSITIVITY 1 SCANNING_MODE 2 FAST_MODE 3 definition Default value 10000 Sensitivity (0 ~ 7); Higher value means 7 more sensitive Result image size of BioMini Plus 2 1 Fast Mode (0: not use fast mode, 1: use 1 fast mode) Level 1 : Below 1% (1e~2) 4 Level 2 : Below 0.1% (1e~3) Level 3 : Below 0.01% (1e~4) SECURITY_LEVEL 4 Level 4 : Below 0.001% (1e~5) Level 5 : Below 0.0001% (1e~6) Level 6 : Below 0.00001% (1e~7) Use Live Finger Detection (0: not use LFD, 0 DETECT_FAKE 5 1~5 : use LFD); Higher value means more strong to fake finger AUTO_ROTATE 6 Supports 360-degree matching (0: not use 0 rotate mode, 1: use rotate mode) Detect core (0: not use the function to 0 DETECT_CORE 7 detect the core of a fingerprint, 1: use the function to detect the core of a fingerprint) TEMPLATE_TYPE 8 Template type 0 Checks whether auto-sleep mode is or not 0 ENABLE_AUTOSLEEP 9 (0: off, 1: on) * Supported device: BioMini Slim, BioMini Slim 2 EXT_TRIGGER 10 Adaptive Capture Mode INVALID 11 Invalid 1 - Example // Define IBioMiniDevice mCurrentDevice = null; . . // Create BioMiniFactory instance . // Get security level int security_level = (int) mCurrentDevice.getParameter(IBioMiniDevice.ParameterType.SECURITY_LEVEL).value; // Get sensitivity level int sensitivity_level = (int) mCurrentDevice.getParameter(IBioMiniDevice.ParameterType.SENSITIVITY).value; // Get timeout int timeout = (int) mCurrentDevice.getParameter(IBioMiniDevice.ParameterType.TIMEOUT).value; // Get LFD level int lfd_level = (int) mCurrentDevice.getParameter(IBioMiniDevice.ParameterType.DETECT_FAKE).value; // Get fast mode boolean fast_mode = mCurrentDevice.getParameter(IBioMiniDevice.ParameterType.FAST_MODE).value == 1; // Get crop mode boolean crop_mode = mCurrentDevice.getParameter(IBioMiniDevice.ParameterType.SCANNING_MODE).value == 1; // Get ext trigger mode boolean ext_trigger = mCurrentDevice.getParameter(IBioMiniDevice.ParameterType.EXT_TRIGGER).value == 1; // Get auto sleep mode boolean auto_sleep = mCurrentDevice.getParameter(IBioMiniDevice.ParameterType.ENABLE_AUTOSLEEP).valu e == 1; Return Value(refer to return values) 3.3.2 IBioMiniDevice.setParameter - Sets the parameter value. public boolean setParameter(Parameter parameter); Parameter - Parameter parameter : Parameter to declare ParameterType Code Description TIMEOUT 0 Timeout (millisecond unit) (0: infinite) SENSITIVITY 1 SCANNING_MODE 2 FAST_MODE 3 definition Default value 10000 Sensitivity (0 ~ 7); Higher value means 7 more sensitive Result image size of BioMini Plus 2 1 Fast Mode (0: not use fast mode, 1: use 1 fast mode) Level 1 : Below 1% (1e~2) 4 Level 2 : Below 0.1% (1e~3) Level 3 : Below 0.01% (1e~4) SECURITY_LEVEL 4 Level 4 : Below 0.001% (1e~5) Level 5 : Below 0.0001% (1e~6) Level 6 : Below 0.00001% (1e~7) Use Live Finger Detection (0: not use LFD, 0 DETECT_FAKE 5 1~3 : use LFD); Higher value means more strong to fake finger AUTO_ROTATE 6 Supports 360-degree matching (0: not use 0 rotate mode, 1: use rotate mode) Detect core (0: not use the function to 0 DETECT_CORE 7 detect the core of a fingerprint, 1: use the function to detect the core of a fingerprint) TEMPLATE_TYPE 8 Template type 0 Checks whether auto-sleep mode is or not 0 ENABLE_AUTOSLEEP 9 (0: off, 1: on) * Supported device: BioMini Slim, BioMini Slim 2 EXT_TRIGGER 10 Adaptive Capture Mode INVALID 11 Invalid 1 - Example // Define IBioMiniDevice mCurrentDevice=null; . . // Create BioMiniFactory instance. . // Set security level mCurrentDevice.setParameter(new IBioMiniDevice.Parameter(IBioMiniDevice.ParameterType.SECURITY_LEVE L, security_level)); // Set sensitivity level mCurrentDevice.setParameter(new IBioMiniDevice.Parameter(IBioMiniDevice.ParameterType.SENSITIVITY_LEVEL, security_level)); // Set timeout mCurrentDevice.setParameter(new IBioMiniDevice.Parameter(IBioMiniDevice.ParameterType.TIMEOUT, timeout)); // Set LFD level mCurrentDevice.setParameter(new IBioMiniDevice.Parameter(IBioMiniDevice.ParameterType.DETECT_FAKE, lfd_level)); // Set fast mode mCurrentDevice.setParameter(new IBioMiniDevice.Parameter(IBioMiniDevice.ParameterType.FAST_MODE, fast_mode?1:0)); // Set crop mode mCurrentDevice.setParameter(new IBioMiniDevice.Parameter(IBioMiniDevice.ParameterType.SCANNING_MODE, crop_mode?1:0)); // Set ext trigger mode mCurrentDevice.setParameter(new IBioMiniDevice.Parameter(IBioMiniDevice.ParameterType.EXT_TRIGGER, ext_trigger?1:0)); // Set auto sleep mode mCurrentDevice.setParameter(new IBioMiniDevice.Parameter(IBioMiniDevice.ParameterType.ENABLE_AUTOSLEEP, auto_sleep?1:0)); Return Value(refer to return values) 3.3.3 IBioMiniDevice.captureSingle - Captures single image. The image and template are passed through the parameters of the Capture responder callback function. boolean captureSingle(CaptureOption opt, ICaptureResponder responder, boolean bAsync); Parameter - CaptureOption opt : captureSingle Options to use when captureSingle - ICaptureResponder responder : callback instance of responder receives capture result and error code - boolean bAsync : asynchronous parameter of capture operation (TRUE: asynchronous / FALSE: synchronous) Example // Define IBioMiniDevice mCurrentDevice=null; . . // Create BioMiniFactory instance . Private IBioMiniDevice.CaptureOption mCaptureOptionDefault = new IBioMiniDevice.CaptureOption(); Private CaptureResponder mCaptureResponseDefault = new CaptureResponder() { @Override public boolean onCaptureEx(final Object context, final Bitmap capturedImage, final IBioMiniDevice.TemplateData capturedTemplate, final IBioMiniDevice.FingerState fingerState) { . . // Capture success . return true; } }; . . . // Capture single image mCurrentDevice.captureSingle(mCaptureOptionDefault, mCaptureResponseDefault, true); Return Value true : Capture success false : Capture fail 3.3.4 IBioMiniDevice.startCapturing - Starts capturing. The image and template are passed through the parameters of the Capture responder callback function. int startCapturing(CapturOption opt, ICaptureResponder responder); Parameter - CaptureOption opt : options to use when startCapturing - ICaptureResponder responder : callback instance of responder receives capture result and error code Example // Define IBioMiniDevice mCurrentDevice=null; . .// Create BioMiniFactory instance . Private IBioMiniDevice.CaptureOption mCaptureOptionDefault = new IBioMiniDevice.CaptureOption( ); Private CaptureResponder mCaptureResponsePrev = new CaptureResponder() { @Override public boolean onCaptureEx(final Object context, final Bitmap capturedImage, final IBioMiniDevice.TemplateData capturedTemplate, final IBioMiniDevice.FingerState fingerSt ate) { . . // Capture success . return true; } }; . . . // Start capturing mCurrentDevice.startCapturing(mCaptureOptionDefault, mCaptureResponsePrev); Return Value ErrorCode 3.3.5 IBioMiniDevice.isCapturing - Checks whether the scanner is capturing or not. boolean isCapturing(); Parameter N/A Example // Define IBioMiniDevice mCurrentDevice=null; . .// Create BioMiniFactory instance . // Check whether the scanner is capturing if(!mCurrentDevice.isCapturing()) { . . // The scanner is not capturing . } Return Value true : if capturing is on going false : if not 3.3.6 IBioMiniDevice.getFeatureNumber - Gets the number of Minutiae from template data int getFeatureNumber(byte[] template, int template_size); Parameter - byte[] template : Array of template data - int template_size : Template size Example // Define IBioMiniDevice mCurrentDevice=null; . .// Create BioMiniFactory instance . byte[] template; int size; // Capture a fingerprint image & extract template // Get template data; template // Get feature number int nFeature = mCurrentDevice.getFeatureNumber(template, size); Return Value Number of features from the template given 3.3.7 IBioMiniDevice.getFPQuality - Calculates the quality score of an image as defined in NISTIR 7151: FingerPrint Image Quality. The score would be between 1(excellent) and 5(poor) int getFPQuality(byte[]FPImage,int nWidth, int nHeight, int nFPQualityMode); Parameter - byte [] FPImage : fingerprint image in RAW format - int nWidth : width of the image - int nHeight : height of the image - int nFPQualityMode : fingerprint calculation mode Example // Define IBioMiniDevice mCurrentDevice=null; . .// Create BioMiniFactory instance . byte[] image; int width; int height; int mode; // Capture a fingerprint image & extract template // Get captured image data; image, width, height int nQuality = mCurrentDevice.getFPQuality(image, width, height, mode); Return Value Fingerprint quality 3.3.8 IBioMiniDevice.abortCapturing - Aborts capturing which is started by startCapturing() or captureSingle() int abortCapturing(); Parameter N/A Example // Define IBioMiniDevice mCurrentDevice=null; . .// Create BioMiniFactory instance . // Abort capturing if(mCurrentDevice.isCapturing()) { . . mCurrentDevice.abortCapturing(); . } Return Value ErrorCode 3.3.9 IBioMiniDevice.extractTemplate - Extracts a template from the stored image buffer which is acquired using captureSingle() or startCapturing() TemplateData extractTemplate(); Parameter N/A Example // Define IBioMiniDevice mCurrentDevice=null; . .// Create BioMiniFactory instance . // Capture a fingerprint image // Extract template IBioMiniDevice.TemplateData tmp = mCurrentDevice.extractTemplate(); Return Value Template data 3.3.10 IBioMiniDevice.clearCaptureImageBuffer - Clears the capture image buffer boolean clearCaptureImageBuffer(); Parameter N/A Example // Define IBioMiniDevice mCurrentDevice=null; . .// Create BioMiniFactory instance . // Capture a fingerprint image // Clear capture image buffer mCurrentDevice.clearCaptureImageBuffer() Return Value true : if image buffer was cleared false : if not 3.3.11 IBioMiniDevice.verify - Compares two extracted templates boolean verify(byte[] pTemplate1, int nTemplate1Size, byte[] pTemplate2, int nTemplate2Size); Parameter - byte [] pTemplate1 : an array containing the first template - int nTemplate1Size : size of the first template array - byte [] pTemplate2 : an array containing the second template - int nTemplate2Size : size of the second template array Example // Define IBioMiniDevice mCurrentDevice=null; . .// Create BioMiniFactory instance . byte[] template1; byte[] template2; // Capture two fingerprint images and extract templates // Capture a fingerprint image & extract template // Get extracted template; template1, template2 if(mCurrentDevice.verify(template1.data, template1.data.length, template2.data, template2.data.length)) { . . // Verify success . } Return Value true : verification is succeed false : verification is failed 3.3.12 IBioMiniDevice.getCompanyID - Returns the company ID of device String getCompanyID(); Parameter N/A Example // Define IBioMiniDevice mCurrentDevice=null; . .// Create BioMiniFactory instance . // Get company ID Log.d( “ CompanyID : “ + mCurrentDevice.getCompanyID()); Return Value Company ID 3.3.13 IBioMiniDevice.getCoreCoordinate - Returns the coordinates of the fingerprint Core in the captured image int[] getCoreCoordinate(); Parameter N/A Example // Define IBioMiniDevice mCurrentDevice=null; . .// Create BioMiniFactory instance . // Capture fingerprint image // Get coordinates of the fingerprint core int[] coord = mCurrentDevice.getCoreCoordinate(); Return Value Core coordinate array 3.3.14 IBioMiniDevice.errString - Gets the error string from ErrorCode String errString(int errCode); Parameter int errCode : Error code in int format Example // Define IBioMiniDevice mCurrentDevice=null; . .// Create BioMiniFactory instance . // Any process // Gets the error string Log.d( “ errString : “ + mCurrentDevice.errString(errCode)); Return Value Error string 3.3.15 IBioMiniDevice.isAwake - Check whether the currently connected device is SleepMode * Supported Device: BioMini Slim(PID: 0x0407), BioMini Slim 2(PID: 0x0408) boolean isAwake(); Parameter N/A Example // Define IBioMiniDevice mCurrentDevice=null; . .// Create BioMiniFactory instance . if(mCurrentDevice.isAwake() { . . // Wake up mode . } Return Value True : wake up mode False : sleep mode 3.3.16 IBioMiniDevice.popPerformanceLog - Gets the processing log String popPerformanceLog(); Parameter N/A Example // Define IBioMiniDevice mCurrentDevice=null; . .// Create BioMiniFactory instance . // Any process // Gets the processing log Log.d(((IBioMiniDevice)context).popPerformanceLog()); Return Value Processing log 3.3.17 IBioMiniDevice.getImageWidth - Gets width of target image int getImageWidth(); Parameter N/A Example // Define IBioMiniDevice mCurrentDevice=null; . .// Create BioMiniFactory instance . // Gets width of target image int nWidth = mCurrentDevice.getImageWidth(); Return Value Width of target image 3.3.18 IBioMiniDevice.getImageHeight - Gets height of target image int getImageHeight(); Parameter N/A Example // Define IBioMiniDevice mCurrentDevice=null; . .// Create BioMiniFactory instance . // Gets height of target image int nHeight = mCurrentDevice.getImageHeight(); Return Value Height of target image 3.3.19 IBioMiniDevice.getCaptureImageAsWsq - Makes an WSQ image from captured raw image data, with the specific width and height byte[] getCaptureImageAsWsq(int width, int height, float fBitRate, int rotate); Parameter - int width : width of image to crop (padding if bigger than image size, original size if negative) - int height : height of image to crop (padding if bigger than image size, original size if negative) - float fBitRate : compression ratio (0 to 8) - int rotate : rotation angle of the resulting image Example // Define IBioMiniDevice mCurrentDevice=null; . .// Create BioMiniFactory instance . // Capture fingerprint image int width; int height; float fBitRate; int rotate; // Get capture image as wsq byte[] wsq =mCurrentDevice.getCaptureImageAsWsq(width, height, fBitRate, rotate); Return Value WSQ image buffer 3.3.20 IBioMiniDevice.getCaptureImageAsBmp - Make a BMP formatted array from the captured image buffer byte[] getCaptureImageAsBmp(); Parameter N/A Example // Define IBioMiniDevice mCurrentDevice=null; . .// Create BioMiniFactory instance . // Capture fingerprint image // Get capture image as bmp byte[] bmp = mCurrentDevice.getCaptureImageAsBmp(); Return Value BMP formatted array 3.3.21 IBioMiniDevice.getDeviceInfo - Gets the device information DeviceInfo getDeviceInfo(); Parameter N/A Example // Define IBioMiniDevice mCurrentDevice=null; . .// Create BioMiniFactory instance . // Get device information if(mCurrentDevice != null) { Log.d(“ DeviceName : “ + mCurrentDevice.getDeviceInfo().deviceName); } Return Value Device information 3.3.22 IBioMiniDevice.setEncryptionKey - Sets the encryption key void setEncryptionKey(byte[] key); Parameter N/A Example // Define IBioMiniDevice mCurrentDevice=null; . .// Create BioMiniFactory instance . byte[] encryptionKey; // Set encryption key mCurrentDevice.setEncryptionKey(encryptionKey); Return Value null 3.3.23 IBioMiniDevice.encrypt - Encrypts the data byte[] encrypt(byte[] data); Parameter byte[] data : data to be decrypted Example // Define IBioMiniDevice mCurrentDevice=null; . .// Create BioMiniFactory instance . // Capture fingerprint image and extract template // Get extracted template; template // Encrypt template byte[] encryptData = mCurrentDevice.encrypt(template.data); Return Value Encrypted data 3.3.24 IBioMiniDevice.decrypt - Decrypts the data byte[] decrypt(byte[] data); Parameter byte[] data : data to be encrypted Example // Define IBioMiniDevice mCurrentDevice=null; . .// Create BioMiniFactory instance . // Capture fingerprint image and extract template // Encrypt extracted template data // Get encrypted template data; data // Dncrypt template byte[] decryptData = mCurrentDevice.decrypt(data); Return Value Decrypted data 3.3.25 IBioMiniDevice.getLastError - Gets the last ErrorCode ErrorCode getLastError(); Parameter N/A Example // Define IBioMiniDevice mCurrentDevice=null; . .// Create BioMiniFactory instance . // Get last error code ErrorCode lastError = mCurrentDevice.getLastError(); Return Value ErrorCode.OK 3.3.26 BioMiniFactory.getSDKInfo - Gets the revision information of SDK SDKInfo getSDKInfo(); Parameter N/A Example // Define IBioMiniDevice mCurrentDevice=null; private static BioMiniFactory mBioMiniFactory=null; . .// Create BioMiniFactory instance . // Get SDK information printRev(“”+mBioMiniFactory.getSDKInfo()); Return Value Revision information of SDK 3.3.27 BioMiniFactory.getDeviceCount - Gets the number of devices int getDeviceCount(); Parameter N/A Example // Define IBioMiniDevice mCurrentDevice=null; private static BioMiniFactory mBioMiniFactory=null; . .// Create BioMiniFactory instance . // Get device count int count = mBioMiniFactory.getDeviceCount(); Return Value The number of devices 3.3.28 BioMiniFactory.getDevice - Gets the device IBioMiniDevice getDevice(int i); Parameter int i : device number to get Example // Define IBioMiniDevice mCurrentDevice=null; private static BioMiniFactorym BioMiniFactory=null; . .// Create BioMiniFactory instance . // Get device mCurrentDevice = mBioMiniFactory.getDevice(0); Return Value Device 3.3.29 IBioMiniDevice.captureAuto - Unimplemented. This API will be implemented??? 3.3.30 IBioMiniDevice.activate - This API used for device control however it is unnecessary in application development. 3.3.31 IBioMiniDevice.deactivate - This API used for device control however it is unnecessary in application development. 3.3.32 IBioMiniDevice.isInUse - This API used for device control however it is unnecessary in application development. 3.3.33 IBioMiniDevice.isEqual - This API used for device control however it is unnecessary in application development. 3.4 Definitions 3.4.1 ENUM ImageType definition Code Description RAW_8 0 8-bit RAW image BITMAP 1 8-bit bitmap image WSQ 2 WSQ image DisconnectionCause definition Code Description USB_UNPLUGGED 0 USB Disconnected SLEEP_MODE 1 SLEEP MODE status DEACTIVATED 2 Deactivated state FrameRate definition Code Description LOW 0 Low speed frame rate mode MID 1 Medium speed frame rate mode HIGH 2 High speed frame rate mode ELOW 3 Extreme low speed frame rate mode SHIGH 4 Superior high speed frame rate mode SLOW 5 Superior low speed frame rate mode DEFAULT 6 Default value : MID ParameterValueType definition Code Description INT 0 Integer STRING ParameterType 1 String Code Description TIMEOUT 0 Timeout (millisecond unit) (0: infinite) SENSITIVITY 1 SCANNING_MODE 2 FAST_MODE 3 definition Default value 10000 Sensitivity (0 ~ 7); Higher value means 7 more sensitive Result image size of BioMini Plus 2 1 Fast Mode (0: not use fast mode, 1: use fast 1 mode) Level 1 : Below 1% (1e~2) 4 Level 2 : Below 0.1% (1e~3) Level 3 : Below 0.01% (1e~4) SECURITY_LEVEL 4 Level 4 : Below 0.001% (1e~5) Level 5 : Below 0.0001% (1e~6) Level 6 : Below 0.00001% (1e~7) Use Live Finger Detection (0: not use LFD, 0 DETECT_FAKE 5 1~3 : use LFD); Higher value means more strong to fake finger AUTO_ROTATE 6 Supports 360-degree matching (0: not use 0 rotate mode, 1: use rotate mode) Detect core (0: not use the function to 0 DETECT_CORE 7 detect the core of a fingerprint, 1: use the function to detect the core of a fingerprint) TEMPLATE_TYPE 8 Template type 0 Checks whether auto-sleep mode is or not 0 ENABLE_AUTOSLEEP 9 (0: off, 1: on) * Supported device: BioMini Slim, BioMini Slim 2 EXT_TRIGGER 10 Adaptive Capture Mode INVALID 11 Invalid 1 TemplateType definition Code Description SUPREMA 0 Suprema template type ISO19794_2 1 ISO template type ANSI1378 2 ANSI378 template type ErrorCode definition Code Description OK 0 Success ERROR 1 General error ERR_LICENSE_NOT_MATCH 2 License does not match ERR_NOT_SUPPORTED 3 This function is not supported ERR_INVALID_PARAMETERS 4 Input parameters are invalid ERR_ALREADY_INITIALIZED 5 Module is already initialized ERR_NOT_INITIALIZED 6 Module is not initialized ERR_NO_DEVICE 7 Device is not connected ERR_PERMISSION_DENIED 8 Device permission is canceled ERR_CAPTURE_RUNNING 9 ERR_CAPTURE_FAILED 10 ERR_NOT_CAPTURED 11 ERR_EXTRACTION_FAILED 12 Capturing is started using captureSingle or startCapturing Capturing is timeout or aborted There is no captured image for extraction Extraction is failed ERR_TEMPLATE_TYPE 13 Template type is not matched ERR_FILE_EXIST_ALREADY 14 A file with same name exists ERR_CORE_NOT_DETECTED 15 Core is not detected ERR_CORE_TO_LEFT 16 Move finger to left ERR_CORE_TO_LEFT_TOP 17 Move finger to left-top ERR_CORE_TO_TOP 18 Move finger to top ERR_CORE_TO_RIGHT_UP 19 Move finger to right-top ERR_CORE_TO_RIGHT 20 Move finger to right ERR_CORE_TO_RIGHT_BOTTOM 21 Move finger to right-bottom ERR_CORE_TO_BOTTM 22 Move finger to bottom ERR_CORE_TO_LEFT_BOTTOM 23 Move finger to left-bottom ERR_UNKNOWN 24 Unknown Error ScanningMode definition Code Description SCANNING_MODE_FULL 0 Result image size of BioMini Plus 2 : 315(W)x354(H) (pixels) Result image size of BioMini Plus 2 SCANNING_MODE_CROP 1 : 288(W)x340(H) (pixels) 3.4.2 Class 1. CaptureOption - Contains data of capture option 2. ImageOptions - Contains data of image option 3. Parameter - Contains data of parameter 4. TemplateData - Contains data of template data 5. FingerState - Contains data of finger state 6. DeviceInfo - Contains data of device information 7. SDKInfo - Contains revision information of SDK 3.4.2.1 CaptureOption class - Contains data of capture option class CaptureOption { public int captureTimeout; public boolean captureImage; public boolean captureTemplate; public FrameRate frameRate; }; Properties captureTimeout captureImage captureTemplate frameRate Controls a timeout for capture Checks whether receive image as a result of capture or not Checks whether receive template data as a result of capture or not Controls a frame rate for capture 3.4.2.2 ImageOptions class - Contains data of image options class ImageOptions { public ImageType imageType; public float compressionRatio; }; Properties imageType Controls an image type compressionRatio Controls a compression ratio of an image 3.4.2.3 Parameter class - Contains data of parameter class Parameter { public ParameterType type; public long value; } Properties type Receives a type of parameter value Receives a value of parameter 3.4.2.4 TemplateData class - Contains data of template data class TemplateData { public byte[] data; public TemplateType type; public int quality; } Properties data Receives a type of template data type Receives a value of template type quality Receives a value of template quality 3.4.2.5 FingerState class - Contains data of finger state class FingerState { public boolean isFingerExist; } Properties isFingerExist Checks whether finger exists or not 3.4.2.6 DeviceInfo class - Contains data of device information class DeviceInfo { public String deviceName; public String deviceSN; public String versionSDK; } Properties deviceName Receives a name of device deviceSN Receives a serial number of device versionSDK Receives a version of SDK 3.4.2.7 SDKInfo class - Contains revision information of SDK class SDKInfo { public intMajor; public intMid; public int Minor; public int Rev; } Properties Major Receives a major number of SDK version Mid Receives a mid number of SDK version Minor Receives a minor number of SDK version Rev Receives a revision version of SDK 4. Appendix What is Biometrics? Identifying individuals based on their distinctive anatomical(fingerprint, face, iris, hand geometry) and behavioral(signature, voice) characteristics is called biometrics. Because biometric identifiers cannot be shared or misplaced, they intrinsically represent an individual's identify. Biometrics is quickly becoming an essential component of effective identification solutions. Recognition of a person by their body, then linking that body to an externally established “identity”, forms a powerful authentication tool. Fingerprint identification has been widely used for a long time because individual’s unique Fingerprint pattern cannot be shared or misplaced, they essentially represent an individual’s identity. Fingerprint contains rich information in a small area compared to other biological anatomical (face, iris, hand geometry) and behavioral (signature, voice) characteristics. Identifying individuals based on fingerprint is well-known as the most feasible method compared to other biometrical characteristics. Among the other biometric identification methods, fingerprint identification has a good balance of qualities including accuracy, throughput, size and cost of scan devices, maturity of technology and convenience of use, making it the dominant biometric technology in industry. Two major methods are being used in fingerprint identification; matching based on feature point and filter bank. Matching algorithm based on feature point extract “local minutiae from Thinning fingerprint image or gray scale fingerprint image. Thereafter a method for matching using the location relationship between the feature point in the fingerprint template stored image and the input fingerprint image. he feature point matching takes relatively short processing time however matching performance could be deceased on noised fingerprint images. Filters bank matching algorithm extract fingerprint ridge using Gabor filters bank. Measured by means of an automated device for physical and behavioral characteristics, Technology to utilize as a means of personal identification Physical characteristics available - fingerprint, palm print, face, iris veins, etc. Physical and behavioral features available - voice, signature, key tapping, Gait, etc. Fingerprint is specified patterned from finger’s sweat gland which is consisting of ridge and Valley. Ridge has a certain direction at even interval. Also Ridge (Ridge) has characteristics where lean towards end from certain direction and the ridge (Ridge) part (Junction birurcation) which is divided into two directions. Classfication of fingerprint recoginition Fingerprint recognition is divided into classification (Classification) and matching (Matching). Classification (Classification) is a way of determine that fingerprint belongs to a particular group based on the overall form of a fingerprint. Matching (Matching) is to compare the fingerprints match with the fingerprints stored in the input. Matching (Matching) is divided into 2 different methods; 1: N matching (Identification) and 1: 1 matching (Verification). The extracted fingerprint minute is used to do matching. The minutiae can be divided into Local feature and global feature by its own characteristic The Global feature can be determined by formation of fingerprint and direction pattern of ridge & location of ridge minutiae determines the Local feature. Fingerprint recoginition Basic formation of fingerprint recognition system is as below. Preprocess the fingerprint image which was entered by fingerprint reader. Then recognize the fingerprint by extracting the features and comparing with saved fingerprint data stored in database. a. Preprocessing To extract features from the fingerprint image, follow through below process. Clarifying the image by removing the noise and also ridge ending, minutiae placement, crossed features caused by the noise. This process is called the preprocessing. Here, 3 preprocessing methods are performed; smoothing, binarization and thinning. b. Feature Extraction Fingerprint features can be performed as below methods; End point of ridge, minutiae placement, ridge direction pattern, connecting information between core and ridge, local feature containing ridge formation. The feature extraction can be effected by fingerprint pressure, direction, location, placement, and condition of the fingerprint. c. Feature Matching The matching is comparing saved template pattern in the database with fingerprint features taken from the device. To determine the match, may use pattern matching, statistics identification, structure identification. About FAR, FRR and EER Here, we discusses some general principles of biometric recognition systems, describes different classification errors and explains how the quality of two systems can be compared objectively. a. Identification vs. Verification A biometric recognition system can run in two different modes: identification or verification. Identification is the process of trying to find out a person's identity by examining a biometric pattern calculated from the person's biometric features. In the identification case, the system is trained with the patterns of several persons. For each of the persons, a biometric template is calculated in this training stage. A pattern that is going to be identified is matched against every known template, yielding either a score or a distance describing the similarity between the pattern and the template. The system assigns the pattern to the person with the most similar biometric template. To prevent impostor patterns (in this case all patterns of persons not known by the system) from being correctly identified, the similarity has to exceed a certain level. If this level is not reached, the pattern is rejected. In the verification case, a person's identity is claimed a priori. The pattern that is verified only is compared with the person's individual template. Similar to identification, it is checked whether the similarity between pattern and template is sufficient to provide access to the secured system or area. b. Thresholding (False Acceptance / False Rejection) The threshold depending fraction of the falsely accepted patterns divided by the number of all impostor patterns is called False Acceptance Rate (FAR). Its value is one, if all impostor patterns are falsely accepted and zero, if none of the impostor patterns is accepted. Look on the graphic on the right to see the values of the FAR for the score distribution of the left image for varying threshold. Now let's change to the client patterns. Similar to the impostor scores, the client pattern's scores vary around a certain mean value. The mean score of the client patterns is higher than the mean value of the impostor patterns, as shown in the left of the following two images. If a classification threshold that is too high is applied to the classification scores, some of the client patterns are falsely rejected. Depending on the value of the threshold, between none and all of the client patterns will be falsely rejected. The fraction of the number of rejected client patterns divided by the total number of client patterns is called False Rejection Rate (FRR). According to the FAR, its value lies in between zero and one. The image on the right shows the FAR for a varying threshold for the score distribution shown in the image on the left. The choice of the threshold value becomes a problem if the distributions of the client and the impostor scores overlap, as shown in the next image on the left. On the right, the corresponding false acceptance and false rejection rates are displayed. Note that if the score distributions overlap, the FAR and FRR intersect at a certain point. The value of the FAR and the FRR at this point, which is of course the same for both of them, is called the Equal Error Rate (EER). Scanners BioMini Slim 2 Ultra-slim FAP20 Fingerprint scanner BioMini Slim 2 is FAP20 certified fingerprint scanner featuring an array of cutting-edge technologies. Along with its 13.5mm slim optical sensor, BioMini Slim 2 features Suprema's proprietary Multi-dynamic Range(MDR) technology, FBI PIV/FIPS 201/Mobile ID FAP20 compliance and Android device support. BioMini Slim 2 also provides developers more physical flexibility with its reduced form factor and the ultra-slim optical sensor ensures robust operation over time. BioMini Slim provides new and advanced Live Finger Detection(LFD) technology by applying a machine learning method that analyzes and categorizes image patterns according to optical characteristics. Specification Main Interface Hardware Compatibility Sensor Type(Optical) Resolution(500dpi/256gray) Sensing Area(15.24×20.32mm) Image Size(300×400 pixels) Compression Standards(WSQ) Template Format(Suprema, ISO19794-2, ANSI-378) Image Format(ISO19794-4) IP Rating(IP65) USB(2.0 High-speed) Operating Temperature(-10°C ~ 50°C) Certification(CE, FCC, KC, UL/CB, WHQL, IEC62471, WEEE) Dimensions(72.8×40.7×18.5mm/WxLxH) Operating System(Windows, Linux, Android4.1/Jelly Bean and Above) BioMini Plus 2 FBI PIV Approved Authentication Scanner BioMini Plus 2 is an USB fingerprint scanner designed to provide high level security solution for identity access management solutions. BioMini Plus 2 features Suprema’s latest live finger detection technology for protection against fake fingerprints. The device features sleek and ergonomic design with scratch resistant IP65 sensor surface securing high usability. The usability is further extended with integration of MDR technology that allows effective capture of fingerprints even under direct sunlight. Combined with its comprehensive SDK solution, BioMini Plus 2 is a versatile and optimal platform for system integrators, hardware manufacturers and security companies. Specification Main Interface Hardware Compatibility BioMini Slim Sensor Type(Optical) Resolution(500dpi/256gray) Sensing Area(16.0x18.0mm) Image Size(315×354 pixels) Compression Standards(WSQ) Template Format(Suprema, ISO19794-2, ANSI-378) Image Format(ISO19794-4) IP Rating(IP65) USB(2.0 High-speed) Operating Temperature(-10°C ~ 50°C) Certification(CE, FCC, KC, RoHS, USB-IF, CB, IEC62471, WEEE, WHQL) Dimensions(66x90x58mm/WxLxH) Operating System(Windows, Linux, Android4.1/Jelly Bean and Above) FBI PIV and Mobile ID FAP20 Certified USB Fingerprint Scanner BioMini Slim has been designed to provide a high level security solution for identity access management solutions for authentication. With IP65 grade dust and waterproof form factor, BioMini Slim features a sleek ergonomic design with the latest 500dpi slim optical sensor, which boasts a large platen size for easy and reliable fingerprints capturing as well as advanced LFD (Live Finger Detection) technology. Specification Main Interface Hardware Compatibility Sensor Type(Optical) Resolution(500dpi/256gray) Platen Size(18×25.4mm) Sensing Area(17x25mm) Image Size(320×480 pixels) Compression Standards(WSQ) Template Format(Suprema, ISO19794-2, ANSI-378) Image Format(ISO19794-4) IP Rating(IP65) USB(2.0 High-speed) Operating Temperature(-10°C ~ 50°C) Certification(CE,FCC,KC,UL,WHQL, USB-IF,WEEE) Dimensions(82×57.7x27mm/WxLxH) Operating System(Windows, Linux, Android4.1/Jelly Bean and Above) BioMini Combo Contact Smart Card Reader with USB Fingerprint Scanner Suprema BioMini Combo has been designed to provide two factor authentication security solutions for authentication purposes. The scanner features Suprema’s latest slim optical sensor with large platen size for easier capturing. Smart card reader functionality and advanced Live Finger Detection technology enhances security makes BioMini Combo a secure platform for developers. Specification Main Sensor Type(Optical) Resolution(500dpi/256gray) Platen Size(18×25.4mm) Sensing Area(17x25mm) Image Size(320×480 pixels) Compression Standards(WSQ) Template Format(Suprema, ISO19794-2, ANSI-378) Card Support Interface Hardware Compatibility Image Format(ISO19794-4) CardType(ISO 7816/EMV 2000with SAM Slot_optical) USB(2.0 High-speed) Operating Temperature(-10°C ~ 50°C) Certification(CE,FCC,KC,UL,WHQL, USB-IF,WEEE) Dimensions(82×57.7x27mm/WxLxH) Operating System(Windows, Linux, Android4.1/Jelly Bean and Above) BioMini High Performance Authentication Scanner Our latest range of high performance fingerprint scanners are supported by powerful software development kit (SDK) which features Suprema's award-winning algorithm that ranked 1st in FVC and NIST MINEX tests. Suprema Authentication Scanners offers unrivaled versatile platform for development to leading security companies, system integrators and hardware manufacturers. Specification Main Interface Hardware Compatibility Sensor Type(Optical) Resolution(500dpi/256gray) Sensing Area(16x18mm) Image Size(288×320 pixels) Compression Standards(WSQ) Template Format(Suprema, ISO19794-2, ANSI-378) Image Format(ISO19794-4) USB(2.0 High-speed) Operating Temperature(-10°C ~ 50°C) Certification(CE,FCC,KC,WHQL) Dimensions(66x90x58mm/WxLxH) Operating System(Windows, Linux, Android4.1/Jelly Bean and Above)
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.7 Linearized : No Page Count : 74 Language : ko-KR Tagged PDF : Yes XMP Toolkit : 3.1-701 Producer : Microsoft® Word 2016 Creator : 예재형 Creator Tool : Microsoft® Word 2016 Create Date : 2017:12:19 17:35:44+09:00 Modify Date : 2017:12:19 17:35:44+09:00 Document ID : uuid:B46BF505-A8BD-4C51-AE66-0E42F4CB59F2 Instance ID : uuid:B46BF505-A8BD-4C51-AE66-0E42F4CB59F2 Author : 예재형EXIF Metadata provided by EXIF.tools