Adaptive enrollment for fingerprint sensors

The adaptive enrollment system with dual template pools and hit reweighting improves fingerprint sensor reliability and anti-spoofing by dynamically updating templates based on importance metrics and user behavior, addressing spoof detection issues and enhancing security.

WO2025147803A9PCT designated stage Publication Date: 2026-03-05QUALCOMM INC +9
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/071100
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-01-08
Publication Date
2026-03-05

AI Technical Summary

Technical Problem

Existing biometric authentication systems, particularly fingerprint sensors, face issues with spoof detection and inadequate initial enrollment coverage, leading to poor anti-spoofing performance and unreliable template updates that can affect user reliability and security.

Method used

Implementing an adaptive enrollment system with dual fingerprint template pools - an importance pool and a temporal pool, along with hit reweighting and adaptive spoof detection, to dynamically update and maintain templates based on importance metrics and recent user behavior, ensuring frequent templates are retained and spoofs are filtered.

Benefits of technology

Enhances fingerprint sensor reliability by increasing template diversity, improving anti-spoofing performance, and ensuring frequent user templates are available for future inquiries, thereby reducing false acceptances and enhancing security.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024071100_05032026_PF_FP_ABST
    Figure CN2024071100_05032026_PF_FP_ABST
Patent Text Reader

Abstract

Some methods may involve maintaining, in a memory, a fingerprint template pool including an importance pool and a temporal pool. Maintaining the importance pool may involve adding fingerprint templates to the importance pool or removing fingerprint templates from the importance pool based at least in part on an importance metric. Maintaining the temporal pool may involve adding fingerprint templates to the temporal pool or removing fingerprint templates from the temporal pool based at least in part on when a fingerprint template was obtained. Some methods may involve receiving current fingerprint image data from a fingerprint sensor, extracting a current fingerprint template from the current fingerprint image data and performing a fingerprint authentication process that involves comparing the current fingerprint template with one or more fingerprint templates in the fingerprint template pool.
Need to check novelty before this filing date? Find Prior Art

Description

ADAPTIVE ENROLLMENT FOR FINGERPRINT SENSORSTECHNICAL FIELD

[0001] This disclosure relates generally to sensor devices and related methods, including but not limited to fingerprint sensors and methods for using such devices.

[0002] DESCRIPTION OF THE RELATED TECHNOLOGY

[0003] Biometric authentication, including but not limited to fingerprint-based authentication, can be an important feature for controlling access to devices, etc. Many existing products include some type of biometric authentication. Although some existing biometric authentication technologies provide satisfactory performance, improved methods and devices would be desirable.SUMMARY

[0004] The systems, methods and devices of the disclosure each have several innovative aspects, no single one of which is solely responsible for the desirable attributes disclosed herein.

[0005] Some innovative aspects of the subject matter described in this disclosure may be implemented in an apparatus. The apparatus may include a fingerprint sensor, a memory and a control system. In some examples, at least a portion of the control system may be electrically connected to the fingerprint sensor and the memory. In some implementations, a mobile device may be, or may include, the apparatus. For example, a mobile device may include an apparatus as disclosed herein.

[0006] The control system may include one or more general purpose single-or multi-chip processors, digital signal processors (DSPs) , application specific integrated circuits (ASICs) , field programmable gate arrays (FPGAs) or other programmable logic devices, discrete gates or transistor logic, discrete hardware components, or combinations thereof. According to some examples, the control system may be configured to maintain, in the memory, a fingerprint template pool. The fingerprint template pool may include an importance pool and a temporal pool. Maintaining the importance pool may involve adding fingerprint templates to the importance pool or removing fingerprint templates  from the importance pool based at least in part on an importance metric. Maintaining the temporal pool may involve adding fingerprint templates to the temporal pool or removing fingerprint templates from the temporal pool based at least in part on when a fingerprint template was obtained. The control system may be configured to receive current fingerprint image data from the fingerprint sensor; extract a current fingerprint template from the current fingerprint image data; and perform a fingerprint authentication process that involves comparing the current fingerprint template with one or more fingerprint templates in the fingerprint template pool.

[0007] In some examples, the importance metric may be based in part on one or more differences between a current fingerprint template and one or more other fingerprint templates in the importance pool. According to some examples, the control system may be configured to: update the temporal pool to include the current fingerprint template; determine an importance metric for the current fingerprint template; and determine whether to update the importance pool with the current fingerprint template based at least in part on the importance metric for the current fingerprint template.

[0008] According to some examples, maintaining the importance pool may involve applying a hit weighting metric to fingerprint templates in the importance pool. The hit weighting metric may be based on a hit frequency with which a fingerprint template matches a fingerprint template obtained during a fingerprint authentication attempt, with a higher hit weighting metric corresponding with a higher hit frequency. A higher hit weighting metric may make a fingerprint template less likely to be removed from the importance pool. Maintaining the importance pool may, in some instances, involve retaining one or more initial enrollment fingerprint templates in the importance pool.

[0009] In some examples, the control system may be further configured to implement a spoof detection system. In some such examples, the fingerprint authentication process may involve obtaining a spoof detection score from the spoof detection system. According to some examples, the spoof detection system may include a liveness detection module and an anti-spoof classifier.

[0010] Other innovative aspects of the subject matter described in this disclosure may be implemented in a method. The method may involve controlling an apparatus that includes a fingerprint sensor. In some examples, the method may involve maintaining, in  a memory, a fingerprint template pool, the fingerprint template pool including an importance pool and a temporal pool. Maintaining the importance pool may involve adding fingerprint templates to the importance pool or removing fingerprint templates from the importance pool based at least in part on an importance metric. Maintaining the temporal pool may involve adding fingerprint templates to the temporal pool or removing fingerprint templates from the temporal pool based at least in part on when a fingerprint template was obtained. The method may involve receiving current fingerprint image data from the fingerprint sensor; extracting a current fingerprint template from the current fingerprint image data; and performing a fingerprint authentication process that involves comparing the current fingerprint template with one or more fingerprint templates in the fingerprint template pool.

[0011] In some examples, the importance metric may be based in part on one or more differences between a current fingerprint template and one or more other fingerprint templates in the importance pool. According to some examples, the method may involve updating the temporal pool to include the current fingerprint template; determine an importance metric for the current fingerprint template; and determining whether to update the importance pool with the current fingerprint template based at least in part on the importance metric for the current fingerprint template.

[0012] According to some examples, maintaining the importance pool may involve applying a hit weighting metric to fingerprint templates in the importance pool. The hit weighting metric may be based on a hit frequency with which a fingerprint template matches a fingerprint template obtained during a fingerprint authentication attempt, with a higher hit weighting metric corresponding with a higher hit frequency. A higher hit weighting metric may make a fingerprint template less likely to be removed from the importance pool. Maintaining the importance pool may, in some instances, involve retaining one or more initial enrollment fingerprint templates in the importance pool.

[0013] Some or all of the operations, functions and / or methods described herein may be performed by one or more devices according to instructions (e.g., software) stored on one or more non-transitory media. Such non-transitory media may include memory devices such as those described herein, including but not limited to random access memory (RAM) devices, read-only memory (ROM) devices, etc. Accordingly, some innovative aspects of the subject matter described in this disclosure can be implemented in one or  more non-transitory media having software stored thereon. For example, the software may include instructions for controlling one or more devices to perform one or more of the methods disclosed herein.BRIEF DESCRIPTION OF THE DRAWINGS

