Canadian Patents Database / Patent 2870254 Summary

Third-party information liability

Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.

Claims and Abstract availability

Any discrepancies in the text and image of the Claims and Abstract are due to differing posting times. Text of the Claims and Abstract are posted:

  • At the time the application is open to public inspection;
  • At the time of issue of the patent (grant).
(12) Patent: (11) CA 2870254
(54) English Title: MULTIMODAL BIOMETRIC PLATFORM
(54) French Title: PLATE-FORME BIOMETRIQUE MULTIMODALE
(51) International Patent Classification (IPC):
  • G06K 9/00 (2006.01)
  • A61B 5/1171 (2016.01)
  • G06K 9/62 (2006.01)
  • G06F 21/32 (2013.01)
(72) Inventors :
  • WILLIS, WILLIAM FREDERIC (United States of America)
  • MILLER, JAMES S. (United States of America)
  • LAU, JOHANN H. (United States of America)
  • DLAB, DANIEL (Canada)
(73) Owners :
  • IMAGEWARE SYSTEMS, INC. (United States of America)
(71) Applicants :
  • IMAGEWARE SYSTEMS, INC. (United States of America)
(74) Agent: SMART & BIGGAR
(45) Issued: 2016-11-01
(22) Filed Date: 2005-11-15
(41) Open to Public Inspection: 2006-05-26
Examination requested: 2014-11-06
(30) Availability of licence: N/A
(30) Language of filing: English

(30) Application Priority Data:
Application No. Country/Territory Date
10/991,352 United States of America 2004-11-16
60/663,310 United States of America 2005-03-17

English Abstract

A multimodal biometric identification or authentication system includes a plurality of biometric clients. Each of the biometric clients may include devices for capturing biometric images of a plurality of types. The system includes a router in communication with the biometric clients. The router receives biometric images from, and returns biometric scores or results to, the biometric clients. The system includes a plurality of biometric matching engines in communication with the router. Each biometric matching engine includes multiple biometric processors. Each biometric processor is adapted to process biometric data of a particular type. The biometric matching engines transmit and receive biometric data to and from the router.


French Abstract

Un système didentification ou dauthentification biométrique multimodal comprenant une pluralité de clients biométriques. Chacun des clients biométriques peut comprendre des dispositifs destinés à saisir des images biométriques dune pluralité de types. Le système comprend un routeur en communication avec les clients biométriques. Ce routeur reçoit des images biométriques provenant des clients biométriques, et leur renvoie des notes ou des résultats biométriques. Le système comprend également une pluralité de moteurs de mise en correspondance biométrique en communication avec le routeur. Chaque moteur de mise en correspondance biométrique comprend plusieurs processeurs biométriques. Chaque processeur biométrique est conçu pour traiter des données biométriques de type particulier. Les moteurs de mise en correspondance biométrique transmettent des données biométriques au routeur et en reçoivent de celui-ci.


Note: Claims are shown in the official language in which they were submitted.

21
THE EMBODIMENTS OF THE INVENTION IN WHICH AN EXCLUSIVE
PROPERTY OR PRIVILEGE IS CLAIMED ARE DEFINED AS FOLLOWS:
1. A biometric system that uses readings from a plurality of biometric
readers to
authenticate a user, comprising:
a first biometric reader, wherein:
the first biometric reader measures, produces, and stores a plurality of first

values representing all users of the first biometric reader,
the first biometric reader measures a first biometric reading of a user of the

system to produce a first value,
the first value is indicative of the likelihood the first measured biometric
reading matches a first stored biometric reading of the user of the system,
and
a first threshold value is associated with the first biometric reader, wherein
a
match is indicated when the first value is above the first threshold;
a second biometric reader, wherein:
the second biometric reader measures, produces, and stores a plurality of
second values representing all users of the second biometric reader,
the second biometric reader measures a second biometric reading of a user of
the system to produce a second value,
the second value is indicative of the likelihood the second measured biometric

reading matches a second stored biometric reading of the user of the system,
and


22

a second threshold value is associated with the second biometric reader,
wherein a match is indicated when the second value is above the second
threshold; and
a processor that:
normalizes the first value according to the stored plurality of first values,
normalizes the second value according to the stored plurality of second
values,
produces a composite value based on the normalized first and second values,
and
uses the composite value and a composite threshold value in determining if
the user is authenticated.
2. The biometric system of claim 1, wherein the biometric system
recalibrates as the
plurality of first values is gathered over time.
3. The biometric system of claim 1, wherein the composite threshold is
determined by the
processor by combining the first threshold associated with the first biometric
reader and
the second threshold associated with the second biometric reader.
4. The biometric system of claim 2, wherein the system recalibrates based
on a selection of
a plurality of first values, wherein the selection of the plurality of first
values is based on
selections from the group consisting of geography, location, organization, and

demographics.


23

5. The biometric system of claim 1, wherein the processor normalizes the
first value and
the second value according to a statistical distribution.
6. The biometric system of claim 5, wherein the statistical distribution is
limited to a
predetermined period of time.
7. The biometric system of claim 5, wherein the statistical distribution is
limited to a
predetermined number of biometric readings.
8. The biometric system of claim 1, wherein the measured and produced
values by the
biometric readers is represented by a percentage.
9. The biometric system of claim 5, wherein the statistical distribution is
updated over time
as new biometric readings are measured by the system.
10. The biometric system of claim 1, wherein at least one of the normalized
values of the
plurality of biometric readers is weighted based on the accuracy of the
biometric reader
associated with the at least one of the normalized values of the plurality of
biometric
readers.

Note: Descriptions are shown in the official language in which they were submitted.

