WO2001024103A1 - System and method for capturing, enrolling and verifying a fingerprint - Google Patents

System and method for capturing, enrolling and verifying a fingerprint Download PDF

Info

Publication number
WO2001024103A1
WO2001024103A1 PCT/US2000/027178 US0027178W WO0124103A1 WO 2001024103 A1 WO2001024103 A1 WO 2001024103A1 US 0027178 W US0027178 W US 0027178W WO 0124103 A1 WO0124103 A1 WO 0124103A1
Authority
WO
WIPO (PCT)
Prior art keywords
fingerprint
ridge
minutia
sensor
template
Prior art date
Application number
PCT/US2000/027178
Other languages
French (fr)
Inventor
John F. Catalano
Paul H. Magnant
Original Assignee
Catalano John F
Magnant Paul H
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Catalano John F, Magnant Paul H filed Critical Catalano John F
Priority to AU79907/00A priority Critical patent/AU7990700A/en
Publication of WO2001024103A1 publication Critical patent/WO2001024103A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/12Fingerprints or palmprints

Definitions

  • the present invention relates to an electronic fingerprint identification device. More specifically, the present invention relates to a stand-alone, low-power, portable electronic fingerprint identification device featuring fingerprint identification algorithms that are designed to minimize the use of computationally intensive operations.
  • Biometric devices such as fingerprint identification devices have become increasingly popular in recent years, their most common uses being for security and access control. They are considered more secure than personal identification (PIN) numbers or cards because a fingerprint cannot be forged and possession of a fingerprint cannot be transferred.
  • PIN personal identification
  • Existing fingerprint devices generally scan a fingerprint and transmit the image through a serial connection to a personal computer (PC).
  • PC personal computer
  • these devices require the use of software that is installed on PC having at least a PENTIUM® class microprocessor operating at 200MHz or more in order to process the fingerprint image and perform enrollment, verification, and database functions.
  • known algorithms for performing such functions are sufficiently computationally intensive that only a relatively powerful microprocessor can perform the operations necessary to identify a fingerprint in a commercially reasonable period of time.
  • known algorithms use functions such as Fourier transforms, and complete image-to-image comparisons, which require substantial computing power to execute in a reasonable period of time. Requiring a PC to process the fingerprint image adds to the expense of such devices, makes them unusable by owners of portable computing, communication and other devices, and generally diminishes the applications in which they can be used.
  • fingerprint identification devices that contain embedded or autonomous fingerprint capture and verification software and thus do not require a PC to process the fingerprint image, such as the Sony® FIU fingerprint identification unit.
  • the power requirements of these devices are substantial and require an external power supply, which diminishes their portability and convenience and their usability with PDAs, cellular telephones, and other portable devices. As such, these devices cannot be considered to operate on a "standalone" basis.
  • One aspect of the present invention is a biometric verification device for providing secure access to a unit connected to the device.
  • the device includes a biometric sensor capable of sensing a biometric trait of a user that is unique to the user and providing a first signal containing information representing the biometric trait.
  • the device also includes a processing unit connected to the biometric sensor so as to receive the first signal.
  • the processing unit is adapted to compare the information with biometric data stored in the processing unit representing a biometric trait of an enrolled person, and provide a verification signal indicating whether or not the information corresponds sufficiently with the biometric data to verify the user is the enrolled person.
  • the processing unit completes the comparison and generates the verification signal within 20 seconds of when the biometric sensor senses the biometric trait using no more than 1 W of peak power.
  • Another aspect of the present invention is a system for extracting fingerprint minutia points from a first monochrome image containing an x-y array of pixels, each representing either a fingerprint ridge or a fingerprint valley.
  • the x-y array is divided into a plurality of contiguous local blocks, each having a predetermined number of the pixels arranged in rows and columns.
  • Each minutia point is one of several types.
  • the system includes a scanner module that scans lines of pixels in each local block to detect the position of segments of pixels in each local block representing a fingerprint ridge. Also included is a comparator module that compares each of the ridge segments detected by the scanner module in each local block with adjacent ridge segments to determine if a minutia point exists, and identifies its position and minutia point type.
  • the system further includes a ridge direction module that determines direction of fingerprint ridges leading to each minutia point determined by the comparator module, and a minutia list module that saves the position and type of minutia points determined by the comparator module.and fingerprint ridge directions determined by the ridge direction module.
  • Yet another aspect of the present invention is a fingerprint identification device that includes a sensor for providing an output signal containing information representing attributes of a user's fingerprint positioned proximate the sensor that are unique to the user.
  • the device also includes a memory for storing a first template containing attributes of a fingerprint of a first person that are unique to the first person and a logic unit connected to the memory.
  • a program is stored in the memory that, in cooperation with the memory and logic unit: (i) creates the first template using the information in the output signal from the fingerprint sensor that represents unique attributes of the first person's fingerprint positioned proximate the sensor; (ii) creates a second template using the information in the output signal from the fingerprint sensor that represents in less than IK bytes of data unique attributes of a user's finge ⁇ rint positioned proximate the sensor; and (iii) verifies if the user is the first person by attempting to match the unique attributes in the first template with the unique attributes in the second template.
  • Still another aspect of the present invention is a method of creating a template containing attributes of a fingerprint unique to a first person, the fingerprint having a plurality of minutia points of one or more types and a ridge leading to each of the minutia points.
  • the method comprises the steps of (a) identifying the location and type of a plurality of minutia points on the fingerprint, (b) identifying the direction of the ridge leading to each minutia point, and (c) using no more than IK bytes of data, storing the location and type of the minutia points identified in step a and the direction of the ridge leading to each minutia point identified in step b.
  • FIG. 1 is a block diagram representation of the major elements of the fingerprint enrollment and verification device of the present invention and the external unit with which the device is designed to operate;
  • FIG. 2 is a block diagram representation of the major components of the software program of the device illustrated in FIG. 1, along with the database used with such software module;
  • FIG. 3 is a flow diagram illustrating the steps involved in initiating operation of the device of FIG. 1 ;
  • FIG. 4 is a flow diagram illustrating the steps of the fingerprint enrollment process for the device of FIG. 1 ;
  • FIG. 5 is a flow diagram illustrating the steps associated with the fingerprint image detection and sensor calibration
  • FIG. 6a is an idealized representation of a fingerprint image obtained from the finge ⁇ rint sensor of the device of FIG. 1 ;
  • FIG. 6b illustrates the fingerprint ridge orientation direction and orientation number for each of the local blocks in the fingerprint image of FIG. 6a;
  • FIG. 7 illustrates one example of the pixels used relative to a target pixel in the directional image filtering process for each of the eight orientation numbers illustrated in FIG. 6b;
  • FIG. 8a illustrates a portion of a fingerprint image before directional image filtering and FIG. 8b illustrates the same portion after directional image filtering;
  • FIG. 9a is a schematic representation of a first monochrome image created from the fingerprint image
  • FIG. 9b is a schematic representation of a second monochrome image created from the fingerprint image, with only a limited number of the pixels of the monochrome images being illustrated in FIGS. 9a and 9a for clarity of illustration;
  • FIG. 10 is a representation of a local block where a ridge bifurcates into two ridges, and two local blocks above the local block in which the bifurcation occurs and one local block below the local block in which the bifurcation occurs;
  • FIG. 1 1 illustrates 8 x 8 pixel monochrome images of five ridge conditions used in connection with the minutia extraction algorithms of the present invention
  • FIG. 12 is a representation of the two 16-bit words used to identify each minutia point in the fingerprint template of the present invention.
  • FIG. 13 is a flow diagram of the fingerprint verification process of the present invention.
  • FIG. 14a is a schematic representation of a fingerprint template of a user of the present invention.
  • FIG. 14b is a schematic representation of a fingerprint template for a person previously enrolled in the device of the present invention.
  • the present invention is a low-power, standalone, fully self-contained, battery-powered fingerprint enrollment and verification device 100.
  • device 100 permits rapid enrollment of multiple fingerprints and permits rapid verification that the fingerprint of a user corresponds to a previously enrolled fingerprint.
  • These functions may be achieved using as a power source two conventional AAA alkaline batteries which, depending upon frequency of use, typically last for 6 months or more.
  • the term "fingerprint” includes thumbprints and toeprints.
  • Device 100 includes a logic unit 1 10, which may be a microprocessor, a microcontroller, an ASIC device, an FPGA or other logic devices. The specific logic device used is typically selected based on performance, cost, power-consumption and other criteria.
  • logic unit 1 10 is an Intel microcontroller identified by model number 80C251TB24.
  • Logic unit 1 10 is connected via bus 1 12 to memory unit 120.
  • the latter includes program memory 122 and dynamic memory 124.
  • Program memory 122 provides persistent storage of data and may comprise a read-only memory (ROM) chip, optical memory such as a CD ROM or DVD and associated reader, magnetic memory, RF ID tag technology, inductive memory and other memory usable in a wired or wireless environment.
  • ROM read-only memory
  • program memory 122 is an Atmel EPROM identified by model number 27C256R.
  • Dynamic memory 124 provides transient storage of data generated in connection with operations performed by logic unit 1 10, and may comprise a random access memory (RAM) chip, e.g., an SRAM or DRAM chip. It is preferred, but not mandatory, that dynamic memory 124 include non-volatile memory for storing certain data such as fingerprint templates previously enrolled in device 100, discussed below, and other secure information. Such non-volatile memory is designed to store such templates and secure information when power is temporarily removed from device 100, e.g., while changing batteries. In selecting the non-volatile memory to be used, it is preferred the memory be capable of storing such templates and secure information for at least 1-2 minutes.
  • program memory 122 and dynamic memory 124 may be implemented as separate devices, depending upon the implementation of logic unit 1 10, program and/or dynamic memory may be an integral portion of the logic unit.
  • Device 100 also includes a program 126 stored in program memory 122.
  • Program 126 in cooperation with logic unit 1 10 and memory 120, is responsible for performing the various operations necessary for fingerprint enrollment and verification, as discussed in more detail below.
  • Program 126 is typically implemented as firmware, although the present invention encompasses implementation of the program as software.
  • fingerprint sensor 130 provides the raw image of a fingerprint positioned proximate the sensor.
  • the relative proximity of the fingerprint to sensor 130 will depend upon the type of sensor used. With some sensors, e.g., capacitive type, the fingerprint will need to be brought into intimate contact with the outer surface of the sensor, whereas with other sensors, e.g., optical type, the fingerprint will need to positioned within about 2-5mm of the outer surface.
  • proximate includes both positioning the fingerprint in intimate contact with the outer surface of the sensor and positioning the fingerprint near, but spaced from, the outer surface.
  • sensor 130 may be a capacitive fingerprint sensor of the type having a matrix, e.g., 224 x 288, of metal electrode pixels, each of which provides a gray scale output signal providing a representation of that portion of the fingerprint contacting the sensor in a digital signal, e.g., 8-bit signal.
  • a suitable fingerprint sensor that may be used as sensor 130 is sold by Infineon Technologies AG, and is identified as the FingerTIP sensor FTF 1 100 MF 1.
  • Other types of fingerprint sensors may also be used as sensor, including optical sensors, thermal sensors and e-field sensors.
  • the senor In selecting a fingerprint sensor, it is preferred that the sensor provide gray scale information on a pixel-by-pixel basis where each pixel provides such information for a sufficiently sized portion of the fingerprint to permit performance of the various operations described below. These operations are used for fingerprint enrollment and verification.
  • Sensor 130 is generally part of device 100. However, in some cases device 100 may be constructed such that sensor 130 is not part of the device, but rather is a separate element to which device 100 is adapted to be connected.
  • Device 100 is designed to provide secure access to external unit 140 that is connectable with device 100 via an interface 150.
  • Virtually any device or system may be used with device 100.
  • external unit 140 may be any of the following devices: computing devices such as laptop computers, desktop computers, and calculators; PDAs; portable communications devices such as cellular telephones, beepers, pagers and PDAs; security systems such as those used in a home, business or automobile; weapons; and any other device where it is desired to restrict access to only previously authorized persons.
  • Connection 160 is used to connect device 100 to external unit 140 via connection 160.
  • Connection 160 may be wired or wireless.
  • connection 160 may comprise, for example, a full duplex asynchronous serial bus standard similar to RS232, Universal Serial
  • connection 160 may be a custom communication protocol.
  • device 100 may be positioned immediately adjacent external unit 140 or may be located a substantial distance away from the external device. In fact, in some cases it may be desirable to integrate device 100 and external device 140. In this case, connection 160 may be simply a wire extending between device 100 and external device 140. When so integrated it is a misnomer to described device 140 as "external,” and so this term encompasses devices 140 that are both separate from and intimately integrated with device 100.
  • Power source 170 that is preferably connected to the device via interface 150, but may be otherwise connected to the device.
  • power source 170 comprises one or more batteries, e.g., two conventional 1.5 volt AAA alkaline batteries of the type sold by Eveready Battery Company, Inc. under the trademark ENERGIZER®. Of course, lithium or other longer-lasting batteries may be used as power source 170.
  • Power source 170 may also be an external source of power, e.g., line power with power conversion and conditioning, although this will reduce the portability of device 100, which is an important but not mandatory objective of the present invention.
  • Program 126 includes a group of program modules for capturing, processing, manipulating, comparing and storing fingerprint data generated by fingerprint sensor 130.
  • Software modules include sensor data capture module 200, image processing module 202, minutia extraction module 204, template creation module 206 and template compare module 208.
  • Program 126 also includes a database 210 for storing fingerprint templates of previously enrolled persons. Database 210 is typically a portion of memory 120, but may be contained in an external device.
  • step 302 a determination is made that interface 150 has received a request from external unit 140 to receive and capture a fingerprint, then device 100 is "awakened,” i.e., powered up, as indicated at step 304.
  • external unit 140 sends a command packet to interface 150 requesting device 100 to sense and capture the fingerprint.
  • Logic unit 1 10 receives and decodes the command packet and sends a signal that activates sensor 130. Once activated, sensor 130 sends a signal containing gray scale information for a matrix of pixels corresponding to the fingerprint to logic unit 1 10, the capture of which is described below.
  • Fingerprint enrollment is the process by which a person that has the right to store one or more of his or her fingerprints in device 100 achieves such storage.
  • the user's fingerprint is compared with fingerprints previously enrolled in the device. If no request to enroll a fingerprint exists, then operation of device 100 proceeds to the fingerprint verification procedure, as depicted at step 308. This procedure is described in detail below, following description of the enrollment procedure. If at step 306 a determination is made that an enrollment request exists, then the fingerprint enrollment procedure is performed, as indicated at step 310.
  • fingerprint enrollment begins at step 320.
  • the first operation is setting a timer defining the amount of time logic unit 1 10 will wait for fingerprint image information from sensor 130, as indicated at step 322.
  • logic unit 1 10 attempts to capture fingerprint images from sensor 130.
  • a determination is made if device 100 has captured a fingerprint image. If not, a determination is made at step 328 if the amount of time set at step 322 has elapsed. If so, then a "no finger" signal is sent to external unit 140 at step 330 indicating a finger is not present at sensor 130. If the time has not elapsed, then another attempt is made to capture a fingerprint at step 324. Turning next to FIGS.
  • step 324 for capturing a fingerprint positioned proximate sensor 130 will be described in greater detail.
  • This process is performed by sensor data capture module 200 in cooperation with logic unit 1 10 and memory 120.
  • logic unit 1 10 provides a signal that results in power source 170 providing power to sensor 130, as indicated by step 342.
  • a detect counter is then cleared at step 344, and the logic unit 1 10 reads the entire fingerprint image from sensor 130, as indicated by step 346, and buffers the image information in dynamic memory 124.
  • a selected number e.g., 5, fingerprint images are read by device 100 to ensure that a fingerprint is actually positioned proximate sensor 130. In some cases it may be acceptable to assume that a fingerprint is positioned proximate sensor 130 the first time the standard deviation exceeds the threshold, as determined at step 348. However, multiple readings are typically preferred to minimize the unnecessary draw on power source 170 that would arise from completing the entire fingerprint enrollment or verification process using image data that does not represent a fingerprint.
  • the detect counter is incremented. Then, at step 354 a determination is made if the count in the detect counter is less than the selected number. If so, the process loops back to step 346 and another fingerprint image is captured. If not, then, as depicted by step 356, sensor 130 is preferably depowered, thereby completing the fingerprint capture process.
  • step 356 may be omitted.
  • Known fingerprint identification devices typically do not perform an initial detection step. Rather, they perform detailed image analysis, including extraction of minutia points and comparison with previously stored fingerprints, based on whatever image information is provided from sensor 130. The fact that a fingerprint was not initially detected only surfaces after completing this analysis and comparison, when it is determined no match exists. As a consequence, power from power source 170 is needlessly consumed, which can substantially reduce the life of the power source when implemented as one or more batteries. Also, use of an initial fingerprint detection step results in faster fingerprint recognition because the relatively time-consuming image analysis and comparison is avoided with respect to non- fingerprint images. Further, the standard deviation approach to fingerprint detection described above is not particularly computationally intensive, which means it can be performed quickly, using hardware resources of relatively limited computing power.
  • the process of determining if a fingerprint is present also results in capture of a fingerprint image that is used in the enrollment and verification processes.
  • the last fingerprint image read from sensor 130 in the iteration consisting of steps 346-354 is used in the enrollment and verification processes.
  • Image processing module 202 addresses this phenomenon by determining an offset value to be added to each pixel value in a given column, or each pixel in a given row, as desired.
  • Device 100 will be described in more detail below as containing in program 126 various additional modules and steps for performing fingerprint enrollment and verification. However, in some cases it may be desirable to provide device 100 with only the features in program 126 needed to achieve the functionality described up to this point.
  • device may be designed to function strictly as a fingerprint capture and/or image compensation device.
  • device 100 may be designed to capture a fingerprint image as described above and, optionally, compensate the image to account for variations in the output information provided by sensor 130. This captured fingerprint image could then be analyzed using a separate system to identify if the fingerprint matches a previously stored fingerprint. This separate system could use the verification processes described below or other fingerprint identification processes.
  • Image processing module 202 includes a ridge orientation algorithm that, in cooperation with logic unit 1 10 and memory 120, determines the approximate slope of fingerprint ridges within local blocks of the fingerprint image, and assigns an orientation number to each local block. The orientation numbers are then used in directional filtering and minutia extraction processes, described below.
  • the ridge orientation algorithm breaks up the fingerprint image 360 into local blocks 362 having a selected number of pixels, e.g., 16 x 16 pixels.
  • the algorithm calculates an X gradient (dX) and an Y gradient (dY).
  • the X gradient is equal to the pixel value of the pixel to the right of a given pixel, minus the pixel value of the pixel to the left.
  • the Y gradient is equal to the pixel value of the pixel above a given pixel, minus the pixel value of the pixel below a given pixel.
  • the algorithm creates two numbers, slope numerator and slope denominator. The slope of the numerator is determined using the equation:
  • the slope denominator is determined using the equation:
  • the two numbers obtained using equations (1) and (2) represent the ridge slope for a particular local block 362.
  • a ridge slope i.e., slope numerator over slope denominator, is created for every local block 362 in the fingerprint image 360.
  • the slope numerators and slope denominators for that local block are added, respectively, to the slope numerators and denominators of adjacent local blocks.
  • This step is performed to remove "outliers" and other aberrations in the fingerprint image that may arise from fingerprint damage, dirt on the outer surface of sensor 30 and other factors.
  • "adjacent" local blocks 362 are those local blocks immediately above and below, immediately to the right and left, and immediately diagonally adjacent, a given local block.
  • Image processing module 202 then converts each local ridge slope 364 into an orientation number 366 (FIG. 6b) based on the value of the local ridge slope.
  • orientation numbers 366 are determined as follows, with the "Ratio" column being the slope numerator divided by the slope denominator (i.e., the value of the local ridge slope 364):
  • orientation numbers 366 each spaced 22.5° from adjacent orientation numbers, are used in the embodiment depicted in the preceding table, the present invention encompasses the use of a greater or lesser number of orientation numbers.
  • ridge orientation number 366 that is represented by an integer rather than a floating point number.
  • logic unit 1 10 need not be a microprocessor, as is typically required if orientation numbers are represented with floating point numbers. Instead, a microcontroller, ASIC, FPGA or other logic with substantially less computational capability than a microprocessor may be employed as logic unit 1 10. This has the advantage of reducing the cost, size, power consumption and heat generation of device 100.
  • a floating point number may be used for orientation number 366 along with a logic unit 1 10, typically a microprocessor, capable of processing a floating point number.
  • Image processing module 202 includes a directional image filter algorithm. This algorithm, in cooperation with logic unit 1 10 and memory 120, enhances the fingerprint image by removing imperfections that would otherwise cause ridge and valley breakage and distortion when the fingerprint is converted to a monochrome image, as discussed below.
  • the directional image filter algorithm averages each gray scale fingerprint image pixel value for a target pixel with the pixel values of a selected number of pixels in close proximity to the target pixel.
  • the selection of the other pixels in close proximity to the target pixel is based on the orientation number for the local block in which the target pixel resides.
  • the number of pixels selected proximate the target pixel, and their spatial relationship to the target pixel, are selected based on factors such as computing capability of logic unit 1 10, the number of orientation numbers 366 used, and desired speed of operation of device 100.
  • FIG. 7 illustrates one approach for selecting pixels using the eight orientation numbers 366 described above in connection with the discussion of FIG. 6b.
  • the target pixel is identified as the solid black pixel and the adjacent pixels are indicated as the white pixels.
  • the directional image filter algorithm is typically performed twice to ensure good fingerprint image quality, although the algorithm may be performed just once or more than twice.
  • a fingerprint image 360 before application of the directional image filter algorithm is illustrated in FIG. 8a.
  • FIG. 8b the same fingerprint image 360' after application of the directional image filter algorithm is illustrated in FIG. 8b.
  • image processing module 202 in cooperation with logic unit 1 10 and memory 120, creates a first monochrome image 370 (FIG. 9a) and a second monochrome image 372 (FIG. 9b) from the finge ⁇ .rint image array resulting from the directional image filtering process described above.
  • the objective of this process is to create clean lines consisting of only ridges and valleys.
  • Monochrome images 370 and 372 are arrays of one-bit pixels 374 (only several of which are illustrated for purposes of clarity, and are not drawn to scale) that represent either a ridge or a valley of the fingerprint.
  • the array of pixels 374 for first monochrome image 370 is arranged with the same number of rows and columns as the fingerprint image array resulting from the directional image filtering process.
  • the array of pixels 374 for second monochrome image 372 has the rows and columns of first monochrome image 370 exchanged, thereby creating a diagonally flipped view of the first monochrome image.
  • second monochrome image 372 is first monochrome image 370 rotated around axis 376 (FIG. 9a) in the direction of arrow 378 (FIG. 9a).
  • the fingerprint image resulting from the directional filtering process is broken up into local blocks 380 (FIG. 10) consisting of a matrix of pixels 374.
  • the present invention encompasses matrices of various size, e.g., 8 by 8 pixels, 16 by 16 pixels or other pixel counts.
  • For each local block 380 all the pixel values for the pixels 374 of that local block and the pixels of adjacent local blocks are added together. While "adjacent" local blocks are generally the immediately surrounding local blocks (vertical horizontal and diagonal), other combinations of local blocks may be selected, as described above in connection with the description of ridge orientation determination. This total pixel value is then divided by the total number of pixel values added to obtain the pixel average value.
  • the pixel value for each pixel 374 within a local block 308 is compared to the pixel average value. If the individual pixel value is greater than the average, a '0' bit (fingerprint valley) is inserted into monochrome images 370 and 372. Otherwise a '1 ' bit (fingerprint ridge) is inserted. All subsequent processing of fingerprint images is performed using monochrome images 370 and 372, as described below.
  • step 326 With reference again to FIG. 4, at this stage in the process all of the fingerprint image capture and processing steps are completed. Thus, the process now advances from step 326 to step 328.
  • minutia extraction module 204 of program 126 in cooperation with logic unit 1 10 and memory 120, extracts minutia point identifiers.
  • This step commences by performing an analysis of monochrome images 370 and 372 to detect occurrences of fingerprint minutia points.
  • a minutia point is where fingerprint ridges end, begin, merge, or split. If desired, a cross and an unknown minutia point may also be considered, although these minutia points are not described below in connection with the remaining steps of the fingerprint enrollment process.
  • the minutia extraction process begins by again breaking up monochrome images 370 and 372 into a plurality of local blocks 380, which are then analyzed one local block at a time.
  • the orientation number 366 for each local block 380 is checked to determine if the finge ⁇ rint ridges are mostly horizontal or vertical. If the orientation number 366 is 3, 4, 5, or 6, then the fingerprint ridges of the local block 380 are more vertical than horizontal. If the fingerprint ridges are more vertical than horizontal, then local blocks 380 from first monochrome image 370 are used for the minutia extraction process. Otherwise, local blocks 380 from second monochrome image 372 are used.
  • Each local block 380 and its adjacent local blocks are scanned.
  • the local blocks 380 are scanned row by row or column by column.
  • the local blocks 380 may also be scanned at an angle, e.g., 45 degrees, or may be scanned in more than one or all of these ways.
  • the adjacent local blocks 380 are scanned since it may be necessary to follow fingerprint ridges beyond the bounds of a given local block.
  • fingerprint ridges i.e., groups of pixels in given row (or other scan unit such as a column or 45 degree line) having a "1" value, are detected during scanning, the position (x and y coordinates) of the ridge segments 382 (FIG. 10) are saved on a list.
  • reference to rows is intended to also encompass columns, and an angled (e.g., 45 degree) line.
  • the number of pixels 374 required to constitute a segment 382 may be selected as desired, although typically at least 2-3 pixels are required for a segment. After scanning has been completed, the list will contain all of the ridge segments 382 within the local blocks 380 scanned.
  • each row (or other scan unit) of ridge segments 382 is taken in turn from the list and compared to the ridge segments of the next adjacent row to determine if a minutia point 384 (FIG. 1 1) occurs at the row under consideration. Any one of the five following minutia point conditions will occur, all of which are illustrated in FIG. 1 1 :
  • Condition 1 One ridge segment 382 is adjacent one ridge segment of the next row;
  • Condition 2 One ridge segment 382 is adjacent two ridge segments of the next row;
  • Condition 3 Two ridge segments 382 are adjacent one ridge segment of the next row;
  • Condition 4 One ridge segment 382 has no adjacent ridge segments in the next row;
  • Condition 5 No ridge segments 382 are adjacent a ridge segment of the next row.
  • Condition 1 is a normal ridge with no minutia point possibilities.
  • Condition 2 is a possible ridge bifurcation.
  • Condition 3 is a possible merge of a bifurcated ridge.
  • Condition 4 is a possible ridge ending.
  • Condition 5 is a possible ridge beginning.
  • each fingerprint ridge alone or in groupings with adjacent ridges (e.g., 3 adjacent ridges), is followed for a selected number of rows (or other scan unit) away from the possible condition. Satisfactory results are achieved when the fingerprint ridge(s) are followed out 6-18 rows, although other numbers of rows may also be used.
  • the bifurcated ridges and the merged ridge, respectively are followed out a selected number of, e.g., 12, rows to insure that there are no other conditions 2, 3, 4, or 5 nearby.
  • condition 4 and 5 the ridge in which a possible ending or beginning exists, respectively, is followed out for a selected number of, e.g., 12, rows looking for other conditions 2, 3, 4, or 5.
  • condition 2 ridge bifurcation
  • the bifurcated ridges are followed away from ridge segment 382', where the bifurcation occurs, into local blocks 380b and 380a for a selected number of rows, as indicated by bracket 386.
  • the ridge leading up to ridge segment 382' is followed, beginning a selected number of rows before the ridge segment as indicated by bracket 388, toward the ridge segment.
  • Fingerprint ridges and ridge bifurcations are followed away from a possible minutia point 384 in the same direction as the ridge and ridge bifurcation leading up to the possible minutia point. This is done by determining the slope of the ridge leading up to the possible minutia point 384 (also considered as the direction of the minutia point), as described in more detail below.
  • the first identifier is the position of the ridge segment 382 where the ridge ends, begins, bifurcates or two ridges merge (i.e., a bifurcation merger), as indicated with arrows relative to conditions 2-5 in FIG. 1 1.
  • the position is based on Cartesian (x,y) coordinates where row 0, column 0 of the fingerprint image is the origin (0,0). This is typically the lower left corner of monochromes images 370 and 372, although other origins may be used.
  • the x coordinate corresponds to the columns of the fingerprint image
  • the y coordinate corresponds to the rows.
  • the second identifier is the direction or slope of the ridge(s) leading up to the ending, beginning, bifurcation or bifurcation merger.
  • the direction is preferably described by one of a selected number of integers, each representing an equal, but unique, portion of a 360 degree span. In one embodiment, sixteen integers, 0 to 15, are used to represent successive 22.5 degree directions. However, a lesser or greater number of integers may be used to identify the direction of ridge(s) leading up to the minutia point 384.
  • This direction or slope is determined by using the following information:
  • the monochrome image i.e., image 370 or 372, from which the local block 362 is being scanned.
  • the slope of the fingerprint ridge leading up to the minutia point 384 is determined relative to the fingerprint ridge selected in accordance with the following convention:
  • the position of the minutia point is set to the middle (in the x-direction as seen in FIG. 10) of the ridge segment 382 in which it is located, as identified by a white dot in FIG. 10.
  • a rule is established to define the center, e.g., the pixel immediately to the right of center is chosen as the center of the ridge segment.
  • center position of the ridge segment 382 where the minutia point 384 resides is subtracted from the x-direction position of the midpoint of the ridge segment in the last row followed, as also identified by a white dot in FIG. 10.
  • This change in x-direction, indicated by bracket 389 in FIG.10 represents the approximate direction of the fingerprint ridge for the given minutia point 384. From this direction the integers representing direction, as described above, are selected using predetermined correlation factors stored in a lookup table, or otherwise determined. In one embodiment of the invention where sixteen integers are used to represent direction of ridges leading to a minutia point, the following correlation is used:
  • the third identifier defines the type of minutia point, i.e., ridge ending, beginning, bifurcation and merger of two ridges (i.e., bifurcation merger).
  • one or more of conditions 2, 3, 4 or 5 will be found to exist during the process of confirming possible minutia points 384 by scanning out from such possible minutia points. When this occurs, the possible minutia point condition is assumed not to be a valid condition and so is ignored.
  • step 332 After all of the ridge segments 382 previously saved in the list have been compared, the process is repeated with the next local block until all local blocks have been independently processed. This completes the minutia extraction process of step 332.
  • template creation module 206 in cooperation with logic unit 1 10 and memory 120, creates a fingerprint template.
  • the fingerprint template is the data structure used to uniquely identify an individual's fingerprint.
  • a template is made up of a list the three identifiers for each minutia points that were created during the minutia extraction process.
  • Each minutia point entry in the template preferably consists of two sixteen-bit words, although other formats may also be used.
  • the two words are identified at 390 in FIG. 12.
  • the lower twelve bits of first word 392 identify the x coordinate of the ridge segment 382 where the minutia point 384 exists.
  • the center of the ridge segment 382 is used as the x- direction value, with the pixel immediately to the left or right or center being used consistently as the center when the ridge has an even number of pixels.
  • the upper four bits of first word 392 identifies the minutia point type.
  • a T value indicates a minutia endpoint (both beginning and ending), and a '2' value indicates a minutia bifurcation (both ridge split and ridge merger). .
  • the lower twelve bits of second word 394 identify the Y coordinate of the minutia point 374.
  • the upper four bits of second word 394 represent the direction number for the ridge(s) leading up to minutia point 374.
  • Each fingerprint template is stored in database 210 in program memory 122 for future use in the fingerprint verification procedure, described below, and where provided, in non-volative memory in dynamic memory 124.
  • the fingerprint template is sized to contain a fixed number of minutia point entries. In one embodiment, 64 entries are permitted, although greater and lesser numbers may also be used.
  • the number of minutia point entries permitted in the fingerprint template defines the maximum number of minutia points allowed for any individual fingerprint.
  • An important advantage of representing a fingerprint image in the fingerprint template in the manner described above is that an extremely limited amount of memory is required to store all the information required for fingerprint verification, to a high degree of accuracy, as described below.
  • only 256 bytes of data are required to represent such information.
  • This feature makes the present invention ideally suited for applications where low cost is important, where the product format requirements prohibit use of memory devices of relatively large size, or where it is otherwise desirable to limit the amount of memory needed to perform fingerprint verification.
  • known fingerprint identification systems typically require substantially more than I K bytes of data to store information representing a fingerprint.
  • a person's fingerprint is not stored in the finge ⁇ rint template, only the three minutia point identifiers for each minutia point 384 discussed above. Consequently, in the event of theft or other loss of device 100, a user's fingerprint cannot be scanned out or otherwise obtained.
  • step 310 is completed and device 100 is returned to sleep mode, per step 300. If at step 306, it is determined that an enrollment request has not been received, then the process proceeds to step 308, where the verification procedure is performed.
  • step 308 the process of comparing a person's previously enrolled fingerprint, which is stored in database 210 in the form of a fingerprint template, with a fingerprint of a user is performed.
  • This process is illustrated in FIG. 13 and is described below.
  • the process is performed by template compare module 208, in cooperation with logic unit 1 10 and memory " 120.
  • the result of the comparison is a count of matching minutia points between the two fingerprint templates. As described below, if the count exceeds a predetermined threshold, then access to external unit 140 is authorized.
  • the fingerprint verification comparison process begins with the same steps as the fingerprint enrollment process described above and illustrated in FIG. 4.
  • steps 420, 422, 424, 426, 428, 430, 432 and 434 are identical to steps 320, 322, 324, 326, 328, 330, 332 and 334, respectively, are so are not described again, except to note that the fingerprint of a potential user of external unit 140 is captured and translated into a fingerprint template in steps 420- 434. Also, the new fingerprint template is typically stored in dynamic memory 124, rather than in database 210 in program memory 122.
  • the fingerprint template for the previously enrolled fingerprint is retrieved from database 210, as indicated by step 440.
  • the new fingerprint template is compared with the fingerprint template stored in database 210 to determine if they match.
  • the fingerprint template for the previously enrolled fingerprint will be referred to as Tl and the finge ⁇ rint template for the user seeking to obtain access to external device 140 will be referred to as T2. Since all fingerprint templates are structured the same, assignment of Tl and T2 is arbitrary.
  • the first step of the template comparison process is to determine origin reference points for each template, as illustrated in FIGS. 14a and 14b. These will be referred to as [Rl x, Rl y] (reference point for Tl ), and [R2x, R2y] (reference point for T2).
  • the algorithm takes one of the minutia points from Tl , typically the first minutia point in the minutia point list, and searches in T2 for a minutia point that is "similar.”
  • the two minutia points must be of the same minutia point type, and the direction of the ridge(s) leading to first minutia point [Rlx, Rly] must be approximately the same as the direction of the ridge(s) leading to second minutia point [R2x, R2y]. While some flexibility exists concerning how close these two directions need to be, in one embodiment of the present invention the directions must be within 22.5 degrees of one another.
  • the third criteria for similarity between [Rlx, Rly] and [R2x, R2y] is that the x and y coordinates defining the location of the minutia points must be within a specified distance from each other. It is generally satisfactory for this third criteria that minutia points [Rlx, R ly] and [R2x, R2y] be within 50% of the width of monochrome image 370 from one another, although other proximity values are encompassed by the present invention. This completes the process of selecting origin reference points for the first iteration, which process is repeated for subsequent iterations.
  • template comparison module 208 compensates for these variations. Once [Rlx, Rly] and [R2x, R2y] have been established, another minutia point [Six, Sly] is selected from Tl that has a coordinate at least 64 pixels (other distances are also encompassed by the present invention) away from [Rlx, Rly].
  • T2 is now searched for a minutia point [S2x, S2y], which is of the same minutia point type and approximate associated ridge direction as [S ix, S ly], and is approximately (e.g., ⁇ 25%) the same distance from [R2x, R2y] as [S ix, Sly] was from [Rlx, Rly].
  • distance d' in template Tl between [Rlx, Rly] and [S ix, S ly] is approximately the same as distance d" in template T2 between [R2x, R2y] and [S2x, S2y].
  • Vlx S lx - Rlx
  • Vly S ly - Rly
  • V2x S2x - R2x
  • V2y S2y - R2y
  • Tl is now searched to find a minutia point that is the same type and approximate direction as [A2x, A2y], and approximately the same coordinates as [Alx, A ly] (within, e.g., 6 pixels of distance). If a match is found, a match count is incremented and saved such that the saved match count always represents the highest match count achieved for the templates Tl and T2 undergoing comparison.
  • the template compare begins the next iteration with the selection of a new origin reference points [Rlx, Rly] from Tl , except now any minutia point in Tl with respect to which the highest match count was generated in prior iterations is excluded from selection.
  • the excluded Tl minutia point may be made available for comparison.
  • Each subsequent iteration preferably begins with the process of selecting a "similar" minutia point in template T2, as described above and illustrated in FIGS. 14a and 14b, and the determination of coordinate correction factors for the minutia points in template T2, as also described above.
  • the template compare returns the highest match count of all the compare iterations.
  • logic unit 1 10 Upon completion of the template comparison process, logic unit 1 10 sends a signal via interface 150 to external unit 140 indicating whether or not the new user should be provided access to the external unit, as indicated by step 444 (FIG. 13).
  • the match count is greater than or equal to a predetermined threshold, then the signal indicates access should be provided to external unit 140. Based on this signal, internal hardware and software/firmware in external unit 140 then permits the user to use the external unit.
  • the specific threshold used with the match count in determining whether access should be provided is typically selected based on the importance of restricting unauthorized users from accessing external unit 140. For example, higher security may be appropriate for an automobile than for a cellular telephone.
  • Verification is ended, as depicted by step 446, after the results of the comparison are sent to the external device 140. Thereafter, sensor 130 is returned to the sleep mode, as indicated by step 300 (FIG. 3), and device 100 draws almost no power until the next request is received from external device 140 for a fingerprint verification.
  • the fingerprint verification procedure identified at step 308 has been described as a procedure that is implemented with program 126 using logic unit 1 10, memory 120 and other elements of device 100.
  • the present invention is not so limited. In some cases it may be desirable to implement the fingerprint verification procedure in a device remote, either structurally or physically, from portions of device 100 used to perform enrollment. In such case, two similar devices 100 would be provided, with the devices differing primarily in that template compare module 208 need not be included in the first device and sensor data capture module 200, image processing module 202, minutia extraction module 204 and template creation module 206 need not be included in the second device.
  • each device 100 could include all modules in program 126, but only use those modules required for verification, in the case of the second device, and those modules required for everything including enrollment, in the case of the first device.
  • Device 100 is capable of performing fingerprint verification with a high degree of accuracy. In one embodiment of the present invention, device 100 achieves a false accept rate of less than about 0.3% and a false reject rate of less than about 3%. However, depending upon the level of security desired, match count thresholds used in step 442 (FIG. 13) and other aspects of program 126 may be designed and/or selected to achieve false accept rates as high as about 1% and false reject rates as high as about 10%. Furthermore, device 100 can complete the verification process relative to a previously enrolled fingerprint with this degree of accuracy using less than 1 W, typically about 400m W, of peak power in less than about 10 seconds, typically about 7 seconds.
  • the information included in the fingerprint template Tl may be used for purposes other than comparison with a second fingerprint template T2.
  • the information in the fingerprint template may be used in applications where a unique identifier of a person is required.
  • One such application is a digital signature.
  • the preceding discussion of device 100 has been presented relative to a single fingerprint stored in a template Tl in database 210. However, multiple fingers for a person may be stored in database 210. Also, the fingerprints of multiple persons may be stored in database 210.
  • device 100 due to its minimal power consumption and memory requirements, it may be readily implemented in a battery-powered, portable, completely standalone device. However, because the various approaches used in the fingerprint capture, enrollment and verification processes of device 100 are far less computationally intensive than known process, the processes may be performed using microprocessor-based or digital signal processing-based hardware at a substantial increase in speed relative to known fingerprint enrollment and verification algorithms.
  • Finge ⁇ rint verification is one of a number of biometric traits that may be used to identify a person in connection with limiting access to external device 140.
  • the present invention may be used in connection with the capture, enrollment and verification of other biometric traits.
  • fingerprint sensor 130 has been described as a fingerprint sensor, the present invention encompasses sensors that provide information regarding other biometric traits in the form of a plurality of gray scale pixel values.
  • Such other traits include, without limitation, configuration of a body member such as a hand, iris patterns and retinal patterns from eyes.