[0014] Details of one or more implementations of the subject matter described in this specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages will become apparent from the description, the drawings, and the claims. Note that the relative dimensions of the following figures may not be drawn to scale. Like reference numbers and designations in the various drawings indicate like elements.

[0015] Figure 1 is a block diagram that shows example components of an apparatus according to some disclosed implementations.

[0016] Figures 2A and 2B show example components of some implementations of the apparatus of Figure 1.

[0017] Figure 3 is a flow diagram that provides example blocks of some disclosed processes.

[0018] Figure 4 is a flow diagram that provides example blocks of some additional disclosed processes.

[0019] Figure 5 is a flow diagram that provides example blocks of some methods disclosed herein.DETAILED DESCRIPTION

[0020] The following description is directed to certain implementations for the purposes of describing the innovative aspects of this disclosure. However, a person having ordinary skill in the art will readily recognize that the teachings herein may be applied in a multitude of different ways. The described implementations may be implemented in any device, apparatus, or system that includes a biometric system as disclosed herein. In addition, it is contemplated that the described implementations may be included in or associated with a variety of electronic devices such as, but not limited to:mobile telephones, multimedia Internet enabled cellular telephones, mobile television  receivers, wireless devices, smartphones, smart cards, wearable devices such as bracelets, armbands, wristbands, rings, headbands, patches, etc.,  devices, personal data assistants (PDAs) , wireless electronic mail receivers, hand-held or portable computers, netbooks, notebooks, smartbooks, tablets, printers, copiers, scanners, facsimile devices, global positioning system (GPS) receivers / navigators, cameras, digital media players (such as MP3 players) , camcorders, game consoles, wrist watches, clocks, calculators, television monitors, flat panel displays, electronic reading devices (e.g., e-readers) , mobile health devices, computer monitors, auto displays (including odometer and speedometer displays, etc. ) , cockpit controls and / or displays, camera view displays (such as the display of a rear view camera in a vehicle) , electronic photographs, electronic billboards or signs, projectors, architectural structures, microwaves, refrigerators, stereo systems, cassette recorders or players, DVD players, CD players, VCRs, radios, portable memory chips, washers, dryers, washer / dryers, automatic teller machines (ATMs) , parking meters, packaging (such as in electromechanical systems (EMS) applications including microelectromechanical systems (MEMS) applications, as well as non-EMS applications) , aesthetic structures (such as display of images on a piece of jewelry or clothing) and a variety of EMS devices. The teachings herein also may be used in applications such as, but not limited to, electronic switching devices, radio frequency filters, sensors, accelerometers, gyroscopes, motion-sensing devices, magnetometers, inertial components for consumer electronics, parts of consumer electronics products, automobile doors, steering wheels or other automobile parts, varactors, liquid crystal devices, electrophoretic devices, drive schemes, manufacturing processes and electronic test equipment. Thus, the teachings are not intended to be limited to the implementations depicted solely in the Figures, but instead have wide applicability as will be readily apparent to one having ordinary skill in the art.

[0021] Adaptive enrollment (AE) is a widely used technique in biometric matching to continuously improve the reliability of a biometric enrollment pool, such as a fingerprint template pool, by dynamically updating new inquiries into the biometric enrollment pool. (As used herein, the term “finger” can refer to any digit, including a thumb. Accordingly, the term “fingerprint” as used herein may refer to a print from any digit, including a thumb. Data received from a fingerprint sensor may sometimes be referred to herein as “fingerprint sensor data, ” “fingerprint image data, ” etc., although the data will generally be received from the fingerprint sensor system in the form of  electrical signals. Accordingly, without additional processing such image data would not necessarily be perceivable by a human being as an image. )

[0022] Some fingerprint sensors may include, or may be deployed with, an anti-spoofing (ASP) system. ASP systems could also potentially benefit from an AE system. However, using a fingerprint matcher AE system for an ASP system could cause several problems. The matcher AE of previously-deployed devices generally does not consider anti-spoof data and spoof data wrongly added to the template pool could seriously affect the SAR (spoof accept rate) of an ASP system. In addition, the initial enrollment process usually provides relatively poor coverage of an entire fingerprint. This poor coverage can negatively affect ASP performance. Moreover, recent user behavior is a potentially important reference for biometric anti-spoofing, but recent user behavior has generally not been taken into account in AE template updating.

[0023] Some examples involve implementing and maintaining at least two types of fingerprint template pools. In some such examples, a fingerprint template pool will include at least an importance pool and a temporal pool. Maintaining the importance pool may involve adding fingerprint templates to the importance pool and / or removing fingerprint templates from the importance pool based at least in part on an importance metric. Maintaining the temporal pool may involve adding fingerprint templates to the temporal pool and / or removing fingerprint templates from the temporal pool based at least in part on when a fingerprint template was obtained. For example, maintaining the temporal pool may involve implementing a first-in-first-out (FIFO) queue to record the most recent fingerprint authentication attempts (also referred to herein as “inquires” ) . Accordingly, the temporal pool may change according to recent user behavior.

[0024] Some disclosed examples involve implementing one or more inquiry thresholds. Some such examples may involve implementing a fingerprint matcher score threshold. Alternatively, or additionally, some disclosed examples may involve implementing an adaptive ASP score threshold, in order to decrease the likelihood of data from spoof inquiries being added to a fingerprint template pool. Alternatively, or additionally, some disclosed examples may involve hit reweighting that causes frequently-used fingerprint templates to be more likely to remain in a fingerprint template pool. Alternatively, or additionally, some disclosed examples may involve preserving some or all of the initial fingerprint templates that are obtained during an  initial enrollment process.

[0025] Particular implementations of the subject matter described in this disclosure may be implemented to realize one or more of the following potential advantages. Implementing an importance metric may increase the diversity of fingerprint templates in the importance pool. Implementing the temporal pool may allow fingerprint template updates according to recent user behavior, which may be relatively more similar to fingerprint templates obtained in future inquiries. Implementing hit reweighting may ensure that frequently-used fingerprint templates are more likely to be available for future inquiries. Implementing a fingerprint matcher score threshold can increase the likelihood of an inquiry being from the same user who provided fingerprint image data during the enrollment process. Because the initial enrollment process can be assumed not to involve spoofs or fingerprint data from an unauthorized person, preserving some or all of the initial fingerprint templates that are obtained during the initial enrollment process may enhance fingerprint sensor reliability.

[0026] Figure 1 is a block diagram that shows example components of an apparatus according to some disclosed implementations. As with other disclosed implementations, the types, number and arrangement of elements shown in Figure 1 are merely presented by way of example. Other implementations may have other types, numbers and / or arrangements of elements. In this example, the apparatus 101 includes a fingerprint sensor system 102, a memory system 105 and a control system 106. Some implementations of the apparatus 101 may include an interface system 104, a display system and / or a force sensor system 110.

[0027] The fingerprint sensor system 102 includes one or more fingerprint sensors. The fingerprint sensor system 102 include any suitable type of fingerprint sensor, such as an optical fingerprint sensor, a capacitive fingerprint sensor, a resistive fingerprint sensor, a radio frequency-based fingerprint sensor, combinations thereof, etc. In some examples the fingerprint sensor system may be, or may include, an ultrasonic fingerprint sensor. Some detailed examples are provided herein. Some alternative implementations may include one or more other types of biometric sensors and / or biometric sensor systems, such as facial recognition systems, retinal scanners, voice recognition systems, etc.