CA 02870254 2015-10-15
1
MULTIMODAL BIOMETRIC PLATFORM
BACKGROUND
[0001] The present invention relates generally the field of biometric
identification and
authentication, and more particularly to a multimodal biometric system and
method.
[0002] Biometrics is a generic term for characteristics that can be used
to distinguish one
individual from another, particularly through the use of digital equipment. An
example of a
biometric is a fingerprint. Trained analysts have long been able to match
fingerprints in order to
identify individuals. More recently, computer systems have been developed to
match
fingerprints automatically. Examples of biometrics that have been, or are now
being, used to
identify, or authenticate the identity of, individuals include 2D face, 3D
face, hand geometry,
single fingerprint, ten finger live scan, iris, palm, full hand, signature,
ear, finger vein, retina,
DNA and voice. Other biometric may include characteristic gaits, lip movements
and the like.
New biometric are being developed or discovered continually.
[0003] Biometrics have been used both for identification and
authentication. Identification
is the process of identifying or detecting the presence of an unknown
individual. Identification
typically involves a one to N or complete search of stored biometric
information. Common uses
of identification are law enforcement facial mug shot or fingerprint searches,
drivers license
facial photo or fingerprint searches to ensure that a particular individual is
not issued more than
one drivers license, and various crowd scanning schemes to detect criminals or
terrorists.
[0004] Authentication is the process of verifying that an individual is
who he says he is.
The individual presents something such as a card or computer logon name that
identifies him.
Then a biometric obtained from the individual is compared to a stored
biometric to authenticate
the individual's identity. Authentication is useful for controlling access to
secure locations and
systems and for controlling the uses of credit cards and the like.
[0005] In these days of heightened security, biometrics are becoming
increasingly important.
One of the goals in biometrics is increased accuracy so that there are fewer
false negative and
false positive indications. Every biometric has some limitations. Some
biometrics are inherently

