-
STAND DER TECHNIK
-
Die
Ausführungsformen
der vorliegenden Erfindung betreffen allgemein die Mustererkennung,
und insbesondere den schnellen Vergleich von Daten mit Bezugsvorlagen
oder -mustern.
-
In
einem allgemeinen Verfahren für
einen Mustervergleich werden Bezugsmuster mit Eingabedaten verglichen,
um zu bestimmen, welches Bezugsmuster am besten mit den Eingabedaten übereinstimmt.
-
Eine
Mustervergleichsarchitektur ist eine auf Computer laufende Universal-Mustererkennungssoftware.
Diese Architektur weist die folgenden Vorteile auf: a) sie kann
aufgrund der Softwareimplementierung an verschiedene Mustererkennungsalgorithmen
angepaßt
werden; und b) es kann typischerweise eine große Zahl von Bezugsvorlagen
benutzt werden, da die Zahl der Bezugsvorlagen gewöhnlich nur
durch die Menge des Computersystem-Speichers begrenzt wird. Doch
diese Architektur hat unter den folgenden Nachteilen zu leiden:
Langsame Leistung, hoher elektrischer Stromverbrauch, zu groß für viele
Anwendungen, teuer, und komplexe Software. Solche Architekturen
eignen sich nicht gut für
Anwendungen, die einen schnellen Mustervergleich erfordern oder
die geringen Strombedarfs- und die Portabilitätsanforderungen von eingebetteten
Anwendungen erfüllen
müssen.
-
Eine
andere Mustervergleichsarchitektur verwendet einen inhaltsadressierbaren
Speicher, der einen eingebetteten Hardwarekomparator in jeder Speicherzelle
umfaßt,
um den Inhalt seines Speicherorts der Vergleichsfunktion des eingebetteten
Komparators gemäß mit einem
entsprechenden Bit der Eingabedaten zu vergleichen. Diese Architektur
weist die Vorteile auf, daß sie
schnell (aufgrund ihrer Hardwareimplementierung) und relativ klein
ist. Doch sie hat unter mehreren Nachteilen zu leiden: 1) Einschränkungen
hinsichtlich der Art und Komplexität der Algorithmen, die verwendet
werden können,
2) relativ hoher Stromverbrauch, 3) hochkomplexes Design auf der
Speicherzellenebene, und 4) nicht auf eine große Zahl von Bezugsvorlagen skalierbar.
Das Implementieren einer Hardwarearchitektur für jede Speicherzelle ist teuer,
schließt
komplexere Vergleichskriterien aus und schränkt die Flexibilität bei der
Implementierung mehrfacher Vergleichskriterien ein. Zum Beispiel
kann solch eine Mustervergleichsarchitektur typischerweise nur einen
genauen Bitvergleich umfassen, um zu bestimmen, welches gespeicherte
Bezugsmuster, wenn überhaupt,
mit sämtlichen
Bits der Eingabedaten übereinstimmt.
Komplexere Vergleichskriterien wären
zu komplex und/oder teuer, um in dieser Architektur verwendet zu
werden.
-
EP 1 369 793 A1 betrifft
ein Mustervergleichs- und Mustererkennungssystem für einen
Mustervergleich und eine Mustererkennung von Eingabedaten. Eine
Vielzahl von Referenzwörtern,
die auf einem zweiten Abstandsindex basieren, der die Kodierung
eines ersten Abstandsindexes ermöglicht,
werden in einem assoziativen Speicherkern vorab registriert. In
einer ersten Pipeline-Stufe wird ein aufgefundenes Wort mit einer vorab
festgelegten Anzahl von Bits aus Eingabedaten in einem vorab festgelegten
Taktzyklus extrahiert und das aufgefundene Wort wird mit dem zweiten
Distanzindex kodiert und an den Kern ausgegeben. In einer zweiten
Pipeline-Stufe sucht der Kern nach einem Referenzwort, das größte Ähnlichkeit
in Bezug auf das aufgefundene Wort (Gewinner) aufweist, das in dem
vorangehenden Taktzyklus erhalten wurde. In einer dritten Pipeline-Stufe
wird das von dem Kern ausgegebene Ergebnis in dem vorangehenden
Taktzyklus analysiert, wird ein Gewinner auf der Grundlage einer
speziellen Priorität
ermittelt und werden eine Adresse, die den Ort des Gewinners und
den Abstand zwischen den Eingabedaten und dem Gewinner angibt, kodiert
und ausgegeben.
-
US-5,717,908 betrifft ein
Mustererkennungssystem, das eine arithmetische logische Einheit
mit vier Adressen verwendet. Zwei der Adressen können als Quellen für Operanden
definiert sein. Zwei der vier Adressen können als ein Ziel für das Ergebnis
der Recheneinheit und als ein Zeiger definiert sein, der durch eine Zeiger-Pipeline
aktualisiert wird. Es gibt zwei arithmetische Pipelines und zwei
Zeiger-Pipelines, die parallel operieren und Berechnungen durchführen, die
durch speziell entwickeltes Anweisungsformat angegeben werden.
-
Die
US-5,295,198 betrifft die
Musteridentifizierung durch Analyse von digitalen Wörtern. Genauer
gesagt offenbart sie ein Verfahren und eine Vorrichtung zum Analysieren
von digitalen Multi-Bit-Wörtern
und Identifizieren von deren Quelle oder Inhalt. Die digitalen Wörter werden
in Multi-Bit-Felder umgewandelt, wobei jedes Feld ein Teil des digitalen
Worts ist oder mit einem oder mehreren schreibenden Parametern der
Quelle korrespondiert.
-
Auch
wenn die obigen Architekturen für
einige Mustererkennungsanwendungen geeignet sind, erfordern andere
Anwendungen eine Mustervergleichsarchitektur, die schnell ist, eine
Auswahl an mehrfachen Vergleichsalgorithmen (einschließlich komplexerer
Algorithmen) ermöglicht,
und relativ wenig Strom verbraucht. Deshalb besteht ein Bedarf nach
verbesserten Mustervergleichsarchitekturen.
-
Der
vorliegenden Erfindung liegt somit die Aufgabe zugrunde, eine Mustervergleichsarchitektur
bereitzustellen, die schnell ist, eine Auswahl an mehrfachen Vergleichsalgorithmen
ermöglicht
und relativ wenig Strom verbraucht.
-
Erfindungsgemäß wird diese
Aufgabe gelöst
durch eine Vorrichtung gemäß Patentanspruch
1.
-
Außerdem wird
diese Aufgabe gelöst
durch ein Verfahren gemäß Patentanspruch
12.
-
Schließlich wird
diese Aufgabe auch gelöst
durch ein System gemäß Patentanspruch
20.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Verschiedene
Ausführungsformen
der vorliegenden Erfindung werden beispielhaft und auf nicht einschränkende Weise
in den beiliegenden Zeichnungen veranschaulicht, wobei gleiche Bezugszeichen
gleiche Elemente anzeigen.
-
1 ist
ein Blockdiagramm eine Vorrichtung für einen Mustervergleich nach
einer Ausführungsform der
vorliegenden Erfindung.
-
2 ist
ein Blockdiagramm der flexiblen Vergleichs- und Klassifikationseinheit
von 1 nach einer Ausführungsform der vorliegenden
Erfindung.
-
3 ist
ein Blockdiagramm der Steuereinheit von 1 nach einer
Ausführungsform
der vorliegenden Erfindung.
-
4 ist
ein Blockdiagramm einer kaskadierten Mustervergleichsarchitektur
nach einer Ausführungsform
der vorliegenden Erfindung.
-
5 ist
ein Blockdiagramm eines Computersystems, mit welchem Ausführungsformen
der vorliegenden Erfindung verwendet werden können.
-
6 ist
ein Flußdiagramm,
das ein Verfahren für
einen Mustervergleich nach einer Ausführungsform der vorliegenden
Erfindung darstellt.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Es
wird ein Verfahren, eine Vorrichtung und ein System für einen
Mustervergleich beschrieben. In der folgenden Beschreibung werden
zur Erläuterung
zahlreiche spezifische Details dargelegt, um ein gründliches Verständnis verschiedener
Ausführungsformen
der Erfindung zu ermöglichen.
Doch für
den Fachmann versteht es sich, daß Ausführungsformen der Erfindung
ohne die spezifischen Details in die Praxis umgesetzt werden können. In
anderen Fällen
werden Strukturen und Geräte
in Blockdiagrammform gezeigt, um zu vermeiden, daß Ausführungsformen
der Erfindung schwer verständlich
werden.
-
Die
Bezugnahme in dieser Patentschrift auf „eine Ausführungsform" bedeutet, daß ein bestimmtes Merkmal, eine
Struktur oder Eigenschaft, die in Verbindung mit der Aus führungsform
beschrieben wird, in mindestens einer Ausführungsform der Erfindung eingeschlossen
ist. Die Phrase „in
einer Ausführungsform", die an verschiedenen
Stellen in der Patentschrift auftritt, bezieht sich nicht unbedingt
jedes Mal auf dieselbe Ausführungsform.
-
Einige
Beispiele für
Mustervergleichsanwendungen sind die Authentifizierung (wie z.B.
Gesichts-, Stimmen-, Fingerabdruck-, Unterschriften- und Irisvergleich),
die Lagerbestandsaufnahme (wie z.B. Strichcodes und Hochfrequenzerkennung),
die Kommunikation (wie z.B. Sprach-, Ton- und Bilderkennung und
-kompression, und Header-Parsing), und die industrielle Kontrolle
(wie z.B. Teileprüfung
und vorbeugende Wartung).
-
Eingabedaten
aus solch einer Anwendung können
einem oder mehreren Vergleichsalgorithmen entsprechend mit einem
Satz Bezugsmustern oder -vorlagen verglichen werden, um verschiedene
Abstandmessungen zwischen den Echtzeitdaten und den Bezugsvorlagen
zu erzeugen. Eine Abstandmessung ist eine Bestimmung der Differenz
zwischen zwei Daten einer Abstandsformel oder einem Algorithmus
entsprechend. Einige Beispiele für
solche Abstandsmessungen sind die bitgenaue Übereinstimmung, der Hamming-Abstand, der euklidische
Abstand, der mittlere Größenabstand
und der Korrelationsabstand. Bestimmte Anwendungen können mehrfache
Arten von Abstandsmessungen verwenden. Dadurch kann eine Möglichkeit
implementiert werden, eine Vielfalt aus einer oder mehreren Abstandsmessungen
zu wählen.
-
In
einigen Anwendungen können
nach dem Erzeugen der Abstandsmessungen die Abstandsmessungen weiter
verarbeitet oder klassifiziert werden, um einem oder mehreren Klassifikationskriterien
entsprechend zu bestimmen, welche Bezugsvorlagen aus dem gewählten Satz
am besten mit den Eingabedaten übereinstimmen.
Zum Beispiel kann bestimmt werden, welche Bezugsvorlagen die beste Übereinstimmung,
die schlechteste Übereinstimmung,
die durchschnittliche Übereinstimmung
und/oder die mittlere Übereinstimmung
für ein
gegebenes Eingabedatum sind. Die Art der Entscheidungen, die auf
der Basis der „Übereinstimmungen" getroffen werden,
kann je nach Anwendung verschieden sein, wodurch eine Mustervergleichsarchitektur
implementiert werden kann, die wählbare
Klassifikationen von Abstandsmessungen bereitstellt.
-
Nun
Bezug nehmend auf 1, wird ein Blockdiagramm einer
Vorrichtung für
einen Mustervergleich 100 nach einer Ausführungsform
der vorliegenden Erfindung gezeigt. Die Vorrichtung für einen
Mustervergleich 100 kann eine Möglichkeit bieten, einen Satz
von einer oder mehreren Abstandsmessungen zu wählen, die erzeugt werden sollen
(z.B. bitgenaue Übereinstimmung,
Hamming-Abstand, euklidischer Abstand, mittlerer Größenabstand
und/oder Korrelationsabstand), kann eine Möglichkeit bieten, die Abstandsmessungen
einem oder mehreren gewählten
Klassifikationskriterien (z.B. beste Übereinstimmung, schlechteste Übereinstimmung,
durchschnittliche Übereinstimmung
und/oder mittlere Übereinstimmung)
entsprechend zu klassifizieren, und kann einen Nachschlagetabellenmechanismus
mit zugehörigen
logischen und arithmetischen Vergleichsmechanismen umfassen, um
ein Eingabedatum mit einem Satz Bezugsvorlagen zu vergleichen und
auf der Basis der Benutzereinstellungen einen Index der übereinstimmenden
Vorlage(n) bereitzustellen.
-
In
einer Ausführungsform
kann die Vorrichtung für
einen Mustervergleich 100 in einem Speichergerät integriert
sein, so daß der
Chipspeicher benutzt werden kann, um große Sätze von Bezugsvorlagen zu speichern,
auf die sehr schnell zugegriffen werden kann, ohne einen Host-Bus
zu belegen. In einer Ausführungsform
kann die Vorrichtung für
einen Mustervergleich 100 als Mustervergleichsbeschleuniger
im Prozessor eingebettet sein. In einer Ausführungsform kann eine eingebettete
Vorrichtung für
einen Mustervergleich 100 auf eine Vergleichsanweisung
des Prozessors abgebildet sein, um einen schnellen, flexiblen, komplexen
Datenvergleich samt Klassifikation zu gewährleisten, während dem
Prozessor erlaubt wird, andere Aufgaben durchzuführen. Solch ein Prozessor kann
eine eingebettete Vorrichtung für
einen Mustervergleich 100 vorteilhafterweise für verschiedene
Anwendungen nutzen, wie z.B. Mustererkennung, Abzweigungsprognose,
intelligentes Caching, adaptiv angepaßte Filterung und Instruction
Level Encryption.
-
Weiter
Bezug nehmend auf 1, kann ein Eingangspuffer 106 Eingabedaten über Eingänge 102 empfangen
und die Eingabedaten zur nachfolgenden Verarbeitung durch eine flexible
Vergleichs- und Klassifikationseinheit 108 speichern. In
einer Ausführungsformen
ist der Eingangspuffer 106 mit Dual-Port oder doppelter
Puffereng, um selbst dann, wenn vorherige Eingabedaten zur Verarbeitung
durch die flexiblen Vergleichs- und Klassifikationseinheit 108 abgerufen
werden, das asynchrone Laden neuer Eingabedaten zu erlauben.
-
Ein
Vorlagenspeicher 104 kann verwendet werden, um Bezugsmuster
oder -vorlagen von Eingängen 102 zu
empfangen und die Bezugsvorlagen zur nachfolgenden Verarbeitung
durch die flexible Vergleichs- und Klassifikationseinheit 108 zu
speichern. In einer Ausführungsform
kann der Vorlagenspeicher 104 mit Dual-Port oder doppelter
Puffereng sein, um das gleichzeitige Laden und Zugreifen auf die
Bezugsvorlagen zu erlauben. In verschiedenen Ausführungsformen
kann der Vorlagenspeicher 104 auf verschiedenen Speichertechnologien
basieren, um die Anforderungen der Zielanwendung an die Speichergröße, Leistung,
Geschwindigkeit, Nichtflüchtigkeit
usw. zu erfüllen.
Zum Beispiel kann der Vorlagenspeicher 104 mit Halbleitergeräten wie
Nur-Lese-Speichern (ROMs), Schreib-/Lesespeichern (RAMs), dynamischen
Schreib-/Lesespeichern (DRAMs), lösch- und programmierbaren Lesespeichern
(EPROMs) Flash-Speichern oder elektrisch löschbaren Lesespeichern (EEPROMs)
implementiert sein.
-
Weiter
Bezug nehmend auf 1, können Daten oder Vektoren aus
dem Eingangspuffer 106 und dem Vorlagenspeicher 104 den
Eingängen
der flexible Vergleichs- und Klassifikationseinheit 108 zugeführt werden. Wie
in Verbindung mit 2 ausführlicher beschrieben, kann
die flexible Vergleichs- und Klassifikationseinheit 108 konfiguriert
sein, um verschiedene Datenbreiten zu vergleichen und zu klassifizieren,
die Eingabedaten und Bezugsvorlagen in Teilfelder oder Dimensionen
für den
Vergleich und die Klassifikation aufzuteilen oder zu schneiden,
Vergleiche verschiedener Art durchzuführen, um verschiedene unterschiedliche
Abstandsmessungen zwischen den Eingabedaten und Bezugsvorlagen (z.B.
bitgenaue Übereinstimmung,
Hamming-Abstand, euklidischer Abstand, mittlerer Größenabstand
und/oder Korrelationsabstand) zu erzeugen, die Abstandsmessungen
für die
verschiedenen Dimensionen der Eingabedaten aggregieren oder kombinieren,
um Nettoabstandsmessungen zu erhalten, und die Nettoabstandsmessungen
einem oder mehreren gewählten Kriterien
(z.B. beste Übereinstimmung,
schlechteste Übereinstimmung,
durchschnittliche Übereinstimmung und/oder
die mittlere Übereinstimmung)
entsprechend zu klassifizieren. Die flexible Vergleichs- und Klassifikationseinheit 108 kann
auch einen Mechanismus umfassen, um eine oder mehrere Entscheidungen
auf der Basis der ermittelten Übereinstimmungen
und bestimmter Grenzbedingungen zu treffen, und diese Entscheidungen über ein
oder mehrere Entscheidungskennzeichen 124 anzuzeigen. Die
flexible Vergleichs- und
Klassifikationseinheit 108 kann auch einen Kaskaden-PMU-Eingang 112 umfassen,
um das Kaskadieren von mehrfachen Vorrichtungen für einen
Mustervergleich 100 zu erlauben, um größere Zahlen von Bezugsvorlagen
oder Vektordimensionen vergleichen zu können. Nähere Details einer Ausführungsform
der flexiblen Vergleichs- und Klassifikationseinheit 108 werden
weiter unten in Verbindung mit 2 beschrieben.
-
Weiter
Bezug nehmend auf 1, kann ein Ausgangspuffer 116 die
Ausgabe 126 von der flexiblen Vergleichs- und Klassifikationseinheit 108 speichern
und die gepufferten Ergebnisse 118 einem Multiplexer 120 zuführen. Die
Ausgabe 126 der flexiblen Vergleichs- und Klassifikationseinheit 108 kann
den Indexwert der ermittelten Bezugsvorlagenübereinstimmungen, die übereinstimmenden
Bezugsvorlagen, die zugehörigen Nettoabstandsmessungen
und/oder andere relevante Vergleichsdaten umfassen. In einer Ausführungsform
ist der Ausgangspuffer 116 ein First-in-First-out (FIFO)-Stapel.
In einer Ausführungsform
empfängt
der Multiplexer 120 die gepufferten Ergebnisse 118 aus
dem Ausgangspuffer 116 und empfängt auch die Ausgabe 126 direkt
von der flexiblen Vergleichs- und Klassifikationseinheit 108.
In einem Modus (z.B. selbstständiger PMU-Modus) kann der Multiplexer 120 die
gepufferten Ergebnisse 118 der PMU-Endausgang 122 zuführen. In
einem anderen Modus (z.B. ein Kaskaden-PMU-Modus) kann der Multiplexer 120 die
Ausgabe der flexiblen Vergleichs- und Klassifikationseinheit 108 dem
PMU-Endausgang 122 direkt
zuführen.
Die PMU-Endausgabe 122 kann dem Hostsystem oder sonstigen
Gerät als
die Vergleichs-/Klassifikationsendausgabe der flexiblen Vergleichs-
und Klassifikationseinheit 108 zugeführt werden.
-
In
einer Ausführungsform
kann der Ausgangspuffer 116 mit einer Steuereinheit 110 zusammenarbeiten,
um geeignete Anzeiger (z.B. Unterlauf, Überlauf, halb voll) zu erzeugen,
um Statusinformation an das Hostsystem bereitzustellen. Solche Anzeiger
können
dem Hostsystem erlauben, die Anzeiger periodisch abzufragen und
zu antworten, nachdem eine gewählte
Zahl von Eingabevektoren verglichen und klassifiziert worden sind.
Auf diese Weise kann das Hostsystem andere Aufgaben durchführen, während die
Vorrichtung für einen
Mustervergleich 100 einen Satz Eingabevektoren vergleicht
und klassifiziert.
-
Weiter
Bezug nehmend auf 1, kann die Steuereinheit 110 verschiedene
Konfigurationsoptionen für
die Vorrichtung für
einen Mustervergleich 100 vorsehen. Zum Beispiel kann die
Steuereinheit 110 die Datengrößen/-weiten steuern, die Zahl
und/oder Weite der Vektordimensionen, in welche die Eingabedaten
und Bezugsvorlagen aufgeteilt werden, die Wahl einer oder mehrerer
Abstandsmessungen, die bei jedem Vergleich erzeugt werden sollen,
die Wahl einer oder mehrerer Klassifikationskriterien, die verwendet
werden sollen, und die Wahl der verschiedenen Modi der Vorrichtungen
für einen
Mustervergleich, wie z.B. Kaskadenmodi usw. Die Steuereinheit 110 kann
auch die Ablaufsteuerung der Datenverarbeitung und der Übertragung durch
die verschiedenen Vorrichtungen für einen Mustervergleich 100 steuern.
Die Steuereinheit 110 kann auch eine externe Schnittstelle
für ein
Hostsystem oder anderes Gerät
bereitstellen, das mit der Vorrichtung für einen Mustervergleich 100 zusammenarbeitet.
In einer Ausführungsform
ist die externe Schnittstelle eine speicherorientierte Schnittstelle.
In einer Ausführungsform
ist die externe Schnittstelle eine Eingabe/Ausgabe (E/A)-orientierte
Schnittstelle. Nähere
Details einer Ausführungsform
der Steuereinheit 110 werden weiter unten in Verbindung
mit 3 beschrieben.
-
Nun
Bezug nehmend auf 2, wird ein detaillierteres
Blockdiagramm der flexiblen Vergleichs- und Klassifikationseinheit 108 von 1 nach
einer Ausführungsform
der vorliegenden Erfindung gezeigt. Eine Bitfeld-Wähleinheit 206 kann
konfiguriert sein, um verschiedene Größen oder Bitweiten der Eingabedaten 204 und
Bezugsvorlagen 202 jeweils aus dem Eingangspuffer 106 und
dem Vorlagenspeicher 104 zu handhaben. Die Eingabedaten 204 und
Bezugsvorlagen 202 können
Daten oder Sektoren darstellen, die verschiedene Dimensionen oder
Teilfelder haben können.
Die Bitfeld-Wähleinheit 206 kann
konfiguriert sein, im die Eingabedaten 204 und Bezugsvorlagen 202 in
ein oder mehrere Bitfelder konfigurierbarer Größe zu schneiden oder aufzuteilen,
die verschiedene Dimensionen der Vektoren darstellen. Die Eingabedaten 204 und
Bezugsvorlagen 202 können
zum Beispiel 32 Bit-Vektoren sein, die vier Dimensionen
Rot, Grün,
Blau und Intensität
für Farbanzeigepixeldaten
umfassen. In diesem Fall kann die Bitfeld-Wähleinheit 206 konfiguriert
sein, um 32 Bit-Datenweiten zu handhaben und die 32 Bit-Eingabedaten 204 und 32 Bit-Bezugsvorlagen 202 in
vier 8 Bit-Stücke
oder Bitfelder aufzuteilen oder zu schneiden, die die folgenden
Vektordimensionen darstellen: 8 Bit für Rot (R); 8 Bit für Grün (G); 8
Bit für
Blau (B); und 8 Bit für
die Intensität
(I).
-
Weiter
Bezug nehmend auf 2, kann eine Vergleichseinheit 208 jedes
Bitfeld oder jede Dimension der Eingabedaten 204 einem
oder mehreren Vergleichsalgorithmen entsprechend mit dem entsprechenden Bitfeld
oder der entsprechenden Dimension der Bezugsvorlage 202 vergleichen,
um je nach Konfiguration eine oder mehrere Abstandsmessungen zu
erzeugen. In einer Ausführungsform
kann die Vergleichseinheit 208 die Abstandsmessung für jede Dimension
mit einem entsprechenden Gewichtungsfaktor multiplizieren, der aus
einem internen Register abgerufen werden kann. Zum Beispiel kann
eine bestimmte Farbvektorvergleichsanwendung bestimmen, daß Rot und
die Luminanz wichtigere Vergleichsdimensionen als Blau und Grün sind.
In diesem Fall können
für die
Rot-, Grün-,
Blau- und Luninanz-Dimensionen jeweils Gewichtungsfaktoren von 0,90,
0,30, 0,40 und 0,95 verwendet werden. In einer Ausführungsform
kann die Vergleichseinheit 208 die Abstandsmessungen aus
allen Bitfeldern oder Dimensionen aggregieren oder kombinieren (mit
oder ohne Anwendung der Gewichtungsfaktoren, je nach Konfiguration),
um eine Nettoabstandsmessung zwischen den Eingabedaten 204 und
der Bezugsvorlage 202 zu erzeugen.
-
Je
nach Zielanwendung kann eine Ausführungsform der vorliegenden
Erfindung konfiguriert sein, um einen oder mehrere Vergleichsalgorithmen
zu verwenden, um eine oder mehrere Abstandsmessungen zu erzeugen.
Einige nützliche
Abstandsmessungen sind die bitgenaue Übereinstimmung, der Hamming-Abstand, der
euklidische Abstand, der mittlere Größenabstand und der Korrelationsabstand.
Diese Abstandsmessungen werden nun kurz beschrieben. Ein bitgenauer
Vergleich bestimmt, ob eine genaue Bit-zu-Bit-Übereinstimmung zwischen zwei
verglichenen Daten vorliegt oder nicht, indem jedes der entsprechenden
Bits der zwei Daten verglichen wird. Zum Beispiel ist der Eingabevektor „0101 1101" eine bitgenaue Übereinstimmung
mit der Bezugsvorlage „0101
1101", aber keine
bitgenaue Übereinstimmung
mit der Bezugsvorlage „0101
1100". Eine Hamming-Abstandsmessung
kann bestimmt werden, indem die Gesamtzahl der entsprechenden Bits,
die übereinstimmen,
durch die Gesamtbitweite dividiert wird (Gesamtzahl der übereinstimmenden
Bits/Gesamtbitweite). Zum Beispiel ist der Hamming-Abstand zwischen
dem Eingabevektor „1011
0110 1010" und der
Bezugsvorlage „0101
1101 0111" gleich
3/12 oder 0,25 (weil die entsprechenden 2., 7. und 9. Bits, von
rechts ausgehend, übereinstimmen
und die Bitweite 12 Bit beträgt).
Der euklidische Abstand kann für
Vektoren mit einer einzigen Dimension durch die Formel (X – Y)
2 berechnet werden, oder für Vektoren
mit n Dimensionen oder Teilfeldern X
1 ...
X
n und Y
1 ...
nY durch
Der mittlere Größenabstand
kann für
Vektoren mit einer einzigen Dimension durch die Formel IX – VI berechnet
werden, oder für
Vektoren mit n Dimensionen oder Teilfeldern X
1 ...
X
n und Y
1 ... Y
n durch
Der Korrelationsabstand kann
für Vektoren
mit einer einzigen Dimension durch die Formel X·Y berechnet werden, oder
für Vektoren
mit n Dimensionen oder Teilfeldern X
1 ...
X
n und Y
1 ... Y
n durch
-
Weiter
Bezug nehmend auf 2, kann die Vergleichseinheit 208 jedes
Eingabedatum 204 mit mehrfachen Bezugsvorlagen 202 vergleichen
und die jedem Eingabedatum zugehörigen
Nettoabstandsmessungen einer Klassifikationseinheit 210 zuführen. Die
Klassifikationseinheit 210 kann konfiguriert sein, um die
Bezugsvorlagen 202 zu ermitteln, die einem oder mehreren
gewählten
Klassifikationskriterien entsprechend mit dem Eingabedatum 204 übereinstimmen.
Zum Beispiel kann die Klassifikationseinheit 210 konfiguriert
sein, um zu bestimmen, welche der Bezugsvorlagen die beste Übereinstimmung,
schlechteste Übereinstimmung,
durchschnittliche Übereinstimmung
und/oder mittlere Übereinstimmung
für jedes
Eingabedatum sind. Die beste Übereinstimmung
ist die Bezugsvorlage aus einem Satz, die eine Nettoabstandsmessung
aufweist, die einem bestimmten Klassifikationskriterium entsprechend
am besten mit dem Eingabedatum 204 übereinstimmt. Die schlechteste Übereinstimmung
ist die Bezugsvorlage mit einer Nettoabstandsmessung, die einem
bestimmten Klassifikationskriterium entsprechend am schlechtesten
mit dem Eingabedatum 204 übereinstimmt. Die durchschnittliche Übereinstimmung
ist die Bezugsvorlage mit einer Nettoabstandsmessung, die dem Durchschnitt von
einem Satz Nettoabstandsmessungen am nächsten liegt. Die mittlere Übereinstimmung
ist die Bezugsvorlage mit einer Nettoabstandsmessung, die dem Mittel
von einem Satz Nettoabstandsmessungen am nächsten liegt. In einer Ausführungsform
kann die flexible Vergleichs- und Klassifikationseinheit 108 den
Indexwert der Bezugsvorlage und die Nettoabstandsmessungen, die
den ermittelten Übereinstimmungen
entsprechen, protokollieren.
-
Weiter
Bezug nehmend auf 2, kann in einer Ausführungsform
eine flexible Vergleichs- und
Klassifikationseinheit 108 eine Tiefenerweiterungseinheit 212 umfassen,
um gewählte Übereinstimmungen
von kaskadierten Vorrichtungen für
einen Mustervergleich zu klassifizieren. Zum Beispiel können mehrfache
Vorrichtungen für
einen Mustervergleich 100 (von 1) kaskadiert
werden, um die Geschwindigkeit zu erhöhen (z.B. mehrfache Einheiten,
die ein gegebenes Eingabedatum parallel verarbeiten), oder um die
Zahl der Bezugsvorlagen zu erhöhen,
die zum Vergleich verfügbar
sind. Wenn der Tiefenerweiterungsmodus gewählt ist, kann die Tiefenerweiterungseinheit 212 ihre
klassifizierten Übereinstimmungen
mit denen anderer Vorrichtungen für einen Mustervergleich vergleichen,
die dem kaskadierten PMU-Eingang 214 zugeführt werden,
um die besten Gesamtübereinstimmungen
aus den gewählten Übereinstimmungen
der mehrfachen Vorrichtungen für einen
Mustervergleich 100 zu bestimmen. Wenn der Tiefenerweiterungsmodus
nicht gewählt
ist, kann die Tiefenerweiterungseinheit 212 ihre Eingabe
einfach zu ihrem Ausgang 218 kopieren. Nähere Details
zu einer Ausführungsform
einer kaskadierten Mustervergleichsarchitektur werden weiter unten
in Verbindung mit 4 beschrieben.
-
Weiter
Bezug nehmend auf 2, kann in einer flexiblen Vergleichs-
und Klassifikationseinheit 108 auch eine Entscheidungseinheit 220 eingeschlossen
sein. Die Entscheidungseinheit 220 kann die Ausgabe 218 von
der Tiefenerweiterungseinheit 212 (die die ermittelten Übereinstimmungen
und die zugehörigen
Abstandsmessungen enthalten kann) empfangen und kann auch ein oder
mehrere Grenzkriterien 222 empfangen, die Entscheidungskriterien
oder -schwellen angeben. Die Entscheidungseinheit 220 kann
die Ausgabe 218 mit den Grenzkriterien 222 vergleichen
und eine oder mehrere Entscheidungsanzeiger 224 erzeugen,
um verschiedene Entscheidungen der Mustervergleichseinheit 100 auf
der Basis des Vergleichs anzuzeigen. Zum Beispiel kann in einer
Fingerabdruckvergleichenden Anwendung die Entscheidungseinheit 220 konfiguriert sein,
um einen Anzeiger „Fingerabdruck-Übereinstimmung" zuzuweisen, wenn
der Wert der nächsten
euklidischen Nettoabstandsmessung kleiner als ein vorgegebener Wert
ist. In einer Ausführungsform
kann die Entscheidungseinheit 220 in einer Vorrichtung
für einen
Mustervergleich 100 verwendet werden, die zum selbstständigen Gebrauch
in eingebetteten Anwendungen bestimmt ist. Auch verschiedene Steuereingänge 216 können vorgesehen
sein, um die Zeitsteuerung, Ablaufsteuerung und Gesamtfunktionen
der flexiblen Vergleichs- und Klassifikationseinheit 108 zu
steuern.
-
Bezug
nehmend nun auf 3, wird ein Blockdiagramm der
Steuereinheit 110 von 1 nach einer Ausführungsform
der vorliegenden Erfindung gezeigt. Eine externe Schnittstelle 308 erlaubt
einem Hostsystem oder anderen Gerät, über die Adresse 302,
die Daten 304 und Lese-/Schreibsignale 306 mit
der Vorrichtung für
einen Mustervergleich 100 zusammenzuarbeiten. Mit der externen
Schnittstelle 308 ist ein Hostgerät oder -system in der Lage,
Vorlagen in den Vorlagenspeicher 104 zu speichern, Daten
in den Eingangspuffer 106 zu laden und Ergebnisse aus dem
Ausgangspuffer 116 zu lesen. Die interne Übertragung
der vom Host über
die Adreßeingänge 302 und
Dateneingänge 304 zugeführten Adreß- und Dateninformation
in der Vorrichtung für
einen Mustervergleich 100 kann über einen internen Adreßbus 310 und
einen internen Datenbus 312 erfolgen.
-
In
einer Ausführungsformen
kann die Steuereinheit
110 eine speicherorientierte Schnittstelle
für die Mustervergleichseinheit
100 bereitstellen,
die vier Speicherorte in einem Speicherplatz des Hostsystems verwendet.
Beispielabbilder werden in Tabelle A gezeigt. Tabelle 1
Speicherort
1 | Lese/Schreib-Vorlagenspeicher |
Speicherort
2 | Schreib-Eingangspuffer/Lesen-Ausgangspuffer |
Speicherort
3 | Schreib-Steuerregister/Lesen-Statusregister |
Speicherort
4 | Lesen/Schreib-Debugregister |
-
In
einer Ausführungsform
können
die Steuerregister 314 folgendes umfassen: a) Startadressen
für Vorlagen
im Vorlagenspeicher 104; b) Zahl der zu vergleichenden
Vorlagen; c) Bitfeldweite je Dimension; d) Zahl der Vektordimensionen
je Vektor; e) Tiefenerweiterung ein/aus; und f) Wahl der Abstandsmessungen.
In einer Ausführungsform
kann die Steuereinheit 110 Statusregister 316 umfassen,
die verschiedene Anzeiger umfassen können (z.B. erledigt/nicht erledigt,
Kaskadenmodus, Speicherprüfung).
In einer Ausführungsform kann
die Steuereinheit 110 Debugregister 318 umfassen,
um verschiedene Debug-Vorgänge
bereitzustellen.
-
Weiter
Bezug nehmend auf 3, stellt ein Konfigurations-
und Zeitsteuerungsdecoder 320 der Vorrichtung für einen
Mustervergleich 100 Konfigurationsinformation 327 bereit.
Die Ablaufsteuerung 322 stellt Steuersignale 324 bereit,
um die Zeitsteuerung und den Betrieb der verschiedenen Funktionsblöcke der
Vorrichtung für
einen Mustervergleich 100 zu steuern.
-
Bezug
nehmend nun auf 4, wird ein Blockdiagramm einer
kaskadierten Mustervergleichsarchitektur 400 nach einer
Ausführungsform
der vorliegenden Erfindung gezeigt. 4 zeigt,
wie mehrfache Vorrichtungen für
einen Mustervergleich 100 (von 1) kaskadiert
werden können,
um die Geschwindigkeit zu erhöhen
(z.B. mehrfache Einheiten, die ein gegebenes Eingabedaten parallel
verarbeiten), und/oder die Zahl der Bezugsvorlagen zu erhöhen, die
zum Vergleich verfügbar
sind. Eingabedaten werden den Vorrichtungen für einen Mustervergleich 100(a), 100(b) und 100(c) jeweils über Eingänge 102(a), 102(b) und 102(c) zugeführt. Die
Vorrichtungen für
einen Mustervergleich 100(a), 100(b) und 100(c) können in
einem Kaskadenmodus verbunden werden, indem der PMU-Endausgang 122(a) der
Vorrichtung für
einen Mustervergleich 100(a) mit dem Kaskaden-PMU-Eingang 122(b) der
Vorrichtung für
einen Mustervergleich 100(b) verbunden wird und der PMU-Endausgang 122(b) der
Vorrichtung für
einen Mustervergleich 100(b) mit dem Kaskaden-PMU-Eingang 122(c) der
Vorrichtung für
einen Mustervergleich 100(c) verbunden wird. In dieser
Ausführungsform
arbeiten die Tiefenerweiterungseinheiten 212 jeder der
Vorrichtungen für
einen Mustervergleich 100(a), 100(b) und 100(c) zusammen,
um die besten Gesamtübereinstimmungen
zu bestimmen, die von den mehrfachen Vorrichtungen für einen
Mustervergleich 100 verglichen und klassifiziert wurden,
und dem PMU-Endausgang 122(c) die besten Gesamtübereinstimmungsdaten
zuzuführen.
In einer Ausführungsform
kann eine Kaskadenarchitektur verwendet werden, um den Vergleich
einer höheren
Zahl von Bezugsvorlagen zu erlauben. Zum Beispiel können dieselben
Eingabedaten parallel mit anderen Sätzen von Bezugsvorlagen verglichen
werden, die in mehrfachen kaskadenverbundenen Vorrichtungen für einen
Mustervergleich gespeichert sind. In einer Ausführungsform können dieselben
Sätze von
Bezugsvorlagen in mehrfachen kaskadenverbundenen Vorrichtungen für einen
Mustervergleich gespeichert sein, um die Geschwindigkeit zu erhöhen, mit
der ein Satz Eingabedaten verglichen und klassifiziert wird.
-
Ausführungsformen
können
in Logikschaltungen, Statusmaschinen, Mikrocode oder einer Kombination
davon implementiert sein. Ausführungsformen
können
in Code implementiert und auf einem Speichermedium gespeichert sein,
der darauf gespeicherte Anweisungen aufweist, die verwendet werden,
um ein Computersystem zu programmieren, damit die Anweisungen ausgeführt werden.
Das Speichermedium kann, ohne darauf beschränkt zu sein, jede Art von Platte
umfassen, einschließlich
Disketten, optischer Platten, Compact-Disk-Nur-Lese-Speichern (CD-ROMs), wiederbeschreibbaren
Compact-Disks (CD-RWs) und magnetisch-optischen Speichern, Halbleitergeräte wie Nur-Lese-Speicher
(ROMs), Schreib-/Lesespeicher
(RAMs), dynamische Schreib-/Lesespeicher (DRAMs), lösch- und
programmierbare Lesespeicher (EPROMs), Flash-Speicher, elektrisch
löschbare
Lesespeicher (EEPROMs), magnetische oder optische Karten, Netzwerkspeichergeräte oder
jede Art von Medium, das zum Speichern von elektronischen Anweisungen
geeignet sind.
-
Ausführungsbeispiele
können
zur Ausführung
auf ein geeignetes Computersystem in Software implementiert sein,
das mit einer geeigneten Kombination von Hardwaregeräten konfiguriert
ist.
-
Bezug
nehmend nun auf 5, wird ein Blockdiagramm des
Computersystems 500 gezeigt, mit welchem Ausführungsformen
der Erfindung verwendet werden können.
In einer Ausführungsform
umfaßt
das Computersystem 500 einen Prozessor 510, der
mit einem Universal- oder Spezialprozessor wie z.B. einen Mikroprozessor,
Mikrocontroller, ein programmierbares Gate-Array (PGA) usw. einschließen kann.
Der Begriff „Computersystem" kann sich hierin
auf jede Art von prozessorbasiertem System beziehen, wie z.B. ein
Desktop-Rechner,
ein Server-Rechner, ein Laptop-Rechner oder dergleichen, oder auf
eine andere Art von Hostsystem.
-
Der
Prozessor 510 kann in einer Ausführungsform über einen Hostbus 515 mit
einem Speicherhub 530 gekoppelt sein, der über einen
Speicherbus 525 mit einem Systemspeicher 520 (zum
Beispiel ein dynamischer RAM) gekoppelt sein kann. Der Speicherhub 530 kann
auch über
einen Advanced Graphic Port (AGP)-Bus 533 mit einem Videocontroller 535 gekoppelt
sein, der mit einer Anzeige 537 gekoppelt ist. Der AGP-Bus 533 kann
mit der Advanced Graphic Port-Schnittstellenspezifikation, Revision
2.0, konform sein, die am 4. Mai 1998 von Intel Corporation, Santa
Clara, Kalifornien veröffentlicht
wurde.
-
Eine
Vorrichtung für
einen Mustervergleich 100 (von 1) kann über den
Speicherbus 525 mit dem Speicherhub 530 gekoppelt
sein. In dieser Ausführungsform
kann die Vorrichtung für
einen Mustervergleich 100 ein speicherorientiertes Gerät sein.
In einer anderen Ausführungsform
kann die Vorrichtung für
einen Mustervergleich 100 ein Eingabe/Ausgabe (E/A)-orientiertes
Gerät sein.
In einer Ausführungsform
kann die Vorrichtung für
einen Mustervergleich 100 als Mustervergleichsbeschleuniger
im Prozessor 510 eingebettet sein. In einer Ausführungsform
kann eine eingebettete Vorrichtung für einen Mustervergleich 100 auf eine
Vergleichsanweisung des Prozessors 510 abgebildet sein,
um einen schnellen, flexiblen, komplexen Datenvergleich und Klassifikation
zu gewährleisten,
während
der Prozessor 510 in der Lage ist, andere Aufgaben auszuführen. Der
Prozessor 510 kann die Vorrichtung für einen Mustervergleich 100 vorteilafterweise
für verschiedene
Anwendungen nutzen, wie z.B. Mustererkennung, Abzweigungsprognose,
intelligentes Caching, adaptiv angepasste Filterung und Instruction
Level Encryption.
-
Der
Speicherhub 530 kann auch (über ein Hub-Link 538)
mit einem Eingabe/Ausgabe (E/A)-Hub 540 gekoppelt
sein, der mit einem Eingabe/Ausgabe (E/A)-Erweiterungsbus 542 und
einem Peripheral-Component-Interconnect (PCI)-Bus 544 gekoppelt
ist, wie durch die PCI Local Bus-Spezifikation, Production Version, Revision
2.1 vom Juni 1995 definiert. Der E/A-Erweiterungsbus 542 kann mit
einem E/A-Controller 546 gekoppelt sein, der den Zugriff
auf eine oder mehrere E/A-Geräte
steuert. Wie in 5 gezeigt, können diese Geräte in einer
Ausführungsform
Speichergeräte
umfassen, wie z.B. ein Diskettenlaufwerk 550, und Eingabegeräte, wie
z.B. eine Tastatur 552 und Maus 554. Der E/A-Hub 540 kann
auch zum Beispiel mit einem Festplattenlaufwerk 556 und
einer Compact Disk (CD)-Laufwerk 558 gekoppelt sein, wie
in 5 gezeigt. Es versteht sich, daß auch andere
Speichermedien im System eingeschlossen sein können.
-
Der
PCI-Bus 544 kann auch mit verschiedenen Komponenten gekoppelt
sein, einschließlich,
zum Beispiel, eines Netzwerkcontrollers 560, der mit einem
Netzwerkanschluß (nicht
gezeigt) gekoppelt ist. Zusätzliche
Geräte
können
an den E/A-Erweiterungsbus 542 und PCI-Bus 544 gekoppelt
werden, wie z.B. eine Eingabe/Ausgabe-Steuerschaltung, die mit einem
Parallelschnittstellenanschluß,
einem seriellen Schnittstellenanschluß, einem nicht flüchtigen
Speicher und dergleichen gekoppelt ist.
-
Auch
wenn die obige Beschreibung sich auf spezifische Komponenten des
Systems 500 bezieht, wird in Betracht gezogen, daß zahlreiche
Modifikationen und Varianten der beschriebenen und veranschaulichten Ausführungsformen
möglich
sein können.
Obwohl 5 ein Blockdiagramm eines Systems wie z.B. eines Personal-Computers
zeigt, versteht es sich ferner, daß Ausführungsformen der vorliegenden
Erfindung in einer spezialisierten Mustererkennungsvorrichtung,
einem Personal Digital Assistent (PDA) oder dergleichen implementiert
werden können.
-
Nun
Bezug nehmend auf 6, wird ein Flußdiagramm
gezeigt, das eine Vorrichtung für
einen Mustervergleich nach einer Ausführungsform der vorliegenden
Erfindung veranschaulicht. Konfigurationsoptionen können die
Wahl eines oder mehrerer Abstandsmessungen oder Vergleichsalgorithmen
erlauben, die beim Vergleich der Eingabedaten mit Bezugsvorlagen
oder -mustern verwendet werden, und können auch die Wahl einer oder
mehrerer Klassifikationskriterien erlauben, die verwendet werden
können,
um ein oder mehrere Bezugsvorlagen zu ermitteln, die einem oder
mehreren ausgewählten
Kriterien entsprechend „am
besten" mit einem
gegebenen Eingabedatum übereinstimmen
(Block 602). Konfigurationsoptionen können die Wahl der Bitweite
oder Größe der Dimensionen
der Eingabedaten und Bezugsvorlagen erlauben, und können auch
die Wahl der Größe und/oder
Zahl der Dimensionen für
alle Eingabedaten und Bezugsvorlagen erlauben (Block 604).
In einer Ausführungsform
können
Konfigurationsoptionen die Wahl der Gesamtbitweite der Eingabedaten
und Bezugsvorlagen und der Zahl der Dimensionen für alle Eingabedaten
und Bezugsvorlagen erlauben.
-
Nachdem
die Konfigurationsoptionen eingestellt worden sind, geht der Mustervergleichsprozeß dazu über, ein
Eingabedatum abzurufen, das verglichen und klassifiziert werden
soll (Block 606). Um die Flexibilität beim Vergleich von Daten
zu gewährleisten,
die mehrfache Dimensionen aufweisen, können das Eingabedatum und die
Bezugsvorlage jeweils den Konfigurationsoptionen entsprechend in
mehrfache Dimensionen oder Bitfelder aufgeteilt werden (Block 610),
um die Bestimmung von Abstandsmessungen für jede entsprechende Dimension
des Eingabedatums und der Bezugsvorlage zu erlauben (Block 612).
Sobald die Abstandsmessungen für
jede Dimension bestimmt worden sind, können eine oder mehrere Gewichtungsfaktoren
auf die Abstandsmessungen angewandt werden, die dieser einen oder
mehreren Dimensionen zugeordnet sind (Block 614). Dann
können
die Abstandsmessungen zu einer Nettoabstandsmessung für dieses
Eingabedatum und diese Bezugsvorlage aggregiert oder kombiniert
werden (Block 616). Die Blöcke 608 bis 616 können wiederholt
werden, bis ein gegebenes Eingabedatum mit jeder der gewählten Bezugsvorlagen
verglichen wurde (Raute 618). Wenn das Eingabedatum mit
allen Bezugsvorlagen verglichen worden ist, können die Nettoabstandsmessungen
den gewählten
Klassifikationskriterien entsprechend klassifiziert werden, um zu
bestimmen, welche Abstandsmessungen (und entsprechenden Bezugsvorlagen) „am besten" mit dem Eingabedatum übereinstimmen
(Block 620). In einer Ausführungsform können die Übereinstimmungen,
die im Block 620 ermittelt wurden, mit einem oder mehreren
Grenzkriterien verglichen werden, und auf der Basis der Vergleiche können eine
oder mehrere Entscheidungen getroffen werden (Block 622).