[0028] Some implementations of the apparatus 101 may include an interface system 104. In some examples, the interface system 104 may include a wireless interface system. In some implementations, the interface system 104 may include a user interface system, one or more network interfaces, one or more interfaces between the control system 106 and a memory system, and / or one or more interfaces between the control system 106 and one or more external device interfaces (e.g., ports or applications processors) .

[0029] The interface system 104 may be configured to provide communication (which may include wired or wireless communication, such as electrical communication, radio communication, etc. ) between components of the apparatus 101. In some such examples, the interface system 104 may be configured to provide communication between the control system 106 and the fingerprint sensor system 102, between the control system 106 and the display system 108 (if present) and between the control system 106 and the force sensor system 110 (if present) . According to some such examples, the interface system 104 may couple at least a portion of the control system 106 to the fingerprint sensor system 102 (as well as the display system 108 and / or the force sensor system 110, if present) , e.g., via electrically conducting material such as conductive metal wires or traces.

[0030] According to some examples, the interface system 104 may be configured to provide communication between the apparatus 101 and other devices and / or human beings. In some such examples, the interface system 104 may include a user interface system having one or more user interfaces. The user interface system may, for example, include one or more loudspeakers, a touch and / or gesture sensor system, a haptic feedback system, etc. Although not shown as such in Figure 1, the optional display system 108 may be considered to be part of the interface system 104.

[0031] The interface system 104 may, in some examples, include one or more network interfaces and / or one or more external device interfaces (such as one or more universal serial bus (USB) interfaces and / or a serial peripheral interface (SPI) ) . In some implementations, the apparatus 101 may include a memory system in addition to memory that the control system 106 may include. The interface system 104 may, in some examples, include at least one interface between the control system 106 and the memory system.

[0032] The memory system 105 may include one or more memory devices, such as one or more random access memory (RAM) devices, read-only memory (ROM) devices, combinations thereof, etc. In this example, the memory system 105 is configured for communication with-for example, electrically connected to-at least a portion of the control system 106. According to some examples, the control system 106 may include at least a portion of the memory system 105.

[0033] The control system 106 may include one or more general purpose single-or multi-chip processors, digital signal processors (DSPs) , application specific integrated circuits (ASICs) , field programmable gate arrays (FPGAs) or other programmable logic devices, discrete gates or transistor logic, discrete hardware components, or combinations thereof. According to some examples, the control system 106 may include a dedicated component for controlling the fingerprint sensor system 102 (as well as the display system 108 and / or the force sensor system 110, if present) . In some implementations, functionality of the control system 106 may be partitioned between one or more controllers or processors, such as between a dedicated sensor controller and an applications processor of a mobile device. Some examples are described below.

[0034] The force sensor system 110, if present in the apparatus 101, may include a piezo-resistive sensor, a capacitive sensor, a thin film sensor (e.g., a polymer-based thin film sensor) , another type of suitable force sensor, or combinations thereof. If the force sensor system 110 includes a piezo-resistive sensor, the piezo-resistive sensor may include silicon, metal, polysilicon and / or glass. The fingerprint sensor system 102 and the force sensor system 110 may, in some instances, be mechanically coupled. In some such examples, the force sensor system 110 may be integrated into circuitry of the fingerprint sensor system 102. However, in other implementations the force sensor system 110 may be separate from the fingerprint sensor system 102. The fingerprint sensor system 102 and the force sensor system 110 may, in some examples, be indirectly coupled. For example, the fingerprint sensor system 102 and the force sensor system 110 each may be coupled to a portion of the apparatus 101. In some such examples, the fingerprint sensor system 102 and the force sensor system 110 each may be coupled to a portion of the control system.

[0035] However, some implementations may not include a force sensor system 110 that is separate from the fingerprint sensor system 102. In some such examples, the  control system 106 may be configured for force detection and / or pressure detection based, at least in part, on fingerprint sensor data from the fingerprint sensor system 102.

[0036] The apparatus 101 may be used in a variety of different contexts, some examples of which are disclosed herein. For example, in some implementations a mobile device may include at least a portion of the apparatus 101. In some implementations, a wearable device may include at least a portion of the apparatus 101. The wearable device may, for example, be a bracelet, an armband, a wristband, a ring, a headband or a patch. In some implementations, the control system 106 may reside in more than one device. For example, a portion of the control system 106 may reside in a wearable device and another portion of the control system 106 may reside in another device, such as a mobile device (e.g., a smartphone) . The interface system 104 also may, in some such examples, reside in more than one device.

[0037] Figures 2A and 2B show example components of some implementations of the apparatus of Figure 1. As with other disclosed implementations, the types, numbers and arrangements of elements shown in Figures 2A and 2B are merely presented by way of example. Other implementations may have other types of elements, numbers of elements, arrangements of elements, or combinations thereof. For example, some alternative implementations may include one or more other types of biometric sensors and / or biometric sensor systems, such as facial recognition systems, retinal scanners, voice recognition systems, etc.

[0038] Figure 2A shows an instance of the apparatus 101 of Figure 1. In this example, the apparatus 101 includes a fingerprint (FP) sensor 202, which is an instance of the fingerprint sensor system 102 of Figure 1, as well as examples of the memory system 105 and the control system 106 of Figure 1. According to this example, the control system 106 is configured to implement a fingerprint matcher system 212. In this example, the fingerprint matcher system 212 is configured to receive current fingerprint image data 203 from the fingerprint sensor 202, to extract a current fingerprint template from the current fingerprint image data 203 and to perform a fingerprint authentication process that involves comparing the current fingerprint template with one or more fingerprint templates 204 from the fingerprint template pool. In some alternative implementations, the fingerprint sensor 202 may be configured to extract a current fingerprint template from the current fingerprint image data and to provide the current  fingerprint template to the fingerprint matcher system 212.

[0039] In this example, the control system 106 is also configured to implement a spoof detection system 220, which also may be referred to herein as an anti-spoof (ASP) system. A “spoof” as used herein may refer to any type of device, material, etc., that is used to imitate a fingerprint and / or finger of an authorized user. Spoofs may be artificial fingers that include fingerprint patterns, sleeves that include fingerprint patterns and that are configured to cover the surface of another person’s finger, etc. According to this example, the spoof detection system 220 is configured to determine a spoof detection score 207-also referred to herein as an anti-spoofing (ASP) score 207-based at least in part on the current fingerprint image data 203, or on data that is derived from the current fingerprint image data 203. In some examples, the spoof detection system 220 is configured to determine the spoof detection score 207 using a trained neural network implemented by the control system 106. The neural network may, for example, have been trained to distinguish an actual fingerprint image from one or more common types of spoof images.

[0040] In some alternative examples, the spoof detection system 220 may be configured to determine the spoof detection score 207 based at least in part on one or more other types of data, such as one or more current sub-epidermal images-for example, one or more blood vessel images, one or more bone images, one or more dermis images, etc. -, one or more types of data extracted from the one or more current sub-epidermal images, a current fingerprint template extracted from the current fingerprint image data, or combinations thereof. Moreover, although the spoof detection system 220 is shown as a single module of in Figure 2A, in some implementations may include multiple modules.