Abstract

A low-power, fully self-contained fingerprint capture, enrollment and verification method and device (fig 1, 100). The device includes a logic unit (fig 1, 110), a memory (fig 1, 120), a fingerprint sensor (fig 1, 130) and an interface (fig 1, 150) to an external unit (fig 1, 140). Included in the memory is a program (fig 2, 126) that includes a sensor data capture module (fig 2, 200), an image processing module (fig 2, 202), a minutia extraction module (fig 2, 204), a template creation module (fig 2, 206), a template compare module (fig 2, 208), and a database (fig 2, 210). The processes for capturing, enrolling and verifying a fingerprint are designed to be minimally computationally intensive. This allows implementation of these processes in a portable, battery-powered unit using hardware with limited memory and computing capability, or implementation in a PC with substantial performance advantages relative to known fingerprint capture, enrollment and verification processes and devices. Fingerprint verification is performed using fingerprint templates storing information as to location and type of minutia point, and direction of fingerprint ridge leading to the minutia point, rather than full image-to-image comparison.

Description

SYSTEM AND METHOD FOR CAPTURING, ENROLLING AND VERIFYING A
FINGERPRINT
FIELD OF INVENTION
The present invention relates to an electronic fingerprint identification device. More specifically, the present invention relates to a stand-alone, low-power, portable electronic fingerprint identification device featuring fingerprint identification algorithms that are designed to minimize the use of computationally intensive operations.
BACKGROUND OF THE INVENTION
Biometric devices such as fingerprint identification devices have become increasingly popular in recent years, their most common uses being for security and access control. They are considered more secure than personal identification (PIN) numbers or cards because a fingerprint cannot be forged and possession of a fingerprint cannot be transferred.
There has also been a heightened demand among consumers for increased portability in computing, communications, and other devices for which access control is necessary or desirable. Among other developments there has been a proliferation of portable communication, computing and network interface devices such as personal digital assistants ("PDAs"), beepers, pages, information appliances, Internet access devices and the like. However, existing fingerprint identification devices are not generally designed to interface with such existing devices, and do not typically include the stand-alone, low-power capabilities desired for portable devices.
Existing fingerprint devices generally scan a fingerprint and transmit the image through a serial connection to a personal computer (PC). However, these devices require the use of software that is installed on PC having at least a PENTIUM® class microprocessor operating at 200MHz or more in order to process the fingerprint image and perform enrollment, verification, and database functions. More particularly, known algorithms for performing such functions are sufficiently computationally intensive that only a relatively powerful microprocessor can perform the operations necessary to identify a fingerprint in a commercially reasonable period of time. For instance, known algorithms use functions such as Fourier transforms, and complete image-to-image comparisons, which require substantial computing power to execute in a reasonable period of time. Requiring a PC to process the fingerprint image adds to the expense of such devices, makes them unusable by owners of portable computing, communication and other devices, and generally diminishes the applications in which they can be used.
Also known in the art are fingerprint identification devices that contain embedded or autonomous fingerprint capture and verification software and thus do not require a PC to process the fingerprint image, such as the Sony® FIU fingerprint identification unit. The power requirements of these devices are substantial and require an external power supply, which diminishes their portability and convenience and their usability with PDAs, cellular telephones, and other portable devices. As such, these devices cannot be considered to operate on a "standalone" basis.
At least one attempt has been made to design a portable, battery powered, stand-alone biometric (including fingerprint) identification device, as described in International Application WO 99/56429, assigned to Identix Incorporated. Unfortunately, because of the RISC icroprocessor, DRAM memory and A/D converter, the peak power consumption is estimated to be on the order of 4.3 Watts ("W"). This power consumption is substantially in excess of what is commercially acceptable for many applications. Indeed, for many applications it is essential the fingerprint identification device operate on low-cost batteries that can operate for extended periods of time, i.e., weeks to months, without replacement. To achieve this goal, and provide fingerprint identification with a high degree of accuracy, it is desirable that peak power consumption of portable, stand-alone fingerprint devices not exceed about 1 W. The computationally intensive nature of known fingerprint identification algorithms and the power consumption demands of existing memory and processor devices has, it is believed, made attainment of this objective an impossibility.
Thus, there exists a need in the art for a stand-alone, low-power, battery-operated, compact device that is capable of verifying and/or enrolling a fingerprint relative quickly and with a high degree of accuracy. SUMMARY OF THE INVENTION
One aspect of the present invention is a biometric verification device for providing secure access to a unit connected to the device. The device includes a biometric sensor capable of sensing a biometric trait of a user that is unique to the user and providing a first signal containing information representing the biometric trait. The device also includes a processing unit connected to the biometric sensor so as to receive the first signal. The processing unit is adapted to compare the information with biometric data stored in the processing unit representing a biometric trait of an enrolled person, and provide a verification signal indicating whether or not the information corresponds sufficiently with the biometric data to verify the user is the enrolled person. The processing unit completes the comparison and generates the verification signal within 20 seconds of when the biometric sensor senses the biometric trait using no more than 1 W of peak power.
Another aspect of the present invention is a system for extracting fingerprint minutia points from a first monochrome image containing an x-y array of pixels, each representing either a fingerprint ridge or a fingerprint valley. The x-y array is divided into a plurality of contiguous local blocks, each having a predetermined number of the pixels arranged in rows and columns. Each minutia point is one of several types. The system includes a scanner module that scans lines of pixels in each local block to detect the position of segments of pixels in each local block representing a fingerprint ridge. Also included is a comparator module that compares each of the ridge segments detected by the scanner module in each local block with adjacent ridge segments to determine if a minutia point exists, and identifies its position and minutia point type. The system further includes a ridge direction module that determines direction of fingerprint ridges leading to each minutia point determined by the comparator module, and a minutia list module that saves the position and type of minutia points determined by the comparator module.and fingerprint ridge directions determined by the ridge direction module.
Yet another aspect of the present invention is a fingerprint identification device that includes a sensor for providing an output signal containing information representing attributes of a user's fingerprint positioned proximate the sensor that are unique to the user. The device also includes a memory for storing a first template containing attributes of a fingerprint of a first person that are unique to the first person and a logic unit connected to the memory. A program is stored in the memory that, in cooperation with the memory and logic unit: (i) creates the first template using the information in the output signal from the fingerprint sensor that represents unique attributes of the first person's fingerprint positioned proximate the sensor; (ii) creates a second template using the information in the output signal from the fingerprint sensor that represents in less than IK bytes of data unique attributes of a user's fingeφrint positioned proximate the sensor; and (iii) verifies if the user is the first person by attempting to match the unique attributes in the first template with the unique attributes in the second template.
Still another aspect of the present invention is a method of creating a template containing attributes of a fingerprint unique to a first person, the fingerprint having a plurality of minutia points of one or more types and a ridge leading to each of the minutia points. The method comprises the steps of (a) identifying the location and type of a plurality of minutia points on the fingerprint, (b) identifying the direction of the ridge leading to each minutia point, and (c) using no more than IK bytes of data, storing the location and type of the minutia points identified in step a and the direction of the ridge leading to each minutia point identified in step b.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram representation of the major elements of the fingerprint enrollment and verification device of the present invention and the external unit with which the device is designed to operate;
FIG. 2 is a block diagram representation of the major components of the software program of the device illustrated in FIG. 1, along with the database used with such software module;
FIG. 3 is a flow diagram illustrating the steps involved in initiating operation of the device of FIG. 1 ;
FIG. 4 is a flow diagram illustrating the steps of the fingerprint enrollment process for the device of FIG. 1 ;
FIG. 5 is a flow diagram illustrating the steps associated with the fingerprint image detection and sensor calibration; FIG. 6a is an idealized representation of a fingerprint image obtained from the fingeφrint sensor of the device of FIG. 1 ;
FIG. 6b illustrates the fingerprint ridge orientation direction and orientation number for each of the local blocks in the fingerprint image of FIG. 6a;
FIG. 7 illustrates one example of the pixels used relative to a target pixel in the directional image filtering process for each of the eight orientation numbers illustrated in FIG. 6b;
FIG. 8a illustrates a portion of a fingerprint image before directional image filtering and FIG. 8b illustrates the same portion after directional image filtering;
FIG. 9a is a schematic representation of a first monochrome image created from the fingerprint image and FIG. 9b is a schematic representation of a second monochrome image created from the fingerprint image, with only a limited number of the pixels of the monochrome images being illustrated in FIGS. 9a and 9a for clarity of illustration;
FIG. 10 is a representation of a local block where a ridge bifurcates into two ridges, and two local blocks above the local block in which the bifurcation occurs and one local block below the local block in which the bifurcation occurs;
FIG. 1 1 illustrates 8 x 8 pixel monochrome images of five ridge conditions used in connection with the minutia extraction algorithms of the present invention;
FIG. 12 is a representation of the two 16-bit words used to identify each minutia point in the fingerprint template of the present invention;
FIG. 13 is a flow diagram of the fingerprint verification process of the present invention;
FIG. 14a is a schematic representation of a fingerprint template of a user of the present invention; and
FIG. 14b is a schematic representation of a fingerprint template for a person previously enrolled in the device of the present invention. DETAILED DESCRIPTION OF THE INVENTION
Referring to FIG. 1, the present invention is a low-power, standalone, fully self-contained, battery-powered fingerprint enrollment and verification device 100. As described in more detail below, device 100 permits rapid enrollment of multiple fingerprints and permits rapid verification that the fingerprint of a user corresponds to a previously enrolled fingerprint. These functions may be achieved using as a power source two conventional AAA alkaline batteries which, depending upon frequency of use, typically last for 6 months or more. As used herein, the term "fingerprint" includes thumbprints and toeprints.
Device 100 includes a logic unit 1 10, which may be a microprocessor, a microcontroller, an ASIC device, an FPGA or other logic devices. The specific logic device used is typically selected based on performance, cost, power-consumption and other criteria. In one embodiment of device 100, logic unit 1 10 is an Intel microcontroller identified by model number 80C251TB24. Logic unit 1 10 is connected via bus 1 12 to memory unit 120. The latter includes program memory 122 and dynamic memory 124. Program memory 122 provides persistent storage of data and may comprise a read-only memory (ROM) chip, optical memory such as a CD ROM or DVD and associated reader, magnetic memory, RF ID tag technology, inductive memory and other memory usable in a wired or wireless environment. In one embodiment of memory unit 120, program memory 122 is an Atmel EPROM identified by model number 27C256R. Dynamic memory 124 provides transient storage of data generated in connection with operations performed by logic unit 1 10, and may comprise a random access memory (RAM) chip, e.g., an SRAM or DRAM chip. It is preferred, but not mandatory, that dynamic memory 124 include non-volatile memory for storing certain data such as fingerprint templates previously enrolled in device 100, discussed below, and other secure information. Such non-volatile memory is designed to store such templates and secure information when power is temporarily removed from device 100, e.g., while changing batteries. In selecting the non-volatile memory to be used, it is preferred the memory be capable of storing such templates and secure information for at least 1-2 minutes. While program memory 122 and dynamic memory 124 may be implemented as separate devices, depending upon the implementation of logic unit 1 10, program and/or dynamic memory may be an integral portion of the logic unit. Device 100 also includes a program 126 stored in program memory 122. Program 126, in cooperation with logic unit 1 10 and memory 120, is responsible for performing the various operations necessary for fingerprint enrollment and verification, as discussed in more detail below. Program 126 is typically implemented as firmware, although the present invention encompasses implementation of the program as software.
Also included in device 100 is fingerprint sensor 130. The latter provides the raw image of a fingerprint positioned proximate the sensor. The relative proximity of the fingerprint to sensor 130 will depend upon the type of sensor used. With some sensors, e.g., capacitive type, the fingerprint will need to be brought into intimate contact with the outer surface of the sensor, whereas with other sensors, e.g., optical type, the fingerprint will need to positioned within about 2-5mm of the outer surface. Thus, as used herein, the term "proximate" includes both positioning the fingerprint in intimate contact with the outer surface of the sensor and positioning the fingerprint near, but spaced from, the outer surface.
In one embodiment of the present invention, sensor 130 may be a capacitive fingerprint sensor of the type having a matrix, e.g., 224 x 288, of metal electrode pixels, each of which provides a gray scale output signal providing a representation of that portion of the fingerprint contacting the sensor in a digital signal, e.g., 8-bit signal. A suitable fingerprint sensor that may be used as sensor 130 is sold by Infineon Technologies AG, and is identified as the FingerTIP sensor FTF 1 100 MF 1. Other types of fingerprint sensors may also be used as sensor, including optical sensors, thermal sensors and e-field sensors.
In selecting a fingerprint sensor, it is preferred that the sensor provide gray scale information on a pixel-by-pixel basis where each pixel provides such information for a sufficiently sized portion of the fingerprint to permit performance of the various operations described below. These operations are used for fingerprint enrollment and verification. Sensor 130 is generally part of device 100. However, in some cases device 100 may be constructed such that sensor 130 is not part of the device, but rather is a separate element to which device 100 is adapted to be connected.
Device 100 is designed to provide secure access to external unit 140 that is connectable with device 100 via an interface 150. Virtually any device or system may be used with device 100. Thus, for example and without limitation, external unit 140 may be any of the following devices: computing devices such as laptop computers, desktop computers, and calculators; PDAs; portable communications devices such as cellular telephones, beepers, pagers and PDAs; security systems such as those used in a home, business or automobile; weapons; and any other device where it is desired to restrict access to only previously authorized persons.
Interface 150 is used to connect device 100 to external unit 140 via connection 160. Connection 160 may be wired or wireless. In this regard, connection 160 may comprise, for example, a full duplex asynchronous serial bus standard similar to RS232, Universal Serial
2 Bus (USB), Weigand bus, serial form, 1 C, SPI, parallel, PS2, Infrared Data Association
(IrDA), Bluetooth and Palmnet, and any other wired or wireless communication protocols. In addition, connection 160 may be a custom communication protocol.
Thus, device 100 may be positioned immediately adjacent external unit 140 or may be located a substantial distance away from the external device. In fact, in some cases it may be desirable to integrate device 100 and external device 140. In this case, connection 160 may be simply a wire extending between device 100 and external device 140. When so integrated it is a misnomer to described device 140 as "external," and so this term encompasses devices 140 that are both separate from and intimately integrated with device 100.
Device 100 is powered by power source 170 that is preferably connected to the device via interface 150, but may be otherwise connected to the device. Typically, power source 170 comprises one or more batteries, e.g., two conventional 1.5 volt AAA alkaline batteries of the type sold by Eveready Battery Company, Inc. under the trademark ENERGIZER®. Of course, lithium or other longer-lasting batteries may be used as power source 170. Power source 170 may also be an external source of power, e.g., line power with power conversion and conditioning, although this will reduce the portability of device 100, which is an important but not mandatory objective of the present invention.
Program 126 includes a group of program modules for capturing, processing, manipulating, comparing and storing fingerprint data generated by fingerprint sensor 130. Software modules include sensor data capture module 200, image processing module 202, minutia extraction module 204, template creation module 206 and template compare module 208. Program 126 also includes a database 210 for storing fingerprint templates of previously enrolled persons. Database 210 is typically a portion of memory 120, but may be contained in an external device.
Turning now to FIGS. 1 and 3, in normal operation device 100 remains in "sleep" mode to conserve power, as indicated by step 300 in FIG. 3. However, if at step 302 a determination is made that interface 150 has received a request from external unit 140 to receive and capture a fingerprint, then device 100 is "awakened," i.e., powered up, as indicated at step 304. Typically, external unit 140 sends a command packet to interface 150 requesting device 100 to sense and capture the fingerprint. Logic unit 1 10 receives and decodes the command packet and sends a signal that activates sensor 130. Once activated, sensor 130 sends a signal containing gray scale information for a matrix of pixels corresponding to the fingerprint to logic unit 1 10, the capture of which is described below.
Next, at step 306, a determination is made if a request has been received to enroll a fingerprint. Fingerprint enrollment is the process by which a person that has the right to store one or more of his or her fingerprints in device 100 achieves such storage. As described in more detail below, when a user of device 100 desires to achieve access to the external unit 140 with which the device is connected, the user's fingerprint is compared with fingerprints previously enrolled in the device. If no request to enroll a fingerprint exists, then operation of device 100 proceeds to the fingerprint verification procedure, as depicted at step 308. This procedure is described in detail below, following description of the enrollment procedure. If at step 306 a determination is made that an enrollment request exists, then the fingerprint enrollment procedure is performed, as indicated at step 310.
Fingerprint Detection and Capture
Referring to FIGS. 1 and 4, fingerprint enrollment begins at step 320. The first operation is setting a timer defining the amount of time logic unit 1 10 will wait for fingerprint image information from sensor 130, as indicated at step 322. Next, at step 324, logic unit 1 10 attempts to capture fingerprint images from sensor 130. As indicated at step 326, a determination is made if device 100 has captured a fingerprint image. If not, a determination is made at step 328 if the amount of time set at step 322 has elapsed. If so, then a "no finger" signal is sent to external unit 140 at step 330 indicating a finger is not present at sensor 130. If the time has not elapsed, then another attempt is made to capture a fingerprint at step 324. Turning next to FIGS. 1 , 2, 4 and 5, the process at step 324 for capturing a fingerprint positioned proximate sensor 130 will be described in greater detail. This process is performed by sensor data capture module 200 in cooperation with logic unit 1 10 and memory 120. Once a request for fingerprint detection has been received via interface 150, as depicted by step 340, logic unit 1 10 provides a signal that results in power source 170 providing power to sensor 130, as indicated by step 342. A detect counter is then cleared at step 344, and the logic unit 1 10 reads the entire fingerprint image from sensor 130, as indicated by step 346, and buffers the image information in dynamic memory 124.
Next, at steps 348 and 350, a determination is made if the image information read from sensor 130 is the image of a fingerprint. This is done by calculating the standard deviation of all of the gray scale fingerprint image pixel values provided in the output signal from sensor 130, as indicated at step 348. Next, at step 350, a determination is made if the standard deviation calculated at step 348 is greater than or equal to a predetermined threshold. As a fingerprint includes a plurality of valleys with high gray scale values and a plurality of ridges with low gray scale values, if the standard deviation in gray scale values is sufficiently great, then it follows that a fingerprint is present. If the standard deviation does not exceed the threshold, then the process loops back to step 344. If it does, then a fingerprint is presumed to exist and the process to proceeds to step 352. As those skilled in the art will appreciate, the threshold is selected based on characteristics of the sensor 130, desired performance of device 100 and other factors.
A selected number, e.g., 5, fingerprint images are read by device 100 to ensure that a fingerprint is actually positioned proximate sensor 130. In some cases it may be acceptable to assume that a fingerprint is positioned proximate sensor 130 the first time the standard deviation exceeds the threshold, as determined at step 348. However, multiple readings are typically preferred to minimize the unnecessary draw on power source 170 that would arise from completing the entire fingerprint enrollment or verification process using image data that does not represent a fingerprint. At each pass through step 352 the detect counter is incremented. Then, at step 354 a determination is made if the count in the detect counter is less than the selected number. If so, the process loops back to step 346 and another fingerprint image is captured. If not, then, as depicted by step 356, sensor 130 is preferably depowered, thereby completing the fingerprint capture process. When power source 170 is line power rather than battery power, or when conserving battery power is otherwise not important, step 356 may be omitted.
There are several advantages to the above-described technique of fingerprint detection. Known fingerprint identification devices typically do not perform an initial detection step. Rather, they perform detailed image analysis, including extraction of minutia points and comparison with previously stored fingerprints, based on whatever image information is provided from sensor 130. The fact that a fingerprint was not initially detected only surfaces after completing this analysis and comparison, when it is determined no match exists. As a consequence, power from power source 170 is needlessly consumed, which can substantially reduce the life of the power source when implemented as one or more batteries. Also, use of an initial fingerprint detection step results in faster fingerprint recognition because the relatively time-consuming image analysis and comparison is avoided with respect to non- fingerprint images. Further, the standard deviation approach to fingerprint detection described above is not particularly computationally intensive, which means it can be performed quickly, using hardware resources of relatively limited computing power.
The process of determining if a fingerprint is present also results in capture of a fingerprint image that is used in the enrollment and verification processes. Typically, the last fingerprint image read from sensor 130 in the iteration consisting of steps 346-354 is used in the enrollment and verification processes.
Image Compensation
As a consequence of manufacturing variations, and for other reasons, there is frequently a variation or offset from absolute values in gray scale values from column to columns, or row to row, of pixels in sensor 130 when the latter is a capacitance-type sensor. This results in identical fingerprint features being represented with different gray scale values, i.e., relative rather than absolute gray scale values are provided. Image processing module 202 addresses this phenomenon by determining an offset value to be added to each pixel value in a given column, or each pixel in a given row, as desired.
Image processing module 202 determines the offset values by building a histogram of the image pixel values of one of the fingerprint image columns or rows. After the histogram is constructed, a gray scale pixel value is selected above which a selected number, e.g., 5%, of the pixels values within the histogram exist. This selected gray scale pixel value is then subtracted from a predetermined number. The difference between the predetermined number and this selected pixel value is then the offset for the column. For example, if the selected gray scale value is 159 and the predetermined number is 200, then the offset is 200-159=41. This offset is then added to each pixel value for the column or row for which it is selected. This operation is then repeated for each other column, if correction is done on a column-by- column basis, or for each other row, if correction is done on a row-by-row basis. As a result of this digital smoothing of the fingerprint image information, more accurate pixel values are developed for subsequent image processing and comparison steps.
Device 100 will be described in more detail below as containing in program 126 various additional modules and steps for performing fingerprint enrollment and verification. However, in some cases it may be desirable to provide device 100 with only the features in program 126 needed to achieve the functionality described up to this point. In this regard, device may be designed to function strictly as a fingerprint capture and/or image compensation device. Thus, device 100 may be designed to capture a fingerprint image as described above and, optionally, compensate the image to account for variations in the output information provided by sensor 130. This captured fingerprint image could then be analyzed using a separate system to identify if the fingerprint matches a previously stored fingerprint. This separate system could use the verification processes described below or other fingerprint identification processes.
Ridge Orientation
Image processing module 202 includes a ridge orientation algorithm that, in cooperation with logic unit 1 10 and memory 120, determines the approximate slope of fingerprint ridges within local blocks of the fingerprint image, and assigns an orientation number to each local block. The orientation numbers are then used in directional filtering and minutia extraction processes, described below.
Referring to FIGS. 6a and 6b, the ridge orientation algorithm breaks up the fingerprint image 360 into local blocks 362 having a selected number of pixels, e.g., 16 x 16 pixels. For each pixel within a local block 362, the algorithm calculates an X gradient (dX) and an Y gradient (dY). The X gradient is equal to the pixel value of the pixel to the right of a given pixel, minus the pixel value of the pixel to the left. The Y gradient is equal to the pixel value of the pixel above a given pixel, minus the pixel value of the pixel below a given pixel. Next, the algorithm creates two numbers, slope numerator and slope denominator. The slope of the numerator is determined using the equation:
Σ (dX2-dY2) (1 )
The slope denominator is determined using the equation:
Σ (2. dX.dY) (2)
The two numbers obtained using equations (1) and (2) represent the ridge slope for a particular local block 362. A ridge slope, i.e., slope numerator over slope denominator, is created for every local block 362 in the fingerprint image 360.
Next, for each local block 362, the slope numerators and slope denominators for that local block are added, respectively, to the slope numerators and denominators of adjacent local blocks. This creates the local ridge slope 364 (FIG. 6b) for each local block 362. This step is performed to remove "outliers" and other aberrations in the fingerprint image that may arise from fingerprint damage, dirt on the outer surface of sensor 30 and other factors. Typically, "adjacent" local blocks 362 are those local blocks immediately above and below, immediately to the right and left, and immediately diagonally adjacent, a given local block. However, other combinations of local blocks adjacent a given local block may also be selected, e.g., (a) the immediately surrounding "ring" of local blocks and the next surrounding "ring" of local blocks or (b) only the local blocks immediately above and immediately below the given local block. Image processing module 202 then converts each local ridge slope 364 into an orientation number 366 (FIG. 6b) based on the value of the local ridge slope. In one embodiment of the present invention, orientation numbers 366 are determined as follows, with the "Ratio" column being the slope numerator divided by the slope denominator (i.e., the value of the local ridge slope 364):
Figure imgf000015_0001
Figure imgf000016_0001
While eight orientation numbers 366, each spaced 22.5° from adjacent orientation numbers, are used in the embodiment depicted in the preceding table, the present invention encompasses the use of a greater or lesser number of orientation numbers.
As described above, application of the present ridge orientation algorithm preferably results in a ridge orientation number 366 that is represented by an integer rather than a floating point number. By representing ridge orientation as an integer, logic unit 1 10 need not be a microprocessor, as is typically required if orientation numbers are represented with floating point numbers. Instead, a microcontroller, ASIC, FPGA or other logic with substantially less computational capability than a microprocessor may be employed as logic unit 1 10. This has the advantage of reducing the cost, size, power consumption and heat generation of device 100. Of course, where these factors are not relevant design parameters, a floating point number may be used for orientation number 366 along with a logic unit 1 10, typically a microprocessor, capable of processing a floating point number.
Directional Image Filtering
Image processing module 202 includes a directional image filter algorithm. This algorithm, in cooperation with logic unit 1 10 and memory 120, enhances the fingerprint image by removing imperfections that would otherwise cause ridge and valley breakage and distortion when the fingerprint is converted to a monochrome image, as discussed below.
Referring now to FIGS. 6b and 7, the directional image filter algorithm averages each gray scale fingerprint image pixel value for a target pixel with the pixel values of a selected number of pixels in close proximity to the target pixel. The selection of the other pixels in close proximity to the target pixel is based on the orientation number for the local block in which the target pixel resides. The number of pixels selected proximate the target pixel, and their spatial relationship to the target pixel, are selected based on factors such as computing capability of logic unit 1 10, the number of orientation numbers 366 used, and desired speed of operation of device 100.
FIG. 7 illustrates one approach for selecting pixels using the eight orientation numbers 366 described above in connection with the discussion of FIG. 6b. In FIG. 7, the target pixel is identified as the solid black pixel and the adjacent pixels are indicated as the white pixels. The directional image filter algorithm is typically performed twice to ensure good fingerprint image quality, although the algorithm may be performed just once or more than twice. Using the pixel selection illustrated in FIG. 7, a fingerprint image 360 before application of the directional image filter algorithm is illustrated in FIG. 8a. By contrast, the same fingerprint image 360' after application of the directional image filter algorithm is illustrated in FIG. 8b.
Monochrome Conversion
Turning now to FIGS. 1 , 2, 8b, 9a, 9b and 10, image processing module 202, in cooperation with logic unit 1 10 and memory 120, creates a first monochrome image 370 (FIG. 9a) and a second monochrome image 372 (FIG. 9b) from the fingeφ.rint image array resulting from the directional image filtering process described above. The objective of this process is to create clean lines consisting of only ridges and valleys. Monochrome images 370 and 372 are arrays of one-bit pixels 374 (only several of which are illustrated for purposes of clarity, and are not drawn to scale) that represent either a ridge or a valley of the fingerprint. The array of pixels 374 for first monochrome image 370 is arranged with the same number of rows and columns as the fingerprint image array resulting from the directional image filtering process. The array of pixels 374 for second monochrome image 372 has the rows and columns of first monochrome image 370 exchanged, thereby creating a diagonally flipped view of the first monochrome image. In other words, second monochrome image 372 is first monochrome image 370 rotated around axis 376 (FIG. 9a) in the direction of arrow 378 (FIG. 9a).
Describing creation of monochrome images 370 and 372 in more detail, the fingerprint image resulting from the directional filtering process is broken up into local blocks 380 (FIG. 10) consisting of a matrix of pixels 374. The present invention encompasses matrices of various size, e.g., 8 by 8 pixels, 16 by 16 pixels or other pixel counts. For each local block 380, all the pixel values for the pixels 374 of that local block and the pixels of adjacent local blocks are added together. While "adjacent" local blocks are generally the immediately surrounding local blocks (vertical horizontal and diagonal), other combinations of local blocks may be selected, as described above in connection with the description of ridge orientation determination. This total pixel value is then divided by the total number of pixel values added to obtain the pixel average value.
Next, the pixel value for each pixel 374 within a local block 308 is compared to the pixel average value. If the individual pixel value is greater than the average, a '0' bit (fingerprint valley) is inserted into monochrome images 370 and 372. Otherwise a '1 ' bit (fingerprint ridge) is inserted. All subsequent processing of fingerprint images is performed using monochrome images 370 and 372, as described below.
With reference again to FIG. 4, at this stage in the process all of the fingerprint image capture and processing steps are completed. Thus, the process now advances from step 326 to step 328.
Minutia Extraction
Referring to FIGS. 1,2, 4, 9a, 9b, 10 and 1 1 , at step 332 (FIG. 4) minutia extraction module 204 of program 126, in cooperation with logic unit 1 10 and memory 120, extracts minutia point identifiers. This step commences by performing an analysis of monochrome images 370 and 372 to detect occurrences of fingerprint minutia points. A minutia point is where fingerprint ridges end, begin, merge, or split. If desired, a cross and an unknown minutia point may also be considered, although these minutia points are not described below in connection with the remaining steps of the fingerprint enrollment process. The minutia extraction process begins by again breaking up monochrome images 370 and 372 into a plurality of local blocks 380, which are then analyzed one local block at a time. Next, the orientation number 366 for each local block 380 is checked to determine if the fingeφrint ridges are mostly horizontal or vertical. If the orientation number 366 is 3, 4, 5, or 6, then the fingerprint ridges of the local block 380 are more vertical than horizontal. If the fingerprint ridges are more vertical than horizontal, then local blocks 380 from first monochrome image 370 are used for the minutia extraction process. Otherwise, local blocks 380 from second monochrome image 372 are used.
Each local block 380 and its adjacent local blocks are scanned. Typically, the local blocks 380 are scanned row by row or column by column. However, the local blocks 380 may also be scanned at an angle, e.g., 45 degrees, or may be scanned in more than one or all of these ways. The adjacent local blocks 380 are scanned since it may be necessary to follow fingerprint ridges beyond the bounds of a given local block. As fingerprint ridges, i.e., groups of pixels in given row (or other scan unit such as a column or 45 degree line) having a "1" value, are detected during scanning, the position (x and y coordinates) of the ridge segments 382 (FIG. 10) are saved on a list. In the following discussion of minutia extraction, reference to rows is intended to also encompass columns, and an angled (e.g., 45 degree) line. The number of pixels 374 required to constitute a segment 382 may be selected as desired, although typically at least 2-3 pixels are required for a segment. After scanning has been completed, the list will contain all of the ridge segments 382 within the local blocks 380 scanned.
With reference now to FIGS. 9a, 9b, 10 and 1 1, each row (or other scan unit) of ridge segments 382 is taken in turn from the list and compared to the ridge segments of the next adjacent row to determine if a minutia point 384 (FIG. 1 1) occurs at the row under consideration. Any one of the five following minutia point conditions will occur, all of which are illustrated in FIG. 1 1 :
Condition 1 : One ridge segment 382 is adjacent one ridge segment of the next row; Condition 2: One ridge segment 382 is adjacent two ridge segments of the next row; Condition 3: Two ridge segments 382 are adjacent one ridge segment of the next row; Condition 4: One ridge segment 382 has no adjacent ridge segments in the next row; and Condition 5: No ridge segments 382 are adjacent a ridge segment of the next row. Condition 1 is a normal ridge with no minutia point possibilities. Condition 2 is a possible ridge bifurcation. Condition 3 is a possible merge of a bifurcated ridge. Condition 4 is a possible ridge ending. Condition 5 is a possible ridge beginning. The modifier "possible" is used here because it is conceivable that what initially appears to be a ridge end/beginning or a ridge bifurcation/merge is actually spurious fingerprint structure or image processing errors. The point at which conditions 2-5 occur is illustrated in FIG. 1 1 by an arrow adjacent each such condition.
To address if "possible" minutia point conditions are actually as they initially appear, each fingerprint ridge, alone or in groupings with adjacent ridges (e.g., 3 adjacent ridges), is followed for a selected number of rows (or other scan unit) away from the possible condition. Satisfactory results are achieved when the fingerprint ridge(s) are followed out 6-18 rows, although other numbers of rows may also be used. In the case of conditions 2 and 3, the bifurcated ridges and the merged ridge, respectively, are followed out a selected number of, e.g., 12, rows to insure that there are no other conditions 2, 3, 4, or 5 nearby. In the case of conditions 4 and 5, the ridge in which a possible ending or beginning exists, respectively, is followed out for a selected number of, e.g., 12, rows looking for other conditions 2, 3, 4, or 5. For example, with reference to FIG. 10, if a condition 2 (ridge bifurcation) minutia point 384' is identified in local block 380c, then the bifurcated ridges are followed away from ridge segment 382', where the bifurcation occurs, into local blocks 380b and 380a for a selected number of rows, as indicated by bracket 386. Similarly, the ridge leading up to ridge segment 382' is followed, beginning a selected number of rows before the ridge segment as indicated by bracket 388, toward the ridge segment.
Fingerprint ridges and ridge bifurcations, as represented by ridge segments 382, are followed away from a possible minutia point 384 in the same direction as the ridge and ridge bifurcation leading up to the possible minutia point. This is done by determining the slope of the ridge leading up to the possible minutia point 384 (also considered as the direction of the minutia point), as described in more detail below.
If as result of following out ridges and ridge bifurcations a selected number of rows (or other scan unit) no conditions 2, 3, 4 and 5 exist, then three identifiers are saved to a minutia list. The first identifier is the position of the ridge segment 382 where the ridge ends, begins, bifurcates or two ridges merge (i.e., a bifurcation merger), as indicated with arrows relative to conditions 2-5 in FIG. 1 1. The position is based on Cartesian (x,y) coordinates where row 0, column 0 of the fingerprint image is the origin (0,0). This is typically the lower left corner of monochromes images 370 and 372, although other origins may be used. The x coordinate corresponds to the columns of the fingerprint image, and the y coordinate corresponds to the rows.
The second identifier is the direction or slope of the ridge(s) leading up to the ending, beginning, bifurcation or bifurcation merger. The direction is preferably described by one of a selected number of integers, each representing an equal, but unique, portion of a 360 degree span. In one embodiment, sixteen integers, 0 to 15, are used to represent successive 22.5 degree directions. However, a lesser or greater number of integers may be used to identify the direction of ridge(s) leading up to the minutia point 384.
This direction or slope is determined by using the following information:
• The condition associated with the minutia point (i.e., conditions 2, 3, 4 or 5);
• The slope of the fingerprint ridge leading to the minutia point; and
• The monochrome image, i.e., image 370 or 372, from which the local block 362 is being scanned.
Referring particularly to FIG. 10, the slope of the fingerprint ridge leading up to the minutia point 384 is determined relative to the fingerprint ridge selected in accordance with the following convention:
• For conditions 2 and 4, the fingerprint ridge leading to the minutia point is presumed to come from below (from the perspective of FIG. 10).
• For conditions 3 and 5, the fingerprint ridge leading to the minutia point is presumed to come from above (from the perspective of FIG. 10).
As the first step, the position of the minutia point is set to the middle (in the x-direction as seen in FIG. 10) of the ridge segment 382 in which it is located, as identified by a white dot in FIG. 10. When the ridge segment 382 has an even number of pixels, then a rule is established to define the center, e.g., the pixel immediately to the right of center is chosen as the center of the ridge segment. At the completion of following the fingerprint ridge, as selected per the convention described above, the x-direction (as illustrated in FIG. 10) center position of the ridge segment 382 where the minutia point 384 resides is subtracted from the x-direction position of the midpoint of the ridge segment in the last row followed, as also identified by a white dot in FIG. 10. This change in x-direction, indicated by bracket 389 in FIG.10 represents the approximate direction of the fingerprint ridge for the given minutia point 384. From this direction the integers representing direction, as described above, are selected using predetermined correlation factors stored in a lookup table, or otherwise determined. In one embodiment of the invention where sixteen integers are used to represent direction of ridges leading to a minutia point, the following correlation is used:
Figure imgf000022_0001
The third identifier defines the type of minutia point, i.e., ridge ending, beginning, bifurcation and merger of two ridges (i.e., bifurcation merger).
In some cases, one or more of conditions 2, 3, 4 or 5 will be found to exist during the process of confirming possible minutia points 384 by scanning out from such possible minutia points. When this occurs, the possible minutia point condition is assumed not to be a valid condition and so is ignored.
After all of the ridge segments 382 previously saved in the list have been compared, the process is repeated with the next local block until all local blocks have been independently processed. This completes the minutia extraction process of step 332.
Template Creation
Turning now to FIGS. 1, 2, 4, 12 and 13, at step 334 (FIG. 4) template creation module 206, in cooperation with logic unit 1 10 and memory 120, creates a fingerprint template. The fingerprint template is the data structure used to uniquely identify an individual's fingerprint. A template is made up of a list the three identifiers for each minutia points that were created during the minutia extraction process.
Each minutia point entry in the template preferably consists of two sixteen-bit words, although other formats may also be used. The two words are identified at 390 in FIG. 12. The lower twelve bits of first word 392 identify the x coordinate of the ridge segment 382 where the minutia point 384 exists. The center of the ridge segment 382 is used as the x- direction value, with the pixel immediately to the left or right or center being used consistently as the center when the ridge has an even number of pixels. The upper four bits of first word 392 identifies the minutia point type. A T value indicates a minutia endpoint (both beginning and ending), and a '2' value indicates a minutia bifurcation (both ridge split and ridge merger). . The lower twelve bits of second word 394 identify the Y coordinate of the minutia point 374. The upper four bits of second word 394 represent the direction number for the ridge(s) leading up to minutia point 374. Each fingerprint template is stored in database 210 in program memory 122 for future use in the fingerprint verification procedure, described below, and where provided, in non-volative memory in dynamic memory 124. The fingerprint template is sized to contain a fixed number of minutia point entries. In one embodiment, 64 entries are permitted, although greater and lesser numbers may also be used. The number of minutia point entries permitted in the fingerprint template defines the maximum number of minutia points allowed for any individual fingerprint.
An important advantage of representing a fingerprint image in the fingerprint template in the manner described above is that an extremely limited amount of memory is required to store all the information required for fingerprint verification, to a high degree of accuracy, as described below. In one embodiment of the present invention, only 256 bytes of data are required to represent such information. This feature makes the present invention ideally suited for applications where low cost is important, where the product format requirements prohibit use of memory devices of relatively large size, or where it is otherwise desirable to limit the amount of memory needed to perform fingerprint verification. By contrast, known fingerprint identification systems typically require substantially more than I K bytes of data to store information representing a fingerprint. Also, a person's fingerprint is not stored in the fingeφrint template, only the three minutia point identifiers for each minutia point 384 discussed above. Consequently, in the event of theft or other loss of device 100, a user's fingerprint cannot be scanned out or otherwise obtained.
At this stage, enrollment of a fingerprint is completed, as depicted by step 336 in FIG. 4. Thus, as indicated in FIG. 3, enrollment procedure step 310 is completed and device 100 is returned to sleep mode, per step 300. If at step 306, it is determined that an enrollment request has not been received, then the process proceeds to step 308, where the verification procedure is performed.
Template Compare
Turning now to FIGS. 1 , 2, 3, 13 and 14, at step 308 (FIG. 3) the process of comparing a person's previously enrolled fingerprint, which is stored in database 210 in the form of a fingerprint template, with a fingerprint of a user is performed. This process is illustrated in FIG. 13 and is described below. The process is performed by template compare module 208, in cooperation with logic unit 1 10 and memory" 120. The result of the comparison is a count of matching minutia points between the two fingerprint templates. As described below, if the count exceeds a predetermined threshold, then access to external unit 140 is authorized. The fingerprint verification comparison process begins with the same steps as the fingerprint enrollment process described above and illustrated in FIG. 4. Thus, steps 420, 422, 424, 426, 428, 430, 432 and 434 are identical to steps 320, 322, 324, 326, 328, 330, 332 and 334, respectively, are so are not described again, except to note that the fingerprint of a potential user of external unit 140 is captured and translated into a fingerprint template in steps 420- 434. Also, the new fingerprint template is typically stored in dynamic memory 124, rather than in database 210 in program memory 122.
After the new fingerprint template is created and stored in dynamic memory 124 at step 434, the fingerprint template for the previously enrolled fingerprint is retrieved from database 210, as indicated by step 440. Next, at step 442, the new fingerprint template is compared with the fingerprint template stored in database 210 to determine if they match.
In connection with the following description of the template compare process, the fingerprint template for the previously enrolled fingerprint will be referred to as Tl and the fingeφrint template for the user seeking to obtain access to external device 140 will be referred to as T2. Since all fingerprint templates are structured the same, assignment of Tl and T2 is arbitrary.
The first step of the template comparison process is to determine origin reference points for each template, as illustrated in FIGS. 14a and 14b. These will be referred to as [Rl x, Rl y] (reference point for Tl ), and [R2x, R2y] (reference point for T2). To do this, the algorithm takes one of the minutia points from Tl , typically the first minutia point in the minutia point list, and searches in T2 for a minutia point that is "similar." To qualify as similar, the two minutia points must be of the same minutia point type, and the direction of the ridge(s) leading to first minutia point [Rlx, Rly] must be approximately the same as the direction of the ridge(s) leading to second minutia point [R2x, R2y]. While some flexibility exists concerning how close these two directions need to be, in one embodiment of the present invention the directions must be within 22.5 degrees of one another. The third criteria for similarity between [Rlx, Rly] and [R2x, R2y] is that the x and y coordinates defining the location of the minutia points must be within a specified distance from each other. It is generally satisfactory for this third criteria that minutia points [Rlx, R ly] and [R2x, R2y] be within 50% of the width of monochrome image 370 from one another, although other proximity values are encompassed by the present invention. This completes the process of selecting origin reference points for the first iteration, which process is repeated for subsequent iterations.
Since fingers can almost never be placed twice on exactly the same location on fingerprint sensor 130, and fingerprints change slightly due to expansion and contraction of the skin induced by changes in temperature, finger pressure on the sensor, humidity and other factors, template comparison module 208 compensates for these variations. Once [Rlx, Rly] and [R2x, R2y] have been established, another minutia point [Six, Sly] is selected from Tl that has a coordinate at least 64 pixels (other distances are also encompassed by the present invention) away from [Rlx, Rly]. T2 is now searched for a minutia point [S2x, S2y], which is of the same minutia point type and approximate associated ridge direction as [S ix, S ly], and is approximately (e.g., ±25%) the same distance from [R2x, R2y] as [S ix, Sly] was from [Rlx, Rly]. Thus, referring to FIGS. 14a and 14b, distance d' in template Tl between [Rlx, Rly] and [S ix, S ly] is approximately the same as distance d" in template T2 between [R2x, R2y] and [S2x, S2y].
With the four minutia points selected from above, a pair of vectors is created, [Vlx, Vly] and [V2x, V2y], where:
Vlx = S lx - Rlx
Vly = S ly - Rly V2x = S2x - R2x
V2y = S2y - R2y
From these two vectors, the coordinate correction factors Cx and Cy are calculated:
Cx = (V2x * V 1 x) + (V2y * V 1 y) / (V2x * V2x) + (V2y * V2y) Cy = (V2x * Vly) - (V2y * Vlx) / (V2x * V2x) + (V2y * V2y)
Next, a vector [Vax, Vay] is created for each remaining minutia point [A2x, A2y] in T2:
Vax = A2x - R2x Vay = A2x - R2x To this vector, the coordinate correction factors are applied, and a target coordinate is created:
A l x = ((Vax * Cx) - (Vay * Cy)) + Rl x Aly = ((Vax * Cy) + (Nay * Cx)) + Rly
Tl is now searched to find a minutia point that is the same type and approximate direction as [A2x, A2y], and approximately the same coordinates as [Alx, A ly] (within, e.g., 6 pixels of distance). If a match is found, a match count is incremented and saved such that the saved match count always represents the highest match count achieved for the templates Tl and T2 undergoing comparison. The template compare begins the next iteration with the selection of a new origin reference points [Rlx, Rly] from Tl , except now any minutia point in Tl with respect to which the highest match count was generated in prior iterations is excluded from selection. If a later iteration yields a higher match count, then the excluded Tl minutia point may be made available for comparison. Each subsequent iteration preferably begins with the process of selecting a "similar" minutia point in template T2, as described above and illustrated in FIGS. 14a and 14b, and the determination of coordinate correction factors for the minutia points in template T2, as also described above. When all possible selections of [Rlx, Rly] and [R2x, R2y] have been tried, the template compare returns the highest match count of all the compare iterations.
Upon completion of the template comparison process, logic unit 1 10 sends a signal via interface 150 to external unit 140 indicating whether or not the new user should be provided access to the external unit, as indicated by step 444 (FIG. 13). When the match count is greater than or equal to a predetermined threshold, then the signal indicates access should be provided to external unit 140. Based on this signal, internal hardware and software/firmware in external unit 140 then permits the user to use the external unit. The specific threshold used with the match count in determining whether access should be provided is typically selected based on the importance of restricting unauthorized users from accessing external unit 140. For example, higher security may be appropriate for an automobile than for a cellular telephone. Verification is ended, as depicted by step 446, after the results of the comparison are sent to the external device 140. Thereafter, sensor 130 is returned to the sleep mode, as indicated by step 300 (FIG. 3), and device 100 draws almost no power until the next request is received from external device 140 for a fingerprint verification.
The fingerprint verification procedure identified at step 308 has been described as a procedure that is implemented with program 126 using logic unit 1 10, memory 120 and other elements of device 100. However, the present invention is not so limited. In some cases it may be desirable to implement the fingerprint verification procedure in a device remote, either structurally or physically, from portions of device 100 used to perform enrollment. In such case, two similar devices 100 would be provided, with the devices differing primarily in that template compare module 208 need not be included in the first device and sensor data capture module 200, image processing module 202, minutia extraction module 204 and template creation module 206 need not be included in the second device. Of course, each device 100 could include all modules in program 126, but only use those modules required for verification, in the case of the second device, and those modules required for everything including enrollment, in the case of the first device.
Device 100 is capable of performing fingerprint verification with a high degree of accuracy. In one embodiment of the present invention, device 100 achieves a false accept rate of less than about 0.3% and a false reject rate of less than about 3%. However, depending upon the level of security desired, match count thresholds used in step 442 (FIG. 13) and other aspects of program 126 may be designed and/or selected to achieve false accept rates as high as about 1% and false reject rates as high as about 10%. Furthermore, device 100 can complete the verification process relative to a previously enrolled fingerprint with this degree of accuracy using less than 1 W, typically about 400m W, of peak power in less than about 10 seconds, typically about 7 seconds.
The information included in the fingerprint template Tl may be used for purposes other than comparison with a second fingerprint template T2. For example, the information in the fingerprint template may be used in applications where a unique identifier of a person is required. One such application is a digital signature. The preceding discussion of device 100 has been presented relative to a single fingerprint stored in a template Tl in database 210. However, multiple fingers for a person may be stored in database 210. Also, the fingerprints of multiple persons may be stored in database 210.
An important advantage of device 100, as noted above, is that due to its minimal power consumption and memory requirements, it may be readily implemented in a battery-powered, portable, completely standalone device. However, because the various approaches used in the fingerprint capture, enrollment and verification processes of device 100 are far less computationally intensive than known process, the processes may be performed using microprocessor-based or digital signal processing-based hardware at a substantial increase in speed relative to known fingerprint enrollment and verification algorithms.
Fingeφrint verification is one of a number of biometric traits that may be used to identify a person in connection with limiting access to external device 140. Thus, the present invention may be used in connection with the capture, enrollment and verification of other biometric traits. Thus, while fingerprint sensor 130 has been described as a fingerprint sensor, the present invention encompasses sensors that provide information regarding other biometric traits in the form of a plurality of gray scale pixel values. Such other traits include, without limitation, configuration of a body member such as a hand, iris patterns and retinal patterns from eyes.
While the present invention has been described in connection with a preferred embodiment, it will be understood that it is not so limited. On the contrary, it is intended to cover all alternatives, modifications and equivalents as may be included within the spirit and scope of the invention as defined in the appended claims.