CA 02870254 2015-10-15
2
more accurate than others. It is estimated that approximately 5% of the
individuals in most
populations do not have legible fingerprints. The accuracy of some face
recognition systems
may be dependent on ambient lighting and the pose of the subject.
[00061 A problem in current biometric identification and authentication
is "spoofing",
which amounts to tricking the biometric capture device. Some devices may be
spoofed by
presenting a previously captured authentic image to the capture device. The
device may capture
the counterfeit image and then identify the wrong individual.
[0007] One solution both to the accuracy and spoofing concerns is to use
multiple
biometrics in identifying or authenticating the identity of an individual. For
any single
biometric, there is a finite probability that multiple individuals will match
on that biometric.
However, biometrics tend to be independent of each other so that it is
unlikely that individuals
that match on one biometric would match on multiple biometrics. Accordingly,
the likelihood
that an individual would score false positives on multiple biometric tests is
low. In order to
spoof a system that uses multiple biometrics, one would have to have to obtain
counterfeit
images for each biometric. Thus, there is a desire to provide multimodal
biometric platforms.
However, there are a number of problems with current attempts to provide a
multimodal
biometric platform.
BRIEF SUMMARY
100081 Embodiments described herein may provide a multimodal biometric
identification
and/or authentication system. One system may include a plurality of biometric
clients. Each of
the biometric client may include devices for capturing biometric images of a
plurality of types.
Examples of biometric image capture devices are well known and may include
digital cameras
for capturing images for facial recognition, fingerprint scanners for
capturing images for
fingerprint recognition, iris scanners for capturing images iris recognition,
hand geometry
sensors, and the like. The system includes a router in communication with the
biometric clients.
Among other things, the router receives biometric images from, and returns
biometric scores or
results to, the biometric clients. The system includes a plurality of
biometric matching engines
in communication with the router. Each biometric matching engine may include
multiple

CA 02870254 2015-10-15
3
biometric processors. Each biometric processor is adapted to process biometric
data of a
particular type. Among other things, the biometric matching engines transmit
and receive
biometric templates to and from the router.
[0009] The biometric matching engines may include proprietary, third
party, biometric
applications that are implemented by means of software development kits
(SDKs). The third
party applications receive and compare pairs of biometric templates and return
proprietary
scores based upon the comparison. Each third party application is adapted to
perform its work
with respect to a particular biometric. For example, there are separate
facial, fingerprint and iris
applications, each application generally being available from a separate
entity. The biometric
matching engines include a plugin application for each biometric application.
The plugins
provide a number of functions. As well as providing a interface between the
biometric
application and the router, the plugins may create biometric templates from
biometric images,
cache biometric templates, preferably in physical memory, provide probe
templates and
enrolled templates to their associated biometric application for comparison
and scoring, and
return scores to the router. The plugins may also normalize or otherwise
process scores received
from the biometric applications.
[0010] The biometric matching engines are organized into groups, based
upon their
capabilities. Each biometric matching engine of a group can process the same
types of
biometrics. A biometric matching engine may belong to more than on group.
[0011] In one embodiment, all communication between the biometric clients
and the
biometric matching engines goes through the router. The biometric clients and
the biometric
matching engines see only the router. During an enrollment phase, the
biometric clients send
biometric and demographic data to the router. The router stores the
demographic data and sends
the biometric data to a biometric matching engine of an appropriate group. The
plugins of the
biometric matching engine convert the images of the biometric data to
templates and send the
templates back to the router. The router sends the templates back to one or
all of the biometric
matching engines of the group, depending on the configuration of system. The
system may be
configured for striped operation, in which case, the templates are sent to one
biometric
matching engine of the group. In the striped configuration, the router uses a
load balancing

CA 02870254 2015-10-15
4
scheme to ensure that each biometric matching engine of a group has
approximately the same
number of enrolled templates in its cache. Alternatively, the system may be
configured for
mirrored operation. In the mirrored configuration, router sends the templates
to each biometric
matching engine of the group. In either configuration, the biometric matching
engines cache the
enrolled templates they receive from the router, possibly in physical memory.
100121 During a search phase, a biometric client sends target biometric
data to the router.
The router sends the target biometric data to one or all of the biometric
matching engines of an
appropriate group, depending on the configuration of the system. If the system
is in the striped
configuration, the router sends the target data to each biometric matching
engine of the group.
If the system is in the mirrored configuration, the router sends the target
data to a single
available biometric matching engine of the group. In either configuration, the
biometric
matching engine converts the target data to probe templates and then provides
a probe template
and enrolled templates to the appropriate biometric application for comparison
and scoring. The
biometric matching engine sends scores back to the router. In the striped
configuration, the
router accumulates the scores from all the biometric matching engines before
reporting the
scores back the biometric client.
[0013] Since the biometric applications of the biometric matching
engines generally
produce proprietary, non-standardized scores, some embodiments may provide
methods of
producing more meaningful combined or normalized scores. In one embodiment, a
biometric
matching engine implements a search pruning strategy. According to the search
pruning
strategy, the biometric matching engine compares a probe biometric template of
a first type to
enrolled biometric templates of the first type to produce a set of first
scores. The biometric
matching engine saves in a match set biometric data records for which the
first score for the
data record is greater than a first biometric threshold. The biometric
matching engine then
compares probe biometric template of a second type to biometric templates of
the second type
in said match set to produce a set of second scores. The biometric matching
engine saves
biometric data records for the second score for the data record is greater
than a second
biometric threshold. The biometric matching engine repeats the process until
all template types
have been processed, which results in a set of data records that have score
higher than a
threshold in each category.

CA 02870254 2015-10-15
[0014] In a second embodiment, the system may use statistical analysis
of enrollment data
to produce normalized scores. Individuals are enrolled in a biometric database
by storing for
each individual a plurality of biometric templates of one type. The system
compares each
biometric template in the database with every other biometric template of the
database to obtain
5 biometric scores. If a biometric score is obtained by comparing one
biometric template of an
individual with another biometric template for that same individual, the
system puts that score
in a matching category. If a biometric score is obtained by comparing a
biometric template of
an individual with a biometric template for different individual, the system
puts that score in a
non-matching category. The system analyzes the scores in the matching category
to determine
the probability that a particular score is a matching score. The system
analyzes the scores in the
non-matching category to determine a probability that a particular score is
not a matching score.
10014a1 In one embodiment there is provided a biometric system that uses
readings from a
plurality of biometric readers to authenticate a user. The biometric system
includes a first
biometric reader. The first biometric reader measures, produces, and stores a
plurality of first
values representing all users of the first biometric reader. The first
biometric reader measures a
first biometric reading of a user of the system to produce a first value. The
first value is
indicative of the likelihood the first measured biometric reading matches a
first stored biometric
reading of the user of the system. A first threshold value is associated with
the first biometric
reader. A match is indicated when the first value is above the first
threshold. The biometric
system further includes a second biometric reader. The second biometric reader
measures,
produces, and stores a plurality of second values representing all users of
the second biometric
reader. The second biometric reader measures a second biometric reading of a
user of the
system to produce a second value. The second value is indicative of the
likelihood the second
measured biometric reading matches a second stored biometric reading of the
user of the
system. A second threshold value is associated with the second biometric
reader. A match is
indicated when the second value is above the second threshold. The biometric
system further
includes a processor that normalizes the first value according to the stored
plurality of first
values, normalizes the second value according to the stored plurality of
second values, produces
a composite value based on the normalized first and second values, and uses
the composite
value and a composite threshold value in determining if the user is
authenticated.

CA 02870254 2015-10-15
6
[0014b] The biometric system may recalibrate as the plurality of first
values is gathered over
time.
[0014cj The composite threshold may be determined by the processor by
combining the first
threshold associated with the first biometric reader and the second threshold
associated with the
second biometric reader.
[0014d] The system may recalibrate based on a selection of a plurality of
first values,
wherein the selection of the plurality of first values is based on selections
from the group
consisting of geography, location, organization, and demographics.
[0014e] The processor may normalize the first value and the second value
according to a
statistical distribution.
1001411 The statistical distribution may be limited to a predetermined
period of time.
[0014g] The statistical distribution may be limited to a predetermined
number of biometric
readings.
[0014h] The measured and produced values by the biometric readers may be
represented by
a percentage.
100141] The statistical distribution may be updated over time as new
biometric readings are
measured by the system.
[0014j] At least one of the normalized values of the plurality of
biometric readers may be
weighted based on the accuracy of the biometric reader associated with the at
least one of the
normalized values of the plurality of biometric readers.
BRIEF DESCRIPTION OF THE DRAWINGS
[0015] Figure 1 is a block diagram of one embodiment.
[0016] Figure 2 is a block diagram of an embodiment of a biometric
matching engine;
[0017] Figure 3 is block diagram of an embodiment of a biometric client;
[0018] Figure 4 is a block diagram illustrating biometric matching
engine;

CA 02870254 2015-10-15
7
[0019] Figure 5 is a flowchart of an embodiment of biometric matching
engine enrollment
processing;
[0020] Figure 6 is a flowchart of an embodiment of biometric matching engine
template
caching;
[0021] Figure 7 is a flowchart of an embodiment of biometric matching
engine search
processing;
[0022] Figure 8 is a flowchart of an embodiment of router enrollment
processing;
[0023] Figure 9 is a flowchart of an embodiment of router search
processing;
[0024] Figure 10 illustrates an embodiment of a search pruning table;
[0025] Figure 11 is a flowchart of an embodiment of search pruning;
[0026] Figures 12A and 12B comprise a flowchart of an embodiment of
statistical
normalization;
[0027] Figure 13 is a plot of distributions of matching and non-matching
scores;
[0028] Figure 14 is a flowchart of an embodiment of statistical
normalization refinement.
DETAILED DESCRIPTION
[0029] Referring now to the drawings, and first to Figure 1, an
embodiment of a system is
designated generally by the numeral 11. System 11 includes a plurality of
biometric clients 13.
Biometric clients 13 comprise computers having installed thereon a suitable
operating system
and biometric software, preferably implemented in a client software
development kit (SDK).
[0030] Biometric clients 13 are in communication with a router 15
through a suitable
network, such as Internet Protocol (IP) network 17. Router 15 comprises a
computer having
installed thereon a suitable operating system and biometric software
programmed according to
embodiments described herein. Router has associated therewith storage 19 for
storing
demographic data.

CA 02870254 2015-10-15
8
[0031] Router 15 is in communication with a plurality of biometric matching
engines 21
through a suitable network, such as IP network 23. Each biometric matching
engine 21
comprises a computer having installed thereon a suitable operating and
biometric software
according to the present invention. As will be described in detail
hereinafter, biometric
matching engines 21 are adapted to process multimodal biometric data. Each
biometric
matching engine 21 has associated therewith a cache 25, which preferably
implemented in
physical memory.
[0032] Referring now to Figure 2, there is illustrated a block diagram
of an embodiment of
a biometric matching engine 21 according to the one embodiment. Biometric
matching engine
21 communicates with router 15 (Figure 15) and moves templates into and out of
cache 25.
Biometric matching engine 21 converts biometric images into templates at
enrollment time and
creates probe templates to compare against stored records at search time.
[0033] In the example of Figure 2, biometric matching engine 21 includes
a facial
recognition SDK 27, an iris recognition SDK 31, and fingerprint recognition
SDK 35. SDKs
27, 31 and 35 are typically proprietary applications provided by third
parties. For example,
facial recognition SDK 27 may be a proprietary facial recognition application
provided by a
vendor such as COGNITECTm. Facial recognition SDK is adapted to compare facial
biometric
templates and return a score that represents the degree of similarity of the
templates. Similarly,
iris recognition SDK 31 may be a proprietary iris recognition application
provided by a vendor
such as IRIDIANTM. Iris recognition SDK is adapted to compare iris biometric
templates and
return a score that represents the degree of similarity of the templates.
Fingerprint recognition
SDK 35 may be a proprietary fingerprint recognition application provided by a
vendor such as
IDENTIXTm.
[0034] It will be recognized by those skilled in the art that a
biometric matching engine
may include any combination of one or more separate biometric algorithms or
SDKs. Such
SDKs may include 2D face, 3D face, hand geometry, single fingerprint, ten
finger live scan,
iris, palm, full hand, signature, ear, finger vein, retina, DNA, dental
records, voice or any other
biometric, all available from several well known vendors.

CA 02870254 2015-10-15
9
[0035] Each SDK 27, 31 and 35 is wrapped in a plugin. Facial recognition
SDK 27 is
wrapped in a facial plugin 29. Iris recognition SDK 31 is wrapped in an iris
plugin 33.
Fingerprint recognition SDK 35 is wrapped in a fingerprint plugin 37. Each
plugin 29, 33 and
37 is a modules that adheres to a common interface that allows biometric
matching engine 21 to
communicate with the SDK 27 about which the plugin is wrapped. Because a
plugin has a
common interface, it can be "plugged in" to the system with extremely minor
setup and without
the biometric matching engine 21 having much knowledge about which third party
SDK is
being wrapped.
[0036] Facial plugin 29 and iris plugin 33 may be referred to as
"normal" plugins. Normal
plugins are interfaces between biometric matching engine 21 and their
associated SDK. Normal
plugins enable biometric matching engine 21 to supply probe and enrolled
templates to their
associated SDK for comparison and scoring. Normal plugins further enable
biometric matching
engine 21 to receive scores from their associated SDK for transmission to
router 15 (Figure 1).
[0037] The combination of fingerprint recognition SDK 35 and fingerprint
plugin 37 is
somewhat different from that described with respect to the facial and iris
recognition
applications. Historically, fingerprint searching has been aimed at emulating
the behavior of
Automated Fingerprint Identification System (AFIS) systems, which handle the
enrollment,
storage, and searching of fingerprints. Most fingerprint matching algorithms
and SDKs do not
provide a method to simply compare one template to another and generate a
score. Rather, they
all provide their own special 'database' that fingerprints must be enrolled
in. In order to make a
comparison, a system passes in a probe image, and the SDK produces a score.
Accordingly, a
plugin of the type of fingerprint plugin 37 is known as a "pass-through"
plugin. Biometric
matching engine 21 passes fingerprint templates through fingerprint plugin for
enrollment in
the database of fingerprint recognition SDK, rather than storing them in cache
25.
[0038] As shown in Figure 2, multiple plugins can be used on a single
biometric matching
engine, so any single biometric matching engine might be responsible for
storing any number of
different template types. Of course, a biometric matching engine may comprise
different
numbers and combinations of SDKs and plugins.

CA 02870254 2015-10-15
[0039] Referring now to Figure 3, there is illustrated a high level
block diagram of an
example of a biometric client 13. Biometric client 13 is implemented a
computer having a
suitable operating system and various application programs. Biometric client
13 includes
commercially available biometric input and capture devices, such as a digital
camera 41 for
5 capturing facial images, a fingerprint scanner 43 and an iris image
capture device 45. Capture
devices generally may include 2D face, 3D face, hand geometry, single
fingerprint, ten finger
live scan, iris, palm, full hand, signature, ear, finger vein, retina, DNA and
voice capture
devices. Biometric client 13 includes a client SDK 47 that collects and
formats biometric data
captured by the capture device for transmission to router 15 (Figure 1) and
presents information
10 returned from router 15. Biometric client may include a display 49 and a
user input device 51,
such as a keypad, keyboard, mouse or the like. Biometric client 13 may also
include an
interface to an access control device such as an automatic door lock.
[0040] As shown in Figure 4, biometric matching engines 21 may be
organized in groups.
A biometric matching engine group comprises one or more biometric matching
engines having
the same biometric capabilities. In Figure 4 a first biometric matching engine
group 55
comprises biometric matching engines 21a - 21d, each of which is adapted to
process face and
fingerprint biometric data. A second biometric matching engine group 57
comprises biometric
matching engines 21e - 21h, each of which is adapted to process iris biometric
data. A
biometric matching engine group may comprise as many biometric matching
engines as are
necessary to meet the demands of the system. A system may be scaled up or down
simply by
adding or removing biometric matching engines. A single biometric matching
engine may be in
multiple groups. For example, a biometric matching engine with face,
fingerprint and iris
capabilities would be a member of both groups 55 and 57.
[00411 Router 15 may configure the groups to optimize performance in
terms of speed or
concurrency. Router 15 can configure a group for striped or mirrored
operation. In striped
operation, templates are cached in a striped or distributed fashion across the
biometric matching
engines of the group. Each biometric matching engine caches only part of
templates of the
group. Router 15 distributes the templates to the biometric matching engines
based upon a load
balancing scheme that maintains the number of templates cached by each
biometric matching
engine approximately equal. In the example of Figure 4, each biometric
matching engine 21a -

CA 02870254 2015-10-15
11
21d of group 55 would cache about 25% of the total number of templates in a
striped
configuration. In performing a search, each biometric matching engine 21a -
21d would execute
its searching routine. Thus, the search would be completed in 25% of the time
it would take a
single biometric matching engine to execute its searching routine over all the
templates.
However, in the striped configuration, the group can do only one search at a
time. Thus, if there
are concurrent requests for searches, the router 15 must queue the searches.
[0042] In the mirrored configuration, the templates are mirrored across
the entire query
group. Each biometric matching engine 21a - 21d of group 55 would cache every
template
assigned to the group. In the mirrored configuration, router 15 instructs a
single biometric
matching engine 21 to execute a search. Thus, in the example of Figure 4, up
to four searches
can be executed concurrently in the mirrored configuration. without having to
queue search
requests. However, each search would take four times as long to complete as a
search in the
striped configuration. Speed and concurrency issues may be addressed by
scaling the number of
biometric matching engines in a group and configuring the group.
[0043] Enrollment of templates according to the present embodiment is
illustrated with
respect to Figures 5, 6 and 8. Figures 5 and 6 illustrate enrollment from a
biometric matching
engine's perspective. Figure 8 illustrates enrollment from the routers
perspective. From the
biometric matching engine's perspective, enrollment comprises two independent
processes.
Referring to Figure 5, a biometric matching engine receives a biometric image
from the router
at block 61. The biometric image may be of any type that the router is capable
of handling. The
biometric image may be a digital photograph of a face, a fingerprint scan, an
iris scan, a wave
file of a voice, or any other biometric image. The biometric matching engine
creates a biometric
template from the biometric image at block 62. Then, the biometric matching
engine returns
biometric template to the router at block 65 and the process ends.
[0044] The other part of enrollment from the biometric matching engines
perspective is
template caching, an example of which is illustrated in Figure 6. A Biometric
matching engine
receives a template from the router at block 67. The biometric matching engine
executing the
process of Figure 6 may or may not be the same biometric matching engine that
executed the
process of Figure 5 to create the template. The biometric matching engine
tests, at decision

CA 02870254 2015-10-15
12
block 68, if the template of the pass-through type. As explained above,
fingerprint recognition
SDKs typically maintain their own cache of templates in a proprietary
database. Accordingly,
the biometric matching engine typically passes templates through a fingerprint
SDK for caching
by the SDK. If the template is adapted to be passed through to the SDK, the
biometric matching
engine passes the template to the pass-through plugin for caching in the
database maintained by
the SDK, as indicated at block 69. If the template is not adapted for pass-
through, the biometric
matching engine caches the template at block 70 and the process ends.
[0045] In a preferred embodiment, the biometric matching engine caches
templates as part
of a record. The record contains a record ID, which specifies an individual,
and all biometric
templates for that individual. For example, a record could contain face,
fingerprint and iris
templates for the individual associated with the record ID. Additionally, the
record may contain
multiple instances of a template type. For example, at enrollment, the system
may capture
multiple instances of each biometric image type.
[0046] Referring now Figure 8, there is illustrated an example of an
enrollment process
from the router's perspective. The router receives demographic and biometric
data from a client
at block 71. Demographic data may include and individuals name, sex, height,
weight, hair
color, eye color, etc. The router stores the demographic data in the
demographic database 19
(Figure 1) at block 73. The router sends the biometric data, which includes
one or more
biometric images, to a biometric matching engine at block 75. There is an
implicit wait for the
query image to return the template or templates. When the router receives the
template or
templates from the biometric matching engine, as indicated at block 77, the
biometric matching
engine cheeks, at decision block 79, the group is configured for striped or
mirror operation. If
the configuration is not mirrored (i.e. striped), the router sends the
template or templates to on
biometric matching engine of the group, based upon a load balancing scheme, at
block 81. If, at
decision block 79, the configuration is mirrored, the router sends the
biometric template or
templates to each biometric matching engine of the group, at block 83. Then,
the router reports
OK to the client, at block 85, and enrollment processing ends.
[0047] Referring now to Figures 7 and 9, there illustrated search
processing. Figure 7
illustrates searching from a biometric matching engines perspective. Figure 9
illustrates

CA 02870254 2015-10-15
13
searching from the biometric matching engine's perspective. As shown in Figure
7, a biometric
matching engine receives one or more target biometric images from the router,
at block 91. The
biometric matching engines creates a probe template for each target image
received, at block
93. Then, the biometric matching engine compares the probe template or
templates with each
template in its cache, at block 95. It will be recalled that an appropriate
plugin passes the probe
and a template from the cache to the appropriate SDK biometric application. As
will be
explained in detail hereinafter, the biometric matching engine may normalize
the scores
provided by the biometric application, as indicated generally at block 99. The
biometric
matching engine then returns the scores, typically above a certain threshold
value, to the router,
at block 99, and the process ends.
[0048] Referring to Figure 9, the router receives target biometric data
from a client, at
block 101. The router determines, at decision block 103, if the appropriate
group is configured
for striped or mirrored operation. If the configuration is not mirrored, the
biometric matching
engine sends the target biometric data to each biometric matching engine of
the group, at block
105. When the router receives results from all the biometric matching engines
of the group, at
block 107, the router sends the results to the client, at block 109, and the
process ends. If, as
determined at decision block 103, the configuration is mirrored, the router
sends the biometric
data to one available biometric matching engine of the group, at block 111.
When the router
receives the results from the router, at block 113, the router sends the
results to the client, at
block 109, and the process ends.
[0049] Scores produced by proprietary biometric algorithms are
themselves proprietary and
not standardized. Scores from one biometric algorithm may be in the range from
0 to 10,000
while scores from another biometric algorithm may be in the range of 50 to
100. While the
scores in a single mode operation are meaningful in the sense that, with
underlying knowledge
they can be used to determine whether a score signifies a match, they are in a
sense arbitrary. In
order to combine scores and produce meaningful multimodal results, there are
provided
processes for normalizing or otherwise combining the scores.
[0050] One simple way to normalize the scores is by means of a system of
weighted
averages. Under such a system, each separate mobile score is multiplied by a
weight factor that

CA 02870254 2015-10-15
14
puts the scores in the same range. Then the weighted scores can be averaged to
obtain a
composite score. Weighted averaging is not entirely satisfactory due to
various nonlinearities
and variations in the proprietary scoring algorithms.
[0051] One method for combining scores is search pruning which is
illustrated with respect
to Figures 10 and 11. In Figure 10 there is a table that specifies a search
order and various
thresholds for processing the results from a multimodal search according to
the present
invention. A search order is specified in Column 111. Search Order 111
specifies the order in
which the search results are to be pruned. In Column 113 there is listed the
algorithm. The
biometric is listed in Column 115. Thus, referring to Figure 10, the first
score to be processed is
the IDENTIXTM right thumb algorithm. For each biometric there is a pruning
threshold,
indicated in Column 117 and a final threshold indicated in Column 119. The
pruning and final
thresholds are set with reference to and knowledge of to the scoring system of
each particular
proprietary algorithm. The thresholds may be tuned so as not to produce too
many or too few
final candidates.
[0052] Referring now to Figure 11, there is shown a flowchart of an example
of search
pruning according to the present invention. A match set is initialized at
block 121. Initially, the
match set is all record IDs in the cache. The system orders the probe
templates according to the
search table, at block 123. For example, if the biometrics are iris, face, and
left thumb, the
system would perform the search on the left thumb first, then the face, and
then the iris, as
indicated in Figure 10. The system then lets N equal the number of probe
templates and lets
index i equal one as indicated at block 125. Then, the system tests, at
decision block 127 if i is
equal to N. If not, the system compares probe template i with the first or
next template in the
match set, as indicated at block 129. Then, the system determines, at decision
block 131 if the
score returned from the comparison is less than the pruning threshold. If so,
the system removes
the record from the match set, at block 133. If, on the other hand, the score
is greater than the
pruning threshold, then the record ID is left in the match set. The system
then determines, at
decision block 135, if there are more templates in the match set. If so, the
process returns to
block 129 to compare template i with the next template in the match set.
Processing continues
to loop through blocks 129 to 133 until there are no more templates in the
match set, as
determined at decision block 135. Then, the system sets i equals i plus one at
block 137 and

CA 02870254 2015-10-15
processing returns to decision block 127. If, as determined at block 127,
index i is not equal to
N, then processing resumes at 129. If, however, i is equal to N, as determined
at decision block
127, the system compares probe template i with the first or next template in
the match set, as
indicated at block 139. The system determines, at decision block 141, if the
score is less than
5 the final threshold determined from the table of Figure 10. If so, the
system removes the record
from the match set, at block 143. If the score is not less than the final
threshold, then the record
ID is left in the match set. The system tests, at decision block 145 if there
are more templates in
the match set. If so, processing returns to block 139. If not, the system
returns the match set to
the router, at block 137 and processing ends. The match set returned to the
router is the set of
10 record IDs that have passed each threshold.
100531 Referring now to Figures 12A and 12B, there is illustrated a
process for
normalizing scores returned from separate proprietary biometric applications.
The system is
initialized at block 151 by setting indices i, j, k and 1 equal to 1 and
setting N equal to the
number of enrolled individuals in the biometric matching engine group. Indices
i and k
15 represent, respectively, record ID numbers. Thus, indices i and k
represent unique individuals
enrolled the system. Indices] and I represent template instances enrolled for
an individual.
Thus, template ij represents the jth template stored in association with the
ith individual.
Multiple templates of each type are enrolled for each individual.
[0054] The system sets P equal to the number of templates enrolled for
the ith individual,
at block 153. The system then sets N equal to the number of templates enrolled
for individual k,
at block 155. The system then tests whether index i is equal to index k, at
decision block 157.
Thus, the system determines at decision block 157 if a template under test
belongs to a single
individual. If so, the system tests at decision block 159 if index j equals
index 1. If so, index 1
is incremented by one, as indicated at block 161. Then the system compares
template ij with
template kl, as indicated at block 163. Thus, at block 163 a first template of
an individual is
compared with a second template of that same individual. The system puts the
score produced
from the comparison at block 163 into a match category, at block 165. The
match category
contains scores that were produced by matching a template of an individual
against another
template of that same individual. Thus, the match category contains scores
that are known to
represent matches. After putting the score in the match category at block 165,
the system

CA 02870254 2015-10-15
16
increments index 1 by one as indicated at block 167 and tests, at decision
block 169 if 1 is
greater than M. If not, processing returns to decision block 159.
[0055] Returning to decision block 157, if index i is not equal to index k,
which indicates that
individual i is not the same person as individual k, then the system compares
template ij to
template kl at block 171. The system puts the score resulting from the
comparison at block 171
into a non-match category at block 173. The non-match category contains the
scores that are
known not to represent a match. Then, the system increments index 1 by one, at
block 175, and
tests at decision block 177 if index 1 is greater than M. If not, processing
returns to block 171.
Processing continues until index 1 is determined to be greater than M at
decision block 169 or
decision block 177. Then, the system sets index k equal to k plus one and
index 1 equal to one
at block 179. Then the system tests at decision block 181 if index k is
greater than N. If not,
processing returns to block 155 of Figure 12A. If, as determined at decision
block 181, index k
is greater than N, then the system sets index j equal to j plus one, k equal
to one, and 1 equal to
one, at decision block 183. Then, the system tests, at decision block 185, if
index j is greater
than P. If not, the system returns to block 155 of Figure 12A. If, as
determined at decision block
185, index j is greater than P, then the system sets index i equal to i plus
one, j equal to one, k
equal to one and 1 equal to one, as indicated at block 187, and then tests at
decision block 189
if index i is greater than N. If not, processing returns to block 153 of
Figure 12A.
[0056] Processing continues through the various loops described until each
template enrolled
for each individual has been compared with every other template in the system.
At the
completion of processing described thus far with respect to Figures 12A and
12B, the match
category contains all scores known to be matches. The non-match category
contains all scores
known not to be matches. After collecting all the scores in either the match
or the non-match
category, the system performs statistical analysis of the match category, as
indicated at block
191, and statistical analysis of the non-match category, as indicated at block
193.
[0057] Referring now to Figure 13, there is illustrated a plot of the
distributions of scores in
non-match and match categories. The distribution of scores in the non-match
category is
designated by the numeral 201. The distribution of the scores in the match
category is
designated by the numeral 203. In Figure 13, the number of scores is plotted
against a range of

CA 02870254 2015-10-15
17
arbitrary score values. The number of scores goes from 0 to 9,000 and the
arbitrary scores go
from 0 to 100. Statistical analysis of the distributions is well known to
those skilled in the art.
However, by inspection of Figure 13, it can be seen that matching scores lie
roughly in the
range from 85 to 95. Non-matching scores lie roughly in the range from 10 to
about 80. Thus, a
score of about 85 would indicate a high probability of a match and a very low
probability of a
non-match. On the other hand, a score of 70 would indicate a very low
probability of a match.
Thus, the method of the present embodiment provides a method for converting
arbitrary
numerical scores to relatively precise probabilities of matches and non-
matches. The
probabilities obtained from different biometrics can be combined in a well
known way to
produce a probability of a match or non-match based on multiple biometrics.
[0058] Referring now to Figure 14 there is illustrated a flow chart of a
dynamic system for
improving the accuracy of the method according to the present embodiment. A
biometric
matching engine receives a target biometric image from the router at block
211. The biometric
matching engine creates a probe template in the manner described above at
block 213. Then,
the biometric matching engine compares the template with cached templates at
block 215.
Finally, the biometric matching engine returns a score to the router, at block
217, as described
above. Then, the biometric matching engine tests at decision block 219 if the
score is above a
particular probe threshold. If not, processing stops. However, if the score is
above the probe
threshold, then the system calls the probe template template xy as indicated
block 221. Then,
the system sets index k equal to one, index 1 equal to one and sets the N
equal to the number of
individuals, at block 223. Then, the system sets M equal to the number of
templates enrolled for
individual k, at block 225. The system then tests at decision block 227 if k
is equal to x, which
would indicate that the probe template belongs to the same individual as
template k. If so, the
system compares template xy to template kl, at block 229, and puts the score
in the match
category at block 231. Then, the system increments index 1 to 1 plus one at
block 233 and tests
if 1 is greater than M, at decision block 235. If not, processing returns to
block 229.
[0059] If, as determined at decision block 227, index k is not equal to index
x, then the system
compares template xy to template kl at block 237 and puts the score in the non-
match category
at block 239. Then, the system increments index 1 to 1 plus one, at block 241,
and tests, at
decision block 243 if 1 is greater than M. If not, processing returns to block
237. Processing

CA 02870254 2015-10-15
18
continues until index 1 is greater than M, as determined at decision block 235
or decision block
243. Then, the system increments k to k plus one and sets 1 equal to one, as
indicated at block
245. The system then tests, at decision block 247, if k is greater than N. If
not, processing
returns to block 225. Processing continues until, as determined at decision
block 247, index k is
greater than N, which indicates that the probe template has been tested
against all templates
cached in the system. Then, the system performs statistical analysis of the
match category at
block 249 and statistical analysis of the non-match category at 251.
[0060] From the for going it may be seen that the embodiments described
may overcome
the shortcomings of the prior art. The system may completely and securely
manage personal
information and images for any given individual. The system may efficiently
manage the
distribution and searching of assorted biometric templates, which can be
optimized for
throughput, concurrency, or both depending on the size and demands of the
application in
question. The system may provide its advantages through a plugin based
architecture, which
enables the addition or switching of biometric plugins to occur easily. The
system may operate
via a distributed architecture consisting of a router and at least one query,
which are
interconnected via a simple TCP/IP network. System operations may be
controlled via a client
SDK, which also makes connections to the router via a TCP/IP connection.
Commands for data
transfer may be carried out over this connection, enabling biometric
functionality to reach
infinitely far as the network infrastructure will allow.
[0061] In one embodiment, a method for multimodal biometric analysis allows
aggregating
measured biometric readings from two or more biometric readers in a meaningful
way. Each
biometric reader takes measured biometric readings and produces a percentage
score indicating
the likelihood for a match. A threshold is conventionally set for that
biometric reader such that
a score above that number would indicate a match (i.e., authentic user) and a
score below that
number would indicate no match (i.e., user not authentic). For example, a
fingerprint scanner
might compare a measured biometric reading against a stored biometric reading
to indicate a
80% score for a particular scan. If the threshold were 81%, the reader would
indicate that
person didn't match. If the threshold were 79%, the opposite would be true.

CA 02870254 2015-10-15
19
[0062] In this embodiment, a statistical distribution could be based
upon a past readings in
a test population or could dynamically use new readings to update the
statistical distribution. A
receiver operating characteristic (ROC) curve could be dynamically updated as
more readings
are gathered. As the biometric reader, the environment, the population, the
experience level of
the users all change so would the ROC curve. One embodiment gathers all the
scores for a
particular biometric reader and particular biometric matching algorithm to
form a statistical
distribution. For a particular biometric matching algorithm, this statistical
distribution could be
for a single biometric reader, a subset of the same biometric readers or all
biometric readers that
are the same. The readings used could culled by geography, location,
organization, or other
demographics to control the population used in the statistical distribution.
[0063] Some embodiments control what readings are part of the analysis
for the statistical
distribution. The period over which the statistical distribution could be
chosen in various
embodiments. Alternatively, the number of readings used in the statistical
distribution could
capped, for example, only using the most recent 5,000 readings. Yet another
embodiment could
weight the readings such that newer readings were favored over older readings.
Combinations
of theses approaches are also possible to properly emphasize the best
readings.
[0064] Using the statistical distribution in this embodiment, new scores
are determined that
are normalized according to the distribution. For example, the 80% score for a
particular scan
could be normalized to a normalized 89% score based upon the statistical
distribution. Each
score from two or more biometric clients is normalized before averaging
together each of the
normalized scores to get a composite biometric score. A composite threshold is
compared with
the composite biometric score to determine if there is a match. For example, a
first normalized
score might be 89% from a fingerprint reader and a second normalized score
might be 67%
from a face scanner. The composite biometric score from averaging the two
would be 78%. If
the composite threshold were 70%, a match would be determined.
[0065] Instead of a strait average, the average could be weighted
according to the accuracy
of a particular biometric reader and biometric matching algorithm. For
example, if a fingerprint
reader were more accurate, its normalized score would be more heavily weighted
than
normalized score from a face scanner.

CA 02870254 2015-10-15
[00661 There are other embodiments that use other algorithms to correct
for variations in
the distribution. For example, the threshold for each particular biometric
reader and biometric
matching algorithm could be influenced by the statistical distribution. The
scores and thresholds
could be separately averaged for each biometric reading. The average score
would be compared
5 to the average threshold to determine if there were a match. Some
embodiments could weigh
the averages of the scores and thresholds according to the accuracy of the
each particular
biometric reader and biometric matching algorithm.
[0067] Those skilled in the art will recognize alternative embodiments
given the foregoing
description. Accordingly, the foregoing description is for the purpose of
illustration and not
10 limitation. Certain features may be used independent of or in
combination with other features,
all would be apparent to one skilled in the art.

A single figure which represents the drawing illustrating the invention.

For a clearer understanding of the status of the application/patent presented on this page, the site Disclaimer , as well as the definitions for Patent , Administrative Status , Maintenance Fee  and Payment History  should be consulted.

Admin Status

Title Date
Forecasted Issue Date 2016-11-01
(22) Filed 2005-11-15
(41) Open to Public Inspection 2006-05-26
Examination Requested 2014-11-06
(45) Issued 2016-11-01

Maintenance Fee

Description Date Amount
Last Payment 2018-10-24 $250.00
Next Payment if small entity fee 2019-11-15 $125.00
Next Payment if standard fee 2019-11-15 $250.00

Note : If the full payment has not been received on or before the date indicated, a further fee may be required which may be one of the following

  • the reinstatement fee set out in Item 7 of Schedule II of the Patent Rules;
  • the late payment fee set out in Item 22.1 of Schedule II of the Patent Rules; or
  • the additional fee for late payment set out in Items 31 and 32 of Schedule II of the Patent Rules.

Payment History

Fee Type Anniversary Year Due Date Amount Paid Paid Date
Request for Examination $800.00 2014-11-06
Registration of Documents $100.00 2014-11-06
Registration of Documents $100.00 2014-11-06
Filing $400.00 2014-11-06
Maintenance Fee - Application - New Act 2 2007-11-15 $100.00 2014-11-06
Maintenance Fee - Application - New Act 3 2008-11-17 $100.00 2014-11-06
Maintenance Fee - Application - New Act 4 2009-11-16 $100.00 2014-11-06
Maintenance Fee - Application - New Act 5 2010-11-15 $200.00 2014-11-06
Maintenance Fee - Application - New Act 6 2011-11-15 $200.00 2014-11-06
Maintenance Fee - Application - New Act 7 2012-11-15 $200.00 2014-11-06
Maintenance Fee - Application - New Act 8 2013-11-15 $200.00 2014-11-06
Maintenance Fee - Application - New Act 9 2014-11-17 $200.00 2014-11-06
Maintenance Fee - Application - New Act 10 2015-11-16 $250.00 2015-10-08
Final $300.00 2016-09-12
Maintenance Fee - Application - New Act 11 2016-11-15 $250.00 2016-10-12
Maintenance Fee - Patent - New Act 12 2017-11-15 $250.00 2017-10-25
Maintenance Fee - Patent - New Act 13 2018-11-15 $250.00 2018-10-24
Current owners on record shown in alphabetical order.
Current Owners on Record
IMAGEWARE SYSTEMS, INC.
Past owners on record shown in alphabetical order.
Past Owners on Record
None
Past Owners that do not appear in the "Owners on Record" listing will appear in other documentation within the application.

To view selected files, please enter reCAPTCHA code :




Filter Download Selected in PDF format (Zip Archive)
Document
Description
Date
(yyyy-mm-dd)
Number of pages Size of Image (KB)
Abstract 2014-11-06 1 18
Description 2014-11-06 19 1,069
Claims 2014-11-06 2 34
Drawings 2014-11-06 11 227
Representative Drawing 2015-02-05 1 11
Cover Page 2015-02-09 2 48
Claims 2015-10-15 3 81
Description 2015-10-15 20 1,119
Cover Page 2016-10-14 2 47
Correspondence 2014-11-17 1 23
Correspondence 2014-12-15 6 206
Correspondence 2015-01-28 1 148
Prosecution-Amendment 2014-11-06 2 58
Correspondence 2015-02-17 4 219
Prosecution-Amendment 2015-04-15 4 252
Prosecution-Amendment 2015-10-15 30 1,463
Correspondence 2016-09-12 2 66