[0041] According to this example, the fingerprint authentication process performed by the fingerprint matcher system 212 is based, in part, on the ASP score 207 from the spoof detection system 220. If the fingerprint authentication process is successful, the control system 106 may be configured to provide access to one or more types of functionality that is supported by the apparatus 101. For example, if the apparatus 101 is implemented as a cell phone, the control system 106 may be configured to unlock the cell phone if the fingerprint authentication process is successful.

[0042] In this example, the control system 106 (here, a matcher adaptive enrollment module 215 of the fingerprint matcher system 212) is configured to maintain the fingerprint template pool 225a in the memory system 105. The fingerprint template pool 225a may be implemented as one or more data structures that are stored in the memory system 105. The data structures may, for example, include fingerprint template data obtained during an enrollment process. In some examples, the matcher adaptive enrollment module 215 may configured to update the fingerprint template pool 225a with fingerprint template data obtained during at least some successful authentication attempts. Authentication attempts are also referred to herein as “queries. ” According to this example, if the current fingerprint authentication process is successful, the matcher adaptive enrollment module 215 is configured to determine whether to update the fingerprint template pool 225a with the current fingerprint template data used during the current fingerprint authentication process. In some examples, the matcher adaptive enrollment module 215 may determine whether to update the fingerprint template pool 225a with the current fingerprint template data based, in part, on the ASP score 207. Accordingly, the ASP score 207 may help to prevent fingerprint templates obtained during spoof inquiries from being saved in the fingerprint template pool 225a.

[0043] According to some examples, the fingerprint template pool 225a may include an importance pool and a temporal pool. In some such examples, the control system 106 (for example, the matcher adaptive enrollment module 215) may be configured to maintain the importance pool and the temporal pool. Maintaining the importance pool may involve adding fingerprint templates to the importance pool or removing fingerprint templates from the importance pool based at least in part on an importance metric, examples of which are disclosed herein. Maintaining the temporal pool may involve adding fingerprint templates to the temporal pool or removing fingerprint templates from the temporal pool based at least in part on when a fingerprint template was obtained. In some such examples, maintaining the temporal pool may involve implementing a first-in, first-out (FIFO) queue. Further details of criteria that the matcher adaptive enrollment module 215 may use to determine whether to update the fingerprint template pool 225a with the current fingerprint template data are disclosed herein.

[0044] In some examples, the entire fingerprint template pool may include the fingerprint template pool 225a and one or more other fingerprint template pools. In  some such examples, the fingerprint template pool 225a may be referred to herein as a “fingerprint matcher portion” of the fingerprint template pool.

[0045] For example, as suggested in Figure 2A by the dashed outline of the fingerprint template pool 225b and the dashed arrows between the fingerprint template pool 225b and the spoof detection system 220, in some implementations the control system 106-for example, the spoof detection system 220-may be configured to maintain (e.g., to update) the fingerprint template pool 225b. In some such examples, the fingerprint template pool 225b may be referred to herein as “an anti-spoof portion” of the fingerprint template pool. According to some examples, the fingerprint template pool 225b may include an importance pool and a temporal pool.

[0046] Figure 2B shows another instance of the apparatus 101 of Figure 1. In this example, the apparatus 101 includes a fingerprint (FP) sensor 202, which is an instance of the fingerprint sensor system 102 of Figure 1, as well as example components of the control system 106 of Figure 1. Although the memory system 105 is not expressly shown in Figure 2B, the fingerprint template pool 225a and the fingerprint template pool 225b are stored in the memory system 105. According to this example, the control system 106 is configured to implement a fingerprint matcher system 212, which may function as described with reference to Figure 2A.

[0047] According to this example, the spoof detection system 220 includes a liveness detection module 230, an anti-spoof (ASP) classifier 235 and an ASP adaptive enrollment module 240. In the example shown in Figure 2B, the ASP adaptive enrollment module 240 is configured to maintain the fingerprint template pool 225b according to input from the liveness detection module 230, input from the anti-spoof classifier 235, or combinations thereof. In some examples, the ASP adaptive enrollment module 240 may be configured to maintain an importance pool and a temporal pool of the fingerprint template pool 225b. In some such examples, the ASP adaptive enrollment module 240 may be configured to maintain an importance pool and a temporal pool of the fingerprint template pool 225b using the same criteria used by the matcher adaptive enrollment module to maintain the importance pool and the temporal pool of the fingerprint template pool 225a.

[0048] The liveness detection module 230 may, in some examples, be configured to  provide fingerprint template matching functionality similar to that of the fingerprint matcher system 212. Accordingly, the liveness detection module 230 also may be referred to herein as a liveness-aware matcher (LAM) . The liveness detection module 230 may, for example, compare current fingerprint template data with fingerprint template data that is maintained in the fingerprint template pool 225b to determine whether there is a match. Although the liveness detection module 230 is shown receiving current fingerprint image data 203 from the fingerprint matcher system 212, in some instances the liveness detection module 230 may receive current fingerprint template data from the fingerprint matcher system 212 that is based on the current fingerprint image data 203.

[0049] In this example, the liveness detection module 230 is configured to output a LAM score 227 and current fingerprint data 203 (or current fingerprint template data) to the anti-spoof classifier 235. The LAM score 227 may, for example, indicate the degree to which the most similar fingerprint template in the fingerprint template pool 225b matches a current fingerprint template.

[0050] According to this example, the ASP classifier 235 is configured to output an ASP score 207 to the fingerprint matcher system 212. The ASP score 207 may, in some examples, indicate the probability that the current fingerprint image data corresponds to an actual finger and not to a spoof. In other examples, the ASP score 207 may indicate the likelihood that the current fingerprint image data corresponds to a spoof. The ASP score 207 may, for example, range from zero to one. The ASP score 207 may have different ranges in other implementations. According to this example, the ASP classifier 235 is configured to determine the ASP score 207 based at least in part on the current fingerprint image data 203, or on data that is derived from the current fingerprint image data 203, and on the LAM score 227. In some examples, the ASP classifier 235 may be configured to determine the ASP score 207 using a trained neural network implemented by the control system 106. The neural network may, for example, have been trained to distinguish an actual fingerprint image from one or more common types of spoof images.

[0051] Figure 3 is a flow diagram that provides example blocks of some disclosed processes. The blocks of Figure 3 may, for example, be performed by the apparatus 101 of any one of Figures 1–2B, or by a similar apparatus. In this example, at least blocks 310, 315, 325, 330 and 335 of Figure 3 are implemented by an instance of the control  system 106. Here, block 320 involves storing data in an instance of the memory system 105. As with other methods disclosed herein, the method 300 outlined in Figure 3 may include more or fewer blocks than indicated. Moreover, the blocks of methods disclosed herein are not necessarily performed in the order indicated. In some examples, some blocks of methods disclosed herein may be performed concurrently.

[0052] According to this example, the method 300 is a method of implementing an adaptive enrollment process. In this example, block 305 involves obtaining, by a fingerprint sensor (such as the control system 106) , fingerprint sensor data from a fingerprint sensor (such as the fingerprint sensor 202 of Figure 2A or Figure 2B) . The terms “fingerprint sensor data” and “fingerprint image data” may be used interchangeably herein. According to some examples, block 305 may involve obtaining multiple sets of fingerprint sensor data from multiple scans of a finger or other target object. During an initial enrollment process, it may be assumed that the fingerprint sensor data are obtained from a finger of an authorized user.