Claims

What is claimed is: 1. A biometric verification device for providing secure access to a unit connected to the device, the device comprising: a. a biometric sensor capable of sensing a biometric trait of a user that is unique to said user and providing a first signal containing information representing said biometric trait; and b. a processing unit connected to said biometric sensor so as to receive said first signal, said processing unit being adapted to compare said information with biometric data stored in said processing unit representing a biometric trait of an enrolled person, and provide a verification signal indicating whether or not said information corresponds sufficiently with said biometric data to verify said user is said enrolled person, wherein said processing unit completes said comparison and generates said verification signal within 20 seconds of when said biometric sensor senses said biometric trait using no more than 1 W of peak power.
2. A device according to claim 1 , wherein said biometric trait is a fingerprint.
3. A device according to claim 1 , wherein said biometric trait is an iris pattern from an eye.
4. A device according to claim 1 , wherein said processing unit completes said comparison and generates said verification signal using no more than 400 mW of peak power.
5. A device according to claim 1, wherein said processing unit completes said comparison and generates said verification signal within 7 seconds of when said biometric sensor senses said biometric trait.
6. A device according to claim 1 , wherein said processing unit stores said biometric data representing a biometric trait of an enrolled person using no more than I K bytes of data.
7. A device according to claim 6, wherein said processing unit stores said biometric data representing a biometric trait of an enrolled person using no more than 256 bytes of data.
8. A device according to claim 1 , further including one or more batteries that comprise the sole source of power for the device.
9. A device according to claim 1 , wherein said processing unit includes non-volatile memory for storing said biometric data representing said biometric trait.
10. A device according to claim 1 , further including a wireless interface for connecting the device with the unit.
1 1. A device according to claim 1, further including a wired interface for connecting the device with the unit.
12. A device according to claim 1 , wherein said processing unit performs said comparison witha false acceptance rate of less than about 0.5% and a false rejection rate of less than about 5%.
13. A device according to claim 1 , further including an external unit connected to said processing unit, said external unit being operable independently of said sensor and processing unit upon receipt of said verification signal indicating said user is said enrolled person.
14. A device according to claim 13, wherein said external unit is remote from said sensor and processing unit.
15. A device according to claim 13, wherein said external unit is physically proximate said sensor and processing unit.
16. A system for performing directional image filtering of a fingerprint image, the image being represented by a plurality of pixels, each having a value and residing in one of a plurality of blocks, the system comprising: a. an orientation module that provides an orientation number for each of the blocks of said plurality of pixels, said orientation number representing the approximate orientation of fingeφrint ridges in the block; and b. an averaging module that averages each of said pixels with a number of adjacent pixels that are selected as a function of the orientation number for the block in which said each pixel resides.
17. A system according to claim 16, wherein said orientation module. determines said orientation number by calculating for each pixel in said block an X gradient dX and a Y gradient dY, and a ridge slope for said block using the equation S (dX2- dY2)/S (2* dX*dY).
18. A system according to claim 16, wherein said orientation module uses integers to represent said orientation numbers.
19. A system for extracting fingeφrint minutia points from a first monochrome image containing an x-y array of pixels, each representing either a fingerprint ridge or a fingerprint valley, the x-y array being divided into a plurality of contiguous local blocks, each having a predetermined number of the pixels arranged in rows and columns, each minutia point being one of several types, the system comprising: a. a scanner module that scans lines of pixels in each local block to detect the position of segments of pixels in said each local block representing a fingerprint ridge; b. a comparator module that compares each of said ridge segments detected by said scanner module in each local block with adjacent ridge segments to determine if a minutia point exists, and identifies its position and minutia point type; c. a ridge direction module that determines direction of fingerprint ridges leading to each minutia point determined by said comparator module; and d. a minutia list module that saves said position and type of minutia points determined by said comparator module and fingerprint ridge directions determined by said ridge direction module.
20. A system according to claim 19, wherein said lines of pixels scanned by said scanning module extend along one of rows or columns of the first monochrome image.
21 . A system according to claim 19, wherein said lines of pixels scanned by said scanning module extend at an angle relative to the rows of the first monochrome image.
22. A system according to claim 19, wherein said minutia list module saves said positions and types of minutia points, and said ridge directions, for a given fingerprint using less than I K bytes of data.
23. A system according to claim 22, wherein said minutia list module saves said positions and types of minutia points, and said ridge directions, for a given fingerprint using less than 256 bytes of data.
24. A system according to claim 19, wherein said ridge direction module determines which fingerprint ridge leads to a minutia point as a function of minutia point type.
25. A system according to claim 19, wherein the system extracts fingerprint minutia points from the first monochrome image and from a second monochrome image containing an x-y array of pixels that is a diagonally flipped version of the first monochrome image, further wherein said scanner module includes a ridge orientation module for determining a ridge orientation number for each local block representing the approximate slope of fingerprint ridges in the local block, and said scanner module scans either the first monochrome image or the second monochrome image as a function of said ridge orientation number for the local block being scanned.
26. A method of extracting minutia points from a first monochrome images containing an x-y array of pixels representing either a fingerprint ridge or a fingerprint valley, the x-y array being divided into a plurality of contiguous local blocks, each having a predetermined number of the pixels arranged in rows and columns, the method comprising the steps of: a. scanning lines of pixels in each local block to detect the position of segments of pixels in said each local block representing a fingerprint ridge; b. comparing, in each local block, each of said ridge segments detected in said scanning step a with adjacent ridge segments to determine if a minutia point exists, and identifying its position and minutia point type; c. determining direction of fingerprint ridges leading to each minutia point determined in said comparison step b; and d. creating a minutia list that identifies said position and minutia point type determined in said comparison step b and said fingerprint ridge directions determined in said determining step c.
27. A method according to claim 26, wherein said creating step d involves creating said minutia list using less than IK bytes of data.
28. A method according to claim 26, wherein said creating step d involves creating said minutia list using less than 256 bytes of data.
29. A method according to claim 26, further involving extraction from the first monochrome image and a second monochrome image that is a diagonally flipped version of the first monochrome image, wherein said scanning step a includes determining a fingerprint ridge orientation number for each local block and scanning either said first monochrome image or said second monochrome image as a function of said orientation number.
30. A fingerprint template creation device designed for use with a system in which is stored information representing attributes of a first fingerprint that are unique to a first person having the first fingerprint, the device being usable with a fingerprint sensor that provides an output signal when a user's finger is positioned proximate the sensor, the output signal containing information representing attributes of the user's fingerprint that are unique to the user, the system being capable of verifying whether the unique attributes of the first fingerprint correspond sufficiently with the unique attributes represented in the information in the output signal of the sensor to verify said user is the first person, the device comprising: a. a processing unit ; and b. a template creation program stored in said processing unit, wherein said program in cooperation with said processing unit creates a template, using the information in the output signal from the fingerprint sensor, that represents in less than I K bytes of data sufficient unique attributes of a user's fingerprint positioned proximate the sensor to permit the system to verify that the user is the first person.
31. A device according to claim 30, further including one or more batteries for providing all power requirements of the device.
32. A device according to claim 31 , wherein said one or more batteries comprise 1.5 volt AAA batteries.
33. A device according to claim 30, wherein said processing unit includes non- volative memory for storing said unique attributes even when said one or more batteries are removed.
34. A device according to 30, wherein said template creation program represents said unique attributes of a user's fingerprint in less than 256 bytes of data.
35. A fingerprint identification device, comprising: a. sensor for providing an output signal containing information representing attributes of a user's fingerprint positioned proximate said sensor that are unique to the user; b. a memory for storing a first template containing attributes of a fingerprint of a first person that are unique to the first person; c. a logic unit connected to said memory; and d. a program stored in said memory, wherein said program in cooperation with said memory and logic unit: i. creates said first template using the information in the output signal from the fingerprint sensor that represents unique attributes of said first person's fingerprint positioned proximate the sensor; ii. creates a second template using the information in the output signal from the fingerprint sensor that represents in less than IK bytes of data unique attributes of a user's fingerprint positioned proximate the sensor; and iii. verifies if said user is said first person by attempting to match said unique attributes in said first template with said unique attributes in said second template.
36. A device according to claim 35, wherein said memory stores first templates for a plurality of fingerprints for a plurality of persons.
37. A device according to claim 35, wherein said memory includes non-volatile memory for storing said first templates.
38. A device according to claim 35, further including one or more batteries as sole power source for the device.
39. A device according to claim 35, wherein said device is designed to consume no more than 1 W peak power in verifying if said first person is said user.
40. A device according to claim 35, wherein said logic unit is a microcontroller.
41. A device according to claim 35, wherein said unique attributes in said first and second templates each include: a. x-y coordinates defining the position of minutia points in fingerprints of said first person and said user, respectively; b. type of each of said minutia points; and c direction of fingerprint ridges leading to each of said minutia points.
42. A device according to claim 35, wherein said information in said output signal of said sensor includes images of ridges and valleys in said first fingerprint and said user fingerprint that are represented with a plurality of gray scale pixel values for an x-y array of pixels.
43. A device according to claim 42, wherein said program performs digital image filtering of said images by: a. generating an orientation number for local blocks of pixels in said x-y array of pixels representing the approximate orientation of fingerprint ridges in said local blocks; and b. averaging each of said pixels in said x-y array with a number of adjacent pixels that are selected as a function of said orientation number for the one of said local blocks in which said each pixel resides.
44. A device according to claim 35, wherein said program, in connection with attempting to match said unique attributes in said first and second templates, corrects said unique attributes in said second template to account for at least one of (a) variation in placement of a finger on said sensor and (b) expansion and contraction of a fingerprint.
45. A device according to claim 35, further including an external unit connected to said logic unit that is operable independently of other elements of the device when said program verifies said user is said first person.
46. A device according to claim 45, wherein said external unit is physically remote from said sensor and processing unit.
47. A device according to claim 45, wherein said external unit is physically proximate said sensor and processing unit.
48. A method of creating a template containing attributes of a fingerprint unique to a first person, the fingerprint having a plurality of minutia points of one or more types and a ridge leading to each ofthe minutia points, the method comprising the steps of: a. identifying the location and type of a plurality of minutia points on the fingerprint; b. identifying the direction ofthe ridge leading to each minutia point; and c. using no more than IK bytes of data, storing said location and type ofthe minutia points identified in step a and the direction ofthe ridge leading to each minutia point identified in step b.
49. A computer readable media having a program embodied therein for direrting a computer to perform the steps of: a. identifying the location and type of a plurality of minutia points on a fingerprint including a plurality of ridges; b. identifying the direction ofthe ridge leading to each minutia point; and c. using no more than IK bytes of data, storing said location and type ofthe minutia points identified in step a and the direction ofthe ridge leading to each minutia point identified in step b.
50. A system for comparing fingerprint information in a master template that identifies unique fingerprint attributes of a registered person and fingeφrint information in a new template that identifies unique fingerprint attributes of a user, wherein the fingerprint information in the new template is represented using less than IK bytes of data, the system comprising: a. a memory for storing the master template and the new template; b. a logic unit connected to said memory; and c. a template comparison program stored in said memory and operable with said memory and said logic unit to compare fingerprint information in said new template with fingerprint information in the master template to determine if the user is the registered person.
51. A fingerprint capture device comprising: a. a fingerprint sensor for generating an output signal including an image of ridges and valleys of a fingerprint positioned on said sensor; b. a processing unit for storing said image, said processing unit connected to said fingerprint sensor to receive said output signal; c. one or more batteries that alone power the device; and d. wherein said sensor and said processing unit together consume no more than 1 W peak power.
2. A device according to claim 51, further wherein said processing unit modifies said image to account for variations in said output signal from an absolute value arising from at least one of (a) manufacturing variations and (b) expansion and contraction arising from changes in pressure and environmental factors .
PCT/US2000/027178 1999-09-30 2000-10-02 System and method for capturing, enrolling and verifying a fingerprint WO2001024103A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU79907/00A AU7990700A (en) 1999-09-30 2000-10-02 System and method for capturing, enrolling and verifying a fingerprint

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US15694399P 1999-09-30 1999-09-30
US60/156,943 1999-09-30
US20860500P 2000-06-01 2000-06-01
US60/208,605 2000-06-01

