DE69928297T2 - Verfahren und system zum vergleichen von fingerabdruckschablonen - Google Patents

Verfahren und system zum vergleichen von fingerabdruckschablonen Download PDF

Info

Publication number
DE69928297T2
DE69928297T2 DE69928297T DE69928297T DE69928297T2 DE 69928297 T2 DE69928297 T2 DE 69928297T2 DE 69928297 T DE69928297 T DE 69928297T DE 69928297 T DE69928297 T DE 69928297T DE 69928297 T2 DE69928297 T2 DE 69928297T2
Authority
DE
Germany
Prior art keywords
minutia
measured
data blocks
template
neighborhood
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69928297T
Other languages
English (en)
Other versions
DE69928297D1 (de
Inventor
P. Anthony RUSSO
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Precise Biometrics AB
Original Assignee
Precise Biometrics AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=23395494&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE69928297(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Precise Biometrics AB filed Critical Precise Biometrics AB
Application granted granted Critical
Publication of DE69928297D1 publication Critical patent/DE69928297D1/de
Publication of DE69928297T2 publication Critical patent/DE69928297T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

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

Description

  • GEBIET DER ERFINDUNG
  • Diese Erfindung betrifft Fingerabdruckverifikation. Insbesondere betrifft diese Erfindung Verfahren zum Vergleichen von Fingerabdruckschablonen und deren Strukturen.
  • HINTERGRUND DER ERFINDUNG
  • Biometrische Identifikation wird zur Verifizierung der Identität einer Person durch digitales Messen ausgewählter Merkmale bestimmter physikalischer Eigenschaften und Vergleichen dieser Messwerte mit den für die Person in einer Bezugsdatenbank, oder manchmal in einer von der Person mitgeführten SmartCard gespeicherten verwendet. Physikalische Eigenschaften, die verwendet werden, umfassen Fingerabdrücke, Sonogramme, die Geometrie der Hand, das Muster von Blutgefäßen auf dem Handgelenk und auf der Retina des Auges, die Topografie der Iris des Auges, Gesichtszüge und die Schreibdynamik einer Unterschrift und das Tippen auf einer Tastatur.
  • Der Fingerabdruck ist einer der am häufigsten eingesetzten physikalischen Merkmale in der biometrischen Identifikation. Fingerabdrücke werden als die zuverlässigste Mittel zum Identifizieren von Personen aufgrund von zwei außergewöhnlichen Merkmalen verwendet; nämlich, dass sie über die gesamte Lebensdauer unverändert bleiben und sich von Person zu Person unterscheiden. Fingerabdrücke bestehen aus erhabenen Reibungsgraten der Haut die von vertieften Tälern der Haut getrennt werden. Fingerabdruck-"Minutiae" sind üblicherweise als Grat- bzw. Rillenenden oder Rillenverzweigungen, wo sich eine Rille in zwei Rillen aufspaltet, definiert.
  • Da das Vergleichen eines Fingerabdruckes als ein Bild eine große Dateikapazität zum Speichern der gemessenen und Bezugsmerkmale und eine komplexe Berechnung zum Vergleichen gemessener Merkmale mit Bezugsmerkmalen erfordern kann, wird die Fingerabdruckidentifikation unter Verwendung einer Positionsbeziehung von Merkmalen oder Minutiae ausgeführt, die aus dem Fingerabdruckbild extrahiert werden. Die ein Fin gerabdruckbild repräsentierenden Minutiae werden digitalisiert und in einem digitalen Speicher gespeichert, welcher ein Nur-Lese-Speicher, ein Magnetband oder dergleichen sein kann. Ein in dieser Weise digitalisierter Fingerabdruck kann mit in dem Speicher gespeicherten Bezugsfingerabdrücken verglichen werden. Damit der Vergleich funktioniert, müssen der Bezugsfingerabdruck und der gemessene Fingerabdruck extrahiert, charakterisiert und so digitalisiert werden, dass die Fingerabdruckschablonen dieselbe Information enthalten und dasselbe Format aufweisen.
  • Eine Anwendung einer Fingerabdruckidentifikation ist die Verwendung des Fingerabdruckes zum Entsperren einer SmartCard, welche oft verschlüsselte Information enthält. Derzeit ist die Eingabe einer PIN (Personal Identification Number) durch den Benutzer erforderlich, bevor die verschlüsselte Information aus der SmartCard entnommen und verwendet werden kann. Die Verwendung einer PIN hat viele Nachteile. Beispielsweise steht die Buchführungs- oder Kartenausgabeorganisation erheblichen Verwaltungskosten bei der Handhabung der geheimen Codes gegenüber, und die Kartenbesitzer müssen sich die geheimen Codes merken.
  • EP-A-0 159 037 beschreibt ein Fingerabdruckidentifikationssystem, das eine Eingabevorrichtung, eine Steuereinheit, einen Arbeitsspeicher, einen Kartenleser und eine Speicherkarte umfasst. Die Speicherkarte speichert Bezugsfingerabdruckinformation des Benutzers. Die Bezugsfingerabdruckinformation umfasst eine Vielzahl von Minutiae. Für jede Minutia speichert die Speicherkarte deren Position, deren Richtung und ihre Beziehung zu benachbarten Minutiae. Wenn eine Identifikation eines Benutzers durchgeführt werden soll, erzeugt die Eingabevorrichtung ein Bild des Fingerabdruckes des Benutzers. Der Kartenleser liest die Bezugsfingerabdruckinformation aus der Speicherkarte des Benutzers aus und lädt diese in den Arbeitsspeicher. Die Speichereinheit vergleicht dann die Bezugsfingerabdruckinformation mit dem durch die Eingabevorrichtung erzeugten Fingerabdruckbild.
  • WO-A-99/26184 beschreibt biometrische Techniken, in welchen aus mehreren Bytes bestehende biometrische Schablonen miteinander verglichen werden. Der Vergleich zwischen einer gemessenen Fingerabdruckschablone und einer Bezugsfingerabdruckschablone wird innerhalb einer SmartCard ausgeführt, welche auch die Bezugsschablone speichert.
  • US-A-5 363 453 beschreibt ein nicht auf Minutiae beruhendes Fingerabdruckidentifikationssystem, in welcher der Vergleich zwischen einer gemessenen und einer Bezugsschablone innerhalb eines Kartenlesers ausgeführt wird, wobei die Schablonen numerische Matrizen sind, die Fingerabdruckdaten ohne Minutiae speichern, und der Vergleich das aufeinander folgende Vergleichen eines ersten Elementes einer Bezugsschablone mit einem entsprechenden ersten Element einer gemessenen Schablone umfasst, und dann den Vergleich entsprechender zweiter Elemente usw.
  • Einige Datenschutzgesetze, beispielsweise die Datenschutzgesetze in Europa, erfordern, dass sensitive Information, wie z.B. eine Bezugsfingerabdruckschablone, auf der SmartCard in einer Weise gespeichert wird, dass sie die Karte nicht verlassen kann, ohne dass zuerst die Karte mit einer PIN entsperrt wird. Daher muss für ein in Europa praktisch einsetzbares Fingerabdruckvergleichsverfahren der Fingerabdruckschablonen-Vergleichsalgorithmus durch einen Mikroprozessor in der SmartCard durchgeführt werden. Andernfalls muss die SmartCard durch irgendeinen anderen Mechanismus, wie z.B. eine PIN, entsperrt werden, bevor die Bezugsfingerabdruckschablone gelesen werden kann. Die Schwierigkeit der Ausführung eines herkömmlichen Fingerabdruckschablonen-Vergleichsalgorithmus auf einer SmartCard beruht hauptsächlich auf den eingeschränkten Rechenfähigkeiten und Speicher einer herkömmlichen SmartCard. Beispielsweise enthält eine herkömmliche SmartCard typischerweise weniger als 512 Bytes an RAM (wobei 256 Bytes typisch sind) und zwischen 1 Kilobyte und 16 Kilobyte Speicher. Ein 8-Bit-RISC (Reduced Instruction Set Computer) Mikroprozessor hat einen Takt zwischen 1 Megahertz und 10 Megahertz, was angesichts des Umfangs der erforderlichen Berechnungen ziemlich langsam ist, um einen Vergleich zwischen einem gemessenen Fingerabdruck und einem Bezugsfingerabdruck auszuführen. Tatsächlich verhindern die Hardwareeinschränkungen die Verwendung eines Fingerabdruckes zum Entsperren von Daten aus SmartCards.
  • Zusätzlich zu den Hardwareeinschränkungen besteht ein weiteres wichtiges Auslegungskriterium in den Kosten. Das U.S. Patent Nr. 4,582,985 (hierin nachstehend das '985 Patent) mit dem Titel "Data Carrier", erteilt am 15. April 1986 an Bo Löfberg und hierin in seiner Gesamtheit durch Bezugnahme beinhaltet, beschreibt einen Datenträger eines Kartentyps. Gemäß dem '985 Patent enthält der Datenträger eine Fingerabdruck- Verifikationsvorrichtung zum Durchführen des Verifikationsprozesses. Die Verifikationsvorrichtung umfasst eine Sensorvorrichtung zum Erfassen einer Fingerspitze des Eigentümers und zum Erzielen einer entsprechenden Fingerabdrucklinieninformation. Es muss eine spezielle SmartCard verwendet werden, um die Sensorvorrichtung aufzunehmen, da eine herkömmliche SmartCard keine derartigen Einrichtungen bereitstellt. Zusätzlich ist, da die Fingerabdruck-Schablonenerzeugung, Speicherung und der Vergleich auf dem Datenträger erfolgen, der Mikroprozessor einer herkömmlichen SmartCard nicht angemessen. Somit muss eine spezielle SmartCard mit einem leistungsfähigeren Prozessor verwendet werden, wodurch die Kosten gesteigert werden.
  • Daher werden Systeme und Fingerabdruckschablonen-Vergleichsalgorithmen gebraucht, die durch einen Mikroprozessor mit geringem Speicher und geringerer Rechenkapazität ausgeführt werden können, um dadurch die Kosten der SmartCard auf einem akzeptablen Wert zu halten.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Gemäß einem ersten Aspekt betrifft die vorliegende Erfindung ein Verfahren zum Vergleichen von Fingerabdruckschablonen, gemäß Darstellung im Anspruch 1. Das Verfahren umfasst die Schritte: Bereitstellen einer in einer SmartCard gespeicherten Bezugsschablone, wobei die Bezugsschablone eine Vielzahl von Referenzdatenblöcken umfasst; Bereitstellen einer durch einen SmartCard-Leser gemessenen Schablone, wobei die gemessene Schablone eine Vielzahl gemessener Datenblöcke aufweist; wobei das Verfahren gekennzeichnet ist durch die weiteren Schritte: Laden eines von den gemessenen Datenblöcken über einen Kommunikationskanal in einen RAM auf der SmartCard; und Laden eines von den Bezugsdatenblöcken in den RAM und Vergleichen des einen von den Bezugsdatenblöcken mit dem einen von den gemessenen Datenblöcken.
  • Der Fingerabdruckschablonen-Vergleichsalgorithmus kann von einem Mikroprozessor mit kleinem Speicher und geringen Rechenkapazitäten durchgeführt werden.
  • Gemäß einem zweiten Aspekt betrifft die vorliegende Erfindung ein Fingerabdruck-Verifikationssystem gemäß Darstellung im Anspruch 11. Das System umfasst einen SmartCard-Leser umfasst, wobei der SmartCard-Leser umfasst: einen Fingerabdrucksensor; und einen ersten Mikroprozessor, wobei der erste Mikroprozessor eine gemessene Schablone mit einer Vielzahl gemessener Datenblöcke aus von dem Fingerabdrucksensor gelesenen Daten erzeugt; eine SmartCard, wobei die SmartCard umfasst: einen statischen Speicher, wobei der statische Speicher eine Bezugsschablone mit einer Vielzahl von Bezugsdatenblöcken speichert; einen Kommunikationskanal zwischen der SmartCard und dem SmartCard-Leser, dadurch gekennzeichnet, dass die SmartCard ferner umfasst: einen zweiten Mikroprozessor, wobei der zweite Mikroprozessor einen Vergleichsalgorithmus ausführt, um zu ermitteln, ob die gemessene Schablone mit der Bezugsschablone übereinstimmt, wobei der Vergleichsalgorithmus einen gemessenen Datenblock mit einem Bezugsdatenblock pro Zeitpunkt vergleicht, und einen RAM, wobei der RAM einen Bezugsdatenblock und einen gemessenen Datenblock während der Ausführung des Vergleichsalgorithmus speichert.
  • Gemäß einem dritten Aspekt betrifft die vorliegende Erfindung ein Fingerabdruck-Verifikationssystem gemäß Darstellung im Anspruch 19. Das System gemäß dem dritten Aspekt umfasst einen Fingerabdrucksensor; einen statischen Speicher, wobei der statische Speicher eine Bezugsschablone mit einer Vielzahl von Bezugsdatenblöcken speichert, wovon jeder Bezugsdatenblock eine Minutia repräsentiert; einen Mikroprozessor, wobei der Mikroprozessor eine gemessene Schablone aus von dem Fingerabdrucksensor gelesenen Daten erzeugt und einen Vergleichsalgorithmus ausführt, um zu ermitteln, ob die gemessene Schablone mit der Bezugsschablone übereinstimmt, wobei die gemessene Schablone eine Vielzahl gemessener Datenblöcke aufweist, wovon jeder gemessene Datenblock eine Minutia repräsentiert; und dadurch gekennzeichnet, dass das Fingerabdruck-Verifikationssystem ferner umfasst: einen Arbeitsspeicher, wobei der Arbeitsspeicher einen von den Bezugsdatenblöcken und einen von den gemessenen Datenblöcken während der Ausführung des Vergleichsalgorithmus speichert, und dadurch dass der Vergleichsalgorithmus einen gemessenen Datenblock mit einem Bezugsdatenblock zu dem Zeitpunkt speichert.
  • In einer Ausführungsform dieser Erfindung werden eine Bezugsfingerabdruckschablone und eine gemessene Fingerabdruckschablone aus einem Bezugsfingerabdruckbild bzw. einem zu verifizierenden Fingerabdruckbild erzeugt. Jede Schablone weist eine Vielzahl von Datenblöcken auf, wobei jeder Datenblock eine Minutia repräsentiert und einen Ort, einen Minutia-Winkel und eine Nachbarschaft umfasst. In einer Ausführungsform wird der Ort durch zwei Koordinaten (xj, yj) repräsentiert, wobei die Koordinaten einen Mittelpunkt (0, 0) an der oberen linken Ecke besitzen. Der Minutia-Winkel θj ist der Winkel zwischen der x-Achse und einer Linie tangential zu der Rillenlinie bei der Minutia. In einer Ausführungsform werden jede Koordinate und der Minutia-Winkel auf eine ausgewählte Anzahl von Bits quantisiert. Im Allgemeinen ist der Quantisierungsumfang eine Funktion des verfügbaren Speichers und des Grades der gewünschten Genauigkeit.
  • Die Nachbarschaft besteht aus einer vorbestimmten Anzahl von Nachbarschafts-Minutiae, welche für jede aus einem Fingerabdruckbild extrahierte Minutia ausgewählt werden. Jede Nachbarschafts-Minutia ist durch drei Positionsparameter bezüglich der ausgewählten Minutia gekennzeichnet. Die Positionsparameter umfassen einen Abstand und zwei Winkel.
  • In einer Ausführungsform wird eine optionale Nachbarschaftsbegrenzung um eine zufällig ausgewählte Minutia gezogen. In einer Ausführungsform werden, wenn die Anzahl der Nachbarschafts-Minutiae innerhalb der Nachbarschaftsbegrenzung kleiner als eine vorbestimmte Anzahl ist, alle Nachbarschafts-Minutiae innerhalb der Nachbarschaftsbegrenzung ausgewählt. In einer weiteren Ausführungsform wird eine vorbestimmte Anzahl der nächstliegenden Nachbar-Minutiae ausgewählt. In noch einer weiteren Ausführungsform wird eine vorbestimmte Anzahl von Nachbarschafts-Minutiae, welche die beste Verteilung um die zufällig ausgewählte Minutia ergibt, ausgewählt. In einer Ausführungsform werden die Minutiae mit dem größten Abstand voneinander ausgewählt. In einer weiteren Ausführungsform werden Minutiae, die sehr eng zusammen liegen, z.B. weniger als angenähert 10 Pixel zueinander, nicht ausgewählt. In einer weiteren Ausführungsform wird eine beliebige von den sehr nahe liegenden Minutiae ausgewählt. In einer Ausführungsform wird ein Quadrant beliebig unter Verwendung der zufällig ausgewählten Minutia als dem Mittelpunkt gezogen und eine vorbestimmte Anzahl von Minutiae wird aus jedem Quadranten ausgewählt.
  • Eine x-Achse wird in der Richtung der Linie tangential zu der Rille bei der zufällig ausgewählten Minutia gezogen. Eine y-Achse, senkrecht zu der x-Achse, wird gezogen. Die x-Achse und die y-Achse schneiden sich bei der zufällig ausgewählten Minutia. Somit hat die zufällig ausgewählte Minutia nun eine Position von (0, 0) und wird als die "Mittel punkts-Minutia" bezeichnet. Eine erste Linie wird zwischen der Mittelpunkts-Minutia und einer ihrer Nachbar-Minutiae gezogen. Die erste Linie hat einen Abstand di, welcher einer der die Nachbar-Minutia repräsentierenden Positionsparameter ist. Ein Winkel ϕi zwischen der ersten Linie und der x-Achse ist der zweite die Nachbar-Minutia repräsentierende Positionsparameter. Eine zweite Linie wird dann von der Nachbar-Minutia gezogen, so dass sie die x-Achse in der Richtung der Linie tangential zu der Rille der Nachbar-Minutia zu schneiden. Der Winkel ϕi zwischen der x-Achse und der zweiten Linie ist der dritte die Nachbar-Minutia repräsentierende Positionsparameter.
  • In einer Ausführungsform wird jeder Positionsparameter auf eine ausgewählte Anzahl von Bits quantisiert. Beispielsweise wird jeder Winkel ϕi und φi auf 6 Bits quantisiert und der Abstand di wird auf 5 Bits quantisiert.
  • Ein Datenblock aus jeder Fingerabdruckschablone wird in einen Arbeitsspeicher (RAM) zum Vergleichen geladen. In einer Ausführungsform werden die Datenblöcke sortiert, wobei jedoch eine derartige Sortierung optional ist. In einer Ausführungsform werden die Datenblöcke gemäß ihrer x-Koordinaten sortiert. In einer weiteren Ausführungsform werden die Datenblöcke gemäß ihrer y-Koordinaten sortiert. In einer Ausführungsform werden die Datenblöcke in der Bezugsschablone sortiert. In einer weiteren Ausführungsform werden die Datenblöcke in der gemessenen Schablone sortiert. In noch einer weiteren Ausführungsform werden sowohl die gemessene Schablone als auch die Bezugsschablone sortiert.
  • Jeder von den kennzeichnenden Parametern, d.h., der Ort, der Minutia-Winkel und die Nachbarschaft des zu vergleichenden gemessenen Datenblockes wird mit dessen entsprechenden Pendant in dem Bezugsdatenblock verglichen. Die Reihenfolge des Vergleichs kann variiert werden. Beispielsweise wird der Ortsparameter in den x-Koordinaten der gemessenen Minutiae zuerst mit den entsprechenden x-Koordinaten der Bezugs-Minutiae verglichen. In einer weiteren Ausführungsform wird der Ortsparameter in den y-Koordinaten der gemessenen Minutiae zuerst mit den entsprechenden y-Koordinaten der Bezugs-Minutiae verglichen. In einer Ausführungsform ist der Vergleich eine einfache Subtraktion. Wenn die Differenz für ein Parameterpaar gleich zu oder kleiner als ein vorbestimmter Schwellenwert ist, stimmen die Parameter überein. Wenn alle Parameter übereinstimmen, stimmen die Datenblöcke überein. Andernfalls stimmen, wenn einer der Parameter nicht übereinstimmt, die Datenblöcke nicht überein, und der nächste Satz der Datenblöcke wird verglichen.
  • Der Datenblockvergleich beginnt mit dem ersten Bezugsdatenblock und dem ersten gemessenen Datenblock und endet, wenn die vorbestimmte Anzahl von Datenblockvergleichen erreicht worden sind (d.h., wenn die Schablonen übereinstimmen), oder wenn alle Datenblockkombinationen verglichen worden sind. In einer Ausführungsform wird, wenn der erste Bezugsdatenblock und der erste gemessene Datenblock nicht übereinstimmen, der nächste gemessene Datenblock in den RAM zum Vergleich mit dem ersten Bezugsdatenblock geladen. Der Vorgang setzt sich fort, bis alle gemessenen Datenblöcke in der gemessenen Fingerabdruckschablone verglichen worden sind. Der nächste Bezugsdatenblock und der erste gemessene Datenblock werden dann zum Vergleichen in den RAM geladen. Der Vorgang setzt sich fort, bis alle Bezugsdatenblöcke verglichen worden sind. In einer weiteren Ausführungsform wird, wenn der erste Bezugsdatenblock nicht mit dem ersten gemessenen Datenblock übereinstimmt, der zweite Bezugsdatenblock in den RAM zum Vergleichen mit dem ersten gemessenen Datenblock geladen. Der Vorgang setzt sich fort, bis alle Bezugsdatenblöcke verglichen worden sind. Der zweite gemessene Datenblock und der erste Bezugsdatenblock werden dann in den RAM zum Vergleichen geladen. Der Vorgang setzt sich fort, bis alle gemessenen Datenblöcke verglichen worden sind.
  • In einer Ausführungsform, in welcher die Datenblöcke sortiert werden, wird der Vergleich zwischen einem Bezugsdatenblock und den restlichen unverglichenen gemessenen Datenblöcken beendet, wenn die Differenz zwischen dem Bezugsdatenblock und dem gemessenen Datenblock die Toleranz überschreitet. In einer Ausführungsform startet der nächste Vergleich mit dem nächsten Bezugsdatenblock und dem ersten übereinstimmenden gemessenen Datenblock.
  • In der alternativen Ausführungsform wird der Vergleich zwischen einem gemessenen Datenblock und dem restlichen nicht verglichenen Bezugsdatenblöcken beendet, wenn die Differenz zwischen dem gemessenen Datenblock und dem Bezugsdatenblock die Toleranz überschreitet. In einer Ausführungsform beginnt der nächste Vergleich mit dem nächsten Bezugsdatenblock und dem ersten übereinstimmenden gemessenen Datenblock.
  • In einer Ausführungsform werden die Nachbar-Minutiae in einer Nachbarschaft über den Abstand di sortiert. Der Nachbarschaftsvergleich beginnt mit dem nächsten Nachbarn in der Bezugsnachbarschaft und dem ersten Nachbarn in der gemessenen Nachbarschaft und endet, wenn die vorbestimmten Nachbarschaftsübereinstimmungen erreicht sind (d.h., die Nachbarschaften übereinstimmen), oder wenn alle Nachbarkombinationen verglichen worden sind. Jeder Bezugspositionsparameter wird mit seinem entsprechenden gemessenen Positionsparameter verglichen. In einer Ausführungsform wird der Vergleich mit einer einfachen Subtraktion ausgeführt. Wenn die Differenz eine vorbestimmte Toleranz erfüllt, stimmen die Parameter überein. Wenn alle Positionsparameter in der Nachbar-Minutia übereinstimmen, stimmen die Nachbar-Minutiae überein. Wenn einer der Positionsparameter nicht übereinstimmt, stimmen die Nachbar-Minutiae nicht überein.
  • In einer Ausführungsform ist die Bezugsfingerabdruckschablone in einem statischen Speicher in einer SmartCard gespeichert und der Fingerabdruckschablonen-Vergleichsalgorithmus wird in einem Mikroprozessor in der SmartCard durchgeführt. In einer Ausführungsform wird die Bezugsfingerabdruckschablone bei einem SmartCard-Leser erzeugt und gespeichert.
  • Der vorstehend beschriebene Fingerabdruckschablonen-Vergleichsalgorithmus kann mit einem Mikroprozessor mit kleinem Speicher und niedrigen Rechenkapazitäten ausgeführt werden, da der Vergleichsalgorithmus keine rechenintensiven Operationen erfordert und keine Vergleiche erfordert, die 8 Bit überschreiten.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 stellt ein SmartCard-System mit einem SmartCard-Leser zum Lesen einer SmartCard dar.
  • 2A stellt eine in Datenblöcke unterteilte Bezugsfingerabdruckschablone dar.
  • 2B stellt eine zu vergleichende in Datenblöcke unterteilte gemessene Fingerabdruckschablone dar.
  • 3 stellt dar, wie eine Minutia repräsentiert wird.
  • 4A stellt eine runde Nachbarschaftsbegrenzung dar.
  • 4B stellt eine quadratische Nachbarschaftsbegrenzung dar.
  • 4C stellt ein Verfahren einer Nachbarschaftsauswahl dar.
  • 4D stellt einen in einem komplexen Bereich zu repräsentierenden Winkel dar.
  • 4E stellt eine Ausführungsform eines Verfahrens einer Nachbarauswahl dar.
  • 5 stellt den Aufbau von Positionsparametern für eine Nachbar-Minutia dar.
  • 6 stellt zwei Nachbarschaften mit Fehlern zwischen diesen dar.
  • 7A stellt einen Bezugsdatenblock mit Orts-, Minutia-Winkel- und Nachbarschaftsparametern dar.
  • 7C stellt eine Bezugsnachbarschaft mit verschiedenen Positionsparametern dar.
  • Fig. D stellt eine gemessene Nachbarschaft mit verschiedenen Positionsparametern dar.
  • 8A stellt ein Flussdiagramm eines Verfahrens eines Schablonenvergleichs dar.
  • 8B stellt ein Flussdiagramm eines weiteren Verfahrens eines Schablonenvergleichs dar.
  • 9A stellt ein Flussdiagramm eines Verfahrens eines detaillierten Datenblockvergleichs dar.
  • 9B stellt ein Flussdiagramm eines Verfahrens eines detaillierten Datenblockvergleichs dar.
  • 9C stellt ein Flussdiagramm eines Verfahrens eines detaillierten Datenblockvergleichs dar.
  • 10 stellt ein Flussdiagramm eines Verfahrens eines detaillierten Nachbarschaftsvergleichs dar.
  • 11A stellt ein Flussdiagramm eines Verfahrens eines detaillierten Nachbarvergleichs dar.
  • 11B stellt ein Flussdiagramm eines Verfahrens eines detaillierten Nachbarschaftsvergleichs mit sortierten Nachbarn dar.
  • 12 stellt ein Flussdiagramm eines Verfahrens eines Fingerabdruck-Schablonenvergleichs in einer Mehrfachbenutzer-Situation dar.
  • Die Verwendung derselben Bezugszeichen in unterschiedlichen Figuren weist auf ähnliche oder gleiche Elemente hin.
  • DETAILLIERTE BESCHREIBUNG
  • Die nachstehende Beschreibung ist nur als veranschaulichend und nicht einschränkend gemeint. Weitere Ausführungsformen dieser Erfindung werden für den Fachmann auf dem Gebiet der Halbleiter-Verarbeitungstechniken in Anbetracht der nachstehenden Beschreibung offensichtlich sein.
  • 1 stellt eine Implementation der vorliegenden Erfindung dar. 1 stellt ein SmartCard-Lesersystem mit einer SmartCard 100 und einem SmartCard-Leser 110 dar. Die SmartCard 100 umfasst einen statischen Speicher 102 zum Speichern einer Bezugsfingerabdruckschablone, einen Mikroprozessor 104 zum Durchführen eines Fingerabdruckschablonen-Vergleichsalgorithmus und einen RAM (Arbeitsspeicher) 106. Der SmartCard-Leser 110 besitzt einen RAM 112 zum Speichern einer gemessenen Fingerabdruckschablone, einen Mikroprozessor 114 und einen Fingerabdrucksensor 116. In einer Ausführungsform ist der Fingerabdrucksensor 116 ein kapazitiver Fingerabdruck sensor. Der Fingerabdruckleser 110 kann eine eigenständige Einheit an einer Kasse sein, oder kann beispielsweise in einem ATM (Geldausgabeautomat) eingebaut sein.
  • Wenn ein Benutzer Zugang zu der SmartCard 100 wünscht, führt er/sie die SmartCard 100 in den SmartCard-Leser 110 ein. Der SmartCard-Leser fordert dann den Benutzer auf, seinen/ihren Finger auf den Fingerabdrucksensor 116 zu legen. Die Aufforderung kann entweder visuell oder hörbar erfolgen. Der Mikroprozessor 114 in dem SmartCard-Leser 110 digitalisiert dann das an dem Fingerabdrucksensor 116 gemessene elektrische Signal, erzeugt ein Fingerabdruckbild, extrahiert Minutiae aus dem Fingerabdruckbild, kennzeichnet jede Minutia, erzeugt eine Nachbarschaft für jede Minutia und erzeugt eine gemessene Fingerabdruckschablone aus den kennzeichnenden Parametern und der Nachbarschaft. Die gemessene Fingerabdruckschablone wird dann im RAM 112 gespeichert. Der Schablonenaufbau wird nachstehend im Detail diskutiert.
  • Minutiae können aus einem Fingerabdruck unter Verwendung beliebiger bekannter Verfahren extrahiert werden. Beispielsweise kann eine Rillenskelettierungstechnik verwendet werden. Diese Technik verwendet einen iterativen Prozess zum Verdünnen einer Rillenlinie, indem Pixel verworfen werden, welche keinen Einfluss auf die Kontinuität der Rillenlinie haben, bis eine 1-Pixel-Linie zurückbleibt, deren Endpunkt die Minutia ist. Weitere Typen von Minutia-Extraktionstechniken sind beispielsweise in dem U.S. Patent Nr. 4,646,352 mit dem Titel "Method and Device for Matching Fingerprints with Precise Minutia Pairs Selected From Coarse Pairs", erteilt am 24. Februar 1987 an Asai et al. und in dem U.S. Patent Nr. 4,135,147 mit dem Titel "Minutiae Pattern Matcher", erteilt am 16. Januar 1979 an Riganati et al. beschrieben. Die Minutia-Extraktionstechnik wird in dieser Anmeldung nicht im Detail beschrieben, da sie nicht Teil der Erfindung ist.
  • Der SmartCard-Leser 110 sendet dann die gemessene Fingerabdruckschablone über einen Kommunikationskanal 120 mit einer ausgewählten Geschwindigkeit, typischerweise 9,6 Kilobit/Sekunde oder 9600 Baud an die SmartCard 100. Der Mikroprozessor 104 in der SmartCard 100 empfängt die gemessene Fingerabdruckschablone aus dem SmartCard-Leser 110, liest die Bezugsfingerabdruckschablone aus dem statischen Speicher 102 in den RAM 106 Block für Block nach Bedarf ein und führt einen Fingerabdruckschablonen-Vergleichsalgorithmus aus, um die zwei Fingerabdruckschablonen zu vergleichen.
  • Eine Sammlung von Datenblöcken, die einen Fingerabdruck, entweder einen Bezugsabdruck oder gemessenen repräsentieren, wird hierin als eine Fingerabdruckschablone bezeichnet. Ein Datenblock besteht aus Information einer ihm entsprechenden extrahierten Minutia einschließlich Ort, Minutia-Winkel und Nachbarschaft, welche nachstehend diskutiert werden. Die 2A, 2B, 3, 4A4E, 5, 6, und 7A7D stellen im Detail dar, wie eine Fingerabdruckschablone aufgebaut wird. 2A stellt eine Bezugsfingerabdruckschablone 200 mit mehreren Datenblöcken 201, 202, 203 usw. dar. Typischerweise umfasst die Bezugsfingerabdruckschablone 200 50 Datenblöcke, d.h., typischerweise werden 50 Minutiae aus einem Fingerabdruckbild extrahiert. In einer Ausführungsform ist die minimale Anzahl der erforderlichen Minutiae gleich 10. Die minimale Anzahl der Minutiae ist im Allgemeinen durch die erforderliche Übereinstimmungsgenauigkeit bestimmt. In einer Ausführungsform ist die maximal zulässige Anzahl von Minutiae gleich 128. Die Anzahl 128 wird als die maximale Anzahl von Minutiae gewählt, da bei einer typischen Anzahl von 50, 128 einen ausreichenden Bereich der Anzahl von Minutiae ergibt, die aus einem Fingerabdruckbild extrahiert werden können. Natürlich können die minimale und die maximale Anzahl extrahierter Minutiae passend zu einer speziellen Anwendung modifiziert werden. Die Bezugsfingerabdruckschablone 200 wird beispielsweise in einem statischen Speicher 102 auf der SmartCard (100) gespeichert.
  • 2B stellt eine gemessene Fingerabdruckschablone 210 mit mehreren Datenblöcken 211, 212, 213 usw. dar. In gleicher Weise umfasst die gemessene Fingerabdruckschablone 210 typischerweise 50 Datenblöcke. Die gemessene Fingerabdruckschablone 210 wird beispielsweise durch den SmartCard-Leser 110 erzeugt und im RAM 112 in dem SmartCard-Leser 110 gespeichert. Die Anzahl der aus dem gemessenen Fingerabdruck extrahierten Datenblöcke kann sich von der Anzahl der aus einem Bezugsfingerabdruck extrahierten Datenblöcke aufgrund möglicherweise falscher Minutiae unterscheiden. Zusätzlich kann sich die Anzahl der aus einem gemessenen Fingerabdruck extrahierten Datenblöcke von der Anzahl der aus einem Bezugsfingerabdruck extrahierten Datenblöcke unterscheiden, da nur ein Teilfingerabdruck gelesen wird. Jedoch kann trotzdem eine Übereinstimmung vorliegen, wenn die Anzahl von Fingerabdruck-Datenblockübereinstimmungen einer vorbestimmten Anzahl von Fingerabdruck-Datenblockübereinstimmungen genügt. Daher muss die Anzahl der Fingerabdruckda tenblöcke in der gemessenen Fingerabdruckschablone nicht dieselbe wie die Anzahl von Fingerabdruckdatenblöcken in der Bezugsfingerabdruckschablone sein.
  • In einer Ausführungsform enthalten alle Datenblöcke sowohl in der Bezugsfingerabdruckschablone 200 als auch der gemessenen Fingerabdruckschablone 210 dieselbe Anzahl von Bits. Ein Datenblock wird für jede einzelne aus einem Fingerabdruckbild extrahierte Minutia aufgebaut. Daher ist die Anzahl von jede Fingerabdruckschablone bildenden Datenblöcken gleich der Anzahl der aus einem Fingerabdruckbild extrahierten Minutiae. Beispielsweise enthält, wenn 80 Minutiae aus einem Fingerabdruckbild extrahiert werden, die Fingerabdruckschablone 80 Datenblöcke.
  • 3 stellt dar, wie jede Minutia repräsentiert wird. Eine x-Achse und eine y-Achse werden so konstruiert, dass sich der Punkt (0, 0) an der oberen linken Ecke eines Fingerabdruckbildes befindet. Die x-Achse und die y-Achse werden unabhängig von der Drehung oder der Translation des Fingerabdruckes gezogen, wie es nachstehend diskutiert wird. Jede Minutia in einem Fingerabdruckbild ist durch einen Ort (xj, yj) und einen Minutia-Winkel θj gekennzeichnet, wobei j die Anzahl der aus einem Fingerabdruckbild extrahierten Minutiae ist. Der Ort (xj, xj) ist der Ort der Minutia j in Bezug auf die x- und y-Achse. Der Minutia-Winkel θj ist der Winkel zwischen der x-Achse und einer Linie tangential zu einer Rille 301, wo die Minutia j extrahiert wird. Wichtig ist, dass die Minutiae sowohl des Bezugsfingerabdruckes als auch des gemessenen Fingerabdruckes dieselben Kennzeichnungsparameter enthalten müssen.
  • Eine Nachbarschaft c wird für jede Minutia j konstruiert, wie es nachstehend beschrieben wird. 4A4E veranschaulichen verschiedene Arten der Auswahl von Nachbar-Minutiae bei der Konstruktion einer Nachbarschaft NHj für die Minutia j. Eine Nachbarschaft wird für jede einzelne aus einem Fingerabdruckbild extrahierte Minutia konstruiert. In einer Ausführungsform wird eine Nachbarschaftsbegrenzung um die Minutia j gezogen. Beispielsweise wird ein Kreis 300 mit einem festen Radius r, von beispielsweise 90 Pixeln, unter Verwendung der Minutia j als dem Mittelpunkt gezogen, wie es in 4A dargestellt ist, um eine Nachbarschaftsbegrenzung zu erzeugen. In einer alternativen Ausführungsform wird ein die Nachbarschaftsbegrenzung repräsentierender Kasten 310 unter Verwendung der Minutia j als dem Mittelpunkt gemäß Darstellung in 4B gezogen. Natürlich kann jede vorbestimmte Nachbarschaftsbegrenzung mit beliebiger Form oder Größe gezogen werden.
  • Eine vorbestimmte Anzahl von Nachbarschafts-Minutiae wird aus dem eingeschlossenen Bereich ausgewählt. In einer Ausführungsform werden fünfzehn (15) Minutiae (ausschließlich der Minutia j) innerhalb der Nachbarschaftsbegrenzung als die Nachbar-Minutiae für die Nachbarschaft NHj ausgewählt. Wenn der eingeschlossene Bereich weniger als die vorbestimmte Anzahl von Nachbarschafts-Minutiae enthält, werden alle in dem eingeschlossenen Bereich enthaltenen Nachbarschafts-Minutiae ausgewählt. Es sei angemerkt, dass die Nachbarschaft NHj mehrfach Nachbarschafts-Minutiae N1–Ni enthält, wobei i eine vorbestimmte Anzahl ist, so dass genug Information vorliegt, um die Nachbarschaft NHj eindeutig genug zu machen, um die Genauigkeitsanforderung zu erfüllen. Die Anzahl der Nachbarn hängt im Allgemeinen von der Eindeutigkeit der gewünschten Nachbarschaft NHj ab. Beispielsweise ist, wenn nur vier Nachbarn N1–N4 für eine Nachbarschaft gewählt werden, die Wahrscheinlichkeit, dass äquivalente oder übereinstimmende Nachbarschaften vorliegen, wesentlich höher als die entsprechende Wahrscheinlichkeit in Verbindung mit einer Nachbarschaft von fünfzehn Nachbarn. In gleicher Weise hätte eine Nachbarschaft mit dreißig Nachbarn eine geringere Wahrscheinlichkeit zu anderen Nachbarschaften äquivalent zu sein. Die Eindeutigkeit der Nachbarschaft bestimmt, wie oft ein guter Fingerabdruck zurückgewiesen wird (d.h., eine Fehlrückweisungsrate) und wie oft ein schlechter Fingerabdruck akzeptiert wird (d.h., eine Fehlakzeptanzrate). Die Anzahl der Nachbarschafts-Minutiae hängt auch von der akzeptablen Berechnungskomplexität oder der Geschwindigkeit ab, die zufrieden stellend von einem Mikroprozessor durchgeführt werden kann.
  • In einer Ausführungsform werden die Nachbarschafts-Minutiae so gewählt, dass sie die Verteilung um den Mittelpunkt, d.h., um die Minutia j maximieren. Gemäß 4C wird eine x-Achse in der Richtung der Linie tangential zu einer Rillenlinie bei der Minutia j gezogen. Eine Linie wird von der Minutia j zu einer Minutia N1 gezogen, die einen Winkel σ1 zwischen der x-Achse und der Linie bildet. In gleicher Weise wird eine Linie von der Minutia j zu jeder der restlichen Minutiae innerhalb des eingeschlossenen Bereichs gezogen, wobei jede einen Winkel σk mit der x-Achse bildet, wobei k die Anzahl der Minutiae innerhalb des eingeschlossenen Bereiches ist. Ein Mittelwert wird aus allen Winkeln σk berechnet.
  • In einer Ausführungsform wird der Mittelwert in einem komplexen Bereich berechnet, da ein Mittelwert in einem Gradbereich komplizierter aufgrund der zylindrischen Natur der Winkel wäre. Eine komplexe Zahl C kann als eine Summe ihrer Real- und Imaginär-Anteile a bzw. b beschrieben werden, d.h., C = a + ib, wobei i die Quadratwurzel aus –1 ist.
  • Gemäß 4D können Winkel in Form von komplexen Zahlen durch die nachstehende Gleichung ausgedrückt werden: Ck = cos(σk) – isin(σk)wobei σk = tan–1(bk/ak)ist. Somit ist der Realanteil des Winkels σk gleich ak = cos(σk) und der Imaginäranteil des Winkels σk ist bk = sin(σk). Um einen Durchschnitt aller Winkel σk zu erhalten, wird jeder Winkel σk in sein komplexes Äquivalent umgewandelt. Der Realanteil ak und der Imaginäranteil bk werden dann getrennt gemittelt. Der gemittelte Realanteil aavg und der gemittelte Imaginäranteil bavg werden dann in eine Realzahldarstellung σavg, beispielsweise
    Figure 00160001
    und σk = tan–1(bavg/aavg) umgewandelt.
  • In einer Ausführungsform wird jeder Winkel σ1 überprüft, um zu ermitteln, wie nahe er an dem Durchschnittswinkel σavg liegt, indem der Winkel σk von dem Durchschnittswinkel σavg subtrahiert wird, um eine Differenz σkdiff zu erhalten. Eine vorbestimmte Anzahl von Minutiae, die die größte Differenz σkdiff haben, wird ausgewählt, so dass die gesamte Nachbarschaft eine maximale Standardwinkelabweichung aufweist. Es sei angemerkt, dass, wenn eine Gruppe von Minutiae, wie z.B. die in 4C dargestellte Gruppe 301 vorliegt, der Durchschnitt näher an der Gruppe 301 liegen würde. Somit wären die Minutiae, die innerhalb der Gruppe 301 liegen näher an dem Mittelwert. In einer Ausfüh rungsform würden, wenn die Anzahl von Minutiae innerhalb der Begrenzung größer als die vorbestimmte Anzahl von Nachbarschafts-Minutiae ist, die Minutiae innerhalb der Gruppe 301 nicht ausgewählt werden. Wenn eine oder mehrere Minutiae aus der Gruppe 301 ausgewählt werden müssen, um die vorbestimmte Anzahl von Nachbarschafts-Minutiae zu erfüllen, werden die Minutiae zufällig ausgewählt. Mit anderen Worten, die Minutiae innerhalb der Gruppe 301 werden weniger wahrscheinlich als die Minutiae außerhalb der Gruppe 301 ausgewählt.
  • In einer Ausführungsform werden, wenn mehrere Minutiae, wie z.B. die Minutiae N5 und N6, dieselben Winkel haben, die Abstände zwischen der Minutia N5 und der Minutia j und zwischen der Minutia N6 und der Minutia j als Tiebreak verwendet, d.h., dass je geringer der Abstand ist, desto wahrscheinlicher die Minutia ausgewählt würde. In einer weiteren Ausführungsform wird, wenn eine Minutia, d.h., die Minutia N3 zu nahe an der Minutia j liegt, z.B. 10 Pixel, die Minutia nicht ausgewählt. In noch einer weiteren Ausführungsform werden die Nachbarschafts-Minutiae, die am (im Abstand) weitesten weg voneinander liegen, ausgewählt. In einer Ausführungsform werden, wenn zwei oder mehr Nachbarschafts-Minutiae sehr nahe beieinander liegen, z.B. 10 Pixel, wie z.B. die Nachbarschafts-Minutia N5 und die Nachbarschafts-Minutia N7, entweder beide Nachbarschafts-Minutiae N5 und N7 eliminiert oder eine von den Nachbarschafts-Minutiae N5 und N7 beliebig ausgewählt.
  • Die Nachbarschaftsbegrenzung ist bei der Auswahl von Nachbarschafts-Minutiae für eine Nachbarschaft optional. Beispielsweise werden die Nachbarschafts-Minutiae so ausgewählt, dass die Verteilung um den Mittelpunkt, d.h., um die Minutia j, herum maximiert wird, wie es vorstehend beschrieben wurde. Jedoch werden in dieser Ausführungsform alle aus dem Fingerabdruck extrahierten Minutiae zum Berechnen des Mittelwertes verwendet. Alle anderen vorstehend beschriebenen Ausführungsformen sind ebenfalls auf eine Nachbarschafts-Minutiae-Auswahl ohne eine Begrenzung anwendbar. In einer zusätzlichen Ausführungsform wird ein Quadrant beliebig mit der Minutia j als Mittelpunkt gezogen und eine vorbestimmte Anzahl von Nachbarschafts-Minutiae wird dann aus jedem Quadranten gemäß Darstellung in 4E ausgewählt. Im Allgemeinen kann jedes Nachbarschafts-Minutiae-Extraktionsverfahren verwendet werden, um die vorbestimmte Anzahl i von Nachbarschafts-Minutiae zum Konstruieren einer Nachbarschaft NHj zu extrahieren.
  • Nachdem die Nachbarschafts-Minutiae ausgewählt sind, wird eine Nachbarschaft NHj aufgebaut, indem drei Positionsparameter für jede Nachbarschafts-Minutia hergeleitet werden. Die Positionsparameter werden unter Bezugnahme auf die Minutia j hergeleitet. Diese Positionsparameter beinhalten einen Abstand di und zwei Winkel ϕi und φi, wobei i die Anzahl der Nachbarschafts-Minutiae ist.
  • 5 stellt dar, wie die Positionsparameter hergeleitet werden. Eine x-Achse wird in der Richtung der Linie tangential zu einer Rillenlinie bei einer Minutia j gezogen. Eine y-Achse senkrecht zu der x-Achse wird dann gezogen, welche die x-Achse bei der Minutia j schneidet. Somit hat die Minutia j eine Position (0, 0) und wird als die "Mittelpunkts-Minutia N0" bezeichnet. Eine Linie 500 wird von der Mittelpunkts-Minutia N0 zu einer Nachbarschafts-Minutia Ni gezogen. Die Linie 500 hat einen Abstand di. Ein Winkel ϕi wird zwischen der x-Achse und der Linie 500 erzeugt. Eine weitere Linie 501 wird von dem Nachbarn Ni in der Richtung einer Linie tangential zu einer Rillenlinie für eine Nachbarschafts-Minutia Ni gezogen, um die x-Achse zu schneiden und sich über diese hinaus zu erstrecken. Der Winkel zwischen der verlängerten Linie 501 und der x-Achse ist der Winkel φi. Somit kann die Nachbarschafts-Minutia Ni durch (di, ϕi, φi) repräsentiert werden. In gleicher Weise befindet sich eine Nachbarschafts-Minutia N1 in einem Abstand d1 und der Mittelpunkts-Minutia N0. Ein Winkel ϕ1 wird zwischen der Linie 502 und der x-Achse erzeugt. Ein Winkel φ1 wird zwischen der Linie 503 und der x-Achse erzeugt. Eine Nachbarschafts-Minutia N2 befindet sich in einem Abstand d2 von der Mittelpunkts-Minutia N0. Ein Winkel ϕ2 wird zwischen der Linie 504 und der x-Achse erzeugt. Ein Winkel φ2 wird zwischen der Linie 505 und der x-Achse erzeugt. Der Vorgang wird für alle i Nachbarschafts-Minutiae der Mittelpunkts-Minutia N0 wiederholt. Somit wird für eine Nachbarschaft mit 15 Nachbarn (d.h., i = 15) jeder von den 15 Nachbarn N1, N2, N3, ..., N15 durch (di, ϕi, φi) repräsentiert. Wichtig ist, dass der Abstand di und die Winkel ϕi und φi unabhängig von jeder Rotation oder Translation eines Fingerabdruckes sind, da sie relative Positionen in Bezug auf die Mittelpunkts-Minutia N0 sind. Somit werden, wenn ein Fingerabdruckbild gedreht oder verschoben wird, alle Mittelpunkts-Minutiae N0 zugeordneten Minutiae in derselben Weise und im Betrag verschoben und gedreht und deren relativen Positionen in Bezug auf die Mittelpunkts-Minutia N0 bleiben dieselben.
  • In einer Ausführungsform wird jeder von den Parametern di, ϕi und φi auf eine ausgewählte Anzahl von Bits quantisiert. Die Quantisierung erlaubt eine Reduzierung der Anzahl von Bits für die Darstellung eines Wertes. Insbesondere werden während der Quantisierung alle Zahlen, die zwischen zwei Grenzwerte fallen, auf einen Quantisierungswert zwischen den Grenzwerten diskretisiert.
  • Es gibt verschiedene Lösungswege, um den Quantisierungswert herzuleiten. In einer linearen Quantisierung kann ein Quantisierungswert beispielsweise über einen praktischen Lösungsansatz oder einen Schwerpunktslösungsansatz hergeleitet werden. In dem praktischen Lösungsansatz kann der Quantisierungswert berechnet werden, indem der Quotient einer Gleichung, z.B. x/N, wobei x der unquantisierte Wert und N das Quantisierungsintervall ist, auf die nächstliegende ganze Zahl gerundet wird. Beispielsweise wird, wenn der nicht quantisierte Wert 5 und das Quantisierungsintervall 2 ist, der quantisierte Wert erhalten, indem 5/2 = 2,5 auf 3 gerundet wird. In gleicher Weise wird, wenn der nicht quantisierte Wert 5 und das Quantisierungsintervall 4 ist, der Quantisierungswert erhalten, indem 5/4 = 1,25 auf 1 gerundet wird. In einem Schwerpunktslösungsansatz wird der Quantisierungswert berechnet als
    Figure 00190001
    wobei C der Quantisierungswert ist; i und j die Begrenzungszahlen des zu quantisierenden Intervalls sind; und p die Wahrscheinlichkeit des Auftretens jeder Zahl x ist.
  • In einer nicht-linearen Quantisierung kann eine Nachschlagetabelle erzeugt werden, um einen Quantisierungswert für jeden nicht quantisierten Wert zu spezifizieren. Beispielsweise kann die Nachschlagetabelle für nicht quantifizierte Werte von 0 bis 1 den Quantisierungswert auf 1 spezifizieren; für unquantisierte Werte von 1 bis 3 den Quantisierungswert auf 2 spezifizieren; für unquantisierte Werte von 3 bis 6 den Quantisierungswert für 5 quantifizieren; usw. Eine nicht-lineare Quantisierung hat den Vorteil, den Quantisierungswert in Abhängigkeit von den jeder Minutia zugeordneten Fehlern einzustellen. Beispielsweise ist für eine gegebene Minutia je näher die Nachbarschafts- Minutia zu der gegebenen Minutia liegt, der Fehler umso kleiner. Ebenso ist, je weiter weg die Nachbarschafts-Minutia liegt, der Fehler umso größer. Daher müssen für näher an der gegebenen Minutia liegende Nachbarschafts-Minutiae die der Nachbarschafts-Minutia zugeordneten Parameter feiner als für die Nachbarschafts-Minutiae quantisiert werden, die weiter weg liegen.
  • Obwohl jeder Quantisierungsbetrag verwendet werden kann, hängt der Quantisierungsbetrag von der Genauigkeit der gewünschten Übereinstimmung und dem verfügbaren Speicherplatz ab. Wie es allgemein im Fachgebiet bekannt ist, ist je größer die Quantisierung ist, die Genauigkeit der Repräsentation umso geringer und der benötigte Speicherraum geringer. Beispielsweise sind für einen Satz von nicht quantisierten Werten von 1 bis 10 4 Bits erforderlich, um jede Zahl darzustellen. Wenn des Quantisierungsintervall 2 ist, muss der größte Quantisierungswert durch 10/2 oder 5 repräsentiert werden. Somit können alle 10 Zahlen durch 3 Bits repräsentiert werden, was weniger Speicherplatz erfordert. In gleicher Weise muss, wenn das Quantisierungsintervall 5 ist, der größte Quantisierungswert durch 10/5 oder 2 repräsentiert werden. Somit können nicht quantisierte Werte 1 bis 10 nun durch 2 Bits repräsentiert werden, was noch weniger Speicherplatz erfordert. Jedoch wäre der größte Fehler in dem ersten Beispiel 1 und der größte Fehler in dem zweiten Beispiel wäre 2,5. Somit ist, je größer die Quantisierung ist, der Speicherbedarf umso kleiner und der Fehler umso größer.
  • In einer Ausführungsform ist der Abstand di auf 5 Bits quantisiert. In einer weiteren Ausführungsform sind die Winkel ϕi und φi auf jeweils 6 Bits quantisiert.
  • 6 stellt zwei Nachbarschaften mit leichten Fehlern sowohl in der Rotation als auch Translation dar. Die Bezugsnachbarschaft 510 ist mit einer Mittelpunkts-Minutia N0 und zwei Nachbar-Minutiae N1 und N2 aufgebaut. Die gemessene Nachbarschaft 512 ist mit einer Mittelpunkts-Minutia N0' und zwei Nachbarschafts-Minutiae N1' und N2' aufgebaut. Wie man sehen kann, zeigen die Bezugsnachbarschaft 510 und die gemessene Nachbarschaft 512 eine gewisse Ähnlichkeit, d.h., die Nachbarschafts-Minutiae N1 und N2 bzw. N1' und N2' haben ähnliche Positionsbeziehungen in Bezug auf ihre Mittelpunkts-Minutiae N0 bzw. N0'. Es liegen jedoch Fehler zwischen den zwei Nachbarschaften vor. Beispielsweise gibt es leichte Unterschiede in den Abständen sowie in den Winkeln. Die leichten Unterschiede können auf dem Umstand beruhen, dass ein Finger eine fluide Oberfläche besitzt, und sich somit die Oberfläche des Fingers unter unterschiedlichen Bedingungen streckt und verändert. Somit können diese zwei leicht unterschiedlichen Nachbarschaften der Fingerabdruck von demselben Finger jedoch zu unterschiedlichen Zeitpunkten erzeugt sein. Der Fingerabdruck-Vergleichsalgorithmus muss daher diese leichten Variationen berücksichtigen, da, wenn eine perfekte Übereinstimmung erforderlich ist, zahlreiche irrtümliche Rückweisungen die Fingerabdruckidentifikation undurchführbar machen.
  • Da Übereinstimmungstoleranzen akzeptiert werden müssen, werden die durch einen bestimmten Betrag der Quantisierung verursachten Fehler in der sich ergebenden Genauigkeit des Vergleichs unwichtig. Beispielsweise stimmen, wenn die Toleranz des Abstandes di auf 1 eingestellt ist und der durch die Quantisierung des Abstands d1 bewirkte maximale Fehler ebenfalls 1 ist, wenn sowohl der Bezugsabstand als auch der gemessene Abstand in dieselben Quantisierungswerte fallen, die Abstände überein, obwohl die tatsächlichen Abstände unterschiedlich sein können. Die akzeptable Toleranz besteht daher wie viel Quantisierung für jeden Parameter durchgeführt werden kann.
  • Ein weiterer Vorteil der Quantisierung besteht in der Erhöhung der Datenübertragungsgeschwindigkeit, da die Größe der Datenpakete nach der Quantisierung kleiner wird. In einer Ausführungsform werden die quantisierten Werte unter Verwendung eines allgemein bekannten Kompressionsverfahrens wie z.B. der Lauflängencodierung oder L-Z-W-(Lemtel-Ziv-Welch)-Kompression, jedoch nicht darauf beschränkt, komprimiert. In der Lauflängencodierung werden beispielsweise, wenn fünf Zahlen 0 in einer Reihe vorliegen, statt die Zahlen "0 0 0 0 0" zu speichern, die Zahlen als "5 0" gespeichert. In der L-Z-W Kompression wird ein Wörterbuch häufig wiederholter Gruppen von (8 Bit) Zeichen auf einer Dateibasis aufgebaut, um häufigere Zeichenketten als kürzere Bitmuster zu repräsentieren. Somit ermöglicht die Kompression die Repräsentation der Daten durch weniger Bits, und ermöglicht somit eine schnellere Datenübertragung und einen kleineren Datenspeicherraum. In einer Ausführungsform werden die komprimierten Werte von dem SmartCard-Leser 110 in die SmartCard 100 übertragen und auf der SmartCard 100 dekomprimiert.
  • In einer Ausführungsform werden die Ortsinformation, d.h., (xj, yj), und der Minutia-Winkel θj auf eine ausgewählte Anzahl von Bits quantisiert. Beispielsweise wird jeder von den Positionsmesswerten xj und yj auf vier Bits quantisiert und der Minutia-Winkel θj wird auf sechs Bits quantisiert.
  • Die Größe eines Datenblockes wird durch die Größe der Parameter bestimmt, die den Ort der Minutia, den Minutia-Winkel und dessen Nachbarschaft repräsentieren. In einer Ausführungsform hat jeder Datenblock in der Fingerabdruckschablone eine Größe von 34 Bytes. In dieser Ausführungsform besteht die Fingerabdruckschablone aus einer 1-Byte Ortsinformation (d.h., zwei 4-Bit Messwerte xj und yj), 6-Bits Minutia-Winkel θj Information und fünfzehn 17-Bit (5 Bits für di, 6 Bits jeweils für die Winkel ϕi und φi) Nachbarschaftsinformation.
  • Wie man später sehen wird, vergleicht der Fingerabdruck-Vergleichsalgorithmus die Fingerabdruckschablonen auf einer Block-für-Block Basis. Somit erfordert der Fingerabdruckschablonen-Vergleichsalgorithmus einen RAM 106 mit einer ausreichenden Größe, um wenigstens zwei Datenblöcke zu speichern, d.h., 68 Datenbytes. In einer herkömmlichen SmartCard, in welcher ein typischer RAM eine Größe von 256 Bytes besitzt, wird kein zusätzlicher Speicher benötigt, da der erforderliche Speicher gemäß dieser Erfindung tatsächlich gut unterhalb der Speichereinschränkung einer herkömmlichen SmartCard liegt.
  • 7A stellt einen Bezugsdatenblock 201 einer Bezugsfingerabdruckschablone 200 im Detail dar. Der Bezugsdatenblock 201 enthält drei Parameter: den Ort 702, den Minutia-Winkel 704 und die Nachbarschaft 706. Der Ort 702 enthält x- und y-Koordinaten. Die Nachbarschaft 706 enthält in einer Ausführungsform 15 Nachbar-Minutiae N1–N15. Jeder Nachbar N1–N15 enthält ferner Positionsparameter wie z.B. den Abstand di zwischen der Mittelpunkts-Minutia N0 und der Nachbarschafts-Minutia Ni und zwei entsprechende Winkel ϕi, φi, wobei i 1 bis 15 gemäß Darstellung in 7C ist.
  • In gleicher Weise stellt 7B stellt eine gemessene Fingerabdruckschablone 210 im Detail dar. Der gemessene Datenblock 211 enthält drei Parameter: den Ort 752, den Minutia-Winkel 754 und die Nachbarschaft 756. Der Ort 752 enthält xj'- und yj'-Koordinaten. Die Nachbarschaft 756 enthält in einer Ausführungsform 15 Nachbarn N1'–N15'. Jeder Nachbar N1'–N15' enthält ferner Positionsparameter wie z.B. den Abstand di' zwischen der Mittelpunkts-Minutia N0' und einem Nachbarn Ni' und zwei entsprechende Winkel ϕi', φi', wobei i 1 bis 15 gemäß Darstellung in 7D ist. Obwohl die 7A und 7B dieselbe Anzahl von Nachbarn in dem Bezugsfingerabdruckdatenblock 201 und dem gemessenen Fingerabdruckdatenblock 211 zeigen, ist dieses nicht notwendig, da eine Nachbarschaftsübereinstimmung gefunden werden kann, wenn die Anzahl von Nachbarschafts-Minutia-Übereinstimmungen einer vorbestimmten Anzahl von Nachbarschafts-Minutia-Übereinstimmungen entspricht. Beispielsweise enthält der eingeschlossene Bereich für eine bestimmte gezogene Nachbarschaftsbegrenzung bei dem Bezugsfingerabdruck ausreichend Minutiae, um die vorbestimmte Anzahl von Nachbarschafts-Minutiae, z.B. 15 Minutiae auszuwählen. Jedoch enthält der eingeschlossene Bereich bei dem gemessenen Fingerabdruck nur weniger als die vorbestimmte Anzahl von Nachbarschafts-Minutiae, beispielsweise 12 Minutiae. Wenn die vorbestimmte Nachbarschafts-Minutia-Übereinstimmung 7 ist, und 7 Übereinstimmungen zwischen den gemessenen Nachbar-Minutiae und den Bezugsnachbar-Minutiae vorliegen, liegt eine Übereinstimmung zwischen der Bezugsnachbarschaft und der gemessenen Nachbarschaft selbst dann vor, wenn die Nachbarschaft 706 eine andere Anzahl von Nachbarn als die Nachbarschaft 756 enthält.
  • 8A veranschaulicht den Fingerabdruckschablonen-Vergleichsprozess in einer SmartCard-Anwendung. Es sei angemerkt, dass, obwohl ein Fingerabdruckschablonen-Vergleichsalgorithmus unter Bezug auf eine SmartCard und einen SmartCard-Leser beschrieben wird, der hierin nachstehend beschriebene Fingerabdruckschablonen-Vergleichsalgorithmus beispielsweise auch von einem Personalcomputer, einem Mikroprozessor oder einem Handcomputer ausgeführt werden kann.
  • Der Schablonenvergleichsprozess startet mit dem Schritt 600. In einer Ausführungsform werden die Bezugsdatenblöcke und die gemessenen Datenblöcke sortiert (Schritt 601), wobei jedoch das Sortieren nicht erforderlich ist. In einer Ausführungsform werden die Datenblöcke gemäß ihrer Ortsinformation, welche durch die x- und y-Koordinaten repräsentiert wird, sortiert. Beispielsweise werden die Datenblöcke gemäß einer zunehmenden x-Koordinate xj gefolgt von einer zunehmenden y-Koordinate yj sortiert. Natürlich kann jede Sortierungstechnik verwendet werden, um die Datenblöcke zu sortieren. Im Allgemeinen wird der Minutia-Winkel θj aufgrund der zyklischen Natur von Winkelmessungen nicht zum Sortieren verwendet. In einer Ausführungsform werden entweder die Bezugsdatenblöcke oder die gemessenen Datenblöcke sortiert. In einer weiteren Ausführungsform werden sowohl die Bezugsdatenblöcke als auch die gemessenen Daten blöcke sortiert. Die Datenblöcke werden aus Effizienzgründen sortiert, wie es nachstehend erläutert wird.
  • Da die Fingerabdruckschablonen auf einer Block-für-Block Basis verglichen werden, und die Fingerabdruckschablonen der Reihe nach angeordnet werden, ist kein Zufallszugriff auf die Fingerabdruckschablonen erforderlich. Mit anderen Worten, sobald ein Datenblock verwendet worden ist, wird dieser Datenblock aus dem RAM 106 entfernt und ein neuer Datenblock eingelesen. Dieses ermöglicht die Speicherung nur eines Datenblockes aus jeder Schablone in dem RAM 106 während des Vergleichsprozesses.
  • Der erste Datenblock der gemessenen Fingerabdruckschablone 210, z.B. der gemessene Block 211 wird beispielsweise aus dem RAM 112 im SmartCard-Leser 110 in den RAM 106 über den Kommunikationskanal 120 (siehe auch 1) eingelesen (Schritt 602). Ferner wird im Schritt 602 der erste Datenblock der Bezugsfingerabdruckschablone 200 (z.B. der Bezugsblock 201) aus dem statischen Speicher 102 in den RAM 106 der SmartCard 100 geladen. Der Mikroprozessor 104 vergleicht die zwei Datenblöcke, d.h., den gemessenen Block 211 und dem Bezugsblock 201 im RAM 106 (Schritt 604). Wie die Datenblöcke im Schritt 604 verglichen werden, wird nachstehend im Detail unter Bezugnahme auf die 9A, 9B und 9C diskutiert.
  • Wenn die zwei Fingerabdruckschablonen-Datenblöcke, z.B. der Bezugsblock 201 und der gemessene Block 211 übereinstimmen (Schritt 606), wird ein Zähler im Schritt 608 inkrementiert. Wenn die Anzahl der Fingerabdruck-Datenblockübereinstimmungen gleich oder größer als eine vorbestimmte Anzahl (Schritt 610) ist, wird die gemessenen Fingerabdruckschablone 210 als mit der Bezugsfingerabdruckschablone 200 übereinstimmend betrachtet (Schritt 612) und der Fingerabdruckschablonen-Vergleichsprozess endet im Schritt 614. In einer Ausführungsform werden mehr als vier Datenblockübereinstimmungen als eine Übereinstimmung betrachtet.
  • Wenn die zwei Fingerabdruckschablonen-Datenblöcke, z.B. der Bezugsblock 201 und der gemessene Block 211 nicht übereinstimmen (Schritt 606), oder wenn die Anzahl der Datenblockübereinstimmungen kleiner als die vorbestimmte Anzahl ist (Schritt 610), wird ermittelt, ob der für den Vergleich verwendete gemessene Block, z.B. der gemessene Block 211 der letzte gemessene Block in der gemessenen Fingerabdruckschablone 200 ist (Schritt 616).
  • Wenn der gemessene Block, z.B. der gemessene Block 211 nicht der letzte gemessene Block in der gemessenen Fingerabdruckschablone 210 ist, wird der nächste gemessene Block, z.B. der gemessene Block 212 in der gemessenen Fingerabdruckschablone 210, in den RAM 106 aus dem RAM 112 über den Kommunikationskanal 120 geladen (Schritt 618). Der neu geladene gemessene Block, z.B. der Block 212, wird mit dem Bezugsblock im RAM 106, z.B. dem Bezugsblock 201 (Schritt 604) verglichen. Der Prozess setzt sich fort, bis alle gemessenen Blöcke in der gemessenen Fingerabdruckschablone 210 verglichen worden sind, oder bis eine vorbestimmte Anzahl von Datenblockübereinstimmungen gefunden worden ist.
  • Wenn der gemessene Block, z.B. der gemessene Block 201, der letzte Bezugsblock in der gemessenen Fingerabdruckschablone 210 ist, wird dann ermittelt, ob der zum Vergleich verwendete Bezugsblock im RAM 106, z.B. der Bezugsblock 201, der letzte Datenblock in der Bezugsfingerabdruckschablone 210 ist (Schritt 620).
  • Wenn der Bezugsblock, z.B. der Bezugsblock 201 nicht der letzte Bezugsblock in der Bezugsfingerabdruckschablone 200 ist, wird der nächste Bezugsblock in der Bezugsfingerabdruckschablone 200, z.B. der Bezugsblock 202, beispielsweise aus dem statischen Speicher 102 in den RAM 106 geladen (Schritt 622). Ferner wird im Schritt 622 der erste gemessene Block in der Fingerabdruckschablone 210, z.B. der gemessene Block 211, in den RAM 106 geladen. Der neu geladene Bezugsblock, z.B. der Bezugsblock 202, und der erste gemessene Block, z.B. der gemessene Block 211, werden dann im Schritt 604 verglichen. Der Prozess wird fortgesetzt, bis alle Bezugsblöcke in der Bezugsfingerabdruckschablone 200 verglichen sind, oder bis die Anzahl von Datenblockübereinstimmungen die vorbestimmte Anzahl überschreitet.
  • Wenn der Bezugsblock, z.B. der Bezugsblock 201 der letzte Bezugsblock in der Bezugsfingerabdruckschablone 200 ist, stimmen die Fingerabdruckschablone 200 und die gemessene Fingerabdruckschablone 210 nicht überein (Schritt 624) und der Fingerabdruckschablonen-Vergleichsprozess endet im Schritt 614.
  • Alternativ kann der Fingerabdruckschablonen-Vergleichsprozess gemäß 8B ausgeführt werden. In 8B ist die optionale Sortierung weggelassen; die Bezugsblöcke werden zuerst gedreht; die gemessenen Blöcke werden dann gedreht. Insbesondere beginnt der Fingerabdruckschablonen-Vergleichsprozess bei dem Schritt 650. Der erste Datenblock der gemessenen Fingerabdruckschablone 210, z.B. der gemessene Block 211, wird aus dem SmartCard-Leser 110 über den Kommunikationskanal 120 in den RAM 106 geladen (Schritt 652). Ferner wird im Schritt 652 der erste Datenblock der Bezugsfingerabdruckschablone 200, z.B. der Bezugsblock 201, aus dem statischen Speicher 102 in den RAM 106 der SmartCard 100 geladen. Der Mikroprozessor 104 vergleicht die zwei Fingerabdruckschablonen-Datenblöcke, z.B. den gemessenen Block 211 und Bezugsblock 201, im RAM 106 (Schritt 654). Wie die Datenblöcke im Schritt 654 verglichen werden, wird nachstehend im Detail unter Bezugnahme auf 9C beschrieben.
  • Wenn die zwei Datenblöcke, z.B. die Blöcke 201 und 211, übereinstimmen (Schritt 656), wird ein Zähler im Schritt 658 inkrementiert. Wenn die Anzahl der Datenblockübereinstimmungen gleich oder größer als eine vorbestimmte Anzahl ist (Schritt 660), stimmt die gemessene Fingerabdruckschablone (210) mit der Bezugsfingerabdruckschablone 200 überein (Schritt 662), und der Prozess endet im Schritt 664.
  • Andernfalls wird, wenn die zwei Datenblöcke, z.B. die Datenblöcke 201 und 211, nicht übereinstimmen (Schritt 656), oder wenn die Anzahl der Übereinstimmungen der Datenblöcke kleiner als die vorbestimmte Anzahl ist (Schritt 660), ermittelt, ob der für den Vergleich verwendete gemessene Block, z.B. der Bezugsblock 201, der letzte Bezugsblock in der Bezugsfingerabdruckschablone 200 ist (Schritt 666).
  • Wenn der Bezugsblock, z.B. der Bezugsblock 201, nicht der letzte Datenblock in der Bezugsfingerabdruckschablone 200 ist, wird der nächste Bezugsblock, z.B. der Bezugsblock 202 in der Bezugsfingerabdruckschablone 200 aus dem statischen Speicher 102 in den RAM 106 geladen (Schritt 668). Der neu geladene Bezugsblock, z.B. der Bezugsblock 202, wird mit dem gemessenen Block im RAM 106, z.B. dem gemessenen Block 211, im Schritt 654 verglichen. Der Prozess läuft weiter ab.
  • Wenn der Bezugsblock, z.B. der Bezugsblock 201, der letzte Bezugsblock in der Bezugsfingerabdruckschablone 200 ist, wird ermittelt, ob der gemessene Block im RAM 106, der für den Vergleich verwendet wird, z.B. der gemessene Block 211, der letzte gemessene Block in der gemessenen Fingerabdruckschablone 210 ist (Schritt 670).
  • Wenn der gemessene Block, z.B. der gemessene Block 211, nicht der letzte Datenblock in der gemessenen Fingerabdruckschablone 210 ist, wird der nächste gemessene Block in der gemessenen Fingerabdruckschablone 210, z.B. der gemessene Block 212, aus dem RAM 112 der SmartCard 100 über den Kommunikationskanal 120 in den RAM 106 geladen (Schritt 672). Der erste Bezugsblock in der Fingerabdruckschablone 200, z.B. der Bezugsblock 201, wird ebenfalls in den RAM 106 geladen (Schritt 672). Der neu geladene gemessene Block, z.B. der gemessene Block 212, und der erste Bezugsblock, z. B. der Block 201, werden dann verglichen (Schritt 654).
  • Wenn der gemessene Block, z.B. der gemessene Block 211, der letzte gemessene Block in der gemessenen Fingerabdruckschablone 210 ist, stimmen die gemessene Fingerabdruckschablone 210 und Bezugsfingerabdruckschablone 211 nicht überein (Schritt 674) und der Fingerabdruckschablonen-Vergleichsprozess endet bei dem Schritt 664.
  • 9A stellt in einem Flussdiagramm des Schrittes 600 dar, wie die Fingerabdruckschablonen-Datenblöcke im Detail verglichen werden. Ein Bezugsdatenblock enthält einen Positionsparameter (xj, yj), wobei xj die x-Koordinate und yj die y-Koordinate einer Bezugs-Minutia ist. Ein gemessener Block enthält einen Positionsparameter von (xj', yj'), wobei xj' die x-Koordinate und yj' die y-Koordinate einer gemessenen Minutia ist. In dieser Ausführungsform sind die gemessenen Datenblöcke in Abhängigkeit von den x-Koordinaten xj gefolgt von den y-Koordinaten yj sortiert. In einer Ausführungsform werden die x-Koordinaten verglichen, indem die gemessene x-Koordinate xj' von der Bezugs-x-Koordinate xj subtrahiert wird, d.h., xj – xj' = xjdiff (Schritt 850). Wenn der Absolutwert der Differenz xjdiff größer als die vorbestimmte Toleranz xjtoleerance ist (Schritt 852), wird dann ermittelt, ob die Rohdifferenz xjdiff kleiner als die vorbestimmte Toleranz xjtole rance ist (Schritt 868). Wenn die Differenz xjdiff kleiner als xjtolerance ist, wird der Rest der gemessenen Datenblöcke nicht mit dem Bezugsdatenblock verglichen und es wird ermittelt, ob der verwendete Bezugsblock der letzte Bezugsblock ist (Schritt 620 in 8A) und der Prozess läuft weiter. Wenn die Differenz xjdiff größer als xjtolerance ist, stimmen die Blöcke nicht überein (Schritt 872) und der Prozess fährt bei dem Schritt 606 (8A) fort.
  • Wenn der Absolutwert der Differenz xjdiff kleiner oder gleich als eine vorbestimmte Toleranz (xjtolerance) ist (Schritt 852), d.h., dass die x-Koordinaten übereinstimmen, werden die y-Koordinaten verglichen. Die gemessene y-Koordinate yj' wird von der Bezugs-y-Koordinate yj subtrahiert, d.h., yj – yj' = xjdiff (Schritt 854). Wenn der Absolutwert der Differenz yjdiff größer als die vorbestimmte Toleranz yjtolerance ist (Schritt 856), wird dann ermittelt, ob die Rohdifferenz yjdiff kleiner als die vorbestimmte Toleranz yjtolerance ist (Schritt 868). Wenn die Differenz yjdiff kleiner als yjtolerance ist, wird der Rest der gemessenen Datenblöcke nicht mit dem Bezugsdatenblock verglichen und es wird ermittelt, ob der verwendete Bezugsblock der letzte Bezugsblock ist (Schritt 620 in 8A) und der Prozess läuft weiter. Wenn die Differenz yjdiff größer als yjtolerance ist, stimmen die Blöcke nicht überein (Schritt 872) und der Prozess fährt bei dem Schritt 606 (8A) fort. Wenn der Absolutwert der Differenz yjdiff kleiner oder gleich als eine vorbestimmte Toleranz (xjtoleran ce) ist, werden die Minutia-Winkel θj und θj' verglichen.
  • Es sei angemerkt, dass eine einfache Subtraktion im Gradbereich bei Winkeln aufgrund ihrer zyklischen Natur nicht gut funktioniert. Der gemessene Minutia-Winkel θj' wird von dem Bezugs-Minutia-Winkel θj subtrahiert, d.h., θj – θj' = θjdiff (Schritt 858). Wenn der Absolutwert der Differenz θjdiff kleiner oder gleich einer vorbestimmten Toleranz θjtolerance ist (Schritt 860), stimmen die Minutia-Winkel überein. Wenn der Absolutwert der Differenz θjdiff größer als die vorbestimmte Toleranz θjtolerance ist, wird ermittelt, ob der Absolutwert der Differenz qjdiff größer als oder gleich der Differenz zwischen dem maximal zulässigen quantisierten Minutia-Winkel θjmax und der vorbestimmten Toleranz θjtolerance ist (Schritt 861). Wenn der Wert |θjdiff| größer oder gleich der Differenz zwischen den Werten θjmax und θjtolerance ist, stimmen die Minutia-Winkel überein.
  • Ein Beispiel für einen Winkelvergleich wird nachstehend beschrieben. In der Ausführungsform, in welcher die Winkel auf 6 Bit quantisiert sind, und somit Werte zwischen 0 und 63 aufweisen, ist 0 der minimale Wert für θjjmin) und 63 ist der maximale Wert für θjjmax). Die quantisierten Werte werden dann subtrahiert, z.B. Wert |θj – θj'| = θjdiff, wenn der Minutia-Winkel θj einen quantisierten Wert von 61 aufweist, während der Minutia-Winkel θj' einen quantisierten Wert von 63 aufweist, und die Übereinstimmungstoleranz gleich 2 ist. Dann ist |61 – 63| = 2, was innerhalb des Toleranzbereiches liegt. Somit liegt eine Übereinstimmung zwischen den Minutia-Winkeln θj und θj' vor. In einer Situation, in welcher der Winkel θj einen quantisierten Wert von 0 besitzt, während der Minutia-Winkel θj' einen quantisierten Wert von 63 besitzt und die Übereinstimmungstoleranz 2 ist, ist dann absolut |0 – 63| = 63, was außerhalb des Toleranzbereiches liegt. Jedoch ist aufgrund der zyklischen Natur die Differenz zwischen 63 und 0 tatsächlich nur 1, was innerhalb der Toleranz liegt. Daher wird zusätzlich zu der Prüfung, ob |θj – θj'| ≤ θjtolerance ist, auch geprüft, ob θjdiff ≥ θjmax – θjtolerance ist, geprüft. In dem vorstehenden Beispiel gilt θjdiff ≥ θjmax – θjtolerance (63 ≥ 63 – 2). Daher stimmen die Minutia-Winkel θj und θj' überein.
  • Wenn die Minutia-Winkel θj und θj' übereinstimmen, wird die Nachbarschaft NHj mit der Nachbarschaft NHj' im Schritt 862 verglichen, was im Detail unter Bezugnahme auf 10 beschrieben wird.
  • Wenn die Nachbarschaft NHj aus dem Bezugsblock mit der Nachbarschaft NHj' aus dem gemessenen Block übereinstimmt (Schritt 864), stimmen die Datenblöcke überein (Schritt 866). Umgekehrt stimmen, wenn irgendeiner der Parameter, d.h., die x-Koordinaten, y-Koordinaten, Minutia-Winkel und Nachbarschaften nicht übereinstimmen, die Datenblöcke nicht überein (872). Der typische Wert für xjtolerance und yjtolerance ist 4 und der typische Wert für θjtolerance ist 7. Diese typischen Werte sind experimentell hergeleitet.
  • Da die gemessenen Datenblöcke gemäß den x-Koordinaten xj sortiert sind, können die Vergleiche für die restlichen gemessenen Datenblöcke weggelassen werden, da die restlichen gemessenen Datenblöcke ebenfalls die Toleranz überschreitende x-Koordinaten xj' aufweisen. Somit beschneidet die Sortierung die Anzahl der Vergleiche. Die Anzahl der Vergleiche kann weiter reduziert werden, indem die Datenblöcke mittels der y-Koordinaten yj sortiert werden.
  • Es kann ein Flag so gesetzt werden, dass nur ein Untersatz der gemessenen Datenblöcke für weitere Vergleiche verwendet wird. 9B stellt in einem Flussdiagramm des Schrittes 604 dar, wie die Fingerabdruckschablonen-Datenblöcke im Detail verglichen werden. Die x-Koordinaten werden verglichen, indem eine gemessene x-Koordinate xj' von der Bezugs-x-Koordinate xj subtrahiert wird, d.h., xj – xj' = xjdiff (Schritt 880). Wenn der Absolutwert der Differenz xjdiff kleiner oder gleich einer vorbestimmten Toleranz xjtole rance (Schritt 881) ist, wird ermittelt, ob dieses die erste Übereinstimmung zwischen der Bezugs-x-Koordinate xj und der gemessenen x-Koordinate xj' ist (Schritt 885). Wenn die Übereinstimmung die erste Übereinstimmung ist, wird ein Flag für den gemessenen Block gesetzt, der die erste Übereinstimmung der x-Koordinate xj' enthält (Schritt 886).
  • Wenn der Absolutwert der Differenz xjdiff größer als die vorbestimmte Toleranz xjtolerance ist (Schritt 881), wird dann ermittelt, ob die Differenz xjdiff kleiner als die vorbestimmte Toleranz xjtolerance ist (Schritt 882). Wenn die Differenz xjdiff kleiner als xjtolerance ist, wird der Rest der gemessenen Datenblöcke nicht mit dem Bezugsdatenblock verglichen, und es wird ermittelt, ob der verwendete Bezugsblock der letzte Bezugsblock ist (Schritt 883). Wenn der Bezugsblock nicht der letzte Bezugsblock in der Bezugsfingerabdruckschablone ist, wird der nächste Bezugsblock und der Startblock in den RAM zum Vergleich geladen (Schritt 884), und der Prozess fährt mit dem Schritt 880 fort. Wenn der Bezugsblock der letzte Block in der Bezugsfingerabdruckschablone ist, stimmt der Fingerabdruck nicht überein (Schritt 624 in 8A).
  • Wenn die Übereinstimmung nicht die erste Übereinstimmung (Schritt 885) ist, oder nach dem Start der Block mit einem Flag versehen wurde (Schritt 886), werden die y-Koordinaten verglichen. Die gemessene y-Koordinate yj' wird von der Bezugs-y-Koordinate yj subtrahiert, d.h., yj – yj' = yjdiff (Schritt 887). Wenn der Absolutwert der Differenz yjdiff größer als die vorbestimmte Toleranz yjtolerance ist (Schritt 888), wird ermittelt, ob die Differenz yjdiff kleiner als yjtolerance ist (Schritt 869). Wenn die Differenz yjdiff kleiner als yjtolerance ist, werden die restlichen gemessenen Datenblöcke nicht mit dem Bezugsdatenblock verglichen und es wird ermittelt, ob der für den Vergleich verwendete Bezugsblock der letzte Bezugsblock ist (Schritt 883). Wenn die Differenz yjdiff größer als yjtolerance ist, stimmen die Blöcke nicht überein (Schritt 896) und der Prozess fährt bei dem Schritt 606 (8A) fort.
  • Wenn der Absolutwert der Differenz yjdiff kleiner als oder gleich einer vorbestimmten Toleranz yjtolerance ist (Schritt 888), sind die restlichen Schritte 890 bis 896 ähnlich den Schritten 858 bis 866, die unter Bezugnahme auf 9A beschrieben wurden.
  • Wie man aus den 9A und 9B ersehen kann, filtert ein Vergleich der x-Koordinaten und y-Koordinaten die Anzahl der Vergleiche. Obwohl der Fingerabdruckschablonen-Vergleichsalgorithmus in der Lage ist, einen Fingerabdruck mit einem gedrehten und/oder verschobenen gleichen Fingerabdruck zu vergleichen, kann der Algorithmus schneller ausgeführt werden, wenn der Finger auf eine bestimmte Orientierung eingeschränkt wird. Indem man eine Translation und Rotation zulässt, können keine oder nur sehr wenige Werte eliminiert werden, da die Toleranz ausreichend groß sein muss, um so nicht alles während des Vergleichs zu eliminieren und somit eine falsche Zurückweisung zu erzeugen.
  • 9C stellt in einem Flussdiagramm des Schrittes 654 dar, wie die Fingerabdruckschablonen-Datenblöcke im Detail verglichen werden, wobei jeder Block verglichen wird. Die Parameter xj und xj' werden beispielsweise durch einfache Subtraktionen verglichen (Schritt 806). Wenn ein Wert xjdiff, d.h., |xj – xj'| = xjdiff, größer als eine einstellbare, vorbestimmte Toleranz xjtolerance ist, stimmt der Parameter xj nicht mit dem Vergleichsparameter xj' überein. Daher stimmen die Datenblöcke nicht überein (Schritt 824) und der nächste Datenblock wird gelesen (siehe 8B). Wenn der Wert xjdiff gleich oder kleiner als die Toleranz xjtolerance ist (Schritt 812), stimmt der Parameter xj mit dem Parameter xj' überein (Schritt 808), und der Parameter yj wird mit dem Parameter yj' im Schritt 810 mit einer einfachen Subtraktion verglichen.
  • Wenn der Wert |xj – xj'| = xjdiff größer als eine einstellbare, vorbestimmte Toleranz yjtolerance ist, stimmt der Parameter yj nicht mit dem Parameter xj' überein (Schritt 812) und die Datenblöcke stimmen nicht überein (Schritt 824). Der nächste Datenblock wird gelesen (siehe 8B). Wenn der Wert yjdiff gleich oder kleiner als die Toleranz yjtolerance ist, stimmt der Parameter yj mit dem Parameter yj' überein (Schritt 812) und der Parameter θj wird mit dem Parameter θj' im Schritt 814 verglichen.
  • Wenn die Minutia-Winkeldifferenz θjdiff größer als eine einstellbare, vorbestimmte Minutia-Winkeltoleranz θjtoleranze ist, stimmt der Parameter θj nicht mit dem Parameter θj' überein (Schritt 816) und die Datenblöcke stimmen nicht überein (Schritt 824), und der nächste Datenblock wird gelesen (siehe 8A und 8B). Wenn die Minutia-Winkeldifferenz θjdiff gleich oder kleiner als die Minutia-Winkeltoleranz θj tolerance ist, oder wenn die Differenz θjdiff größer oder gleich dem maximal zulässigen quantisierten Minutia-Winkel minus der vorbestimmten Toleranz θjtolerance ist, stimmt der Parameter θj mit dem Parameter θj' überein (Schritt 816), und die Nachbarschaft NHj wird der Nachbarschaft NHj' im Schritt 818 verglichen, welcher im Detail unter Bezugnahme auf 10 beschrieben wird. Wenn die Nachbarschaft NHj aus dem Bezugsblock mit der Nachbarschaft NHj aus dem gemessenen Block übereinstimmt (Schritt 820), stimmen die Datenblöcke überein (Schritt 822). Umgekehrt stimmen, wenn die Nachbarschaft NHj und die Nachbarschaft NHj' nicht übereinstimmen, die Datenblöcke nicht überein. Die Ablauffolge des Vergleichs kann variieren. Beispielsweise kann der Parameter yj verglichen werden, bevor der Parameter xy verglichen wird; der Winkel θj kann verglichen werden, bevor der Parameter yj verglichen wird; usw.
  • 10 stellt ein Flussdiagramm des Nachbarschafts-Vergleichalgorithmus der Schritte 862, 893 und 818 dar. Im Schritt 900 werden der erste Nachbar in einem Bezugsblock (hierin nachstehend Bezugsnachbar), z.B. N1 (7A), und der erste Nachbar in einen gemessenen Block (hierin nachstehend gemessener Nachbar), z.B. N1' (7B) verglichen. Der Schritt 900 wird nachstehend im Detail beschrieben.
  • Wenn die Nachbarn übereinstimmen (Schritt 902), wird ein Nachbarzähler im Schritt 904 inkrementiert. Wenn der Zählwert gleich oder größer als eine vorbestimmte Anzahl von Nachbarschaftsübereinstimmungen ist (Schritt 906), stimmen die Nachbarschaften überein (Schritt 918). Beispielsweise können 7 Nachbarschaftsübereinstimmungen für eine Nachbarschaft von 15 Nachbarn als eine Übereinstimmung der Nachbarschaften betrachtet werden.
  • Wenn die Nachbarn nicht übereinstimmen (Schritt 902), oder wenn die Anzahl der Nachbarschaftsübereinstimmungen kleiner als die vorbestimmte Anzahl von Nachbarschaftsübereinstimmungen ist (Schritt 906), wird ermittelt, ob der im Vergleich verwendete gemessene Nachbar der letzte Nachbar in dem gemessenen Block ist (Schritt 908).
  • Wenn der gemessene Nachbar nicht der letzte gemessene Nachbar in dem gemessenen Block ist, wird der nächste gemessene Nachbar gelesen (Schritt 910) und der neue gemessene Nachbar wird mit dem bereits verwendeten Bezugsnachbar verglichen. Wenn der gemessene Nachbar der letzte gemessene Nachbar in dem gemessenen Block ist, wird ermittelt, ob der Bezugsnachbar der letzte Bezugsnachbar in dem Bezugsblock ist (Schritt 912). Wenn der Bezugsnachbar nicht der letzte Bezugsnachbar in dem Bezugsblock ist, werden der nächste Bezugsnachbar und der erste gemessene Nachbar gelesen (Schritt 914) und verglichen (Schritt 900). Wenn jedoch der Bezugsnachbar der letzte Bezugsnachbar in dem Bezugsblock ist, stimmen die Nachbarschaften nicht überein (Schritt 916).
  • 11A veranschaulicht den Schritt 900 in 10 im Detail und stellt einen Nachbar/Nachbar-Vergleich dar. Der Abstand di eines Bezugsnachbarn wird mit einem Abstand di' eines gemessenen Nachbarn im Schritt 1000 verglichen. Dieser Abstandsvergleich erfolgt mit einfachen Subtraktionen, d.h., Absolutwert |di – di'| = didiff. Wenn die Abstandsdifferenz didiff die Abstandstoleranz ditolerance erfüllt (Schritt 1002), wird der Winkel ϕi mit dem Winkel ϕi' verglichen (Schritt 1004).
  • Der Winkelvergleich erfolgt wiederum in einer ähnlichen Weise wie in dem vorstehend beschriebenen Minutia-Winkelvergleich. Insbesondere stimmt der Winkel ϕi mit dem Winkel ϕi' überein, wenn |ϕj – ϕj'| ≤ ϕjtolerance und |ϕj – ϕj'| ≥ ϕjmax – ϕjtolerance ist (Schritt 1006).
  • Die Winkel φi und φi' werden dann im Schritt 1008 verglichen. In gleicher Weise stimmt φi mit dem Winkel ϕi überein, wenn |φj – φj'| ≤ φjtolerance und |φj – φj'| ≥ φjmax – φjtolerance ist (Schritt 1010). Die Nachbarn stimmen überein (Schritt 1012), wenn alle Parameter für einen Nachbarn, z.B. der Abstand di und die Winkel ϕi und φi übereinstimmen. Der typische Wert für ditolerance ist 1 und der typische Wert für ϕitolerance und φitolerance ist 6. Diese typischen Werte sind experimentell hergeleitet.
  • Wenn einer von den Parametern, d.h., der Abstand d; oder der Winkel ϕi oder φi nicht übereinstimmen, stimmen die Nachbarn nicht überein (Schritt 1014). Wiederum kann die Ablauffolge des Vergleichs, d.h., di, ϕi und φi modifiziert werden.
  • 11B stellt eine alternative Ausführungsform des Nachbarvergleichsprozesses im Schritt 900 dar. In dieser Ausführungsform sind die gemessenen Blöcke gemäss dem Abstand di' sortiert. Gemessene Abstände di' werden von Bezugsabstand di subtrahiert, um eine Differenz didiff herzuleiten (Schritt 1050). Wenn die Abstandsdifferenz didiff eine vorbestimmte Abstandstoleranz ditolerance erfüllt (Schritt 1052), wird der Winkel ϕi mit dem Winkel ϕi' verglichen (Schritt 1054). Wenn die Winkel ϕi und ϕi' übereinstimmen (Schritt 1056), werden φi und φi' im Schritt 1058 verglichen. Wenn die Winkel φi und φi' übereinstimmen (Schritt 1066), stimmen die Nachbarn überein (Schritt 1062).
  • Wenn der gemessene Abstand di nicht mit dem Bezugsabstand di' übereinstimmt, wird ermittelt, ob die Differenz didiff kleiner als die vorbestimmte Toleranz ditolerance ist (Schritt 1053). Wenn die Differenz didiff kleiner als die vorbestimmte Toleranz ditolerance ist, stimmen die Nachbarn nicht überein und die restlichen gemessenen Nachbarn werden nicht verglichen. Der Prozess fährt mit dem Schritt 912 in 10 fort. Wenn irgendeiner von den Parametern, d.h., der Abstand di oder der Winkel ϕi oder φi nicht übereinstimmen, stimmen die Nachbarn nicht überein (Schritt 1064).
  • In einer Ausführungsform für mehrere Benutzer, in welcher mehrere Bezugsfingerabdrücke in einer Datenbank gespeichert sind, wird, wenn die gemessene Fingerabdruckschablone nicht mit der ersten Bezugsfingerabdruckschablone übereinstimmt, die nächste Bezugsfingerabdruckschablone mit der gemessenen Fingerabdruckschablone gemäß Darstellung in 12 verglichen. Der Vergleich mehrerer Bezugsfingerabdruckschablonen startet mit dem Schritt 680. Die erste Bezugsfingerabdruckschablone und die gemessene Fingerabdruckschablone werden in den RAM (ein Block pro Zeitpunkt) geladen (Schritt 682). Die Fingerabdruckschablonen werden im Schritt 684 gemäß dem unter Bezugnahme auf die 8A und 8B beschriebenen Schablonen-Vergleichsalgorithmus verglichen. Ob eine Übereinstimmung zwischen den Fingerabdruckschablonen vorliegt, wird im Schritt 686 ermittelt. Wenn eine Übereinstimmung vorliegt (Schritt 688), endet der Prozess im Schritt 696. Wenn keine Übereinstimmung vorliegt, wird ermittelt, ob die letzte Bezugsfingerabdruckschablone verwendet worden ist (Schritt 690). Wenn die letzte Bezugsfingerabdruckschablone verwendet worden ist, liegt keine Übereinstimmung vor (Schritt 692) und der Prozess endet im Schritt 696. Wenn jedoch die letzte Bezugsfingerabdruckschablone nicht verwendet worden ist (Schritt 690), wird die nächste Bezugsfingerabdruckschablone zum Vergleich mit der gemessenen Fingerabdruckschablone geladen (Schritt 694). Im Allgemeinen ist die Anzahl der Bezugsschablonen, die gespeichert werden kann, durch die Speicherkapazität begrenzt. Beispielsweise ist in einer herkömmlichen SmartCard der typische verfügbare statische Speicher 1 Kilobyte bis 16 Kilobyte. Daher ist die Anzahl von Bezugsschablonen, die gespeichert werden kann, durch diese Speicherkapazität beschränkt. In einer weiteren Ausführungsform für ein Mehrbenutzersystem wird die gemessene Fingerabdruckschablone mit allen Bezugsschablonen in einer ähnlichen Weise wie vorstehend beschrieben. Jedoch werden in dieser Ausführungsform für jeden Schablonenvergleich alle Datenblöcke sowohl in der gemessenen Fingerabdruckschablone als auch in der Bezugsschablone verglichen. Beispielsweise werden, selbst wenn eine Übereinstimmung für ein Paar von Fingerabdruckschablonen gefunden wird, wie z.B. durch mehr als vier Datenblockübereinstimmungen, die restlichen Kombinationen der Datenblöcke verglichen. Die Anzahl von Datenblockübereinstimmungen für jede Bezugsfingerabdruckschablone wird gespeichert. Wenn die gemessene Fingerabdruckschablone mit mehr als nur einer Bezugsfingerabdruckschablone übereinstimmt, wird der Benutzer, der die Bezugsfingerabdruckschablone erzeugt, die die höchste Anzahl von Datenblockübereinstimmungen ergibt, als der Benutzer identifiziert.
  • Der Algorithmus gemäß der vorliegenden Erfindung kann in einem Mikroprozessor mit minimalen Fähigkeiten, wie z.B. einem 8-Bit Mikroprozessor auf einer herkömmlichen SmartCard ausgeführt werden, da jeder in dem Algorithmus verwendete Parameter kleiner als 8 Bit ist. Beispielsweise sind die Ortsparameter xj und yj jeweils auf 4 Bit quantisiert; der Minutia-Winkel θj und die Winkel ϕi und φi sind jeweils auf 6 Bit quantisiert; und der Abstand di ist auf 5 Bit quantisiert. Zusätzlich erfordert der Fingerabdruckschablonen-Vergleichsalgorithmus gemäß der vorliegenden Erfindung keine rechenintensiven Prozesse, welche beispielsweise Fließkomma-Operationen, Multiplikationen und Divisionen umfassen. Stattdessen verwendet der Algorithmus gemäß der vorliegenden Erfindung nur Subtraktionen. Somit kann der Algorithmus von einem schwachen Mikroprozessor mit einem sehr niedrigen Takt, z.B. zwischen 1 und 10 Megahertz ausgeführt werden, wie z.B. einem Mikroprozessor in einer herkömmlichen SmartCard.
  • Obwohl die Erfindung unter Bezugnahme auf spezifische Ausführungsformen beschrieben wurde, ist die Beschreibung nur ein Beispiel der Erfindungsanwendung und sollte nicht als Einschränkung gesehen werden. Verschiedene weitere Anpassungen und Kombinationen von Merkmalen der offenbarten Ausführungsformen liegen innerhalb des durch die nachstehenden Ansprüche definierten Schutzumfangs der Erfindung.

Claims (27)

  1. Verfahren zum Vergleichen von Fingerabdruckschablonen, mit den Schritten: Bereitstellen einer in einer SmartCard (100) gespeicherten (102) Bezugsschablone, wobei die Bezugsschablone eine Vielzahl von Referenzdatenblöcken umfasst; Bereitstellen einer durch einen SmartCard-Leser (110) gemessenen Schablone (112, 114, 116), wobei die gemessene Schablone eine Vielzahl gemessener Datenblöcke aufweist; wobei das Verfahren gekennzeichnet ist durch die weiteren Schritte: Laden eines von den gemessenen Datenblöcken über einen Kommunikationskanal (120) in einen RAM (106) auf der SmartCard; und Laden eines von den Bezugsdatenblöcken in den RAM (106) und Vergleichen (104) des einen von den Bezugsdatenblöcken mit dem einen von den gemessenen Datenblöcken.
  2. Verfahren nach Anspruch 1, wobei das Bereitstellen einer Bezugsschablone das Erzeugen eines Bezugsdatenblockes für jede Minutia (charakteristische Stelle) umfasst, welche ein Bezugsfingerabdruckbild ausmacht.
  3. Verfahren nach Anspruch 1, wobei das Bereitstellen einer gemessenen Schablone das Erzeugen eines gemessenen Datenblockes für jede Minutia umfasst, welche ein zu verifizierendes Fingerabdruckbild ausmacht.
  4. Verfahren nach Anspruch 1, wobei jeder von den Bezugsdatenblöcken und jeder von den gemessenen Datenblöcken umfasst: einen Ort einer Minutia; einen Minutia-Winkel der Minutia; und Nachbarschaftsinformation der Minutia.
  5. Verfahren nach Anspruch 3, welches ferner das Vergleichen eines Ortes des Bezugsdatenblockes mit einem Ort des gemessenen Datenblockes umfasst.
  6. Verfahren nach Anspruch 3, welches ferner das Darstellen des Ortes mit einer ersten Koordinate und einer zweiten Koordinate umfasst.
  7. Verfahren nach Anspruch 4, welches ferner die Auswahl einer vorbestimmten Anzahl von Nachbarn umfasst.
  8. Verfahren nach Anspruch 7, welches ferner die Schritte umfasst: Konstruieren einer x-Achse mit der Minutia als ein Mittelpunkt und in einer Richtung tangential zu einer Rille, aus der die Minutia extrahiert wird; Konstruieren einer y-Achse senkrecht zu der x-Achse; Konstruieren einer Linie zwischen der Minutia und dem Nachbarn, wobei die Linie einen Abstand besitzt, und wobei die Linie in einem ersten Winkel zu der x-Achse liegt; Konstruieren einer Linie von dem Nachbarn in einer Richtung tangential zu einer Rille, aus welcher der Nachbar extrahiert wird; wobei die Linie die x-Achse schneidet und einen zweiten Winkel mit der x-Achse bildet; und Darstellen des Nachbarn mit dem Abstand, dem ersten Winkel und dem zweiten Winkel.
  9. Verfahren nach Anspruch 1, welches ferner das Sortieren der Bezugsdatenblöcke umfasst.
  10. Verfahren nach Anspruch 1, welches ferner das Sortieren der gemessenen Datenblöcke umfasst.
  11. Fingerabdruck-Verifikationssystem mit einem SmartCard-Leser (110, wobei der SmartCard-Leser umfasst: einen Fingerabdrucksensor (116); und einen ersten Mikroprozessor (114), wobei der erste Mikroprozessor eine gemessene Schablone mit einer Vielzahl gemessener Datenblöcke aus von dem Fingerabdrucksensor gelesenen Daten erzeugt; eine SmartCard (100), wobei die SmartCard aufweist: einen statischen Speicher (102), wobei der statische Speicher eine Bezugsschablone mit einer Vielzahl von Bezugsdatenblöcken speichert; einen Kommunikationskanal (120) zwischen der SmartCard (100) und dem SmartCard-Leser (110), dadurch gekennzeichnet, dass die SmartCard (100) ferner umfasst: einen zweiten Mikroprozessor (104), wobei der zweite Mikroprozessor einen Vergleichsalgorithmus ausführt, um zu ermitteln, ob die gemessene Schablone mit der Bezugsschablone übereinstimmt, wobei der Vergleichsalgorithmus einen gemessenen Datenblock mit einem Bezugsdatenblock pro Zeitpunkt vergleicht, und einen RAM (106), wobei der RAM einen Bezugsdatenblock und einen gemessenen Datenblock während der Ausführung des Vergleichsalgorithmus speichert.
  12. System nach Anspruch 11, wobei ein gemessener Datenblock in den RAM der SmartCard über den Kommunikationskanal geladen wird.
  13. System nach Anspruch 11, wobei jeder von den gemessenen Datenblöcken und jeder von den Bezugsdatenblöcken umfasst: einen Ort einer Minutia; einen Minutia-Winkel der Minutia; und eine Nachbarschaft Minutia.
  14. System nach Anspruch 13, wobei die Nachbarschaft Positionsparameter von einer Vielzahl einer vorgegebenen Anzahl von Nachbarn umfasst.
  15. System nach Anspruch 14, wobei die Positionsparameter umfassen: einen Abstand zwischen der Minutia und einer benachbarten Minutia einen ersten Winkel zwischen einer ersten Koordinate in einer Richtung tangential zu einer Rille, aus der die Minutia extrahiert wird, und einer zwischen der Minutia und der benachbarten Minutia gezogenen Linie; einen zweiten Winkel zwischen der ersten Koordinate und einer zweiten Koordinate in einer Richtung tangential zu einer Rille, aus der die benachbarte Minutia extrahiert wird;
  16. System nach Anspruch 14, wobei die Nachbarn sortiert sind.
  17. System nach Anspruch 14, wobei die Bezugsdatenblöcke sortiert sind.
  18. System nach Anspruch 11, wobei die gemessenen Datenblöcke sortiert sind.
  19. Fingerabdruck-Verifikationssystem, aufweisend: einen Fingerabdrucksensor (116); einen statischen Speicher (102), wobei der statische Speicher eine Bezugsschablone mit einer Vielzahl von Bezugsdatenblöcken speichert, wovon jeder Bezugsdatenblock eine Minutia repräsentiert; einen Mikroprozessor (114), wobei der Mikroprozessor eine gemessene Schablone aus von dem Fingerabdrucksensor gelesenen Daten erzeugt und einen Vergleichsalgorithmus ausführt, um zu ermitteln, ob die gemessene Schablone mit der Bezugsschablone übereinstimmt, wobei die gemessene Schablone eine Vielzahl gemessener Datenblöcke aufweist, wovon jeder gemessene Datenblock eine Minutia repräsentiert; und dadurch gekennzeichnet, dass das Fingerabdruck-Verifikationssystem ferner umfasst: einen RAM (106), wobei der RAM einen von den Bezugsdatenblöcken und einen von den gemessenen Datenblöcken während der Ausführung des Vergleichsalgorithmus speichert, und dadurch dass der Vergleichsalgorithmus einen gemessenen Datenblock mit einem Bezugsdatenblock zu dem Zeitpunkt speichert.
  20. Fingerabdruck-Verifikationssystem nach Anspruch 19, wobei es, wenn der eine von den gemessenen Datenblöcken und der eine von den Bezugsdatenblöcken nicht übereinstimmen, entweder ausführt: einen Ladeschritt eines nächsten gemessenen Datenblockes in den RAM (106) und Vergleichen (104) des einen von den Bezugsdatenblöcken mit dem nächsten gemessenen Datenblock, oder einen Ladeschritt eines nächsten Bezugsdatenblockes in den RAM (106) und Vergleichen (104) des einen von den gemessenen Datenblöcken mit dem nächsten Bezugsdatenblock.
  21. System nach Anspruch 19, wobei jeder von den gemessenen Datenblöcken und jeder von den Bezugsdatenblöcken umfasst: einen Ort einer Minutia; einen Minutia-Winkel der Minutia; und eine Nachbarschaft Minutia.
  22. System nach Anspruch 21, wobei der Ort umfasst: eine erste Koordinate; und eine zweite Koordinate.
  23. System nach Anspruch 22, wobei die Nachbarschaft Positionsparameter von einer Vielzahl einer vorgegebenen Anzahl von Nachbarn umfasst.
  24. System nach Anspruch 22, wobei die Positionsparameter umfassen: einen Abstand zwischen der Minutia und einer benachbarten Minutia einen ersten Winkel zwischen einer ersten Koordinate in einer Richtung tangential zu einer Rille, aus der die Minutia extrahiert wird, und einer zwischen der Minutia und der benachbarten Minutia gezogenen Linie; einen zweiten Winkel zwischen der ersten Koordinate und einer zweiten Koordinate in einer Richtung tangential zu einer Rille, aus der die benachbarte Minutia extrahiert wird;
  25. System nach Anspruch 24, wobei die Nachbarn sortiert sind.
  26. System nach Anspruch 21, wobei die Bezugsdatenblöcke sortiert sind.
  27. System nach Anspruch 21, wobei die gemessenen Datenblöcke sortiert sind.
DE69928297T 1999-07-15 1999-11-19 Verfahren und system zum vergleichen von fingerabdruckschablonen Expired - Lifetime DE69928297T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/354,929 US6681034B1 (en) 1999-07-15 1999-07-15 Method and system for fingerprint template matching
US354929 1999-07-15
PCT/US1999/027561 WO2001006445A1 (en) 1999-07-15 1999-11-19 Method and system for fingerprint template matching

Publications (2)

Publication Number Publication Date
DE69928297D1 DE69928297D1 (de) 2005-12-15
DE69928297T2 true DE69928297T2 (de) 2006-06-01

Family

ID=23395494

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69928297T Expired - Lifetime DE69928297T2 (de) 1999-07-15 1999-11-19 Verfahren und system zum vergleichen von fingerabdruckschablonen

Country Status (8)

Country Link
US (2) US6681034B1 (de)
EP (1) EP1203344B1 (de)
CN (1) CN1167031C (de)
AT (1) ATE309581T1 (de)
AU (1) AU768531B2 (de)
CA (1) CA2378345C (de)
DE (1) DE69928297T2 (de)
WO (1) WO2001006445A1 (de)

Families Citing this family (110)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL1003802C1 (nl) 1996-07-24 1998-01-28 Chiptec International Ltd Identiteitsbewijs en identificatiesysteem bestemd voor toepassing daarmee.
US6947580B1 (en) * 1996-09-30 2005-09-20 Dalton Patrick Enterprises, Inc. Pointing device with biometric sensor
KR100323679B1 (ko) * 1999-03-26 2002-02-07 구자홍 티브이의 자동 채널탐색장치 및 방법
EP2525316A3 (de) * 1999-11-30 2013-08-14 David Russell Verfahren, Systems und Vorrichtungen für sichere Interaktionen
JP2001344213A (ja) * 2000-05-31 2001-12-14 Hitachi Ltd 生体認証システム
US7599847B2 (en) * 2000-06-09 2009-10-06 Airport America Automated internet based interactive travel planning and management system
US6914517B2 (en) * 2001-04-17 2005-07-05 Dalton Patrick Enterprises, Inc. Fingerprint sensor with feature authentication
US7100207B1 (en) * 2001-06-14 2006-08-29 International Business Machines Corporation Method and system for providing access to computer resources that utilize distinct protocols for receiving security information and providing access based on received security information
US7303120B2 (en) * 2001-07-10 2007-12-04 American Express Travel Related Services Company, Inc. System for biometric security using a FOB
JP2005531935A (ja) 2001-07-12 2005-10-20 アトルア テクノロジーズ インコーポレイテッド 複数の部分的な生体計測によるフレーム走査からの生体画像アセンブリのための方法及びシステム
DE60214033T2 (de) * 2001-11-12 2007-01-04 Precise Biometrics Ab Verfahren und einrichtung zum vergleichen von fingerabdrücken
KR100453220B1 (ko) * 2001-12-05 2004-10-15 한국전자통신연구원 지문 특징점을 이용한 사용자 인증 장치 및 방법
WO2003073159A1 (en) * 2002-02-20 2003-09-04 Planar Systems, Inc. Light sensitive display
US7023503B2 (en) * 2002-02-20 2006-04-04 Planar Systems, Inc. Image sensor with photosensitive thin film transistors
US7009663B2 (en) * 2003-12-17 2006-03-07 Planar Systems, Inc. Integrated optical light sensitive active matrix liquid crystal display
US7053967B2 (en) 2002-05-23 2006-05-30 Planar Systems, Inc. Light sensitive display
AU2003216481A1 (en) * 2002-03-01 2003-09-16 Planar Systems, Inc. Reflection resistant touch screens
JP4519645B2 (ja) * 2002-07-12 2010-08-04 プリヴァリス・インコーポレーテッド 旅行特権割当ておよび検証用個人認証ソフトウェアおよびシステム
BR0202843A (pt) * 2002-07-23 2003-12-09 Taua Biomatica Ltda Equipamento chancelador digital para a assinatura de documentos eletrônicos interface de programação de aplicação segura para acesso a um eqiuipamento chancelador digital, métodos eletrônicos para cadastramento de impressão digital utilizando um equipamento chancelador digital e para assinar digitalmente documentos a partir da identificação positiva de um usuário
CA2820986C (en) 2002-08-06 2016-09-06 Privaris, Inc. Methods for secure enrollment and backup of personal identity credentials into electronic devices
US20080034218A1 (en) * 2002-09-24 2008-02-07 Bender Steven L Key sequence rhythm guidance recognition system and method
US7206938B2 (en) * 2002-09-24 2007-04-17 Imagic Software, Inc. Key sequence rhythm recognition system and method
US20060034492A1 (en) * 2002-10-30 2006-02-16 Roy Siegel Hand recognition system
DE10251787A1 (de) * 2002-11-05 2004-05-19 Philips Intellectual Property & Standards Gmbh Verfahren, Vorrichtung und Computerprogramm zur Erfassung von Punktkorrespondenzen in Punktmengen
DE10254327A1 (de) * 2002-11-21 2004-06-03 Philips Intellectual Property & Standards Gmbh Verfahren zur Bestimmung der Auflagefläche in Bildern von Hautabdrücken
US20040125990A1 (en) * 2002-12-26 2004-07-01 Motorola, Inc. Method and apparatus for asperity detection
US20080084374A1 (en) * 2003-02-20 2008-04-10 Planar Systems, Inc. Light sensitive display
US20080048995A1 (en) * 2003-02-20 2008-02-28 Planar Systems, Inc. Light sensitive display
US7492928B2 (en) * 2003-02-25 2009-02-17 Activcard Ireland Limited Method and apparatus for biometric verification with data packet transmission prioritization
US7512807B2 (en) * 2003-02-25 2009-03-31 Activcard Ireland, Limited Method and apparatus for biometric verification with data packet transmission prioritization
US7114646B2 (en) * 2003-02-25 2006-10-03 Hillhouse Robert D Method and apparatus for biometric verification with data packet transmission prioritization
US7587611B2 (en) 2003-05-30 2009-09-08 Privaris, Inc. In-circuit security system and methods for controlling access to and use of sensitive data
US7474772B2 (en) * 2003-06-25 2009-01-06 Atrua Technologies, Inc. System and method for a miniature user input device
JP4036798B2 (ja) * 2003-07-29 2008-01-23 アルプス電気株式会社 容量検出回路および検出方法並びに指紋センサ
US7587072B2 (en) * 2003-08-22 2009-09-08 Authentec, Inc. System for and method of generating rotational inputs
EP1524620B1 (de) * 2003-10-17 2007-08-15 Berner Fachhochschule, Technik und Informatik (TI) Fingerabdrucksverifikationsmethode und -system
US20050152585A1 (en) * 2004-01-13 2005-07-14 Will Shatford Print analysis
US7697729B2 (en) * 2004-01-29 2010-04-13 Authentec, Inc. System for and method of finger initiated actions
SE526066C2 (sv) 2004-02-12 2005-06-28 Precise Biometrics Ab Portabel databärare, extern uppställning, system och förfarande för trådlös dataöverföring
EP1714271A2 (de) * 2004-02-12 2006-10-25 Atrua Technologies, Inc. System und verfahren zum emulieren von mausoperationen unter verwendung von fingerbildsensoren
US20050188213A1 (en) * 2004-02-23 2005-08-25 Xiaoshu Xu System for personal identity verification
US20060047855A1 (en) * 2004-05-13 2006-03-02 Microsoft Corporation Efficient chunking algorithm
US7773139B2 (en) * 2004-04-16 2010-08-10 Apple Inc. Image sensor with photosensitive thin film transistors
US7212658B2 (en) * 2004-04-23 2007-05-01 Sony Corporation System for fingerprint image reconstruction based on motion estimate across a narrow fingerprint sensor
US7194116B2 (en) * 2004-04-23 2007-03-20 Sony Corporation Fingerprint image reconstruction based on motion estimate across a narrow fingerprint sensor
WO2005109321A1 (en) * 2004-04-23 2005-11-17 Sony Corporation System for fingerprint image reconstruction based on motion estimate across a narrow fingerprint sensor
US7542590B1 (en) 2004-05-07 2009-06-02 Yt Acquisition Corporation System and method for upgrading biometric data
US7310432B2 (en) * 2004-06-26 2007-12-18 Artinnet Corp. Ported system for personal identity verification
US7613787B2 (en) * 2004-09-24 2009-11-03 Microsoft Corporation Efficient algorithm for finding candidate objects for remote differential compression
JP4559181B2 (ja) * 2004-10-08 2010-10-06 富士通株式会社 ユーザ認証装置、電子機器、およびユーザ認証プログラム
US7831070B1 (en) 2005-02-18 2010-11-09 Authentec, Inc. Dynamic finger detection mechanism for a fingerprint sensor
US7481364B2 (en) 2005-03-24 2009-01-27 Privaris, Inc. Biometric identification device with smartcard capabilities
US8231056B2 (en) * 2005-04-08 2012-07-31 Authentec, Inc. System for and method of protecting an integrated circuit from over currents
US7505613B2 (en) * 2005-07-12 2009-03-17 Atrua Technologies, Inc. System for and method of securing fingerprint biometric systems against fake-finger spoofing
US20070061126A1 (en) * 2005-09-01 2007-03-15 Anthony Russo System for and method of emulating electronic input devices
US7940249B2 (en) * 2005-11-01 2011-05-10 Authentec, Inc. Devices using a metal layer with an array of vias to reduce degradation
US20070109239A1 (en) * 2005-11-14 2007-05-17 Den Boer Willem Integrated light sensitive liquid crystal display
JP4518092B2 (ja) * 2006-03-31 2010-08-04 ソニー株式会社 物体認識装置、物体認識方法、物体認識プログラム、特徴量登録装置、特徴量登録方法、及び特徴量登録プログラム
US20070297653A1 (en) * 2006-06-22 2007-12-27 Rudolf Maarten Bolle Fingerprint representation using localized texture features
WO2008010899A2 (en) * 2006-06-30 2008-01-24 Electronics Plastics, Llc Biometric embedded device
US7885436B2 (en) * 2006-07-13 2011-02-08 Authentec, Inc. System for and method of assigning confidence values to fingerprint minutiae points
SE530514C2 (sv) 2006-09-07 2008-06-24 Innitor Ab En metod, en apparat och en datorprogramprodukt inom fingeravtrycksmatchning
US20080097924A1 (en) * 2006-10-20 2008-04-24 Electronic Plastics, Llc Decentralized secure transaction system
US20080273770A1 (en) * 2007-05-03 2008-11-06 Upek, Inc. Fast Fingerprint Identification And Verification By Minutiae Pair Indexing
WO2009011661A1 (en) * 2007-07-18 2009-01-22 Agency For Science, Technology And Research Method and device for determining a similarity value between minutiae templates
CN104200145B (zh) 2007-09-24 2020-10-27 苹果公司 电子设备中的嵌入式验证系统
US9785330B1 (en) 2008-02-13 2017-10-10 Apple Inc. Systems for and methods of providing inertial scrolling and navigation using a fingerprint sensor calculating swiping speed and length
FR2935508B1 (fr) * 2008-09-01 2010-09-17 Sagem Securite Procede de determination d'une pseudo-identite a partir de caracteristiques de minuties et dispositif associe.
WO2010033228A1 (en) * 2008-09-18 2010-03-25 Secure Services Corp. System and methods for biometric identification on smart devices using multos
WO2010122721A1 (ja) * 2009-04-22 2010-10-28 日本電気株式会社 照合装置、照合方法および照合プログラム
US8421890B2 (en) 2010-01-15 2013-04-16 Picofield Technologies, Inc. Electronic imager using an impedance sensor grid array and method of making
US8866347B2 (en) 2010-01-15 2014-10-21 Idex Asa Biometric image sensing
US8791792B2 (en) 2010-01-15 2014-07-29 Idex Asa Electronic imager using an impedance sensor grid array mounted on or about a switch and method of making
US8520903B2 (en) * 2010-02-01 2013-08-27 Daon Holdings Limited Method and system of accounting for positional variability of biometric features
US8041956B1 (en) 2010-08-16 2011-10-18 Daon Holdings Limited Method and system for biometric authentication
US8863165B2 (en) * 2010-11-01 2014-10-14 Gracenote, Inc. Method and system for presenting additional content at a media system
US9310923B2 (en) 2010-12-03 2016-04-12 Apple Inc. Input device for touch sensitive devices
US9042607B2 (en) * 2011-05-02 2015-05-26 Omnicell, Inc. System and method for user access of dispensing unit
US9329703B2 (en) 2011-06-22 2016-05-03 Apple Inc. Intelligent stylus
US8638320B2 (en) 2011-06-22 2014-01-28 Apple Inc. Stylus orientation detection
US8928635B2 (en) 2011-06-22 2015-01-06 Apple Inc. Active stylus
CN102281539B (zh) * 2011-08-29 2014-10-29 惠州Tcl移动通信有限公司 移动终端及其应用程序登录方法
US8380995B1 (en) * 2011-11-29 2013-02-19 Google Inc. Process for login of a computing device with a touchscreen
US20130279769A1 (en) 2012-04-10 2013-10-24 Picofield Technologies Inc. Biometric Sensing
JP6023879B2 (ja) 2012-05-18 2016-11-09 アップル インコーポレイテッド 指紋センサ入力に基づくユーザインタフェースを操作するための機器、方法、及びグラフィカルユーザインタ−フェース
RS54229B1 (en) 2012-06-14 2015-12-31 Vlatacom D.O.O. BIOMETRIC ACCESS CONTROL SYSTEM AND PROCEDURE
US9652090B2 (en) 2012-07-27 2017-05-16 Apple Inc. Device for digital communication through capacitive coupling
US9176604B2 (en) 2012-07-27 2015-11-03 Apple Inc. Stylus device
US9557845B2 (en) 2012-07-27 2017-01-31 Apple Inc. Input device for and method of communication with capacitive devices through frequency variation
GB2507539A (en) * 2012-11-02 2014-05-07 Zwipe As Matching sets of minutiae using local neighbourhoods
GB2507540A (en) 2012-11-02 2014-05-07 Zwipe As Enrolling fingerprints by combining image strips to obtain sufficient width
US9158393B2 (en) 2012-12-18 2015-10-13 Logitech Europe S.A. Active stylus for touch sensing applications
US9367185B2 (en) 2012-12-18 2016-06-14 Logitech Europe S.A. Method and system for discriminating stylus and touch interactions
US10048775B2 (en) 2013-03-14 2018-08-14 Apple Inc. Stylus detection and demodulation
US10845901B2 (en) 2013-07-31 2020-11-24 Apple Inc. Touch controller architecture
CN103685259B (zh) * 2013-12-06 2017-08-08 北京奇虎科技有限公司 账户登录的方法及其装置
DE102014201313A1 (de) 2014-01-24 2015-07-30 Myestro Interactive Gmbh Verfahren zur Erkennung einer Bewegungsbahn mindestens eines bewegten Objektes innerhalb eines Erfassungsbereiches, Verfahren zur Gestikerkennung unter Einsatz eines derartigen Erkennungsverfahrens sowie Vorrichtung zur Durchführung eines derartigen Erkennungsverfahrens
GB2512448B (en) * 2014-01-27 2015-04-08 Ramesh Gatge Fingerprint analysis
SE1451084A1 (sv) * 2014-09-16 2016-03-17 Fingerprint Cards Ab Method and fingerprint sensing system for authenticating a candidate fingerprint
US10067618B2 (en) 2014-12-04 2018-09-04 Apple Inc. Coarse scan and targeted active mode scan for touch
US9619670B1 (en) 2015-01-09 2017-04-11 Github, Inc. Detecting user credentials from inputted data
US9672408B2 (en) * 2015-02-20 2017-06-06 Sony Corporation Hidden biometric setup
US10868672B1 (en) 2015-06-05 2020-12-15 Apple Inc. Establishing and verifying identity using biometrics while protecting user privacy
US11140171B1 (en) 2015-06-05 2021-10-05 Apple Inc. Establishing and verifying identity using action sequences while protecting user privacy
SE539528C2 (en) * 2016-01-13 2017-10-10 Precise Biometrics Ab A method for updating biometric reference data
EP3232369B1 (de) * 2016-04-15 2021-06-16 Nxp B.V. Fingerabdruckauthentifizierungssystem und -verfahren
US10637933B2 (en) 2016-05-26 2020-04-28 Logitech Europe S.A. Method and apparatus for transferring information between electronic devices
US10474277B2 (en) 2016-05-31 2019-11-12 Apple Inc. Position-based stylus communication
WO2018076163A1 (zh) * 2016-10-25 2018-05-03 深圳市汇顶科技股份有限公司 指纹算法库与指纹传感器的绑定认证方法及指纹识别系统
US11562638B2 (en) 2020-08-24 2023-01-24 Logitech Europe S.A. Electronic system and method for improving human interaction and activities

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4185270A (en) 1976-07-19 1980-01-22 Fingermatrix, Inc. Fingerprint identification method and apparatus
US4151512A (en) 1976-09-10 1979-04-24 Rockwell International Corporation Automatic pattern processing system
US4135147A (en) 1976-09-10 1979-01-16 Rockwell International Corporation Minutiae pattern matcher
CA1181176A (en) 1980-10-27 1985-01-15 John C. Elsey Fingerprint minutiae matcher
SE425704B (sv) 1981-03-18 1982-10-25 Loefberg Bo Databerare
US4438824A (en) 1981-04-22 1984-03-27 Siemens Corporation Apparatus and method for cryptographic identity verification
CA1199732A (en) 1982-06-28 1986-01-21 Koh Asai Method and device for matching fingerprints with precise minutia pairs selected from coarse pairs
US4428824A (en) * 1982-09-27 1984-01-31 Mobil Oil Corporation Process for visbreaking resid deasphaltenes
US4532508A (en) 1983-04-01 1985-07-30 Siemens Corporate Research & Support, Inc. Personal authentication system
EP0159037B1 (de) 1984-04-18 1993-02-10 Nec Corporation Identifizierungssystem durch Prüfung von Fingerabdrücken
US5144680A (en) 1985-03-01 1992-09-01 Mitsubishi Denki Kabushiki Kaisha Individual identification recognition system
US4783823A (en) * 1985-09-16 1988-11-08 Omron Tateisi Electronics, Co. Card identifying method and apparatus
WO1991006920A1 (en) * 1989-11-02 1991-05-16 Tms, Incorporated Non-minutiae automatic fingerprint identification system and methods
US4993068A (en) 1989-11-27 1991-02-12 Motorola, Inc. Unforgeable personal identification system
CA2064926C (en) 1991-04-03 1996-07-16 Ritsuko Omori Fingerprint image processing system capable of simply processing minutiae
GB2256170A (en) 1991-05-02 1992-12-02 William Robert Brandes Integrated circuit card with fingerprint verification.
JPH04332089A (ja) 1991-05-07 1992-11-19 Takayama:Kk 指紋データの登録方法
AU3777593A (en) * 1992-02-26 1993-09-13 Paul C. Clark System for protecting computers via intelligent tokens or smart cards
US5280527A (en) * 1992-04-14 1994-01-18 Kamahira Safe Co., Inc. Biometric token for authorizing access to a host system
US5268963A (en) 1992-06-09 1993-12-07 Audio Digital Imaging Inc. System for encoding personalized identification for storage on memory storage devices
US5581630A (en) * 1992-12-21 1996-12-03 Texas Instruments Incorporated Personal identification
US5559504A (en) 1993-01-08 1996-09-24 Kabushiki Kaisha Toshiba Surface shape sensor, identification device using this sensor, and protected system using this device
US5384846A (en) * 1993-04-26 1995-01-24 Pitney Bowes Inc. System and apparatus for controlled production of a secure identification card
US5450491A (en) 1993-08-26 1995-09-12 At&T Corp. Authenticator card and system
US5509083A (en) * 1994-06-15 1996-04-16 Nooral S. Abtahi Method and apparatus for confirming the identity of an individual presenting an identification card
US5469506A (en) * 1994-06-27 1995-11-21 Pitney Bowes Inc. Apparatus for verifying an identification card and identifying a person by means of a biometric characteristic
US5546463A (en) * 1994-07-12 1996-08-13 Information Resource Engineering, Inc. Pocket encrypting and authenticating communications device
US5541994A (en) 1994-09-07 1996-07-30 Mytec Technologies Inc. Fingerprint controlled public key cryptographic system
US5613014A (en) * 1994-10-12 1997-03-18 Martin Marietta Corp. Fingerprint matching system
US5613012A (en) * 1994-11-28 1997-03-18 Smarttouch, Llc. Tokenless identification system for authorization of electronic transactions and electronic transmissions
US5963679A (en) 1996-01-26 1999-10-05 Harris Corporation Electric field fingerprint sensor apparatus and related methods
DE19607131B4 (de) * 1996-02-26 2005-12-29 Siemens Ag Verfahren zum rechnergestützten Abgleich mehrerer, in mindestens einem Rechner gespeicherten Dateikopien einer gespeicherten Datei
IL122230A (en) 1997-11-17 2003-12-10 Milsys Ltd Biometric system and techniques suitable therefor

Also Published As

Publication number Publication date
AU1630800A (en) 2001-02-05
US6681034B1 (en) 2004-01-20
WO2001006445A1 (en) 2001-01-25
EP1203344A1 (de) 2002-05-08
CN1167031C (zh) 2004-09-15
ATE309581T1 (de) 2005-11-15
US20040128521A1 (en) 2004-07-01
CN1359504A (zh) 2002-07-17
US7299360B2 (en) 2007-11-20
AU768531B2 (en) 2003-12-18
CA2378345A1 (en) 2001-01-25
EP1203344B1 (de) 2005-11-09
CA2378345C (en) 2010-07-06
DE69928297D1 (de) 2005-12-15

Similar Documents

Publication Publication Date Title
DE69928297T2 (de) Verfahren und system zum vergleichen von fingerabdruckschablonen
EP0780002B1 (de) Verfahren und vorrichtung zur rekonstruktion von in rasterform vorliegenden linienstrukturen
DE60220284T2 (de) Fingerabdrucknarbenerkennungsverfahren und -vorrichtung
DE60016589T2 (de) Verfahren und vorrichtung zur erzeugung eines zusammengesetzten fingerabdruckbildes
DE60309176T2 (de) Biometrisches authentifizierungssystem
DE69815291T2 (de) Sicherheitsgerät und verfahren
DE60210348T2 (de) Bildidentifizierungssystem
DE69817784T2 (de) Verfahren zum sammeln biometrischer informationen
DE60214544T2 (de) Vorrichtung und verfahren zur datenverarbeitung
DE102016005636A1 (de) Transformierte Repräsentation für Fingerabdruckdaten mit hoher Erkennungsgenauigkeit
WO2001086584A1 (de) Verfahren und system zur generierung eines schlüsseldatensatzes
DE60200829T3 (de) Vorrichtung und Verfahren zur biometrischen Überprüfung und Erfassung der Identität einer Person mittels Fingerabdruckinformationen
DE60030739T2 (de) Überprüfung der zugangsberechtigung
Kasaei et al. Fingerprint feature extraction using block-direction on reconstructed images
DE60223636T2 (de) Gesicherte Identifizierung durch biometrische Daten
EP1395943A2 (de) Verfahren zum prüfen eines fingerabdrucks
DE10260642B4 (de) Verfahren zur Erstellung einer Referenz für Fingerprints und zum Vergleich von Fingerprints
WO1997034251A1 (de) Verfahren zur erfassung und speicherung gesichtsbezogener personendaten und deren verwendung zur identifizierung oder verifikation von personen
DE10260638B4 (de) Verfahren zur Bestimmung einer Anzahl von übereinstimmenden Minutien zweier Fingerprints
DE10118485B4 (de) Automatische Identifikation und/oder Verifikation linienhafter Texturen wie Fingerabdrücke
EP1866833B1 (de) Verifizieren von fingerabdrücken
EP0996924B1 (de) Verfahren zur ermittlung eines identifikationscodes aus fingerabdruckbildern
DE102018121088A1 (de) Fingerabdruckerkennungsverfahren und eine elektronische Vorrichtung, die diese verwendet
EP1071034A2 (de) Enrollment von Fingerprints
DE10260639B4 (de) Fingerprint Matching mit Limitierten Ressourcen