[0053] In some examples, block 305 may involve extracting fingerprint template data, which may correspond to the locations of various types of fingerprint minutiae and / or other fingerprint features, from the fingerprint sensor data. In other examples, one or more other blocks of Figure 3 may involve extracting fingerprint template data from the fingerprint sensor data.

[0054] According to this example, the fingerprint sensor data obtained in block 305 is provided to block 310. In this example, the fingerprint sensor data and / or fingerprint template data obtained in block 305 is provided to block 315. According to this example, block 315 involves initiating or continuing an adaptive enrollment process. In this example, block 315 involves obtaining fingerprint (FP) template pool information and adaptive enrollment (AE) parameters, and providing the FP template pool information and AE parameters to block 335. The FP template pool information may, for example, indicate whether one or more components of the fingerprint template pool-such as an importance pool and / or a temporal pool-already have a maximum number of fingerprint templates. The AE parameters may, for example, indicate whether one or more AE thresholds-such as an ASP score threshold and / or a matching score threshold-have been reached.

[0055] In this example, block 310 involves image processing. According to this example, block 310 involves performing different types of image processing and providing different types of fingerprint image data to blocks 325 and 330: here, block 310 involves providing IM fingerprint image data to block 325 and providing IQ fingerprint image data to block 330. In this example, block 310 involves producing the IM fingerprint image data by fusing fingerprint image data from multiple fingerprint sensor scans. The fusing process may differ according to the particular implementation. In some examples, the fusing process may involve summing fingerprint sensor pixel values, averaging fingerprint sensor pixel values, etc. The fusing process may, in some examples, involve filtering fingerprint sensor pixel values according to one or more criteria. According to this example, block 310 involves providing the IQ fingerprint image data by passing multiple sets of fingerprint image data to block 330. Each of the sets of fingerprint image data may have been obtained from a different scan by the fingerprint sensor. In some examples, the IQ fingerprint image data may include real and imaginary fingerprint sensor pixel values. In some examples, block 310 may involve initial template augmentation during an enrollment stage. In some such examples, the initial template augmentation may involve applying one or more masks to templates obtaining during the enrollment stage. Alternatively, or additionally, the initial template augmentation may involve rotating one or more templates obtaining during the enrollment stage. According to some examples, one or more downstream processing blocks-such as block 330-may use the resulting augmented template (s) and / or corresponding augmented fingerprint image data, along with non-augmented templates and / or non-augmented fingerprint image data.

[0056] According to this example, block 325 involves a liveness-aware matching (LAM) process. Block 325 may, in some examples, provide fingerprint template matching functionality similar to that of the fingerprint matcher system 212 of Figure 2A or Figure 2B. Block 325 may, for example, involve comparing current fingerprint template data based on a current IM image with fingerprint template data that is maintained in a fingerprint template pool to determine whether there is a match. According to some examples, the fingerprint template pool used by block 325 may be a separate fingerprint template pool that is maintained by the spoof detection system 220 Figure 2A or Figure 2B, for example the fingerprint template pool 225b. In some examples, block 325 may involve determining whether there is a match based, at least in  part, on an ASP score from block 330.

[0057] In this example, block 325 involves outputting a LAM score to block 330. The LAM score may, for example, indicate the degree to which the most similar fingerprint template in the fingerprint template pool 225b matches a current fingerprint template. According to this example, block 325 involves outputting LAM feature data to block 335. The LAM feature data may include fingerprint features extracted from the IM image by block 335.

[0058] According to this example, block 330 involves outputting an ASP score at least to block 335 and, in some examples, to one or more other blocks (such as block 325) . The ASP score may, in some examples, indicate the probability that the current fingerprint image data corresponds to an actual finger and not to a spoof. In other examples, the ASP score may indicate the likelihood that the current fingerprint image data corresponds to a spoof. According to this example, block 330 involves determining the ASP score based at least in part on the IQ image data and on a LAM score from block 325. In some examples, block 330 may involve determining the ASP score using a trained neural network implemented by the control system 106. The neural network may, for example, have been trained to distinguish an actual fingerprint image from one or more common types of spoof images.

[0059] In this example, block 330 also involves outputting ASP feature data to block 335. The ASP feature data may include fingerprint features extracted from the IQ image by block 330.

[0060] According to this example, block 335 involves providing AE data updates to block 320 for storage. In this example, the AE data updates may include updated AE parameters, updated FP template pool information, the LAM feature data from block 325, ASP feature data from block 330, hit information, or combinations thereof. The hit information may indicate the number of times that a particular fingerprint template from a fingerprint template pool was the best match for current fingerprint data. According to some examples, block 335 may involve determining whether or not to update one or more fingerprint template pools. Examples of some criteria that may be used in this determination are described with reference to Figure 4.

[0061] Figure 4 is a flow diagram that provides example blocks of some additional  disclosed processes. The blocks of Figure 4 may, for example, be performed by the apparatus 101 of any one of Figures 1–2B, or by a similar apparatus. As with other methods disclosed herein, the method 400 outlined in Figure 4 may include more or fewer blocks than indicated. Moreover, the blocks of methods disclosed herein are not necessarily performed in the order indicated. In some examples, some blocks of methods disclosed herein may be performed concurrently.

[0062] According to this example, the method 400 is a method of implementing an adaptive enrollment process. In this example, block 405a involves obtaining LAM feature data and ASP feature data corresponding to a current inquiry. According to this example, block 405b involves obtaining an ASP score corresponding to a current inquiry. In some examples, blocks 405a and 405b may be performed concurrently, or substantially concurrently (such as within a threshold time interval, e.g., within 100 ms, 200 ms, 300 ms, 400 ms, 500 ms, etc. ) . In some examples, block 405a may involve obtaining LAM feature data corresponding to a current inquiry from the liveness detection module 230 of Figure 2B and / or block 325 of Figure 3. According to some examples, block 405a may involve obtaining ASP feature data corresponding to a current inquiry from the ASP classifier 235 of Figure 2B and / or block 330 of Figure 3.

[0063] In this example, block 410 involves obtaining fingerprint template pool information. In this example, block 410 involves obtaining fingerprint template pool information from the fingerprint template pool 225a. Alternatively, or additionally, block 410 may involve obtaining fingerprint template pool information from the fingerprint template pool 225b. In some examples, block 410 may involve obtaining some or all of the AE data updates received by block 320 of Figure 3.

[0064] According to this example, block 415 involves comparing LAM feature data and ASP feature data from the current inquiry, comparing the LAM feature data and ASP feature data with the template pool information from block 410, and outputting a similarity estimation 417 corresponding to one or more of the fingerprint templates from the fingerprint template pool.

[0065] In this example, block 420 involves recording any “hits” involved in the similarity computation of block 415. For example, block 420 may involve recording the number of fingerprint templates from the fingerprint template pool-if any-that  matched the LAM feature data and / or ASP feature data with at least a threshold similarity estimation value. Block 420 may, in some examples, involve providing hit update information to block 335 or block 320 of Figure 3. In this example, block 420 involves passing a matching score (MScore) to block 425. In some examples, the MScore may be, or may correspond with, the highest similarity estimation determined in block 415.

