You are on page 1of 7

International Journal of Intelligent Information Technology Application, 2009, 2(6):279-285

Using Component Object Model for Interfacing Biometrics Sensors to Capture Multidimensional Features
H. B. Kekre
MPSTME, NMIMS Deemed to be University, Computer Engineering Department, Mumbai, India hbk@yahoo.com

V. A. Bharadi
MPSTME, NMIMS Deemed to be University, Computer Engineering Department, Mumbai, India vinu_bharadi@rediffmail.com

AbstractBiometrics technologies for personal authentication are becoming ubiquitous as security concerns are increased now days. A lot of research is going on biometrics authentication technology. These techniques rely on capturing human traits which is done by sensors. In this paper we discuss an application development viewpoint of biometrics domain research, which is focused on interfacing sensor devices to the computer and capturing the data in usable form. Here we discuss a mechanism which is used by authors to interface biometric sensors using .NET Platform and Component Object Model (COM) as an interface to the device. This can help other researchers to develop their own application involving real-time data capture from sensors compatible with personal computers. Index TermsBiometrics, Sensors, Interface, Application Programming, COM.

I. INTRODUCTION The security of a system has three primary components as authentication, authorization, and accountability. Authentication is the most fundamental of these three elements because it comes first. In the information technology domain, authentication means either the process of verifying the identities of communicating equipment, or verifying the identities of the equipments users which are primarily humans [1]. Biometric systems are becoming popular as a measure to identify human being by measuring ones physiological or behavioral characteristics. Biometrics identifies the person by what the person is rather than what the person carries, unlike the conventional authorization systems like smart cards. Unlike the possession-based and knowledge-based personal identification schemes, the biometric identifiers cannot be misplaced, forgotten, guessed, or easily forged [2][3]. Widely used biometrics authentication mechanisms are based on Fingerprint, Face, Handwritten Signatures, Iris, Palmprints, Speech, Gait. Besides these we also have odor, hand and ear geometry, 3D face Models, Retina,

DNA etc. [2][5][6]. Biometric System capture these traits and extract feature vectors from them, the either by direct matching or by using Dimensionality reduction techniques like PCA, LDA [1] [2] authentication is done. In the literature one can find a vast amount of work done for biometrics recognition as well as new directions are coming in sight for further research with development of faster machine and advanced sensors [1]. Development of such systems requires biometrics database, many biometrics databases are available on the internet for research purpose, like Fingerprint Database FVC 2000, 2002 , 2004,2006 Databases [7][8]. FERRET face database [9], CASIA Iris Database [10], Static Signatures Database [11]. Such databases have been widely used by researchers for the development of algorithms for biometrics recognition. But when it comes for real time implementation we need to capture data for the biometrics sensors. This issue of capturing data from sensors is least discussed in the literature. In this paper we discuss how to interface typical sensors in hardware, we present case study of Futronics FS 88 Fingerprint Scanner and Wacom Intuos 4 Digitizer Table for capturing dynamic features of handwritten signature. We are using Microsoft Visual C# 2005 (.NET Framework 2.0) for interfacing these sensors. Developing such interface application requires programming using Component Object Model (COM) as well as .NET assembly programming. Here we discuss COM which is used for accessing objects that are created in previous version of Microsoft programming platforms like Visual Basic 6.0, C++, which come in the form of ActiveX component of DLL Files. Rather than concentrating of very low level hardware interface, like development of drivers; here we discuss ways to facilitate real time data reading from the sensor in our application.

1999-2459 /09/$25.00 2009 Engineering Technology Press

279

In the next section we discuss what is Component Object Model, why we need it here to interface the above mentioned sensors?

II.

COMPONENT OBJECT MODEL (COM)

