U.are.
Copyright © 2006-2017 Crossmatch. All rights reserved. Specifications are subject to change without prior notice. The Crossmatch logo, Crossmatch™, Cross Match®, DigitalPersona®, TouchChip®, Eikon®, U.are.U® and FingerJet™ are trademarks or registered trademarks of Cross Match Technologies, Inc. in the United States and other countries. All other brand and product names are trademarks or registered trademarks of their respective owners. Revised: June 14, 2017 (version 3.0.
Contents INTRODUCTION What’s New? ................................................................................................................................................. How the U.are.U Manuals are Organized ...................................................................................................... Getting Updated Documentation .................................................................................................................. Target Audience ..............................
USING THE SDK 22 What’s In the SDK? ..................................................................................................................................... 22 FingerJet Engine.......................................................................................................................................... 22 THE C/C++ APIS 23 DP Capture API ...........................................................................................................................................
CommunicationFailed .............................................................................................................................38 Enumerations............................................................................................................................................... 39 DeviceUidType ........................................................................................................................................39 DeviceModality .....................................
JAVAPOS 64 Terminology Note ........................................................................................................................................ 64 Working with Fingerprint Data in JavaPOS ................................................................................................. 64 Fingerprint Data for Raw Images (Captures) ..........................................................................................64 Fingerprint Data for Captures and Enrollment Templates (BIRs) ....
Introduction T HIS CHAPTER PROVIDES AN OVERVIEW OF THE FUNCTIONALITY AND FEATURES OF THE U. ARE .U SDK. The U.are.U SDK allows you to add fingerprint capture and recognition to applications developed for a wide-variety of platforms. Significant features of the U.are.
Introduction Getting Updated Documentation If you are viewing this developer guide from the download package for the U.are.U SDK, you may want to check our website for the latest version of this document. http://www.crossmatch.com/Support/Reference-Material/SDK-Reference-Material/ Targ e t A u d i e n c e This manual is aimed at developers who already have a working knowledge of their development environment and their chosen reader platform. We make the following assumptions.
Background T HIS CHAPTER PROVIDES BACKGROUND INFORMATION ON THE BASICS OF FINGERPRINT RECOGNITION In this chapter, we discuss the basics of fingerprint recognition. This chapter is not intended to be exhaustive, rather we’re going to give you enough background knowledge to develop your own application more effectively. For a more detailed overview, we recommend the Handbook of Fingerprint Recognition by D. Maltoni, M. Maio, A. Jain, and S. Prabhakar, published by Springer, 2nd edition, 2009.
Background I s s u e s i n F i n g e r p r i n t R e c o g n i t i o n Te c h n o l o g y In a perfect world, it would be a simple matter to determine whether two fingerprints were from the same finger-- the images would be identical or they would not. However, even though our fingerprints do not change over time, the fingerprint images can vary a lot, especially for some people. For example, certain skin conditions and wear due to manual labor can affect fingerprint images.
Developing Applications T HIS CHAPTER DESCRIBES THE PROCESS OF DEVELOPING FINGERPRINT RECOGNITION APPLICATIONS . This overview covers the following topics. • How fingerprint recognition works • Data structures and data flows among components • Typical workflows • Design issues and tradeoffs. The JavaPOS and OPOS APIs conform to the UPOS specification and therefore do not have exactly the same data structures and workflow as the other APIs in the U.are.U SDK.
Developing Applications This data flow is shown in Figure 1 below. A terminology note: in the past, enrollment fingerprints were stored as templates and fingerprints to be identified/ verified were created as feature sets. This data model is still supported when using the DigitalPersona data format - that is, there are two kinds of FMD, depending on whether the data is for an enrolled fingerprint or for a fingerprint to be identified/verified.
Developing Applications Step Three - Store Data Store the enrollment FMD. Many applications keep only the enrollment FMD because of space constraints or policy decisions. You cannot use FIDs for identification, so even if you choose to keep the FIDs, you must also store the FMD for each individual. Notes on Enrollment Before storing, you may want to check for existing entries that match the new entry -- applications like law enforcement, banking or voting registration, may not allow duplicate enrollments.
Developing Applications Optionally, the fingerprint capture device can compress the image before transmitting it. 2 Another alternative is to develop software for the fingerprint capture device to capture the fingerprint image AND extract the fingerprint features to create an FMD. The FMD is then transmitted to the server for processing, as shown below. FMDs are 1.5K or less and so require less bandwidth and speed.
Developing Applications Determining an Acceptable Level of Error When identifying fingerprints, you want to identify strictly enough that you do not let unauthorized people have access (false positives) but also do not inconvenience legitimate users by rejecting their fingerprints (false negatives).
Developing Applications D e f i n i n g t h e D a t a R e t e n t i o n Po l i cy After a fingerprint scan, an FID is created, which contains the actual image. Each fingerprint image takes roughly 140K of storage. With modern computers, that is not a huge amount, but each enrolled user may have several fingerprints scanned. Multiplied by the number of potential users, this can add up to a fair amount of data.
Working with Fingerprint Readers T HIS CHAPTER PROVIDES INFORMATION ABOUT SUPPORTED FINGERPRINT READERS AND THEIR USE . The U.are.U SDK works with the following fingerprint readers: • U.are.U 4500 Fingerprint Reader Rev. 103 • U.are.U 5xxx Fingerprint Readers (5100, 5160, 5200 and 5300) • Eikon 510, 710 and Eikon II Fingerprint Readers However, please note the following limitations. • The U.are.U 4xxx and Eikon readers do not support image streaming. • The U.are.
Upgrading from previous SDKs T HIS CHAPTER DESCRIBES THE PROCESS OF DEVELOPING FINGERPRINT RECOGNITION APPLICATIONS . O v e r v i e w o f S u p p o r t f o r P re v i o u s S D K s Wo r k i n g w i t h E x i s t i n g D a t a C re a t e d w i t h P re v i o u s S D K s The U.are.U SDK supports DigitalPersona, ANSI, and ISO formats. You may choose your format according to your application requirements.
Upgrading from previous SDKs the device, you can run applications based on either the old or the new SDK. The two SDKs can coexist and your existing applications can run using the older run-time environment while you update your programs or develop new applications based on the new SDK. Applications based on the old and new SDKs can run on the same hardware, but not simultaneously. Note that the data from existing applications based on the One Touch SDK is fully compatible with applications based on the U.
Upgrading from previous SDKs Changes in U.are.U Terminology from Prev ious Us age (Gold and One Touc h) This section describes differences in terminology between this product and the One Touch and Gold documentation. Old Term New Term Explanation Fingerprint authentication Fingerprint verification Change in industry standard terminology. Fingerprint registration Fingerprint enrollment Change in industry standard terminology.
Upgrading from previous SDKs OPOS. If you do not update your application to specify a specific format, new templates will be created with 45byte headers. Enrollment, identification and verification will continue to work with both new templates with 45byte headers and previous templates that have the shorter headers. See Working with Fingerprint Data in JavaPOS on page 64 and Working with Fingerprint Data in OPOS on page 71 for more information. • New FAR Security Setting.
Using the SDK T HIS CHAPTER DESCRIBES CONTENTS OF THE SDK AND THE PURPOSE OF EACH COMPONENT . W h a t ’s I n t h e S D K ? The SDK consists of: 1 C/C++ API -- C libraries that conform to ANSI.C99 (http://en.wikipedia.org/wiki/C99): • DP Capture API - for capturing fingerprints • FingerJet Engine API - for extracting fingerprint characteristics and identifying/verifying fingerprints 2 .NET API -- .NET class libraries • DP .NET API - for capturing and comparing fingerprints • DP .
The C/C++ APIs T HIS CHAPTER PROVIDES AN OVERVIEW OF THE C/C++ API S AVAILABLE FOR THE W INDOWS AND L INUX PLATFORMS . F OR DETAILS ON USING THE API WITH A SPECIFIC OS PLATFORM , CONSULT THE CORRESPONDING P LATFORM G UIDE . Detailed documentation for the API is contained in the header files. You can simply read the header files or you can view the Doxygen files. Consult the platform guide for details of where the Doxygen files are located. The API is thread-safe.
The C/C++ APIs Fingerprint Capture Device Management Function Description dpfpdd_query_devices Discover connected devices. dpfpdd_open Open a device. This function establishes an exclusive link to the device; no other processes will be able to use the device until you close it. The application must open the device before use. dpfpdd_close Close a device. dpfpdd_get_device_status Get the status for a device.
The C/C++ APIs The streaming methods are: Function Description dpfpdd_start_stream Start streaming mode. This function is not supported in the TouchChip Device Add-On for Android. dpfpdd_get_stream_image Capture a fingerprint image from the streaming data. This function is not supported in the TouchChip Device Add-On for Android. dpfpdd_stop_stream End streaming mode. This function is not supported in the TouchChip Device Add-On for Android.
The C/C++ APIs Enrollment The enrollment functions allow you to enroll a finger to create an FMD that you can store in your database. For ANSI/ ISO formats, the enrollment functions create FMDs. For the legacy DigitalPersona format, the enrollment functions create a fingerprint template. The typical process would be: 1 Call dpfj_start_enrollment.
The C/C++ APIs Advanced Diagnostics The majority of applications should use the dpfj_identify function to implement both identification and verification. However, in a few special cases, e.g., using multi-modal biometrics, or doing statistical risk assessment, the dpfj_compare function allows you to compare two FMVs to determine their actual degree of dissimilarity. This is useful for accuracy testing and diagnostics and is not intended to be used in final applications for actual fingerprint recognition.
The C/C++ APIs dpfj_finish_compression Releases resources. dpfj_set_wsq_bitrate dpfj_set_wsq_size These two specify the same thing: the size of the resulting compressed image, and can be used interchangeably. Setting the bitrate at 0.75 bpp to 0.9 bpp allows compression of 15:1 to 12:1. The parameter tolerance_aw sets the tolerance as required by the Aware WSQ1000 SDK and it is ignored when using NIST algorithm.
The JAVA API T HIS CHAPTER DESCRIBES HOW TO USE THE J AVA API. The Java API is built as a wrapper to the C/C++ API. The Java API is available for Linux, Android and Windows. This chapter provides an overview of the API. For details of using the API on a specific reader platform, consult the appropriate Platform Guide.
The JAVA API Wo r k i n g w i t h R e a d e r s Each attached reader is represented with a Reader object. The Reader interface allows: • Querying reader description and capabilities, • Acquiring status of the reader, • Capturing fingerprints, • Starting and stopping video stream, and • Resetting and calibrating the reader. The main methods are: Function Description GetDescription Get the description of a reader. The description is available at any time (even if the device is not open).
The JAVA API CancelCapture Cancel a pending capture Streaming Fingerprints Not all readers support streaming mode. To determine if a specific reader supports this feature, get the reader capabilities with the GetCapabilities method and check the value of the field can_stream. The streaming methods are: Function StartStreaming Description Put the reader into streaming mode. In this mode, the application must call GetStreamImage() to acquire images from the stream.
The JAVA API of setting the threshold as well as the statistical validity of the dissimilarity score and error rates, consult NIST Fingerprint Image Quality (NFIQ) on page 14. Compare() takes two single views from two FMDs and returns a dissimilarity score indicating the quality of the match. The majority of applications should use the Identify method to implement both identification and verification. However, in a few special cases, e.g.
The JavaScript API T HIS CHAPTER DESCRIBES HOW TO USE THE J AVA S CRIPT API . The JavaScript API, and an included JavaScript-based sample application, are provided as part of the U.are.U for Windows SDK 3.0 and above. The API provides web-based capture of fingerprints on the Windows platform through the following browsers: Internet Explorer, Microsoft Edge, Google Chrome or Mozilla Firefox. Note that it provides capture only, and does not provide authentication or identification.
The JavaScript API Each method returns an ECMAScript 6 Promise object. The fulfillment handler receives the result of the method, if any, and the rejection handler receives an instance of the standard Error object. enumerateDevices() The enumerateDevices() method returns the list of identifiers for all fingerprint readers connected to the computer.
The JavaScript API DeviceInfo The DeviceInfo object contains information about the fingerprint reader. Parameter Description deviceID A string containing the unique identifier of the fingerprint reader. eUidType One of the DeviceUidType enumeration values that specifies the type of the unique identifier of the fingerprint reader. eDeviceModality One of the DeviceModality enumeration values that specifies the capture process used by the fingerprint reader.
The JavaScript API console.log(Fingerprint.DeviceModality[sucessObj.eDeviceModality]); // One of the DeviceModality enumeration values that specifies the capture process used by the fingerprint reader. console.log(Fingerprint.DeviceUidType[sucessObj.eUidType]); // One of the DeviceTechnology enumeration values that specifies the fingerprint reader technology. }, function (error){ console.log(error.
The JavaScript API stopAcquisition The stopAcquisition() method stops the previously started fingerprint capture on the client computer. TypeScript declaration stopAcquisition(deviceUid?: string): Promise; Parameter Description deviceUid Optional. The unique identifier of the fingerprint reader. If not specified, the capture on all available fingerprint readers will be stopped.
The JavaScript API DeviceConnected The DeviceConnected event is fired when a fingerprint reader is connected to the client computer. Property Description deviceUid A string containing the unique identifier of the fingerprint reader. DeviceDisconnected The DeviceDisconnected event is fired when a fingerprint reader is disconnected from the client computer. Property Description deviceUid A string containing the unique identifier of the fingerprint reader.
The JavaScript API E n u m e ra t i o n s DeviceUidType The DeviceUidType enumeration lists types of unique identifiers for fingerprint readers. enum DeviceUidType { Persistent = 0, Volatile = 1, } DeviceModality The DeviceModality enumeration lists possible types of fingerprint readers relating to their capture process. enum DeviceModality { Unknown = 0, Swipe = 1, Area = 2, AreaMultifinger = 3, } DeviceTechnology The DeviceTechnology enumeration lists types of fingerprint reader technologies.
The JavaScript API NotEnoughFeatures = 6, NotCentered = 7, NotAFinger = 8, TooHigh = 9, TooLow = 10, TooLeft = 11, TooRight = 12, TooStrange = 13, TooFast = 14, TooSkewed = 15, TooShort = 16, TooSlow = 17, ReverseMotion = 18, PressureTooHard = 19, PressureTooLight = 20, WetFinger = 21, FakeFinger = 22, TooSmall = 23, RotatedTooMuch = 24, } Sample Format details Fingerprint data can be exported in one of the following formats.
The JavaScript API "uDataType":1, "uImageType":2, "uPadding":2, "uPlanes":1, "uPolarity":2, "uRGBcolorRepresentation":0, "uSignificantBpp":8 }, "Header":{ "DeviceId":1407938095516745728, "DeviceType":49264417346420736, "iDataAcquisitionProgress":100, "uDataType":1 }, "Version":1 }", "Header":{ "Encryption":0, "Factor":8, "Format":{ "FormatID":0, "FormatOwner":51 }, "Purpose":0, "Quality":-1, "Type":1}, "Version":1 }]" type:"SamplesAcquired" } Intermediate { deviceUid:"30323030-3661-6533-3764-393600000000"
The JavaScript API "Type":2 }, "Version":1 }]" type:"SamplesAcquired" } Compressed (WSQ) { deviceUid:"30323030-3661-6533-3764-393600000000" sampleFormat:3 samples:"[{ "Data":"{ "Compression":2, "Data":"_6DqAB6TklTPFHxflOj0_6E", // Base64url encoded image "Format":{ "iHeight":403, "iWidth":200, "iXdpi":508, "iYdpi":508, "uBPP":8, "uDataType":1, "uImageType":2, "uPadding":2, "uPlanes":1, "uPolarity":2, "uRGBcolorRepresentation":0, "uSignificantBpp":8}, "Header":{ "DeviceId":1407938095516745728, "DeviceType":
The JavaScript API } PNG { deviceUid:"30323030-3661-6533-3764-393600000000" sampleFormat:5 samples:"[" sc7ZGpUWzaqVwDQ0e3qjwEjX7evPn_8PNES8Q6co2hUAAAAASUVORK5CYII"]" // Base64url encoded image type:"SamplesAcquired" } U.are.
The .NET API T HIS CHAPTER DESCRIBES HOW TO USE THE .NET API . The .NET API is built as a wrapper to the C/C++ APIs for use on the Windows platform. This chapter provides an overview of the API. For details of using the API on a specific reader platform, consult the corresponding Platform Guide. The .NET API is considerably simpler to use than the C/C++ APIs and therefore generally results in: • Easier data management • Easier enrollment • Faster development The .
The .NET API Serialization The .NET API provides the ability to convert an FMD or FID into a format that can be read serially. Serialization allows you to easily transmit and store data as byte strings, streams or XML. This allows you to transmit the data or save it to standard file systems. The XML format can be used within HTML for building browser-based applications. To return the data to its original format, deserialization is also provided.
The .NET API The UML diagrams below show the ReaderCollection and Reader classes. U.are.
The .NET API The main methods for managing reader hardware in the Reader class are: Function Description Open Open a device and return the device capabilities. This method establishes an exclusive link to the device; no other processes will be able to use the device until you close it. The application must open the device before use. GetStatus Get the status for a device.
The .NET API Managing Fingerprint Data The .NET API implements fingerprint data as shown in the UML diagram below and on the next page. In addition to the usual methods for working with data, this class includes the methods below for serializing and deserializing (as described in Importing the U.are.U .NET package on page 44. Function Description SerializeXml Static method which serializes FMDs and FIDs into an XML string. Note that raw data is encoded as base-64.
The .NET API Analyzing and Managing Fingerprints (FingerJet Engine) The FingerJet Engine interfaces provide functionality to • Extract fingerprint features (create FMDs), • Identify and compare FMDs, and • Create enrollment FMDs. Refer to Understanding the Data Flow on page 11 for a description of enrollment and comparison terminology and data flow.
The .NET API Creating FMDs from images The CreateFmdFromFid() method can be used in two ways: 1. Extract fingerprint minutiae from a raw image and create an FMD. 2. Extract fingerprint minutiae from an FID and create an FMD. The following limitations are applied to the raw images and FIDs: • 8 bits per pixel • no padding • square pixels (horizontal and vertical dpi are the same) The size of the resulting FMD will vary depending on the minutiae in a specific fingerprint.
The .NET API Function Description Compare Compare two FMDs; supported formats are: Gold SDK, One Touch SDK, ANSI and ISO. Identify Identify an FMD: given an array of FMDs, this function returns an array of candidates that match the original fingerprint (an FMV within an FMD) within the threshold of error. Supported formats are: Gold SDK, One Touch SDK, ANSI and ISO. Enrollment CreateEnrollmentFmd() creates and returns an enrollment FMD.
The .NET API In VB.NET, the IEnumerable class does not exist. The recommended method to enroll FMDs using VB.NET is to send CreateEnrollmentFmd() four captured FMDs in an array. If four FMDs are not enough, add a fifth captured and converted FMD to the array and send to CreateEnrollmentFMD(), and so on until an FMD is created. Common Data Structures for Results The following classes are used when data is returned as a result of a U.are.U .NET operation. U.are.
The .NET API Pre-Built Controls for Enrollment and Identification In addition to the basic API, the SDK contains two pre-built controls that allow you to quickly add enrollment or identification into your application. These controls provide the same functionality as the DigitalPersona One Touch products. U.are.
ActiveX T HIS CHAPTER PROVIDES AN OVERVIEW OF THE API. F OR DETAILS OF USING THE API ON W INDOWS - BASED READERS , CONSULT THE U. ARE .U SDK P LATFORM G UIDE FOR W INDOWS . The ActiveX API and controls are built as a wrapper to the C/C++ APIs, and is available for the Windows platform. This chapter provides an overview of the API. For details of using the API on Windows-based readers, consult the U.are.U SDK Platform Guide for Windows.
ActiveX Note that serialized FMDs and FIDs include the version number of the ActiveX API that was used for the serialization. If you attempt to deserialize with an older version of the API, the results may not be correct, so when deserializing, the API will throw an SDKException if the serialization was done using a later version of the wrapper. Serialization in the API occurs using the default System.Xml.Serialization.XmlSerializer.
ActiveX Class Diagrams The UML diagrams below show the XReaderCollection and XReader classes. U.are.
ActiveX The main reader hardware management methods in the XReader class are: Function Description Open Open a device and return the device capabilities. This method establishes an exclusive link to the device; no other processes will be able to use the device until you close it. The application must open the device before use. GetStatus Get the status for a device. You would normally check the device status before captures to ensure that the device is functioning and there are no error conditions.
ActiveX Capturing Fingerprints The Capture function of the XReader class captures a fingerprint image for • Enrollment (as part of the process described on page 12) • Identifying users with Identify • Verifying a specific user identity with Compare The primary fingerprint capture methods are: Function Description Capture Captures a fingerprint image from the open reader.
ActiveX Managing Fingerprint Data The ActiveX API implements fingerprint data as shown in the UML diagram below: In addition to the usual methods for working with data, this class includes the methods below for serializing and deserializing (as described in Importing the U.are.U .NET package on page 44). Function Description SerializeXml Static method which serializes FMDs and FIDs into an XML string. Note that raw data is encoded as base-64.
ActiveX Accessing the FingerJet Engine The FingerJet Engine interfaces provide functionality to • Extract fingerprint features (create FMDs), • Identify and compare FMDs, and • Create enrollment FMDs. Refer to Understanding the Data Flow on page 11 for a description of enrollment and comparison terminology and data flow.
ActiveX Identification and Comparison Identify() identifies a single FMD against an array of FMDs. This function takes as inputs: • A single view in an FMD • An array of FMDs (each FMD can contain up to 16 views) to compare • The desired number of candidates to return • The threshold for False Positive Identification Rate (FPIR) that is permitted and returns matches as an array of integer pairs which provide the finger index and view index of each match.
ActiveX and call CreateEnrollmentFMD() again. If CreateEnrollmentFMD(), fails again, you can continue to add FMDs to the array and call CreateEnrollmentFMD() until an enrollment FMD is created successfully. Common Data Structures for Results The following classes are used when data is returned as a result of a U.are.U ActiveX operation. U.are.
ActiveX Pre-Built Controls for Enrollment and Identification In addition to the basic API, the SDK contains two pre-built controls that allow you to quickly add enrollment or identification into your application. These controls provide the same functionality as the DigitalPersona One Touch products. U.are.
JavaPOS THIS CHAPTER DESCRIBES HOW TO USE THE JAVAPOS API. The U.are.U JavaPOS API is built on the U.are.U Java API. This JavaPOS API is geared for Point of Sale applications and has the following features: • Fully compliant with JavaPOS 1.13. The U.are.U JavaPOS API conforms to the specifications for the Biometrics device category in Chapter 5, “Biometrics,” of the UnifiedPOS Retail Peripheral Architecture, Version 1.13 (July 15, 2009). The complete UPOS documentation is available at http://www.nrf-arts.
JavaPOS Function Description 0 Default (Same as 1) 1 DigitalPersona format with 45-byte header that conforms to JavaPOS 1.13 spec. New captures and enrollments will be done in the DigitalPersona format with 45byte headers. Verify and identify will correctly compare with BIRs that have 45byte headers, the previous 10-byte headers or a mixture. 2 ANSI INSITS 378-2004. New captures and enrollments will be created in ANSI format with a 45-byte JavaPOS header.
JavaPOS G e t t i n g D e v i c e - S p e c i f i c I n f o r m a t i o n w i t h D i re c t I O E ve n t The DirectIOEvent event is fired by a Service Object to deliver vendor-specific events to the application. The U.are.U JavaPOS API uses DirectIOEvent events to notify the application about device connection and disconnection and intermediate events such as finger touch or removal.
JavaPOS Implementation Notes The following table provides information about how UPOS and JavaPOS properties, methods, and events are implemented in the U.are.U JavaPOS API. Property Type Description UPOS Common Properties AutoDisable No This property is initialized to false in the open method. Changing its value will have no effect. CapCompareFirmwareVersion Yes This property is initialized to false in the open method since firmware comparison is not supported.
JavaPOS Property Type Description CapRawSensorData Yes CapRealTimeData Yes This property is initialized to false in the open method. CapSensorColor Yes This property is initialized to BIO_CSC_GRAYSCALE in the open method. CapSensorOrientation Yes This property is initialized to BIO_CSO_NORMAL in the open method. CapSensorType Yes This property is initialized to BIO_CST_FINGERPRINT in the open method.
JavaPOS Property Type Description Specific Methods beginEnrollCapture Yes beginVerifyCapture Yes endCapture Yes identify Yes identifyMatch Yes processPrematchData Yes verify Yes verifyMatch Yes An exception is thrown since CapPrematchData is set to false.
JavaPOS -1 FT_ERR_NO_INIT The fingerprint feature extraction module or the fingerprint comparison module is not initialized. -2 FT_ERR_INVALID_PARAM One or more parameters are not valid. -4 FT_ERR_IO A generic I/O file error occurred. -7 FT_ERR_NO_MEMORY There is not enough memory to perform the action. -8 FT_ERR_INTERNAL An unknown internal error occurred. -10 FT_ERR_UNKNOWN_DEVICE The requested device is not known.
OPOS T HIS CHAPTER DESCRIBES HOW TO USE THE OPOS API . The U.are.U OPOS API is built on the U.are.U C/C++ API. The OPOS API is geared for Point of Sale applications and has the following features: • Fully compliant with OPOS 1.13. The U.are.U OPOS API conforms to the specifications for the Biometrics device category in Chapter 5, “Biometrics,” of the UnifiedPOS Retail Peripheral Architecture, Version 1.13 (July 15, 2009). The complete UPOS documentation is available at http://www.nrf-arts.
OPOS Value Meaning 0 Default (Same as 1) 1 DigitalPersona format with 45-byte header that conforms to OPOS 1.13 spec. New captures and enrollments will be done in DigitalPersona format with 45byte headers. Verify and identify will correctly compare with BIRs that have 45byte headers, the previous 12-byte headers or a mixture. 2 ANSI INSITS 378-2004. New captures and enrollments will be created in ANSI format with a 45-byte OPOS header.
OPOS G e t t i n g D e v i c e - S p e c i f i c I n f o r m a t i o n w i t h D i re c t I O E ve n t The DirectIOEvent event is fired by a Service Object to deliver vendor-specific events to the application. The U.are.U JavaPOS API uses DirectIOEvent events to notify the application about device connection and disconnection and intermediate events such as finger touch or removal. This chapter contains specific information about the U.are.U SDK implementation of the OPOS Control.
OPOS EventNumber Return Values Event Number Description 1 The fingerprint reader was disconnected. 2 The fingerprint reader was reconnected. 3 The fingerprint reader was touched. 4 The finger was removed from the fingerprint reader. 5 A fingerprint image is ready for processing. 6 Provides information about the quality of the fingerprint image. 7 A supplied fingerprint credential was added to the fingerprint enrollment template. 8 The fingerprint capture operation was stopped.
OPOS StatusUpdateEvent Syntax << event >> upos::events::StatusUpdateEvent Status: int32 { read-only } Description This event is used in the U.are.U SDK to notify the user that a raw image is available for use. Attribute This event contains the following attribute: Attribute Type Description Status int32 The Status parameter notifies the user that raw image data is available. Status Return Values StatusUpdateEvent Value Meaning 1 BIO_SUE_RAW_DATA Raw image data is available.
OPOS Name Implementeda Claimed Yes ControlObjectDescription Yes ControlObjectVersion Yes Comment This property is initialized to false in the open method. It is set to true on claim and set to false again on release. DataCount Partial This property is initialized to 0 in the open method and is not modified during execution of the application. DataEventEnabled Partial This property is initialized to false in the open method and is set to true after a successful claim operation.
OPOS Name Implementeda Comment CapSensorColor Yes This property is initialized to BIO_CSC_GRAYSCALE in the open method and is not modified during execution of the application. CapSensorOrientation Yes This property is initialized to BIO_CSO_INVERTED in the open method and is not modified during execution of the application. CapSensorType Yes This property is initialized to BIO_CST_FINGERPRINT in the open method and is not modified during execution of the application.
OPOS Name Implementeda endCapture Yes identify Yes identifyMatch Yes processPrematchData No verify Yes verifyMatch Yes Comment Events DataEvent Yes Valid values for Status parameter are 1- BIO_DATA_ENROLL if enroll capture is completed. 2- BIO_DATA_VERIFY if verify capture is completed.
OPOS D e v i c e - R e l a t e d E r ro r C o d e s For the device-related result codes returned by EventNumber after the DirectIOEvent event, see EventNumber Return Values on page 74. The following error codes are returned in the ResultCodeExtended property of the ErrorEvent object. IMPORTANT: You should always use the names of the return codes, such as FT_OK, rather than the numeric values because these values may change at any time, without notice.
Application Notes T HIS CHAPTER DESCRIBES SOME SUGGESTIONS FOR TROUBLESHOOTING YOUR APPLICATION . G e n e ra l F i n g e r p r i n t I s s u e s It is very important that you test your application with multiple and diverse people. The readability of fingerprints is affected by many factors including wear and tear, skin dryness, and age. The middle finger often gives better scans than the index finger because the middle finger is typically less worn.
Glossary G e n e ra l Te r m s Fingerprint The impression left from the friction ridges of a human finger. Fingerprint characteristics The biological finger surface details that can be detected and from which distinguishing and repeatable fingerprint features can be extracted. Fingerprint minutiae The fingerprint characteristics commonly used in fingerprint recognition systems.
Glossary Fingerprint Minutiae View (FMV) The part of an FMD that contains fingerprint features from a single impression of a single finger. Typically FMDs contain only one FMV. Fingerprint template The fingerprint minutiae data that is stored as a result of the enrollment process. Fingerprint Devices Fingerprint capture device A device that collects a signal of fingerprint characteristic and outputs a fingerprint sample.
Glossary 4 Making the match/non-match decision. Verification Threshold The maximum degree of dissimilarity that is allowed between a fingerprint image and a fingerprint template in order to make the match decision during the verification process. Match decision or match A decision that two fingerprints are from the same finger (meet the verification threshold). Non-match decision or non-match A decision that two fingerprints are not from the same finger (do not meet the verification threshold).
Glossary In authentication applications, FRR is used in place of FNMR. Verification Detection Error Trade-off (DET) curve A parametric curve that plots FMR on the x-axis and FNMR on the y-axis as a function of the verification threshold. Probe In simulation tests, a fingerprint used in searches (analogous to the user fingerprint used by a real application for searching).
Index A Accessing the FingerJet Engine (ActiveX) 60 Accessing the FingerJet Engine (Java API) 31 Algorithm property 67, 76 allowed values 64, 71 AlgorithmList property 67, 76 ANSI INSITS 378-2004 65, 72 AutoDisable property 67, 75 B basics of fingerprint recognition 9 BDB format 64, 71 beginEnrollCapture method 69, 77 beginVerifyCapture method 69, 77 BinaryConversion property 75 BIR format 64, 71 BIR property 67, 76 C C/C++ APIs 23 CapCompareFirmwareVersion property 67, 75 CapPowerReporting property 67, 7
Creating FMDs from images (Java API) 31 D DataCount property 67, 76 DataEvent 69, 78 implementation notes for 73 DataEventEnabled property 67, 76 DeviceConnected 38 DeviceDescription property 67, 76 DeviceDisconnected 38 DeviceEnabled property 67, 76 DeviceInfo 35 DeviceModality 39 DeviceName property 76 DeviceServiceVersion property 67 DeviceTechnology 39 DeviceUidType 39 DirectIO method 68, 77 DirectIOEvent 69, 78 implementation notes 66, 73 implementation notes for 73 DP Capture API 23 E ECMAScript 6 3
P PhysicalDeviceDescription property 67 PhysicalDeviceName property 67 PowerNotify property 67, 76 PowerState property 67, 76 Pre-Built Controls for Enrollment and Identification (.