[0066] According to this example, block 407 involves determining whether the ASP score received from block 405b is greater than an ASP score threshold. In some examples, the ASP score may vary over time. In this example, if it is determined in block 407 that the ASP score is not greater than the ASP score threshold, the process continues to block 409. Block 409 may, for example, involve prompting a user to provide another inquiry (for example, to place a finger in a fingerprint sensor area) .

[0067] However, in this example, if it is determined in block 407 that the ASP score is greater than the ASP score threshold, the process continues to blocks 411 and 425. In this example, block 411 involves updating a FIFO queue of templates in the temporal pool 477.

[0068] In this example, block 425 involves determining whether the MScore is greater than an MScore threshold. In some examples, the MScore may vary over time. In this example, if it is determined in block 425 that the MScore is not greater than the MScore threshold, the process continues to block 430. Block 430 may, for example, involve prompting a user to provide another inquiry. In some examples, if it is determined in block 425 that the MScore is greater than the MScore threshold and it is determined in block 407 that the ASP score is not greater than the ASP score threshold, the process continues to block 430.

[0069] However, in this example, if it is determined in block 425 that the MScore is greater than the MScore threshold and if it is determined in block 407 that the ASP score is greater than the ASP score threshold, the process continues to block 435. In this example, block 435 involves determining whether an amount of memory and / or a maximum number of importance pool templates have been exceeded. If not, one or more current fingerprint templates are saved to the importance pool 475 in block 440. If so, the process proceeds to block 445.

[0070] According to this example, block 445 involves computing an importance score of one or more current fingerprint templates and hit reweighting. The importance score also may be referred to herein as an importance metric. In some alternative examples, block 445 may involve computing an importance score of one or more current fingerprint templates, but may not involve hit reweighting.

[0071] Computing the importance score may, for example, be based at least in part on one or more differences between a current fingerprint template and one or more other fingerprint templates in the importance pool 475. In some such examples, the greater the difference, the higher the importance score. Such examples provide more diversity in the fingerprint templates of the importance pool 475.

[0072] Alternatively, or additionally, the importance score may be based at least in part on whether the current fingerprint template has been obtained during an initial enrollment process. In some such examples, a fingerprint template obtained during an initial enrollment process will be assigned a high importance score. In some examples, a fingerprint template obtained during an initial enrollment process will be assigned the highest possible importance score.

[0073] The hit reweighting process may, in some examples, involve determining one or more hit weighting metrics. In some examples, a hit weighting metric may be based on a “hit frequency” with which a fingerprint template of a fingerprint template pool matches, or has matched, a fingerprint template obtained during a fingerprint authentication attempt. In some such examples, a higher hit weighting metric will correspond with a higher hit frequency. According to some examples, the hit reweighting process of block 445 may simply involve incrementing the number of times that a fingerprint template of the fingerprint template pool has matched a fingerprint template obtained during a fingerprint authentication attempt, to include the current instance during which an MScore threshold was exceeded in block 425.

[0074] In this example, block 450 involves determining whether a fingerprint template from the current inquiry will be added to the importance pool 475. If so, the process continues to block 460. If not, the process continues to block 455. Block 455 may, for example, involve prompting a user to provide another inquiry.

[0075] According to this example, block 460 involves determining whether an ASP  threshold has been reached. If so, the process continues to block 465. If not, in this example the ASP threshold is updated in block 462. In some examples, the ASP threshold may be gradually increased after an initial enrollment process up to a maximum value equal to the ASP threshold. Such examples have the potential advantages of causing relatively fewer false rejections when a device that includes a fingerprint sensor is initially being used, while providing relatively more security after the device has been used for a selected number of times and / or after the device has been used for a selected time interval.

[0076] In this example, block 465 involves replacing a fingerprint template that was previously in the importance pool 475 with a current fingerprint template. According to some examples, block 465 may involve deleting the fingerprint template the importance pool 475 that has the lowest importance metric.

[0077] Figure 5 is a flow diagram that provides example blocks of some methods disclosed herein. The blocks of Figure 5 may, for example, be performed by the apparatus 101 of any one of Figures 1–3, or by a similar apparatus. For example, the blocks of Figure 5 may be performed by the control system 106. As with other methods disclosed herein, the method 500 outlined in Figure 5 may include more or fewer blocks than indicated. Moreover, the blocks of methods disclosed herein are not necessarily performed in the order indicated. In some examples, some blocks of methods disclosed herein may be performed concurrently.

[0078] According to this example, the method 500 is a method of controlling an apparatus that includes a fingerprint sensor. In this example, block 505 involves maintaining, in a memory, a fingerprint template pool. According to this example, the fingerprint template pool includes an importance pool and a temporal pool. In this example, maintaining the importance pool involves adding fingerprint templates to the importance pool or removing fingerprint templates from the importance pool based at least in part on an importance metric. According to some examples, the importance metric may be based (at least in part) on one or more differences between a current fingerprint template and one or more other fingerprint templates in the importance pool. According to this example, maintaining the temporal pool involves adding fingerprint templates to the temporal pool or removing fingerprint templates from the temporal pool based at least in part on when a fingerprint template was obtained.

[0079] In this example, block 510 involves receiving current fingerprint image data from the fingerprint sensor. According to this example, block 515 involves extracting a current fingerprint template from the current fingerprint image data. In this example, block 520 involves performing a fingerprint authentication process that involves comparing the current fingerprint template with one or more fingerprint templates in the fingerprint template pool.

[0080] According to some examples, method 500 may involve updating the temporal pool to include the current fingerprint template. For example, method 500 may involve updating the temporal pool to include the current fingerprint template if the current fingerprint template matches one or more fingerprint templates in the fingerprint template pool. In some examples, method 500 may involve updating the temporal pool to include the current fingerprint template only if a current ASP score exceeds an ASP score threshold.

[0081] In some examples, method 500 may involve determining an importance metric for the current fingerprint template and determining whether to update the importance pool with the current fingerprint template based, at least in part, on the importance metric. According to some examples, the importance metric may be based in part on one or more differences between a current fingerprint template and one or more other fingerprint templates in the importance pool.

[0082] According to some examples, maintaining the importance pool may involve applying a hit weighting metric to fingerprint templates in the importance pool. The hit weighting metric may be based on a hit frequency with which a fingerprint template matches a fingerprint template obtained during a fingerprint authentication attempt, with a higher hit weighting metric corresponding with a higher hit frequency. A higher hit weighting metric may make a fingerprint template less likely to be removed from the importance pool. In some examples, maintaining the importance pool may involve retaining one or more initial enrollment fingerprint templates in the importance pool.

[0083] In some examples, the fingerprint authentication process may involve obtaining a spoof detection score. According to some examples, method 500 may involve varying a spoof detection score threshold according to a state of the importance pool. For example, varying the spoof detection score threshold according to a state of  the importance pool may involve increasing the spoof detection score threshold as more fingerprint templates are added to the importance pool. In some examples, the spoof detection score may be determined based at least in part on output from a liveness detection module.

[0084] Implementation examples are described in the following numbered clauses:

[0085] 1. An apparatus, including: a fingerprint sensor; a memory; and a control system electrically connected to the fingerprint sensor and the memory, the control system configured to: maintain, in the memory, a fingerprint template pool, the fingerprint template pool including an importance pool and a temporal pool, where: maintaining the importance pool involves adding fingerprint templates to the importance pool or removing fingerprint templates from the importance pool based at least in part on an importance metric; and maintaining the temporal pool involves adding fingerprint templates to the temporal pool or removing fingerprint templates from the temporal pool based at least in part on when a fingerprint template was obtained; receive current fingerprint image data from the fingerprint sensor; extract a current fingerprint template from the current fingerprint image data; and perform a fingerprint authentication process that involves comparing the current fingerprint template with one or more fingerprint templates in the fingerprint template pool.

