Canadian Patents Database / Patent 2588078 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 2588078
(54) English Title: MULTIMODAL BIOMETRIC PLATFORM
(54) French Title: PLATE-FORME BIOMETRIQUE MULTIMODALE
(51) International Patent Classification (IPC):
  • G06K 9/00 (2006.01)
  • G05B 19/00 (2006.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 LLP
(74) Associate agent:
(45) Issued: 2015-03-17
(86) PCT Filing Date: 2005-11-15
(87) Open to Public Inspection: 2006-05-26
Examination requested: 2010-12-30
(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 (11) includes a
plurality of biometric clients
(13a-13d). Each of the biometric clients may include devices for capturing
biometric images of a plurality of types. The system includes
a router (15) 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 (21a-21d) 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

L'invention concerne un système d'identification au d'authentification biométrique multimodal comprenant une pluralité de clients biométriques. Chacun des clients biométriques peut comprendre des dispositifs destinés à capturer des images biométriques d'une pluralité de types. Ledit 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 de multiples 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.


THE EMBODIMENTS OF THE INVENTION IN WHICH AN EXCLUSIVE
PROPERTY OR PRIVILEGE IS CLAIMED ARE DEFINED AS FOLLOWS:

1. A biometric system, which comprises:
a biometric client, said biometric client including means for capturing
biometric images in a plurality of modes;
a router in communication with said biometric client to receive biometric
images from said biometric client; and,
a plurality of biometric matching engines in communication with said router to

receive biometric images from said router, wherein said plurality of biometric

matching engines including means for processing biometric images in a
plurality of modes, wherein:
said plurality of biometric matching engines comprise:
a first group of biometric matching engines, wherein each
biometric matching engine of said first group being configured
to process a first set of biometric image types, and
a second group of biometric matching engines, wherein each
biometric matching engine of said second group being
configured to process a second set of biometric image types; and
said router is configurable to operate in a mode where a biometric
template is sent to each biometric matching engine of said first group
for storing.

19


2. The biometric system as claimed in claim 1, wherein said plurality of
biometric
matching engines include:
means for creating biometric templates from biometric images received from
said router.
3. The biometric system as claimed in claim 2, wherein said plurality of
biometric
matching engines include:
means for sending to said router biometric templates.
4. The biometric system as claimed in claim 1, wherein said plurality of
biometric
matching engines include:
means for caching biometric templates received from said router.
5. The biometric system as claimed in claim 1, wherein said plurality of
biometric
matching engines include means for caching biometric templates in physical
memory.
6. The biometric system as claimed in claim 1, wherein said plurality of
biometric
matching engines include means for comparing cached biometric templates with
probe
template.
7. The biometric system as claimed in claim 1, wherein said plurality of
biometric
matching engines include means for normalizing scores resulting from
comparison of
cached templates with probe templates.
8. The biometric system as claimed in claim 1, wherein said plurality of
biometric
matching engines include means for sending to said router scores resulting
from
comparison probe templates with cached templates.



9. The biometric system as claimed in claim 8, wherein said router includes
means for
sending to said biometric client scores received from said biometric matching
engine.
10. The biometric system as claimed in claim 1, wherein said plurality of
biometric
matching engines include:
a first biometric processor for comparing biometric templates of a first type
and
returning scores based on comparison of biometric templates of said first
type;
a first biometric plugin coupled to said first biometric processor;
a second biometric processor for comparing biometric templates of a second
type and returning scores based on comparison of biometric templates of said
second type; and,
a second biometric plugin coupled to said second biometric processor.
11. A method of processing multimodal biometric data, which comprises:
receiving at a router multimodal biometric enrollment data, said multimodal
biometric enrollment data comprising a biometric image of a first type and a
biometric image of a second type;
sending said biometric image of said first type and a biometric image of said
second type to one of a group of multimodal biometric matching engines;
creating from said biometric image of said first type a first biometric
template
and from said biometric image of said second type a second biometric template;
sending said first and second biometric templates to said router; and

21



creating each biometric template of first and second types at each biometric
matching engine of said group.
12. The method as claimed in claim 11, including:
striping biometric templates across the multimodal biometric matching engines
of said group.
13. The method as claimed in claim 12, wherein striping comprises:
caching a biometric template at a single biometric matching engine of said
group.
14. The method as claimed in claim 12, including:
sending a target image of said first type and a target image of said second
type
to each biometric matching engine of said group for processing.
15. The method as claimed in claim 11, including:
mirroring biometric templates across the multimodal biometric matching
engines of said group.
16. The method as claimed in claim 15 , wherein mirroring includes:
caching each biometric template at each biometric matching engine of said
group.
22


17. The method as claimed in claim 15, including:
sending a target image of said first type and a target image of said second
type
to a selected biometric matching engine of said group for processing.
23

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

CA 02588078 2007-05-16
WO 2006/055575
PCT/US2005/041393
MULTIMODAL BIOMETRIC PLATFORM
BACKGROUND OF THE INVENTION
[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 more accurate than others. It is estimated that
approximately 5% of

CA 02588078 2007-05-16
WO 2006/055575
PCT/US2005/041393
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.
[0006] 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 OF THE INVENTION
[0008] The present invention provides a multimodal biometric identification
and/or
authentication system. A system according to the present invention 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
for 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 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.
2

CA 02588078 2007-05-16
WO 2006/055575
PCT/US2005/041393
[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] According to the present invention, 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
the 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 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,
preferably in physical memory.
3

CA 02588078 2007-05-16
WO 2006/055575
PCT/US2005/041393
[0012] 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, the present invention provides
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 a 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.
[0014] In a second embodiment, the system uses 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 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
4

CA 02588078 2013-10-15
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.
[0014a] According to another embodiment, there is provided a biometric system,
which
comprises: a biometric client, the biometric client including means for
capturing biometric
images in a plurality of modes; a router in communication with the biometric
client to receive
biometric images from the biometric client; and, a plurality of biometric
matching engines in
communication with the router to receive biometric images from the router,
wherein the
plurality of biometric matching engines including means for processing
biometric images in a
plurality of modes. The plurality of biometric matching engines comprise: a
first group of
biometric matching engines, wherein each biometric matching engine of the
first group being
configured to process a first set of biometric image types, and a second group
of biometric
matching engines, wherein each biometric matching engine of the second group
being
configured to process a second set of biometric image types. The router is
configurable to
operate in a mode where a biometric template is sent to each biometric
matching engine of the
first group for storing.
[0014b] The plurality of biometric matching engines may include means for
creating
biometric templates from biometric images received from the router.
[0014c] The plurality of biometric matching engines may include means for
sending to the
router biometric templates.
[0014d] The plurality of biometric matching engines may include means for
caching
biometric templates received from the router.
[0014e] The plurality of biometric matching engines may include means for
caching
biometric templates in physical memory.
[0014f] The plurality of biometric matching engines may include means for
comparing
cached biometric templates with probe template.
5

CA 02588078 2013-10-15
[0014g] The plurality of biometric matching engines may include means for
normalizing
scores resulting from comparison of cached templates with probe templates.
[0014h] The plurality of biometric matching engines may include means for
sending to the
router scores resulting from comparison probe templates with cached templates.
[00141] The router may include means for sending to the biometric client
scores received
from the biometric matching engine.
[0014j] The plurality of biometric matching engines may include: a first
biometric processor
for comparing biometric templates of a first type and returning scores based
on comparison of
biometric templates of the first type; a first biometric plugin coupled to the
first biometric
processor; a second biometric processor for comparing biometric templates of a
second type
and returning scores based on comparison of biometric templates of the second
type; and, a
second biometric plugin coupled to the second biometric processor.
[0014k] According to another embodiment, there is provided a method of
processing
multimodal biometric data, which comprises: receiving at a router multimodal
biometric
enrollment data, the multimodal biometric enrollment data comprising a
biometric image of a
first type and a biometric image of a second type; sending the biometric image
of the first type
and a biometric image of the second type to one of a group of multimodal
biometric matching
engines; creating from the biometric image of the first type a first biometric
template and from
the biometric image of the second type a second biometric template; sending
the first and
second biometric templates to the router; and creating each biometric template
of first and
second types at each biometric matching engine of the group.
[00141] The method may include striping biometric templates across the
multimodal
biometric matching engines of the group.
[0014m] Striping may comprise caching a biometric template at a single
biometric matching
engine of the group.
[0014n] The method may include sending a target image of the first type and a
target image
of the second type to each biometric matching engine of the group for
processing.
5a

CA 02588078 2013-10-15
1001401 The method may include mirroring biometric templates across the
multimodal
biometric matching engines of the group.
[0014p] Mirroring may include caching each biometric template at each
biometric matching
engine of the group.
[0014q] The method may include sending a target image of the first type and a
target image
of the second type to a selected biometric matching engine of the group for
processing.
BRIEF DESCRIPTION OF THE DRAWINGS
[0015] Figure 1 is a block diagram of an embodiment of the present invention.
[0016] Figure 2 is a block diagram of an embodiment of a biometric matching
engine
according to the present invention.
[0017] Figure 3 is block diagram of an embodiment of a biometric client
according to the
present invention.
[0018] Figure 4 is a block diagram illustrating biometric matching
engine grouping
according to the present invention.
[0019] Figure 5 is a flowchart of an embodiment of biometric matching engine
enrollment
processing according to the present invention.
[0020] Figure 6 is a flowchart of an embodiment of biometric matching engine
template
caching according to the present invention.
[0021] Figure 7 is a flowchart of an embodiment of biometric matching engine
search
processing according to the present invention.
[0022] Figure 8 is a flowchart of an embodiment of router enrollment
processing according
to the present invention.
[0023] Figure 9 is a flowchart of an embodiment of router search processing
according to
the present invention.
[0024] Figure 10 illustrates an embodiment of a search pruning table according
to the
present invention.
5b

=
CA 02588078 2013-10-15
100251 Figure 11 is a flowchart of an embodiment of search pruning according
to the
present invention.
[00261 Figures 12A and 12B comprise a flowchart of an embodiment of
statistical
normalization according to the present invention.
5c

CA 02588078 2007-05-16
WO 2006/055575
PCT/US2005/041393
[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
according to the present invention.
DETAILED DESCRIPTION OF THE INVENTION
[0029] Referring now to the drawings, and first to Figure 1, an embodiment of
a system
according to the present invention 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 the present invention. Router has associated therewith storage 19 for
storing demographic
data.
[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 present invention. 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
6

CA 02588078 2007-05-16
WO 2006/055575
PCT/US2005/041393
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.
[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 (AFTS) 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.
7

CA 02588078 2007-05-16
WO 2006/055575
PCT/US2005/041393
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, according to the present invention, a
biometric
matching engine may comprise different numbers and combinations of SDKs and
plugins.
[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
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 infon-nation 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
8

CA 02588078 2007-05-16
WO 2006/055575
PCT/US2005/041393
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.
[0041] 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 - 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 invention 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 router's
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
9

CA 02588078 2007-05-16
WO 2006/055575
PCT/US2005/041393
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 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 checks, 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

CA 02588078 2007-05-16
WO 2006/055575
PCT/US2005/041393
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
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
nolinalize 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
11

CA 02588078 2007-05-16
WO 2006/055575
PCT/US2005/041393
sense arbitrary. In order to combine scores and produce meaningful multimodal
results
according to the present invention, 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 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.
[00511 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 lDENTIXTm 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
12

CA 02588078 2007-05-16
WO 2006/055575
PCT/US2005/041393
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 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 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 record IDs that have
passed each
threshold.
[0053] 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
represent,
respectively, record ID numbers. Thus, indices i and k represent unique
individuals enrolled
in the system. Indices j and 1 represent template instances enrolled for an
individual. Thus,
template ij represents the jth template stored in association with the ith
individual. According
to the present invention, 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
13

CA 02588078 2007-05-16
WO 2006/055575
PCT/US2005/041393
that are known to represent matches. After putting the score in the match
category at block
165, the system increments index 1 by one as indicated at block 167 and tests,
at decision
block 169 ifl 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
the 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
14

CA 02588078 2007-05-16
WO 2006/055575
PCT/US2005/041393
of 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 invention 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 invention. 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
at 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 ifl 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 ifl is greater than M. If not, processing returns
to block 237.
Processing 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

CA 02588078 2007-05-16
WO 2006/055575
PCT/US2005/041393
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 present invention overcomes
the
shortcomings of the prior art. The system completely and securely manages
personal
information and images for any given individual. The system efficiently
manages 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 provides its advantages through a plugin based
architecture, which
enables the addition or switching of biometric plugins to occur easily. The
system operates
via a distributed architecture consisting of a router and at least one query,
which are
interconnected via a simple TCP/IP network. System operations are controlled
via a client
SDK, which also makes connections to the router via a TCP/IP connection.
Commands are
data transfer is 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.
[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 of this
16

CA 02588078 2007-05-16
WO 2006/055575
PCT/US2005/041393
invention 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 be
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
be 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.
[0066] 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 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.
17

CA 02588078 2007-05-16
WO 2006/055575
PCT/US2005/041393
[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
limitation. Certain features may be used independent of or in combination with
other
features, all would be apparent to one skilled in the art.
18

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 2015-03-17
(86) PCT Filing Date 2005-11-15
(87) PCT Publication Date 2006-05-26
(85) National Entry 2007-05-16
Examination Requested 2010-12-30
(45) Issued 2015-03-17

Abandonment History

Abandonment Date Reason Reinstatement Date
2008-11-17 FAILURE TO PAY APPLICATION MAINTENANCE FEE 2009-11-09
2010-11-15 FAILURE TO REQUEST EXAMINATION 2010-12-30
2014-08-21 FAILURE TO PAY FINAL FEE 2014-11-06

Maintenance Fee

Last Payment of $450.00 was received on 2020-11-16


 Upcoming maintenance fee amounts

Description Date Amount
Next Payment if small entity fee 2021-11-15 $229.50
Next Payment if standard fee 2021-11-15 $459.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;
  • the late payment fee; or
  • additional fee to reverse deemed expiry.

Patent fees are adjusted on the 1st of January every year. The amounts above are the current amounts if received by December 31 of the current year. Please refer to the CIPO Patent Fees web page to see all current fee amounts.

Payment History

Fee Type Anniversary Year Due Date Amount Paid Paid Date
Application Fee $400.00 2007-05-16
Maintenance Fee - Application - New Act 2 2007-11-15 $100.00 2007-05-16
Registration of a document - section 124 $100.00 2007-08-15
Registration of a document - section 124 $100.00 2007-08-15
Reinstatement: Failure to Pay Application Maintenance Fees $200.00 2009-11-09
Maintenance Fee - Application - New Act 3 2008-11-17 $100.00 2009-11-09
Maintenance Fee - Application - New Act 4 2009-11-16 $100.00 2009-11-09
Maintenance Fee - Application - New Act 5 2010-11-15 $200.00 2010-10-15
Reinstatement - failure to request examination $200.00 2010-12-30
Request for Examination $800.00 2010-12-30
Maintenance Fee - Application - New Act 6 2011-11-15 $200.00 2011-10-27
Maintenance Fee - Application - New Act 7 2012-11-15 $200.00 2012-10-11
Maintenance Fee - Application - New Act 8 2013-11-15 $200.00 2013-11-06
Maintenance Fee - Application - New Act 9 2014-11-17 $200.00 2014-10-27
Reinstatement - Failure to pay final fee $200.00 2014-11-06
Final Fee $300.00 2014-11-06
Maintenance Fee - Patent - New Act 10 2015-11-16 $250.00 2015-10-08
Maintenance Fee - Patent - 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
Maintenance Fee - Patent - New Act 14 2019-11-15 $250.00 2019-10-23
Maintenance Fee - Patent - New Act 15 2020-11-16 $450.00 2020-11-16
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
DLAB, DANIEL
LAU, JOHANN H.
MILLER, JAMES S.
WILLIS, WILLIAM FREDERIC
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

Document
Description
Date
(yyyy-mm-dd)
Number of pages Size of Image (KB)
Abstract 2007-05-16 1 70
Claims 2007-05-16 7 299
Drawings 2007-05-16 11 264
Description 2007-05-16 18 1,138
Representative Drawing 2007-07-26 1 12
Cover Page 2007-07-27 2 50
Claims 2012-11-13 5 209
Description 2013-10-15 21 1,240
Claims 2013-10-15 5 122
Cover Page 2015-02-12 2 50
Abstract 2015-02-13 1 62
Assignment 2007-05-16 2 102
Correspondence 2007-07-25 1 20
Correspondence 2007-08-15 2 60
Assignment 2007-08-15 10 362
Correspondence 2007-08-15 1 52
Prosecution-Amendment 2010-12-30 1 41
Prosecution-Amendment 2012-05-29 2 63
Prosecution-Amendment 2013-04-12 3 94
Prosecution-Amendment 2012-11-13 3 80
Correspondence 2013-10-15 5 172
Prosecution-Amendment 2013-10-15 17 539
Correspondence 2013-10-22 1 15
Correspondence 2013-10-22 1 17
Fees 2014-10-27 2 81
Prosecution-Amendment 2014-11-06 3 112
Correspondence 2014-11-06 3 110
Correspondence 2015-01-13 1 27
Correspondence 2015-02-17 4 219