A component is an implementation of a set of interfaces & an object is an instance of a component. Component Object Model basically deals with developing small code that can be used across applications [12]. This is done by breaking a large system down into smaller units, one can write code that is easier to reuse on other projects, easier to distribute across multiple computers, and easier to maintain. As long as these components adhere to a binary standard that defines how they communicate with one another, they can be invoked as needed at runtime and discarded when they have finished their work. This type of application is also particularly suited to the Web, where clients request services of remote applications and then, once satisfied, move on to other tasks. For nearly a decade, the Microsoft Component Object Model (COM) has been the standard for components that run on Windows machines, including Windows 9x and Windows Me clients and Windows NT and 2000 servers. The COM model is well documented by the Microsoft Component Object Model Specification [12]. In application development we use this COM Component to provide & share functionality across different type of application. In the context of this paper we say that the sensors which are used for capturing data can be treated as objects, and we can program these objects using COM. The COM concepts were widely used in older platform like Visual Basic 6.0, Visual C++ 6.0 etc. These COM Components hide the complex details required to actually interface sensor hardware through the Hardware Abstraction Layer of the operating system. The manufacturer of the hardware has to do that in order to provide the drivers so that the hardware can be identified and installed on the operating system. As a researcher we are more concerned with the data coming from sensor. The operating system driver acts as a bridge between actual sensor hardware and the operating system. We have to develop bridge between the sensor driver and the application. This bridge is given by COM Component developed for corresponding sensor. We can have directly advanced component developed in advanced platform without the COM. This is possible in .NET. The COM is mainly concerned with code developed other than .NET. The .NET Framework provides a run-time environment called the common language runtime (CLR), which runs the code and provides services that make the development process easier. Majority of developers are using components that are written in older programming platforms, the components are developed for providing specific functionality. If we want to use these components

which are COM based .NET Provides a feature called as Interoperability. Interoperability enables you to preserve and leverage existing investments in unmanaged code. Code running under the control of the common language runtime (CLR) is called managed code[12], and code running outside the CLR is unmanaged code. COM, COM+, C++ components, ActiveX components, and Win32 API are examples of unmanaged code. We have Biometrics Sensors Futronics FS 88 for fingerprint scanning, which is an optical fingerprint scanner, another sensor is a digitizer Wacom Intuos 4, used for capturing data form pressure sensitive pad. To interface these devices we are using components which are COM based, it also worth to note that .NET Compatible component and Namespaces (Assembly) are available for the same, we discuss this issue in the next part of the paper. III. INTERFACING FUTRONICS FS88 FINGERPRINT SCANNER

For our research we are using an optical scanner for reading fingerprints. We are using Futronics FS 88 USB compatible scanner. The FS88 fingerprint scanner uses advanced CMOS sensor technology and precise optical system to meet the rigorous requirement on fingerprint image quality of PIV-071006. Special electronic circuit is built into FS88 fingerprint reader to do Live Finger Detection (LFD). With appropriate software in PC, user can select this LFD feature so that only live finger's fingerprint will be scanned into PC. Fake fingers made from silicone rubber, etc, will be rejected. The technical specification for the scanner are as follows : 1. Fingerprint scanning window size is 16.26 x 24.38mm 2. Image resolution is 480x320 pixel, 500 DPI 3. Raw fingerprint image file size is 150K byte 4. With Live Finger Detection (LFD) feature 5. USB 2.0 compatible interface, plug and play device 6.Unique serial number programmed to USB Device Descriptor 7.With 16K Byte memory for application-specific data storage

Figure 1. Futronics FS88 optical fingerprint scanner.

280

The manufacturer has provided an API for interfacing the scanner, but the API is in VC++ to interface this scanner in VC# .NET 2005, we have to reprogram entire API; to solve this problem we can use the above mentioned COM component available for the scanner for interfacing. Such component is provided by Griuale Fingerprint SDK [13], here we are not using SDK for verification; rather just the component is used for interfacing. Once the scanner is interfaced we can use our own algorithm for verification and matching. The Griuale SDK is using a FingerCAP USB Driver [13] which installs the Fingerprint scanner on the operating system and an ActiveX Component is provided which can be used for communicating with the hardware through application. Here the COM is coming in picture, the developers of SDK have written API for interfacing the FS88 Scanner and distributed as an ActiveX component that can be used in the application by developers, we have to program this component; for .NET we have direct .NET compatible GrfingerX Library also, here we discuss the COM Component. A. Creating COM Object for the device We add this component reference in the C# application by adding the namespace as follows: using GrFingerXLib; which defines all the objects and functions for interfacing.The component is then added as an ActiveX component