[0086] 2. The apparatus of clause 1, where the importance metric is based in part on one or more differences between a current fingerprint template and one or more other fingerprint templates in the importance pool.

[0087] 3. The apparatus of clause 1 or clause 2, where the control system is further configured to: update the temporal pool to include the current fingerprint template; determine an importance metric for the current fingerprint template; and determine whether to update the importance pool with the current fingerprint template based at least in part on the importance metric for the current fingerprint template.

[0088] 4. The apparatus of any one of clauses 1–3, where: maintaining the importance pool involves applying a hit weighting metric to fingerprint templates in the importance pool; the hit weighting metric is based on a hit frequency with which a fingerprint template matches a fingerprint template obtained during a fingerprint authentication attempt, with a higher hit weighting metric corresponding with a higher  hit frequency; and a higher hit weighting metric makes a fingerprint template less likely to be removed from the importance pool.

[0089] 5. The apparatus of any one of clauses 1–4, where maintaining the importance pool involves retaining one or more initial enrollment fingerprint templates in the importance pool.

[0090] 6. The apparatus of any one of clauses 1–5, where the control system is further configured to implement a spoof detection system and where the fingerprint authentication process involves obtaining a spoof detection score from the spoof detection system.

[0091] 7. The apparatus of clause 6, where the control system is further configured to vary a spoof detection score threshold according to a state of the importance pool.

[0092] 8. The apparatus of clause 7, where varying the spoof detection score threshold according to a state of the importance pool involves increasing the spoof detection score threshold as more fingerprint templates are added to the importance pool.

[0093] 9. The apparatus of any one of clauses 6–8, where the spoof detection system includes a liveness detection module and an anti-spoof classifier.

[0094] 10. The apparatus of clause 9, where the spoof detection score is determined by the anti-spoof classifier based at least in part on output from the liveness detection module.

[0095] 11. The apparatus of clause 9 or clause 10, where the fingerprint template pool includes a fingerprint matcher portion and an anti-spoof portion and where the control system is further configured to update the anti-spoof portion based at least in part on input from the liveness detection module.

[0096] 12. The apparatus of clause 11, where the control system is further configured to update the anti-spoof portion based at least in part on input from the anti-spoof classifier.

[0097] 13. The apparatus of any one of clauses 1–12, where the fingerprint authentication process involves: determining a matcher score based on similarities  between the current fingerprint template and one or more fingerprint templates in the fingerprint template pool; and determining whether the matcher score exceeds a matcher score threshold.

[0098] 14. The apparatus of clause 13, where the control system is further configured to perform an initial fingerprint template augmentation process during an enrollment stage and where the initial template augmentation process involves applying one or more masks to a fingerprint template, rotating a fingerprint template, or both.

[0099] 15. An apparatus, including: a fingerprint sensor; a memory; and control means for: maintaining, in the memory, a fingerprint template pool, the fingerprint template pool including an importance pool and a temporal pool, where: maintaining the importance pool involves adding fingerprint templates to the importance pool or removing fingerprint templates from the importance pool based at least in part on an importance metric; and maintaining the temporal pool involves adding fingerprint templates to the temporal pool or removing fingerprint templates from the temporal pool based at least in part on when a fingerprint template was obtained; receiving current fingerprint image data from the fingerprint sensor; extracting a current fingerprint template from the current fingerprint image data; and performing a fingerprint authentication process that involves comparing the current fingerprint template with one or more fingerprint templates in the fingerprint template pool.

[0100] 16. The apparatus of clause 15, where the importance metric is based in part on one or more differences between a current fingerprint template and one or more other fingerprint templates in the importance pool.

[0101] 17. The apparatus of clause 15 or clause 16, where the control means includes means for: updating the temporal pool to include the current fingerprint template; determining an importance metric for the current fingerprint template; and determining whether to update the importance pool with the current fingerprint template based at least in part on the importance metric for the current fingerprint template.

[0102] 18. A method of controlling an apparatus that includes a fingerprint sensor, the method including: maintaining, in a memory, a fingerprint template pool, the fingerprint template pool including an importance pool and a temporal pool, where: maintaining the importance pool involves adding fingerprint templates to the importance  pool or removing fingerprint templates from the importance pool based at least in part on an importance metric; and maintaining the temporal pool involves adding fingerprint templates to the temporal pool or removing fingerprint templates from the temporal pool based at least in part on when a fingerprint template was obtained; receiving current fingerprint image data from the fingerprint sensor; extracting a current fingerprint template from the current fingerprint image data; and performing a fingerprint authentication process that involves comparing the current fingerprint template with one or more fingerprint templates in the fingerprint template pool.

[0103] 19. The method of clause 18, where the importance metric is based in part on one or more differences between a current fingerprint template and one or more other fingerprint templates in the importance pool.

[0104] 20. The method of clause 18 or clause 19, further including: updating the temporal pool to include the current fingerprint template; determining an importance metric for the current fingerprint template; and determining whether to update the importance pool with the current fingerprint template based at least in part on the importance metric for the current fingerprint template.

[0105] As used herein, a phrase referring to “at least one of” a list of items refers to any combination of those items, including single members. As an example, “at least one of: a, b, or c” is intended to cover: a, b, c, a-b, a-c, b-c, and a-b-c.

[0106] The various illustrative logics, logical blocks, modules, circuits and algorithm processes described in connection with the implementations disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. The interchangeability of hardware and software has been described generally, in terms of functionality, and illustrated in the various illustrative components, blocks, modules, circuits and processes described above. Whether such functionality is implemented in hardware or software depends upon the particular application and design constraints imposed on the overall system.

[0107] The hardware and data processing apparatus used to implement the various illustrative logics, logical blocks, modules and circuits described in connection with the aspects disclosed herein may be implemented or performed with a general purpose single-or multi-chip processor, a digital signal processor (DSP) , an application specific  integrated circuit (ASIC) , a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor, or, any conventional processor, controller, microcontroller, or state machine. A processor also may be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. In some implementations, particular processes and methods may be performed by circuitry that is specific to a given function.

[0108] In one or more aspects, the functions described may be implemented in hardware, digital electronic circuitry, computer software, firmware, including the structures disclosed in this specification and their structural equivalents thereof, or in any combination thereof. Implementations of the subject matter described in this specification also may be implemented as one or more computer programs, i.e., one or more modules of computer program instructions, encoded on a computer storage media for execution by, or to control the operation of, data processing apparatus.

[0109] If implemented in software, the functions may be stored on or transmitted over as one or more instructions or code on a computer-readable medium, such as a non-transitory medium. The processes of a method or algorithm disclosed herein may be implemented in a processor-executable software module which may reside on a computer-readable medium. Computer-readable media include both computer storage media and communication media including any medium that may be enabled to transfer a computer program from one place to another. Storage media may be any available media that may be accessed by a computer. By way of example, and not limitation, non-transitory media may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that may be used to store desired program code in the form of instructions or data structures and that may be accessed by a computer. Also, any connection may be properly termed a computer-readable medium. Disk and disc, as used herein, includes compact disc (CD) , laser disc, optical disc, digital versatile disc (DVD) , floppy disk, and Blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data  optically with lasers. Combinations of the above should also be included within the scope of computer-readable media. Additionally, the operations of a method or algorithm may reside as one or any combination or set of codes and instructions on a machine readable medium and computer-readable medium, which may be incorporated into a computer program product.

