Facial matching system
10043061 ยท 2018-08-07
Assignee
Inventors
Cpc classification
G06V40/171
PHYSICS
G06V10/754
PHYSICS
International classification
Abstract
In some implementations, a computer-implemented method for recognizing facial images may include a multi-stage facial verification process to improve the speed and accuracy of a facial recognition operation. For example, a facial recognition module may include multiple stages where a subset of data is analyzed recursively to improve the speed of the facial recognition processes. The multiple stages may be arranged in a fast-to-slow and coarse-to-fine arrangements such that a match decision may be made at each successive stage.
Claims
1. A method performed by one or more computers, the method comprising: obtaining data indicating (i) a facial template for an input facial image, and (ii) reference facial templates for multiple reference facial images; computing, by a first facial matcher, a first set of scores representing respective similarities between the input facial image and each of the obtained reference facial templates; determining, by the first facial matcher and based on the first set of computed scores, that the input facial image does not match any of the multiple reference facial images; in response to determining that the input facial image does not match any of the multiple reference facial images, computing, by a second facial matcher, a second set of scores representing respective similarities between the input facial image and each of the obtained reference facial images, wherein a facial verification technique applied by the second facial matcher has a higher sensitivity than a facial verification technique applied by the first facial matcher; determining, by the second facial matcher and based at least on the second set of computed scores, that the input facial image matches a particular reference facial image from among the multiple reference facial images; combining the first set of scores and the second set of scores to compute a match score between the input facial image and the particular reference facial image; and providing the match score for output.
2. The method of claim 1, wherein: determining, by the first facial matcher, that the input facial image does not match any of the multiple reference facial images comprises determining that scores included within the first set of scores does not satisfy a first threshold; and determining, by the second facial matcher, that the input facial image matches the particular reference facial image from among the multiple reference facial images comprises determining that a particular score, representing the respective similarity between the facial template and a reference facial template for the particular reference facial image, satisfies a second threshold.
3. The method of claim 1, wherein a value of the second threshold exceeds a value of the first threshold.
4. The method of claim 1, wherein computing the first set of scores comprises: identifying, by the first facial matcher, a first set of perturbation points within the input facial image; generating, by the first facial matcher, a first set of perturbed facial templates for the input facial image based at least on the first set of perturbation points within the input facial image; comparing, by the first facial matcher, each perturbed template included within the first set of perturbed facial templates to each of the reference facial templates; and computing, by the first facial matcher, the first set of scores based on the comparison of each perturbed facial template included within the first set of perturbed facial templates and each of the reference facial templates.
5. The method of claim 4, wherein computing the second set of scores comprises: identifying, by the second facial matcher, a second set of perturbation points within the input facial image; generating, by the second facial matcher, a second set of perturbed facial templates for the input facial image based at least on the second set of perturbation points within the input facial image; comparing, by the second facial matcher, each perturbed template included within the second set of perturbed facial templates to each of the reference facial templates; and computing, by the second facial matcher, the second set of scores based on the comparison of each perturbed facial template included within the second set of perturbed facial templates and each of the reference facial templates.
6. The method of claim 5, wherein a number of perturbed facial template included within the second set of perturbed facial templates exceeds a number of perturbed facial templates included within the first set of perturbed facial templates.
7. The method of claim 5, wherein a number of perturbation points included within the second set of perturbation points exceeds a number of perturbation points included within the first set perturbation points.
8. A system comprising: one or more computers; and one or more storage devices storing instructions that, when executed by the one or more computers, cause the one or more computers to perform operations comprising: obtaining data indicating (i) a facial template for an input facial image, and (ii) reference facial templates for multiple reference facial images; computing, by a first facial matcher, a first set of scores representing respective similarities between the input facial image and each of the obtained reference facial templates; determining, by the first facial matcher and based on the first set of computed scores, that the input facial image does not match any of the multiple reference facial images; in response to determining that the input facial image does not match any of the multiple reference facial images, computing, by a second facial matcher, a second set of scores representing respective similarities between the input facial image and each of the obtained reference facial images, wherein a facial verification technique applied by the second facial matcher has a higher sensitivity than a facial verification technique applied by the first facial matcher; determining, by the second facial matcher and based at least on the second set of computed scores, that the input facial image matches a particular reference facial image from among the multiple reference facial images; combining the first set of scores and the second set of scores to compute a match score between the input facial image and the particular reference facial image; and providing the match score for output.
9. The system of claim 8, wherein: determining, by the first facial matcher, that the input facial image does not match any of the multiple reference facial images comprises determining that scores included within the first set of scores does not satisfy a first threshold; and determining, by the second facial matcher, that the input facial image matches the particular reference facial image from among the multiple reference facial images comprises determining that a particular score, representing the respective similarity between the facial template and a reference facial template for the particular reference facial image, satisfies a second threshold.
10. The system of claim 8, wherein a value of the second threshold exceeds a value of the first threshold.
11. The system of claim 8, wherein computing the first set of scores comprises: identifying, by the first facial matcher, a first set of perturbation points within the input facial image; generating, by the first facial matcher, a first set of perturbed facial templates for the input facial image based at least on the first set of perturbation points within the input facial image; comparing, by the first facial matcher, each perturbed template included within the first set of perturbed facial templates to each of the reference facial templates; and computing, by the first facial matcher, the first set of scores based on the comparison of each perturbed facial template included within the first set of perturbed facial templates and each of the reference facial templates.
12. The system of claim 11, wherein computing the second set of scores comprises: identifying, by the second facial matcher, a second set of perturbation points within the input facial image; generating, by the second facial matcher, a second set of perturbed facial templates for the input facial image based at least on the second set of perturbation points within the input facial image; comparing, by the second facial matcher, each perturbed template included within the second set of perturbed facial templates to each of the reference facial templates; and computing, by the second facial matcher, the second set of scores based on the comparison of each perturbed facial template included within the second set of perturbed facial templates and each of the reference facial templates.
13. The system of claim 12, wherein a number of perturbed facial template included within the second set of perturbed facial templates exceeds a number of perturbed facial templates included within the first set of perturbed facial templates.
14. The system of claim 12, wherein a number of perturbation points included within the second set of perturbation points exceeds a number of perturbation points included within the first set perturbation points.
15. A non-transitory computer-readable storage device encoded with computer program instructions that, when executed by one or more computers, cause the one or more computers to perform operations comprising: obtaining data indicating (i) a facial template for an input facial image, and (ii) reference facial templates for multiple reference facial images; computing, by a first facial matcher, a first set of scores representing respective similarities between the input facial image and each of the obtained reference facial templates; determining, by the first facial matcher and based on the first set of computed scores, that the input facial image does not match any of the multiple reference facial images; in response to determining that the input facial image does not match any of the multiple reference facial images, computing, by a second facial matcher, a second set of scores representing respective similarities between the input facial image and each of the obtained reference facial images, wherein a facial verification technique applied by the second facial matcher has a higher sensitivity than a facial verification technique applied by the first facial matcher; determining, by the second facial matcher and based at least on the second set of computed scores, that the input facial image matches a particular reference facial image from among the multiple reference facial images; combining the first set of scores and the second set of scores to compute a match score between the input facial image and the particular reference facial image; and providing the match score for output.
16. The device of claim 15, wherein: determining, by the first facial matcher, that the input facial image does not match any of the multiple reference facial images comprises determining that scores included within the first set of scores does not satisfy a first threshold; and determining, by the second facial matcher, that the input facial image matches the particular reference facial image from among the multiple reference facial images comprises determining that a particular score, representing the respective similarity between the facial template and a reference facial template for the particular reference facial image, satisfies a second threshold.
17. The device of claim 15, wherein a value of the second threshold exceeds a value of the first threshold.
18. The device of claim 15, wherein computing the first set of scores comprises: identifying, by the first facial matcher, a first set of perturbation points within the input facial image; generating, by the first facial matcher, a first set of perturbed facial templates for the input facial image based at least on the first set of perturbation points within the input facial image; comparing, by the first facial matcher, each perturbed template included within the first set of perturbed facial templates to each of the reference facial templates; and computing, by the first facial matcher, the first set of scores based on the comparison of each perturbed facial template included within the first set of perturbed facial templates and each of the reference facial templates.
19. The device of claim 18, wherein computing the second set of scores comprises: identifying, by the second facial matcher, a second set of perturbation points within the input facial image; generating, by the second facial matcher, a second set of perturbed facial templates for the input facial image based at least on the second set of perturbation points within the input facial image; comparing, by the second facial matcher, each perturbed template included within the second set of perturbed facial templates to each of the reference facial templates; and computing, by the second facial matcher, the second set of scores based on the comparison of each perturbed facial template included within the second set of perturbed facial templates and each of the reference facial templates.
20. The device of claim 19, wherein a number of perturbed facial template included within the second set of perturbed facial templates exceeds a number of perturbed facial templates included within the first set of perturbed facial templates.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14) In the drawings, like reference numbers represent corresponding parts throughout.
DETAILED DESCRIPTION
(15) [Overview Paragraph]
(16) The following detailed description of the implementations of the disclosure refers to the accompanying drawings. The same reference numbers in different drawings may identify the same or similar elements. Also, the following detailed description does not limit the claims.
(17) Matching System Overview
(18) The systems and methods described provide a facial recognition system that utilizes multiple-stage matching architecture to improve the speed and accuracy of facial recognition, identification, and verification. In the methods described, matchers are arranged in a fast-to-slow and coarse-to-accurate fashion. A subset of data from the first stage is fed to the second stage which includes more precise matching. Matchers included in the second stage are determined using at least some eye-perturbation matching. A decision is made at each stage based on multiple thresholds to separate matching and non-matching candidates. The scores are scaled or promoted after the decision and the final results are fused based on the matching scores.
(19) The facial recognition system described focuses on three primary features. First, the facial recognition system improves the matching accuracy of such systems by alleviating the inconsistency of the eye detection using eye perturbation. Second, a multiple-stage matching scheme is used to improve the speed and accuracy of facial matching. Third, thresholds and fusion are utilized to improve the accuracy of facial matching.
(20) Initially, for each facial image analyzed, the image is enhanced to detect registration points with greater accuracy. Based on the registration points, the image is normalized by applying the geometric transformation to reduce the variations while keeping the registration points in a primary location of the normalized image. The feature template is then extracted from the normalized image.
(21) Further, in some implementations, using the facial recognition system, the registration points are the center locations of the left and right eyes. In alternative implementations, the registration points are not limited to those points. For example, registration points could be other facial landmark points including, for example, nose tips and mouth centers.
(22) As described throughout this specification, gallery and related terms refer to the facial images with known identities stored in the database to be compared against in a verification or identification system. In addition, query and related terms refer to the input images whose identities are to be verified or identified by comparing them with the target or gallery images in the database. Further, reference and related terms refer to the facial images constructed empirically to facilitate a match decision between a query and a target image. It is the generic facial images not mated in either the query or gallery image sets.
(23) As described throughout this specification, alignment and registration and related terms refer to the process to extract common registration points from incoming facial images and align the images based on the registration points so that all the images are considered in relation to each other for further comparison. The positioning of facial images may include rotation, translation and scaling of the image using the registration points.
(24) As described throughout this specification, recognition systems refer to systems that may be used for identification and verification applications. As used herein, such recognition systems include facial recognition systems that may be used to identify and verify individuals using the systems described. In addition, identification refers to a process wherein a biometric device captures an image and compares that image against every record or template in a pre-enrolled database. This type of comparison is called identification or a one-to-many (1:N) search.
(25) As used and described throughout this specification, verification refers to a process of verifying a user that claims to have a particular identity. In one example, the biometric system requires input from the user, at which time the user claims his identity via a password, token, or user name (or any combination of these three). The system retrieves the pre-enrolled template of the person from a database or a card based on the input and compares a biometric sample captured from the user to the pre-enrolled template to verify whether the two templates are from same person or not. This process is called verification or a one-to-one (1:1) match. In addition, accuracy of such facial recognition systems may be determined based on true accept rates (TARs), false accept rates (FARs), and receiver operator characteristic (ROC) curves determined based on FAR and TAR values.
(26)
(27) The facial recognition process 110 generally includes three steps: registration point detection, image normalization, and feature extraction. For instance, as described previously, registration point detection refers to detecting locations associated with the registration points 114 and 116 within the pre-processed facial image 100A. Image normalization refers to a set of image processing techniques performed by the facial recognition system 200 based at least on the detected registration points 114 and 116. For instance, the image normalization process may include adjusting the contrast of the pre-processed facial image 100A, adjusting color levels, or other image processing techniques that are commonly used to improve feature detection within a particular image. The feature extraction process refers to the generation of an image template for the processed facial mage 1006 that may be used for analysis during the facial verification and identification methods described throughout this specification.
(28) As described in greater detail below, the facial recognition system may be used to facilitate facial identification, facial verification, facial matching, and related steps including eye perturbation. An example system architecture is described below.
(29) System Architecture
(30)
(31) The facial recognition system 200 may include a memory device 210 and a processor 215 operatively coupled to memory device 210 for executing instructions. In some implementations, executable instructions are stored in memory device 210. Facial recognition system 200 may be configurable to perform one or more operations described herein by the programming processor 215. For example, the processor 215 may be programmed by encoding an operation as one or more executable instructions and providing the executable instructions in the memory device 210. The processor 215 may include one or more processing units, e.g., without limitation, in a multi-core configuration.
(32) In some implementations, the memory device 210 is one or more devices that enable storage and retrieval of information such as executable instructions and/or other data. The memory device 210 may include one or more tangible, non-transitory computer-readable media, such as, without limitation, random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), a solid state disk, a hard disk, read-only memory (ROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), and/or non-volatile RAM (NVRAM) memory. The above memory types are exemplary only, and are thus not limiting as to the types of memory usable for storage of a computer program.
(33) The memory device 210 may be configured to store a variety of data associated with the systems described including, for example, matching algorithms, scoring algorithms, scoring thresholds, perturbation algorithms, and fusion algorithms. In addition, the memory device 210 may be configured to store any suitable data to facilitate the methods described herein.
(34) In some implementations, the facial recognition system 200 includes a presentation interface 220 coupled to processor 215. Presentation interface 220 presents information, such as a user interface showing data related to facial matching, to a user 202. For example, presentation interface 220 may include a display adapter (not shown) that may be coupled to a display device (not shown), such as a cathode ray tube (CRT), a liquid crystal display (LCD), an organic LED (OLED) display, and/or a hand-held device with a display. In some implementations, presentation interface 220 includes one or more display devices. In addition, or alternatively, presentation interface 220 may include an audio output device (not shown), e.g., an audio adapter and/or a speaker.
(35) In some implementations, facial recognition system 200 includes a user input interface 230. For instance, the user input interface 230 may be coupled to processor 215 and receives input from user 202. User input interface 230 may include, for example, a keyboard, a pointing device, a mouse, a stylus, and/or a touch sensitive panel, e.g., a touch pad or a touch screen. A single component, such as a touch screen, may function as both a display device of presentation interface 220 and user input interface 230.
(36) A communication interface 235 may be coupled to processor 215 and configured to be coupled in communication with one or more other devices such as, without limitation, another computing system (not shown), scanners, cameras, and other devices that may be used to provide biometric information such as facial images to facial recognition system 200. Such biometric systems and devices may be used to scan previously captured photographs or other image data or to capture live images of subjects. Communication interface 235 may include, without limitation, a wired network adapter, a wireless network adapter, a mobile telecommunications adapter, a serial communication adapter, and/or a parallel communication adapter. Communication interface 235 may receive data from and/or transmit data to one or more remote devices. Facial recognition system 200 may be web-enabled for remote communications, for example, with a remote desktop computer (not shown).
(37) A presentation interface 220 and/or a communication interface 235 may be both capable of providing information suitable for use with the methods described herein, e.g., to user 202 or another device. For instance, the presentation interface 220 and the communication interface 235 may be referred to as output devices. Similarly, user input interface 230 and communication interface 235 are capable of receiving information suitable for use with the methods described herein and may be referred to as input devices.
(38) The processor 215 and/or memory device 210 may also be operatively coupled to a database 250. Database 250 is any computer-operated hardware suitable for storing and/or retrieving data, such as, but not limited to, pre-processed facial images, processed facial images, normalized facial images, templates, extracted features, threshold values, fusion algorithms, scoring algorithms, and matching algorithms. In the exemplary implementation, database 250 is integrated in facial recognition system 200. For example, facial recognition system 200 may include one or more hard disk drives representing database 250. Moreover, for example, database 250 may include multiple storage units such as hard disks and/or solid state disks in a redundant array of inexpensive disks (RAID) configuration. Database 250 may include a storage area network (SAN), a network attached storage (NAS) system, and/or cloud-based storage. Alternatively, database 250 is external to facial recognition system 200 and may be accessed by a storage interface (not shown).
(39)
(40) Referring to
(41) Referring to
(42) In some implementations, the verification application 310a and the identification application 310b may be software components of the facial recognition system 200. For instance, the verification application 310a and the identification application 310b may be stored on the memory device 210 and executed by the processor 215. In some instances, the verification application 310a and the identification 310b may be sub-components of a single software module that is capable of performing a facial verification and a facial identification operation of an input facial image.
(43) Multi-Stage and Multi-Pass Facial Recognition
(44) In general, the facial recognition system 200 may employ multi-stage matching and multi-pass matching schemes to improve facial matching performance. For instance, multi-stage matching refers to various matching procedures of a facial matcher. For instance, as described with respect to
(45) In some instances, where there is no suitable match found, the multi-stage matching scheme may additionally include an perturbation stage where registration points within the input facial image may be perturbed and compared against other facial images using more computationally-intensive matching procedures that are more likely to determine a match. In this regard, the multi-stage matching scheme may be used to improve computational resource allocation by initially using a first-pass matching operation, and subsequently performing a second-pass perturbation operation if the initial comparison results no suitable matches. As a result, the use of the sequential matching procedures may be used to improve overall matching accuracy in instances where the input facial image includes severe distortion, and/or reduce the computational resources associated with performing a matching in other circumstances where a match is readily found for another input facial image.
(46) As described, multi-pass matching refers to a set of different facial matching techniques that are invoked conditionally and sequentially to improve facial matching accuracy. For instance, as described with respect to
(47) Exemplary verification and identification systems are described in more detail below with respect to
(48) Eye Perturbation Techniques
(49) As described in
(50) The perturbation techniques, as described throughout this specification, may be used by the facial recognition system 200 to robustly detect the registration points 114 and 116 invariantly to localization variations within a facial image. For instance, the perturbation techniques may be used to improve matching accuracy during conditions where localization errors may be present with the registration points.
(51) After performing the perturbation techniques, the facial recognition system 200 may average similarity scores associated to generate a final similarity score between a pair of the candidate facial images (e.g., an input facial image, and reference facial image). For instance, the facial recognition system 200 may initially generate a plurality of perturbed image templates associated with a particular perturbation of an input image. The facial recognition system 200 may then compute similarity scores for each perturbation template based on comparing the perturbed templates to a gallery template. For example, the similarity scores indicate levels of variation between a pair of prints (e.g., a larger variation for non-mated image pairs compared to mated image pairs). An average similarity score for the plurality of perturbed image templates may then be computed. More particular descriptions of the perturbation techniques are described with respect to
(52) One-to-One Verification System
(53)
(54) A one-to-one verification system may have two components: an offline processing module, and an online verification module. The offline processing module may be used to generate a gallery dataset and an offline reference dataset by initially enrolling facial images not associated with any of gallery images. For example, the size of the reference dataset may be determined by the one-by-one verification false acceptance rate (FAR) requirement. The offline processing module may then perform the processing techniques described with respect to
(55) During online verification, the registration points from an input facial verification image may be detected and used to generate a feature template for the input facial image. The multi-stage and multi-pass facial recognition processes, as described previously, may be performed to verify the input facial images by comparing the feature template to the set of reference templates.
(56)
(57) In more detail, the feature extraction module 410 may generate the gallery template 404a and the reference template set 404b using the processing techniques as described with respect to
(58) The template comparison module 420 may compute a similarity score between the gallery template 404a and each reference template included in the reference template set 404b. The template comparison module 420 may use the computed similarity scores to identify a particular reference template 406c with the highest similarity score. The reference template 406c its associated similarity score (or the reference score) (S.sub.h) may then be stored in the database 406 for use during an online verification operation.
(59)
(60) The template comparison module 410 may then retrieve, from the database 406, the user record that includes the reference template 406c, a target template 406b, and the reference score (S.sub.h). The template comparison module 410 may then compare the verification template 406a and the target template 406b to compute a similarity score 408a. The template comparison module 420 may then provide the similarity score 408a to a decision logic module 430.
(61) The decision logic module 430 may then perform a set of conditional operations in order to verify the identity of a user associated with the input verification image 402a. For instance, the decision logic module 430 may initially compare the similarity score 408a to a threshold, T.sub.st, in decision point 422. If the similarity score exceeds the threshold, then the decision logic module 430 outputs the similarity score 408a and determines that the input verification image 402a is verified.
(62) Alternatively, if the decision logic module 430 determines that the similarity score 408a does not exceed the threshold value in decision point 422, the decision logic module 430 may perform an operation 424. For instance, as shown, the operation 424 may include comparing the verification template 406a and the reference template 406c, and compute a reference similarity score (S.sub.r) 408b. The reference similarity score 408b may be compared to the reference score that was computed in the offline processing operation 400A. For instance, a max score (S.sub.max) 408c may be computed by selecting the larger of the reference similarity score 408b and the reference score. The max score 408c may then be used to compute a delta score (S) 408d, which represents a difference between the similarity score 408a and the max score 408c. The delta score 408d is then compared to a second threshold, T.sub.d, at decision point 426.
(63) If the value of the delta score exceeds the value of the second threshold, then the decision logic module 430 outputs the delta score as the final similarity score and determines that the input facial verification image 402a has been verification. Alternatively, if the delta score 408d is less than the value of the second threshold, then a perturbation operation may be performed on the input facial verification image 402a.
(64)
(65) As described previously, the perturbation operation may include perturbing locations of the detected registration points using various configurations and generating a plurality of perturbation templates, each of which represent features associated with a particular perturbation configuration. To reduce the computational resources needed to perform the perturbation operation, the perturbation module 440 may initially determine a range of perturbation and a step size for the perturbation based on empirical data that is generated during a design stage conducted prior to the perturbation operation.
(66) The configuration of the perturbation operation may also be based on a quality associated with the input facial verification image. For instance, a larger perturbation range or a greater number of perturbation points may be used for low quality prints due to an increased number of expected errors within a low quality print. In other instances, other parameters that may impact the configuration of the perturbation operation may include pose variation, lightening, eye distance, eye resolution within the input facial verification image. In other instances, the parameters may additionally include the presence of closed eyes, eye glasses or blurriness within the input facial verification image.
(67) In some implementations, the perturbation operation may include comparing a variation difference between locations of the detected registration points within the input verification facial image 402a and ground truth locations for facial images with similar quality levels. For instance, the perturbation module 440 may compute statistical information such as, for example, an average number of errors or the standard deviation of errors. The perturbation module 440 may use the statistical information to determine a maximum perturbation range and a step size for each of group of perturbed images with similar qualities.
(68) After determining the perturbation parameters (e.g., maximum perturbation range and step size), the perturbation module 440 may perform the perturbation operation to coordinate positions of the detected registration points within the input verification facial image 402a. As shown in
(69) The perturbation comparison module 450 may retrieve, from the database 406, the verification template 406a, the target template 406b, and the reference template 406 that were generated during the multi-stage verification operation. The perturbation comparison module 450 may compare the target template 406b to each perturbation template included within the perturbed verification templates 406d. In some instances, the perturbation comparison module 450 may initially compute individual similarity scores between the target template 406b and each perturbation template, and then aggregate the individual similarity scores to generate a similarity score (S.sub.t) 408f. For instance, the similarity score 408f may then be evaluated against a threshold value by the decision logic module 430 in a similar manner as the similarity score 408a. For example, if the similarity score 408f exceeds the threshold value, T.sub.st1, then the perturbation procedure may terminate because the decision logic model 430 determines that the input verification image 402a has been verified, and output the similarity score 408f as the final similarity score.
(70) Alternatively, if the value of the similarity score 408f is less than the threshold value, T.sub.st1, the decision logic module 430 may perform an operation 464. For instance, the operation 464 may include comparing the reference template 406c to each perturbation template included in the set of perturbation verification templates 406d. The decision logic module 430 may initially compute individually similarity scores between each perturbed template and the reference template 406c and then aggregate the individual similarity scores to generate an average reference similarity score (S.sub.r) 408g.
(71) The average reference similarity score (S.sub.r) 408g, the reference score (S.sub.h) and the reference similarity score (S.sub.r) 408b may be used to compute a max score (S.sub.max) 408h, which may then be used to compute a perturbed delta score (S) 408i. The perturbed delta score 408i is similar to the delta score 408d in that they may be used by the decision logic module 430 to determine if the verification template 406a or the set of perturbed verification templates 406d include a template that is sufficiently similar to the reference template 406c to determine that the input facial verification image 402a is verified. For instance, the perturbed delta score 408i may be compared to a threshold, T.sub.d, in decision point 466. If the value of the perturbed delta score 408i exceeds the threshold value, then the perturbed delta score 408i may be outputted as the final similarity score, and the input facial verification image 402a may be determined to be verified.
(72) Alternatively, if the perturbed delta score is less than the threshold value at decision point 466, then the decision logic module 430 may instead output a set of adjusted similarity scores that includes the similarity score 408f, the similarity score 408g, and the reference score. For instance, as described with respect to
(73)
(74) The facial matching modules 460a-460c represent individual facial matchers that may be used to perform the techniques represented in
(75) The process 400D may include the facial matching module 460a initially receiving the input facial verification image 402a and the query identifier 402b. The facial matching module 460a may then perform the multi-stage facial verification operation to determine if there is a match found within a reference database at the decision point 462a. As described in
(76) Alternatively, if no match is found at the decision point 462a, then a set of adjusted similarity scores 464a, which are generated during a perturbation operation performed by the facial matching module 460a, may be provided to a score combination module 480. In some instances, the set of similarity scores 464a may correspond to the set of similarity scores 408h as shown in
(77) In addition to providing the set of similarity scores 464a to the score combination module, the process 400D may continue with a facial matching module 460b, which may subsequently perform a more precise, more resource-intensive facial verification operation of the input facial verification image 402a. For example, in some implementations, the second facial matching module 460b may use a greater perturbation range or a smaller step size to generate a greater number of perturbed verification templates to improve the likelihood of finding a match. In other implementations, additional verification operations that were not performed by the first facial matching module 460a may be performed to determine if a match exists in the decision point 462b. Similar to the decision point 462a, the second facial matching module 460b, and all other subsequent facial matchers such as the facial matching module 460c, may perform similar operations to determine if a match is found within a fingerprint verification operation.
(78) As shown in
(79) The score combination module 480 may combine (or fuse) the values of the set of adjusted similarity scores 464a-464c to determine, at the end of the process 400D if a match exists, and provide the combination of the values of the set of adjusted similarity scores 464a-464c as the final similarity score 482. In addition, the score combination module may also output a match decision 484.
(80) In some implementations, the score combination module 480 may additionally perform a verification operation to determine if the combined set of scores indicates a match to the input facial verification image 402a. For instance, the score combination module 480 may use similar comparison techniques to the facial matching modules 460a-460c to determine if the combined values of the adjusted similarity scores satisfy a particular threshold to determine if a match is found. In this regard, the process 400D may be used to perform subsequent facial matching operations in a coarse-to-fine fashion where the set of similarity scores generated from a particular facial verification stage may be provided to the score combination module 48 when the particular stage terminates prior to the initialization for the subsequent stage initiates. The score combination module 480 may thus be used as a last resort matcher that aggregates the results of the individual facial matchers to further determine if a match may be present.
(81) One-to-Many Identification System
(82)
(83) Similar to the one-to-one verification system, a one-to-many identification system may have two components: an offline processing module, and an online identification module. The offline processing module may be used to generate an offline gallery template dataset. For example, as described with respect to
(84) During online identification, the registration points from an input facial identification image may be detected and used to generate a feature template for the input identification image. The multi-stage and multi-pass facial recognition processes, as described previously, may then be performed to verify the input facial images by comparing the feature template to a set of gallery templates.
(85)
(86)
(87) The template comparison module 520 may then retrieve the gallery template set 504a that was previously generated during the offline enrollment process and stored in the database 506.
(88) In some implementations, instead of retrieving all of the gallery templates stored in the database 506, the template comparison module 520 may perform an initial threshold analysis to select a subset of the gallery templates stored in the gallery template set are likely to represent match candidates to the input facial identification image 502. For instance, the template comparison module 520 may identify a set of characteristics from the query template 504b, and use the characteristics to discard particular gallery templates that are unlikely to be a match for the input facial identification image 502. Similarly, during instances where there are significant number of records within the database 506, the template comparison module 520 may use other parameters to filter all of the records within the database 506, and only select particular gallery templates that may be match candidates for the input facial identification image 502. For instance, the number of gallery templates selected may be adjusted based on the computational resources available to perform a facial identification operation, or based on speed requirements for the facial identification operation.
(89) After retrieving the gallery template set 504a from the database 506, the template comparison module 520 may compare the query template 504b with each gallery template included in the gallery template set 504a. For instance, the template comparison module 520 may compute an individual similarity score between the query template 504b and a particular gallery template, and then sort each of the individual similarity scores to identify a subset of the gallery template set 504a with the highest individual similarity scores. For example, the subset of gallery template 504a may be selected and designated as the top N templates 504c, where N represents the number of gallery templates selected from the gallery template set 504a based on the values of individual similarity scores.
(90) In some implementations, the number of gallery templates included in the top N templates 504c may be adjusted based on the requirements for the facial identification operation. For instance, the number of top N templates 504c may be based on the FAR requirement, a target matching speed, or the amount of available computational resources available. As described in
(91) After selecting the top N templates 504c, a decision logic module 530 may perform a determination procedure to identify match candidates for the input facial identification image 502. For instance, the determination procedure may include decision point 532, where the decision logic module 530 determines if at least one of the gallery templates within the top N templates 504c is a mate for the input facial identification image 502. If mates are found within the top N templates 504c, then the decision logic module 530 may output a list 534 that includes gallery identifiers for each mated gallery template, respective similarity scores for each mated gallery template, and an associated rank based on the value of the respective similarity scores for each mater gallery template. As shown in the example in
(92) Alternatively, if the decision logic module 530 is unable to identify at least one mate for the query template 504b within the top N templates 504c, a perturbation operation, as described previously with respect to
(93)
(94) As described previously, the perturbation operation may include perturbing locations of the detected registration using various configurations and generating a plurality of perturbation templates, each of which represent features associated with a particular perturbation configuration. The perturbation module 540 may generate a set of perturbed query templates 504d, and then provide the set of perturbed query templates 504d to a perturbation comparison module 550.
(95) The perturbation comparison module 550 may then retrieve the top N templates 504c, which were generated during the multi-stage facial identification process 400B. The perturbation comparison module 550 may then compare each of the top N templates 504c with each of the perturbed query templates 504d. For instance, the perturbation comparison module may initially compare an average similarity for each gallery template within the top N templates 504c based on aggregating similarity scores for each of the perturbed query templates 504d. The perturbation comparison module may then sort each gallery template within the top N templates 504c by the respective value of its average similarity score, and identify a subset of gallery templates that have the highest average similarity scores with the perturbed query templates 504d. The subset of gallery templates may be designated as the top N templates 504e, which refer to the top gallery templates after performing the perturbation procedure. As described previously with respect to
(96) After identifying the top N templates 504e, the decision logic module may perform a determination procedure to identify match candidates for the input facial identification image 502. For instance, the determination procedure may include decision point 534, where the decision logic module 530 determines if at least one of the gallery templates within the top N templates 504c is a mate for the input facial identification image 502. As described previously with respect to
(97) Alternatively, if the decision logic module 530 is unable to identify a mated gallery template within the top N templates 504e, then the decision logic module 530 may compute an average similarity score, S.sub.N, for all of the gallery templates within the top N templates 504e. The decision logic module 530 may then output the average similarity score, S.sub.N. In some implementations, such as the multi-pass facial identification process shown in
(98)
(99) The facial matching modules 560a-560c represent individual facial matchers that may be used to perform the techniques represented in
(100) The process 400D may include the facial matching module 460a initially receiving the input facial identification image 502. The facial matching module 560a may then perform the multi-stage facial identification operation to determine if there is a hit found in within the gallery dataset extracted from the database 506 at the decision point 562a. As described in
(101) Alternatively, if no mate is found at the decision point 562a, then an average similarity score 564a for all of the top N gallery templates 504c (or in some instances, the top N gallery templates 504e) may be computed and provided to a score combination module 580. In some instances, the average similarity score 564a may correspond to the average similarity score computed by the decision logic module 530 after performing a perturbation operation on the input facial identification image 502.
(102) In addition to providing the average similarity score 564a to the score combination module 580, the process 500D may continue with the facial matching module 560b, which may subsequently perform a more precise, more resource-intensive facial identification operation of the input facial identification image 502. For example, in some implementations, the second facial matching module 560b may use a greater perturbation range or a smaller step size to generate a greater number of perturbed query templates to improve the likelihood of finding a mated gallery template. In other implementations, additional identification operations that were not performed by the first facial matching module 460a may be performed to determine if a mate exists in the decision point 562b. Similar to the decision point 562a, the second facial matching module 560b, and all other subsequent facial matchers such as the facial matching module 560c, may perform similar operations to determine if a mate is found within a facial identification operation.
(103) As shown in
(104) The score combination module 580 may combine (or fuse) the values of the average similarity scores 564a-564c to generate, at the end of the process 500, a list 582 that includes gallery identifiers, the values of the average similarity scores 564a-564c, and a rank associated with each gallery template. The score combination module 580 may then provide the list 582 as output for the process 500D.
(105)
(106) In more detail, the process 600 may include obtaining a verification facial image and a query identifier (610). For instance, as described previously, the feature extraction module 410 may obtain the input facial verification image 402a including a plurality of registration points, and the query identifier 402b associated with the input facial verification image 402a.
(107) The process 600 may include extracting a verification template (612). For instance, as described previously, the feature extraction module 410 may extract the verification template 406a based on the plurality of registration points within the input facial verification image 402a.
(108) The process 600 may include retrieving, based on the query identifier, an enrolled template, a reference template, and a first reference score (614). For instance, the feature extraction module 410 may retrieve, based at least on the query identifier 402b and from a gallery dataset stored in the database 406, the enrolled target template 406b, the reference template 406c, and the reference score.
(109) The process 600 may include computing a first similarity score (616). For instance, the template comparison module 420 may compute the first similarity score 408a between the verification template 406a and the enrolled target template 406b.
(110) The process 600 may include comparing the value of the first similarity score to a first threshold value (618). For instance, the decision logic module 430 may compare the value of the first similarity score 408a to the threshold value, T.sub.st.
(111) The process 600 may include computing a second reference score and a second threshold value (620). For example, the decision logic module 430 may compute the delta score 408d and the threshold value T.sub.d, where the value of the threshold value, T.sub.d, is based at lease on the value of the reference score and the value of the delta score 408d.
(112) The process 600 may include comparing the value of the first similarity score to the second threshold value (622). For instance, the decision logic module 430 may compare the delta score 408d to the threshold value, T.sub.d.
(113) The process 600 may include generating a plurality of perturbed verification templates (624). For instance, the perturbation module 440 may generate the perturbed verification templates 406d for the verification template 406a based at least on the plurality of registration points within the input facial verification image 402a.
(114) The process 600 may include computing a second similarity score (626). For instance, the perturbation comparison module 450 may compute the similarity score 408f between the enrolled target template 406b and the perturbed verification templates 406d.
(115) The process 600 may include comparing the value of the second similarity score to a third threshold value (628). For instance, the decision logic module 430 may compare the value of the similarity score 408f to the threshold value, T.sub.st1.
(116) The process 600 may include providing, for output, data indicating a match for the verification facial image, and a final score (630). For instance, the decision logic module 430 may provide, for output to the facial verification system, data indicating a match for the input facial verification image 402a, and a final score associated with the input facial verification image 402a. As shown in
(117) Described herein are computer systems such as facial matching computing devices and user computer systems. As described herein, all such computer systems include a processor and a memory. However, any processor in a computer device referred to herein may also refer to one or more processors wherein the processor may be in one computing device or a plurality of computing devices acting in parallel. Additionally, any memory in a computer device referred to herein may also refer to one or more memories wherein the memories may be in one computing device or a plurality of computing devices acting in parallel.
(118) As used herein, a processor may include any programmable system including systems using micro-controllers, reduced instruction set circuits (RISC), application specific integrated circuits (ASICs), logic circuits, and any other circuit or processor capable of executing the functions described herein. The above examples are example only, and are thus not intended to limit in any way the definition and/or meaning of the term processor.
(119) As used herein, the term database may refer to either a body of data, a relational database management system (RDBMS), or to both. As used herein, a database may include any collection of data including hierarchical databases, relational databases, flat file databases, object-relational databases, object oriented databases, and any other structured collection of records or data that is stored in a computer system. The above examples are example only, and thus are not intended to limit in any way the definition and/or meaning of the term database. Examples of RDBMS's include, but are not limited to including, Oracle Database, MySQL, IBM DB2, Microsoft SQL Server, Sybase, and PostgreSQL. However, any database may be used that enables the systems and methods described herein. (Oracle is a registered trademark of Oracle Corporation, Redwood Shores, Calif.; IBM is a registered trademark of International Business Machines Corporation, Armonk, N.Y.; Microsoft is a registered trademark of Microsoft Corporation, Redmond, Wash.; and Sybase is a registered trademark of Sybase, Dublin, Calif.)
(120) In some implementations, a computer program is provided, and the program is embodied on a computer readable medium. In an example implementation, the system is executed on a single computer system, without requiring a connection to a sever computer. In a further implementation, the system is being run in a Windows environment (Windows is a registered trademark of Microsoft Corporation, Redmond, Wash.). In yet another implementation, the system is run on a mainframe environment and a UNIX server environment (UNIX is a registered trademark of X/Open Company Limited located in Reading, Berkshire, United Kingdom). The application is flexible and designed to run in various different environments without compromising any major functionality. In some implementations, the system includes multiple components distributed among a plurality of computing devices. One or more components may be in the form of computer-executable instructions embodied in a computer-readable medium.
(121) As used herein, an element or step recited in the singular and proceeded with the word a or an should be understood as not excluding plural elements or steps, unless such exclusion is explicitly recited. Furthermore, references to example implementation or some implementations of the present disclosure are not intended to be interpreted as excluding the existence of additional implementations that also incorporate the recited features.
(122) As used herein, the terms software and firmware are interchangeable, and include any computer program stored in memory for execution by a processor, including RAM memory, ROM memory, EPROM memory, EEPROM memory, and non-volatile RAM (NVRAM) memory. The above memory types are example only, and are thus not limiting as to the types of memory usable for storage of a computer program.
(123) A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. In addition, the logic flows depicted in the figures do not require the particular order shown, or sequential order, to achieve desirable results. In addition, other steps may be provided, or steps may be eliminated, from the described flows, and other components may be added to, or removed from, the described systems. Accordingly, other implementations are within the scope of the following claims.
(124) A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. In addition, the logic flows depicted in the figures do not require the particular order shown, or sequential order, to achieve desirable results. In addition, other steps may be provided, or steps may be eliminated, from the described flows, and other components may be added to, or removed from, the described systems. Accordingly, other implementations are within the scope of the following claims.
(125) It should be understood that processor as used herein means one or more processing units (e.g., in a multi-core configuration). The term processing unit, as used herein, refers to microprocessors, microcontrollers, reduced instruction set circuits (RISC), application specific integrated circuits (ASIC), logic circuits, and any other circuit or device capable of executing instructions to perform functions described herein.
(126) It should be understood that references to memory mean one or more devices operable to enable information such as processor-executable instructions and/or other data to be stored and/or retrieved. Memory may include one or more computer readable media, such as, without limitation, hard disk storage, optical drive/disk storage, removable disk storage, flash memory, non-volatile memory, ROM, EEPROM, random access memory (RAM), and the like.
(127) Additionally, it should be understood that communicatively coupled components may be in communication through being integrated on the same printed circuit board (PCB), in communication through a bus, through shared memory, through a wired or wireless data communication network, and/or other means of data communication. Additionally, it should be understood that data communication networks referred to herein may be implemented using Transport Control Protocol/Internet Protocol (TCP/IP), User Datagram Protocol (UDP), or the like, and the underlying connections may comprise wired connections and corresponding protocols, for example, Institute of Electrical and Electronics Engineers (IEEE) 802.3 and/or wireless connections and associated protocols, for example, an IEEE 802.11 protocol, an IEEE 802.15 protocol, and/or an IEEE 802.16 protocol.
(128) A technical effect of systems and methods described herein includes at least one of: (a) increased accuracy in facial matching systems; (b) reduction of false accept rate (FAR) in facial matching; (c) increased speed of facial matching.
(129) Although specific features of various implementations of the invention may be shown in some drawings and not in others, this is for convenience only. In accordance with the principles of the invention, any feature of a drawing may be referenced and/or claimed in combination with any feature of any other drawing.
(130) This written description uses examples to disclose the invention, including the best mode, and also to enable any person skilled in the art to practice the invention, including making and using any devices or systems and performing any incorporated methods. The patentable scope of the invention is defined by the claims, and may include other examples that occur to those skilled in the art. Such other examples are intended to be within the scope of the claims if they have structural elements that do not differ from the literal language of the claims, or if they include equivalent structural elements with insubstantial differences from the literal language of the claims.