notification as shown in Figure 3. Ftrn0001 is the identified as plugged scanner (FS88).

Figure 3.Initializing axGrFingerXCtrl1 COM Object of GrFingerX library for the Scanner.

Next step is to initialize the capture mode of the actual hardware; this is done by calling the method axGrFingerXCtrl1.CapRawImageToHandle (ref _raw.img,_raw.width,raw.height, hdc.ToInt32(), ref handle); The captured image will be returned to the raw.img variable which is an image type data. B. Event Handlers & Delegates Next we have to handle the events which are occurring when the Finger is placed on the Scanner; for this we need to write the Event Handlers, which handle the call from the ActiveX Object which actually handles the hardware events. This is performed by defining Delegates which are actually dynamic method pointers in .NET. The delegates invoke the handler for the event raised by the FS88 Hardware and in turn the ActiveX component axGrFingerXCtrl1 during runtime.Here we list Finger down and Image Acquired Event Handler this.axGrFingerXCtrl1.FingerDown += new AxGrFingerXLib._IGrFingerXCtrlEvents_F ingerDownEventHandler(this.axGrFingerX Ctrl1_FingerDown); Where IGrFingerXCtrlEvents_FingerDownEventHandler is the Delegate provided by the GrfingerX library & axGrFingerXCtrl1_FingerDown()is the Function written for initiating action to read image from the scanner (Eventhandler). Anoher such exmple is the delegate for Imageaquired image which occurs when the scanner has completed image acquisition. this.axGrFingerXCtrl1.ImageAcquired += new AxGrFingerXLib._IGrFingerXCtrlEvents_I mageAcquiredEventHandler(this.axGrFing erXCtrl1_ImageAcquired); The reised events will be logged, the event log is as follows , which shows sequence of events occuring when capturing the fingerprint.

Figure 2. Instance of COM Component in .NET

Next step is to initialize the fingerprint scanner object which is named as axGrFingerXCtrl1. One thing that should be noted is that we are now interfacing FS88 Scanner through the axGrFingerXCtrl1 COM Object. The scanner is identified and initialized as axGrFingerXCtrl1.Initialize(); if any error is here this will be reported through the error codes. The successful initialization will give the

Figure 4. Event logging by Scanner object.

281

The image captured will be returned as Bitmap file object and can be used for further processing. The results for fingerprint scann using Futronics FS88 & designed interface is shown in Fig. 5. Here we have discussed how we can read data from FS88 Scanner using the GrfingerX COM Component; this library is also having .NET compatible objects. In the next section we discuss another such example where we use COM component for reading data from Wacom Intuos4 a digitizer tablet.

This digitizer is mainly used by graphics designers but we discuss its use as a sensor for handwritten signatures. A specialty of this device is that along with conventional parameters this device also gives Z-coordinate of the tip of the pen while signing; this enables us to capture X,Y,Z co-ordinates of the signature in a 3 Dimensional space. Hence we say that is extracts multidimensional features of a signature. Note that the ZCoordinate is sensed in a limit up to 2cm (approx) from the scanner surface; but it is sufficient to detect the coordinates of tip when user lifts the pen while signing. Typical features of the tablets is as follows 1. Active Area (W x D)157.5 x 98.4 mm 2. Connectivity-USB connectivity 3. Pressure levels -2048 4. Sensor pen without battery 5. Minimum ON weight (Minimum weight sensed by the pen tip) 1Gram. 6. Report rate- 197 Points per second 7. LPI - lines per inch-5080 lpi The manufacturer has provided driver to install this device on to the operating system but we need to design the interface so that we can capture the above mentioned features in our application for dynamic signature recognition. B. VBTablet Interface VBTablet is a library developed for interfacing digitizers, this provides objects for scanners which are Wintab [16] compatible. The Wintab driver is a windows driver provided by the tablet manufacturers to communicate between the digitizing tablet and Windows programs. Another such library is available from Microsoft which is called as Microsoft tablet PC namespaces [17], Microsoft.StylusInput; Microsoft.StylusInput.PluginData; Microsoft.Ink; Here we are demonstarting COM for interfacing the devices hence we go for the VBTablet interface. VBTablet is programmed in visual basic, COM reference DLL is available which implements the functionality for the Digitizer Interface[18].