[0110] Various modifications to the implementations described in this disclosure may be readily apparent to those having ordinary skill in the art, and the generic principles defined herein may be applied to other implementations without departing from the scope of this disclosure. Thus, the disclosure is not intended to be limited to the implementations shown herein, but is to be accorded the widest scope consistent with the claims, the principles and the novel features disclosed herein. The word “exemplary” is used exclusively herein, if at all, to mean “serving as an example, instance, or illustration. ” Any implementation described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other implementations.

[0111] Certain features that are described in this specification in the context of separate implementations also may be implemented in combination in a single implementation. Conversely, various features that are described in the context of a single implementation also may be implemented in multiple implementations separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination may in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.

[0112] Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the implementations described above should not be understood as requiring such separation in all implementations, and it should be understood that the described program components and systems may generally be integrated together in a single software product or packaged into multiple software products. Additionally, other  implementations are within the scope of the following claims. In some cases, the actions recited in the claims may be performed in a different order and still achieve desirable results.

[0113] It will be understood that unless features in any of the particular described implementations are expressly identified as incompatible with one another or the surrounding context implies that they are mutually exclusive and not readily combinable in a complementary and / or supportive sense, the totality of this disclosure contemplates and envisions that specific features of those complementary implementations may be selectively combined to provide one or more comprehensive, but slightly different, technical solutions. It will therefore be further appreciated that the above description has been given by way of example only and that modifications in detail may be made within the scope of this disclosure.

Claims

1.An apparatus, comprising:a fingerprint sensor;a memory; anda control system electrically connected to the fingerprint sensor and the memory, the control system configured to:maintain, in the memory, a fingerprint template pool, the fingerprint template pool including an importance pool and a temporal pool, wherein:maintaining the importance pool involves adding fingerprint templates to the importance pool or removing fingerprint templates from the importance pool based at least in part on an importance metric; andmaintaining the temporal pool involves adding fingerprint templates to the temporal pool or removing fingerprint templates from the temporal pool based at least in part on when a fingerprint template was obtained;receive current fingerprint image data from the fingerprint sensor;extract a current fingerprint template from the current fingerprint image data; andperform a fingerprint authentication process that involves comparing the current fingerprint template with one or more fingerprint templates in the fingerprint template pool.2.The apparatus of claim 1, wherein the importance metric is based in part on one or more differences between a current fingerprint template and one or more other fingerprint templates in the importance pool.3.The apparatus of claim 1, wherein the control system is further configured to:update the temporal pool to include the current fingerprint template;determine an importance metric for the current fingerprint template; anddetermine whether to update the importance pool with the current fingerprint template based at least in part on the importance metric for the current fingerprint template.4.The apparatus of claim 1, wherein:maintaining the importance pool involves applying a hit weighting metric to fingerprint templates in the importance pool;the hit weighting metric is based on a hit frequency with which a fingerprint template matches a fingerprint template obtained during a fingerprint authentication attempt, with a higher hit weighting metric corresponding with a higher hit frequency; anda higher hit weighting metric makes a fingerprint template less likely to be removed from the importance pool.5.The apparatus of claim 1, wherein maintaining the importance pool involves retaining one or more initial enrollment fingerprint templates in the importance pool.6.The apparatus of claim 1, wherein the control system is further configured to implement a spoof detection system and wherein the fingerprint authentication process involves obtaining a spoof detection score from the spoof detection system.7.The apparatus of claim 6, wherein the control system is further configured to vary a spoof detection score threshold according to a state of the importance pool.8.The apparatus of claim 7, wherein varying the spoof detection score threshold according to a state of the importance pool involves increasing the spoof detection score threshold as more fingerprint templates are added to the importance pool.9.The apparatus of claim 6, wherein the spoof detection system includes a liveness detection module and an anti-spoof classifier.10.The apparatus of claim 9, wherein the spoof detection score is determined by the anti-spoof classifier based at least in part on output from the liveness detection module.11.The apparatus of claim 9, wherein the fingerprint template pool includes a fingerprint matcher portion and an anti-spoof portion and wherein the control system is further configured to update the anti-spoof portion based at least in part on input from the liveness detection module.12.The apparatus of claim 11, wherein the control system is further configured to update the anti-spoof portion based at least in part on input from the anti-spoof classifier.13.The apparatus of claim 1, wherein the fingerprint authentication process involves:determining a matcher score based on similarities between the current fingerprint template and one or more fingerprint templates in the fingerprint template pool; anddetermining whether the matcher score exceeds a matcher score threshold.14.The apparatus of claim 13, wherein the control system is further configured to perform an initial fingerprint template augmentation process during an enrollment stage and wherein the initial template augmentation process involves applying one or more masks to a fingerprint template, rotating a fingerprint template, or both.15.An apparatus, comprising:a fingerprint sensor;a memory; andcontrol means for:maintaining, in the memory, a fingerprint template pool, the fingerprint template pool including an importance pool and a temporal pool, wherein:maintaining the importance pool involves adding fingerprint templates to the importance pool or removing fingerprint templates from the importance pool based at least in part on an importance metric; andmaintaining the temporal pool involves adding fingerprint templates to the temporal pool or removing fingerprint templates from the temporal pool based at least in part on when a fingerprint template was obtained;receiving current fingerprint image data from the fingerprint sensor;extracting a current fingerprint template from the current fingerprint image data; andperforming a fingerprint authentication process that involves comparing the current fingerprint template with one or more fingerprint templates in the fingerprint template pool.16.The apparatus of claim 15, wherein the importance metric is based in part on one or more differences between a current fingerprint template and one or more other fingerprint templates in the importance pool.17.The apparatus of claim 15, wherein the control means includes means for:updating the temporal pool to include the current fingerprint template;determining an importance metric for the current fingerprint template; anddetermining whether to update the importance pool with the current fingerprint template based at least in part on the importance metric for the current fingerprint template.18.A method of controlling an apparatus that includes a fingerprint sensor, the method comprising:maintaining, in a memory, a fingerprint template pool, the fingerprint template pool including an importance pool and a temporal pool, wherein:maintaining the importance pool involves adding fingerprint templates to the importance pool or removing fingerprint templates from the importance pool based at least in part on an importance metric; andmaintaining the temporal pool involves adding fingerprint templates to the temporal pool or removing fingerprint templates from the temporal pool based at least in part on when a fingerprint template was obtained;receiving current fingerprint image data from the fingerprint sensor;extracting a current fingerprint template from the current fingerprint image data; andperforming a fingerprint authentication process that involves comparing the current fingerprint template with one or more fingerprint templates in the fingerprint template pool.19.The method of claim 18, wherein the importance metric is based in part on one or more differences between a current fingerprint template and one or more other fingerprint templates in the importance pool.20.The method of claim 18, further comprising:updating the temporal pool to include the current fingerprint template;determining an importance metric for the current fingerprint template; anddetermining whether to update the importance pool with the current fingerprint template based at least in part on the importance metric for the current fingerprint template.