Publications (1)

Publication Number Publication Date
WO2001024103A1 true WO2001024103A1 (en) 2001-04-05

Family

ID=26853680

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/027178 WO2001024103A1 (en) 1999-09-30 2000-10-02 System and method for capturing, enrolling and verifying a fingerprint

Country Status (2)

Country Link
AU (1) AU7990700A (en)
WO (1) WO2001024103A1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6591224B1 (en) * 2000-06-01 2003-07-08 Northrop Grumman Corporation Biometric score normalizer
WO2003085591A1 (en) * 2002-03-20 2003-10-16 Nanyang Technological University, Centre For Signal Processing Method for synthesizing a minutiae template and increasing reliability of fingerprint matching using a fingerprint sensor with small sensor area
EP1445726A1 (en) * 2003-02-05 2004-08-11 Salbert Co Ltd Integrated system for detecting and matching fingerprints
CN107360140A (en) * 2017-06-21 2017-11-17 安徽众喜科技有限公司 A kind of touch-control individual soldier's communication device of function with fingerprint
CN112906567A (en) * 2020-05-05 2021-06-04 王建华 Fingerprint sensing device and fingerprint identification method
CN114212050A (en) * 2021-12-15 2022-03-22 深圳市致知行科技有限公司 Control method for unlocking vehicle door based on capacitive sensing

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4752966A (en) * 1982-03-26 1988-06-21 Fingermatrix, Inc. Fingerprint identification system
US4993068A (en) * 1989-11-27 1991-02-12 Motorola, Inc. Unforgeable personal identification system
US5903225A (en) * 1997-05-16 1999-05-11 Harris Corporation Access control system including fingerprint sensor enrollment and associated methods
US5909501A (en) * 1996-09-09 1999-06-01 Arete Associates Systems and methods with identity verification by comparison and interpretation of skin patterns such as fingerprints

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4752966A (en) * 1982-03-26 1988-06-21 Fingermatrix, Inc. Fingerprint identification system
US4993068A (en) * 1989-11-27 1991-02-12 Motorola, Inc. Unforgeable personal identification system
US5909501A (en) * 1996-09-09 1999-06-01 Arete Associates Systems and methods with identity verification by comparison and interpretation of skin patterns such as fingerprints
US5903225A (en) * 1997-05-16 1999-05-11 Harris Corporation Access control system including fingerprint sensor enrollment and associated methods

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6591224B1 (en) * 2000-06-01 2003-07-08 Northrop Grumman Corporation Biometric score normalizer
WO2003085591A1 (en) * 2002-03-20 2003-10-16 Nanyang Technological University, Centre For Signal Processing Method for synthesizing a minutiae template and increasing reliability of fingerprint matching using a fingerprint sensor with small sensor area
EP1445726A1 (en) * 2003-02-05 2004-08-11 Salbert Co Ltd Integrated system for detecting and matching fingerprints
CN107360140A (en) * 2017-06-21 2017-11-17 安徽众喜科技有限公司 A kind of touch-control individual soldier's communication device of function with fingerprint
CN107360140B (en) * 2017-06-21 2020-07-17 安徽众喜科技有限公司 Touch control individual soldier communication device with fingerprint identification function
CN112906567A (en) * 2020-05-05 2021-06-04 王建华 Fingerprint sensing device and fingerprint identification method
CN114212050A (en) * 2021-12-15 2022-03-22 深圳市致知行科技有限公司 Control method for unlocking vehicle door based on capacitive sensing