Figure 5.Fingerprints scanned by Futronics FS 88 using given Interface

IV. INTERFACING DIGITIZER TABLET WACOM INTUOS4 Signature recognition is a major research area in biometrics. We have two types of signature recognition systems available (a) static & (b) dynamic [14]. In static system the scanned image of signature is used for feature extraction. In case of dynamic signature recognition system the signature features are extracted while signing. We have dynamic features such as pressure, speed, azimuth, angle, X,Y co-ordinates available in dynamic mode. Dynamic signature systems are more accurate [15]. A. Wacom Intuos4 Digitizer

Figure 6. Wacom Intuos4 Digitizer tablet used as a dynamic signature scanner

In order to capture signature features in dynamic mode we have to use digitizer tablets. Here we discuss interfacing a newly introduced device Wacom Intuos4.

282

C. Creating VBTablet Object Reference We start by adding the VBTablet.dll file in the .NET Application reference. This will add the VBTablet library in the project reference library. Note that the VBTablet is a library written in unmanaged code and because of Interoperability feature of .NET we can use this COM Object in our application; note that in Fig. 7 Interop.DxVBLib is appearing to support interoperabilty. This is the reference namespace which gives functionality for calling COM Objects in .NET environment.

Figure 8. Tablet object, Its Attributes & Event Handlers

Figure 7. Reference of VBTablet.DLL in the Application for VBTablet COM object.

The VBTablet.dll library has the VBTablet Namespace, which can be added to the application by using the statement. using VBTablet; This allows us to create a COM object for the digitizer which is Wintab compatible. We can create instance of the Digitizer Tablet object by public Tablet Digitizer; Digitizer = new Tablet(); The functionality for the digitizer object including the supported eventhandlers and attributes is shown in Fig. 8.

Now we can connect to Wacom Intuos4 by initializing the digitizer by following commands: Hwnd = this.Handle; Digitizer.hWnd = Hwnd; This statement will attach the Digitizer object (Intuos4) to the application GUI, where Hwnd is the reference of the GUI Window of our application. The connection is started by setting connected flag. Digitizer.Connected = true; The data capturing is initiated by setting the attributes as follows: Digitizer.Context.TrackingMode = true; Digitizer.Context.Enabled = true; As data packet from hardware comes the PacketArrival, ProximityChange etc. events will be raised. We have to define the corresponding delegates (Dynamic pointers to the Event handlers) so that we can capture and store the data. We define the delegate for the Digitizer object as follows: Digitizer.PacketArrival += new Tablet.PacketArrivalEventHandler(Packe tArrival); Where PacketArrival is a Delegate & we assign the corresponding eventhandler PacketArrival() to it. Another such example of delegate on similar lines is, Digitizer.ProximityChange += new Tablet.ProximityChangeEventHandler(Pro ximityChange); The packet arrival event raised by the Digitizer will give the captured data by the hardware. We gate following features of the signature in captured data packet. int X , int Y , int Z X,Y Z Coordinates of the pen Tip. (int means integer type data)

283

int Pressure Pressure applied at the point int TangentPressure tangent pressure of the tip. int Azimuth Pen Tip Azimuth (corresponding to tip angle) int Altitude- tip altitude corresponding to the different tip of the pen. int PacketSerial- Packet Serial Number int PacketTim Timestamp Some of the captured features are displayed in Fig. 9.

Figure 9. Captured Packed data from Wacom Intuos 4

Captured pen strokes at different pressure levels are shown below in Fig. 10.

Figure 10. Captured Pen Strokes & Signature

284

Figure 11. Signature Feature Plot for X,Y,Z Co-ordinates, Pressure Azimuth & Altitude parameter

Figure 12. Wacom Intuos 4 Digitizer tablet parameter acquired through VBTablet COM Object based Interface

Figure 11. Shows some the plot for the data captured for signature given in Fig. 10. In Fig. 12 we have shown some of the device parameters for the Wacom Intuos4 dynamic signature scanner hardware. These parameters are captured through object VBTablet.Tabletdevice; which is the COM object used in the application. V. CONCLUSION In this paper we have discussed interfacing of biometrics sensor hardware using Component Object Model. We have demonstrated use of COM base component GrFingerX.dll & VBTablet.dll for interfacing Optical Fingerprint Scanner Futronics FS88 & Wacom Intuos4 Digitizer Tablet on Microsoft .NET Framework 2.0 using Visual C# 2005 as programming language. These sensors have been used for Fingerprint & dynamic signature recognition by the authors. The methods discussed here will be helpful in the development of realtime biometrics identification system. One more point that should be noted is that the coding methodology discussed here is applicable for large family of the hardware supported by GrFingerX library & the Wintab compatible digitizers. We have used this COM based programming to capture live fingerprints as well as X,Y,Z (3D) coordinates of the dynamic signature as multidimensional features along with conventional features like pressure, azimuth and 2D Co-ordinates. The .NET platform supports COM objects in Interoperability mode; this allows us to use component created in other platform (Unmanaged code) to be used in .NET platform (Managed code). REFERENCES
[1] A. K Jain, P. Flynn, A. Ross, Handbook of Biometrics, Springer, ISBN-13: 978-0-387-71040-2 ,2008. [2] A. K. Jain, A. Ross, S. Prabhakar, An Introduction to Biometric Recognition, IEEE Transactions on Circuits and Systems for Video Technology, Vol. 14, No. 1, January 2004

[3] Arivazhagan S, Mumtaj J.,Ganesan L., "Face Recognition using Multi-Resolution Transform", International Conference on Computational Intelligence and Multimedia Applications 2007, IEEE DOI 10.1109/ICCIMA.2007. [4] P. Phillips, R. McCabe, and R. Chellappa., "Biometric image processing and recognition", Proceedings of European Signal Processing Conference, 1998. [5] C. Tisse, L. Martin, L. Torres, and M. Robert, Person Identification Technique using Human Iris Recognition, in Proc. Vision Interface, pp. 294-299, 2002. [6] H. Kekre , S. Bhatnagar, Finger Print Matching Techniques, In Proceedings of National Conference on Applications Digital Signal Processing. (NCDSP 2007), Mumbai, Jan 19 20, 2007 [7] http://bias.csr.unibo.it/fvc2002/ [8] http://www.itl.nist.gov/iad/humanid/feret/feret_master.html [9] http://www.cbsr.ia.ac.cn/IrisDatabase.htm [10] F. Vargas, M. Ferrer, C. Travieso, "Off-line Handwritten Signature GPDS-960 Corpus",Proceedings of the Ninth International Conference on Document Analysis and Recognition - Volume 02, ISBN ~ ISSN:1520-5363 , 07695-2822-8 [11] J. Louy, COM and .NET Component Services, OREILLY, pp 16-20 [12] MSDN help ://MS.VSCC.v80/ MS.MSDN.v80/ MS. VisualStudio.v80.en/dv_csref/html/238bb95a-e962-4026bbd5-197055bdb8ee.htm [13] http://www.griaulebiometrics.com/page/enus/fingerprint_sdk/specifications [14] H. B. kekre, V. A Bharadi, Off-Line Signature Recognition Systems, IJFCA, March 2010,Proceedings of international conference ICFCA 2010, in press [15] M. Shafiei, H. Rabiee, A New On-Line Signature Verification Algorithm Using Variable Length Segmentation and Hidden Markov Models, Proceedings of the Seventh International Conference on Document Analysis and Recognition, ICDAR 2003, 0-7695-19601/03. [16] http://www.logicgroup.com/WintabDriver.htm [17] http://msdn.microsoft.com/enus/library/microsoft.stylusinput.realtimestylus.aspx [18] http://sourceforge.net/projects/vbtablet/

285

You might also like