Also Published As

Publication number Publication date
AU7990700A (en) 2001-04-30

Similar Documents

Publication Publication Date Title
US6766040B1 (en) System and method for capturing, enrolling and verifying a fingerprint
US20100080425A1 (en) Minutiae-based template synthesis and matching
EP1423821B1 (en) Method and apparatus for checking a person's identity, where a system of coordinates, constant to the fingerprint, is the reference
US8908934B2 (en) Fingerprint recognition for low computing power applications
O’Gorman Fingerprint verification
US20130108125A1 (en) Biometric verification device and method
US20020031245A1 (en) Biometric authentification method
US7079670B2 (en) Apparatus and method for authenticating a user by employing feature points of a fingerprint image of the user
WO2007018545A2 (en) Protometric authentication system
US10325141B2 (en) Pattern registration
WO2006012132A2 (en) Generation of directional field information in the context of image processing
JP2004342073A (en) Fingerprint authentication system and method
Uz et al. Minutiae-based template synthesis and matching for fingerprint authentication
US7272249B2 (en) Fingerprint authentication method, program and device capable of judging inexpensively whether input image is proper or not
US20180005394A1 (en) Systems and methods for point-based image alignment
WO2015070549A1 (en) Skin texture collection and identity recognition method and system
WO2001024103A1 (en) System and method for capturing, enrolling and verifying a fingerprint
Marani et al. The role of biometric in banking: A review
US20220335750A1 (en) Method for determining a match between a candidate fingerprint and a reference fingerprint
US20040175023A1 (en) Method and apparatus for checking a person's identity, where a system of coordinates, constant to the fingerprint, is the reference
Kanjan et al. A comparative study of fingerprint matching algorithms
JP2005284792A (en) Image collating device, image collating method, image collating program and computer readable recording medium recording image collating program
EP1208528B1 (en) Method and arrangement for registering and verifying fingerprint information
Rikin et al. A fingerprint matching using minutia ridge shape for low cost match-on-card systems
Baruni et al. Fingerprint matching on smart card: A review

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP