-
TECHNISCHES
GEBIET
-
Diese
Erfindung betrifft die Symbolerkennung und insbesondere die Erkennung
von Symbolen, die von Hand auf einem Digitalisiertablett geschrieben
werden.
-
ALLGEMEINER STAND DER
TECHNIK
-
Dank
der immer schnelleren Computer und Geräte, wie zum Beispiel Digitalisierungstabletts
oder Tabletts für
die Eingabe handschriftlicher Informationen und/oder Symbole in
Computer, wird es immer wünschenswerter,
Methoden zu entwickeln, um Zeichen oder Symbole zur weiteren Verarbeitung
zu erkennen und dieses Erkennen in Echtzeit online durchzuführen. Eine
Anzahl von Verfahren des früheren
Stands der Technik zum Erkennen handschriftlicher Symbole griffen
auf das Erkennen von Features in den Symbolen zurück, zum Beispiel
Oberlängen,
Unterlängen,
Schließen
von Buchstaben, das Aufsetzen von Punkten auf i's und das Durchstreichen von t's. Viele Verfahren
des früheren
Stands der Technik sind in dem Artikel von Tappert et al. mit dem
Titel „The
State of the Art in On-Line Handwriting Recognition", veröffentlicht
in IEEE Transactions on Pattern Analysis and Machine Intelligence,
Band 12, Nr. 8 (August 1990) beschrieben. Andere Verfahren ziehen
neurale Netze heran, wie zum Beispiel im USamerikanischen Patent
Nr. 5 052 043 ausgestellt auf Gaborski. Weitere Verfahren analysieren
Striche, wie in den US-Patenten Nr. 5 023 918 und 5 038 382 ausgestellt auf
Lipscomb und in dem Artikel von Odaka et al. mit dem Titel „On-Line
Recognition of Handwritten Characters by Approximating Each Stroke
with Several Points",
veröffentlicht
in IEEE Transactions on Systems, Man, and Cybernetics, Band SMC-12,
Nr. 6 (November/Dezember 1982) gezeigt.
-
Ein
weiteres gebräuchliches
Verfahren ist der Kurvenabgleich, bei dem man versucht, jedes geschriebene
Symbol mit einer Bibliothek gespeicherter Kurven abzugleichen, um
die beste Entsprechung zu finden. Der Kurvenabgleich ist in dem
oben genannten Artikel von Tappert beschrieben. Kurvenabgleichtechniken
verwenden im Allgemeinen eine Normalisierungsroutine, um die Unterschiede
in Translation, Orientierung und Maßstab der Symbole, die zu erkennen
sind, zu minimieren. Manchmal ist der Benutzer gezwungen, sich an das
Schreiben an bestimmten Stellen auf einem Digitalisiertablett und/oder
Schreiben mit einer spezifischen Orientierung zu halten. Offensichtlich
ist es wünschenswert,
dem Benutzer so wenige Zwänge
aufzuerlegen wie möglich.
-
Die
Fähigkeit,
viele Arten von Symbolen zu erkennen, ist erforderlich, darunter
Symbole wie alphanumerische Zeichen, Handschrift, chinesische oder
Kanji-Zeichen, elektrische, chemische und architektonische Symbole
und so weiter. Bei bestimmten Anwendungen ist es wünschenswert
festzustellen, wer ein Symbol eingegeben hat, zum Beispiel beim
Verifizieren von Unterschriften. Manchmal wird das Kräftemuster,
das entsteht, wenn eine Unterschrift geschrieben wird, herangezogen,
um eine Unterschrift zu identifizieren, wie zum Beispiel in der
Patentschrift US Nr. 5 022 086 ausgestellt auf Crane et al. Bei
anderen Anwendungen ist es wünschenswert, über ein
vom Benutzer unabhängiges
System zu verfügen,
bei dem eine Anzahl von Benutzern ihre eigenen Versionen des gleichen
Symbols eingeben, und das Symbol trotzdem richtig zu identifizieren.
-
Eine
Anzahl von Ansätzen
zum Erkennen handschriftlicher Symbole, die Drehungen und ähnliche Transformationen
anpassen, befindet sich in IEEE INTERNATIONAL CONFERENCE ON ACOUSTICS, SPEECH
AND SIGNAL PROCESSING 23. März
1992, SAN FRANCISCO, CA US, Seiten 111-145 – 111-148, Li-Xin Wang & Jerry M. Mendel: „A FUZZY
APPROACH TO HAND-WRITTEN ROTATION-INVARIANT CHARACTER RECOGNITION", IBM TECHNICAL ,DISCLOSURE
BULLETIN, Band 24, Nr. 6, November 1981, Seiten 2897-2909, J.M.
Kurtzberg und C. C. Tappert: „SYMBOL
RECOGNITION SYSTEM BY ELASTIC MATCHING";
-
IBM
TECHNICAL DISCLOSURE BULLETIN, Band 24, Nr. 11A, April 1982, Seiten
5404-5409, C. C. Tappert: „CURSIVE
SCRIPT RECOGNITION SYSTEM BY ELASTIC MATCHING";
-
SYSTEMS
AND COMPUTERS IN JAPAN, Band 20, Nr. 7, 1989, Seiten 10-19, T. Wakahara: „On-Line Handwritten
Character Recognition Using Local Affine Transformation"; und
-
IMAGE
UNDERSTANDING & MACHINE
VISION, TECHNICAL DIGEST, 12.-14. Juni 1989, North Falmouth, US,
Seiten 2-5, M. Lee: „Recovering
the Affine Transformation of Images by Using Moments and Invariant
Axes".
-
Unterschiedliche
Formen von Geräten
sind derzeit zur Eingabe handschriftlicher Information in Echtzeit
direkt in einen Computer verfügbar,
wie zum Beispiel Digitalisiertabletts und Lichtstifte. Lesegeräte für optische
Zeichen können
für zuvor
geschriebene Information verwendet werden, wie wir jedoch sehen
werden, kann nützliche
Information verloren gehen, wenn die tatsächliche Sequenz des Schreibens
nicht erfasst wird.
-
KURZDARSTELLUNG
DER ERFINDUNG
-
Ein
unbekanntes handschriftliches Symbol, das auf ein Digitalisiertablett
geschrieben wird, wird mit Symbolen in einem voraus festgelegten „Alphabet" oder in einer Bibliothek
von Modellsymbolen verglichen, und die nächste Übereinstimmung wird ausgewählt. Das
Erkennen ist unabhängig
von der Größe, Position oder
Orientierung der Symbole. Das Alphabet kann jede beliebige Sammlung
von Symbolen sein, wie zum Beispiel alphanumerische, chinesische
oder Kanji-Zeichen oder Wörter
in Handschrift, und wird durch Schreiben mindestens eines Beispiels
jedes Symbols auf dem Tablett angelegt. Eine Sequenz von Abtastwerten
der Stiftstellung wird aufgezeichnet, während ein Symbol geschrieben
wird. Die Abtastwerte bilden einen Vektor, der dann translatiert
wird, sodass der Schwerpunkt des Symbols an einem Ursprung liegt.
Der Vergleich, der leicht in Echtzeit erfolgen kann, umfasst das
Berechnen eines Korrelationsfaktors aus skalaren Produkten des Vektors
für das
unbekannte Symbol mit zwei Versionen des Vektors für jedes
Modellsymbol und Auswählen
des Modellsymbols, das den höchsten
Korrelationsfaktor hat. Wenn zwischen Modellsymbolen mit ähnlichen
Korrelationsfaktoren unterschieden werden soll, kann der Vergleich
auch das Berechnen eines Drehungsfaktors aus solchen Vektoren zum
Durchführen
dieser Auswahl umfassen. Ausführungsformen
der Erfindung, die entweder vom Benutzer unabhängig, vom Benutzer abhängig sind
oder von sich von einer solchen Form zur anderen entwickeln, können konfiguriert
werden.
-
KURZE BESCHREIBUNG
DER ZEICHNUNG
-
1 ist ein Blockdiagramm
eines Systems zum Durchführen
der Erfindung.
-
2 ist ein Flussdiagramm,
das zeigt, wie Abtastwerte eines handschriftlichen Symbols abgenommen
werden.
-
3 ist ein Diagramm, das
handschriftliche Symbole und Punkte zeigt, die Abtastwerte darstellen, die
für solche
Symbole abgenommen werden.
-
4 ist ein Flussdiagramm,
das das erfindungsgemäße Verfahren
zum Vergleichen von Abtastwerten für ein unbekanntes Symbol mit
Abtastwerten von Modellsymbolen zum Identifizieren des unbekannten Symbols
zeigt.
-
5 ist ein Diagramm, das
darstellt, wie die Anzahl von Abtastwerten für jeden Strich in einem Symbol
zwischen einem unbekannten Symbol und einem Modellsymbol angeglichen
wird.
-
6 ist ein Diagramm, das
darstellt, wie Symbole, die Drehungen voneinander sind, unterschieden werden.
-
7 ist ähnlich wie das Flussdiagramm
der 4, zeigt jedoch
zusätzliche
Schritte zum Vergleichen der Drehung eines unbekannten Symbols mit
Modellsymbolen.
-
8 ist ein Flussdiagramm,
das ein Verfahren zeigt, das von dem erfindungsgemäßen System
verwendet werden kann, um seine Fähigkeit zu verstärken, verschiedene
Versionen des gleichen Symbols zu erkennen.
-
DETAILLIERTE
BESCHREIBUNG
-
1 ist ein Blockdiagramm
eines Systems zum Durchführen
der Erfindung. Die Symbole werden mit der Schreibspitze oder dem
Stift 10 auf das Digitalisiertablett oder das Tablett 11 geschrieben.
Das Tablett 11 ist fähig,
die Position der Spitze des Stifts 10 auf der Oberfläche des
Tabletts 11 sowie die Gegenwart des Stifts 10 auf
dem Tablett zu erfassen.
-
Das
Tablett 11 ist an den Prozessor 12 angeschlossen.
Bei bestimmten Tabletttypen kann der Stift 10 auch an den
Prozessor 12 wie durch die Linie 17 angezeigt
angeschlossen sein. Der Symbolspeicher 13 wird verwendet,
um Darstellungen von Modellsymbolen zu speichern. Die Register 14 und
,15 werden zum Speichern jeweils der Anzahl der Striche
in jedem Symbol und der Anzahl der Abtastwerte, die für jeden
Strich abgenommen werden, verwendet. Typisch wären der Speicher 13 und
die Register 14 und 15 Teil des Direktzugriffsspeichers
des Prozessors 12. Ein Beispiel für einen Prozessor, der zur
Durchführung
der Erfindung geeignet ist, ist ein Sun SPARCstationTM.
-
Beim
Betrieb wird ein Symbol auf das Tablett 11 geschrieben,
der Prozessor 12 sammelt eine Zeitsequenz von Abtastwerten
der Position der Spitze des Stifts 10 auf der Oberfläche des
Tabletts 11. Jeder Abtastwert besteht aus einem Satz x-y-Koordinaten
der Position der Spitze des Stifts 10. Typisch werden solche
Abtastwerte mit einer Rate von etwa 250 Abtastwerten pro Sekunde
abgenommen, und die x-y-Koordinaten und die Stellung des Stifts 10 können mit
einer Auflösung
von etwa 0,1 mm erfasst werden. Ein typisches handgeschriebenes
Zeichen hat 100-250 Abtastwerte.
-
Die
Symbole können
in beliebiger Größe, Orientierung
und an jeder Stelle auf das Tablett 11 geschrieben werden.
Die Symbole können
Buchstaben, Wörter,
chinesische oder Kanji-Zeichen, Handschrift, Engineering- oder chemische
Symbole sein: Kurz gesagt, es kann alles geschrieben werden. Die
einzigen Einschränkungen
sind die Größe des Tabletts
und die Größe des Speichers,
der zum Aufzeichnen der abgenommenen Abtastwerte erforderlich ist.
-
2 ist ein Flussdiagramm,
das zeigt, wie Abtastwerte eines handschriftlichen Symbols vom System der 1 aufgezeichnet werden.
Wie für
den Fachmann klar ist, würden
die in 2 (und 3) gezeigten Aktivitäten typisch
von einem Computerprogramm gesteuert, das im Speicher im Prozessor 12 gespeichert
ist.
-
Wie
von den Blöcken 20 und 21 angezeigt,
wartet der Prozessor 12, bis der Stift 10 das
Tablett 11 berührt,
initialisiert dann das Strichregister 14 und das Abtastwertregister 15.
Während
des Schreibens jedes Strichs des Symbols, nimmt der Prozessor 12 Abtastwerte
mit seiner Abtastrate für
die Position der Spitze des Stifts 10 auf dem Tablett 11 ab,
speichert diese Abtastwerte in seinen Speicher und inkrementiert
den Abtastzähler,
wie von den Blöcken 22 und 23 angegeben.
Die Abtastwerte werden abgenommen, bis der Stift 10 vom Tablett 11 abgehoben
wird, wie von Block 24 angegeben.
-
Wenn
der Stift 10 vom Tablett 11 abgehoben wird, muss
bestimmt werden, ob das Symbol komplett ist. Dieses Bestimmen kann
zum Beispiel durch die Zeitmessung des Intervalls zwischen der Zeit,
zu der der Stift 10 abgehoben wird, und der Zeit, zu der
er das Tablett 11 wieder berührt, durchgeführt werden.
Ist das Intervall kurz, zum Beispiel weniger als 0,5 Sekunde, kann
angenommen werden, dass ein zusätzlicher
Strich folgen wird. Ist das Intervall länger, kann angenommen werden,
dass das Symbol komplett ist. Block 25 stellt einen solchen
Beschluss dar. Wenn ein zusätzlicher
Strich folgt, wird die Anzahl der Abtastwerte, die für den Strich
abgenommen werden, gespeichert, und das Abtastwertregister wird
neu initialisiert, wie von Block 28 angegeben, und das
Strichregister wird inkrementiert, wie von Block 29 angegeben,
bevor der nächste
Abtastwert abgenommen wird.
-
Sowohl
die Modellsymbole als auch die unbekannten Symbole werden mittels
des Stifts 10 und des Blocks 11 in das System
geschrieben. Das System wird im Wesentlichen durch Hineinschreiben
mindestens eines Modells für
jedes Symbol, das das System erkennen soll, und Zuordnen der für dieses
Modellsymbol aufgenommenen Abtastwerte zu einem entsprechenden Label „trainiert". Wenn das System
daher in der Lage sein soll, alphanumerische Zeichen zu erkennen,
werden auch für
jedes Zeichen Modelle geschrieben und dem entsprechenden Buchstaben
oder der Ziffer zugeordnet.
-
Wenn
die Modelle stark stilisiert oder individualistisch sind, kann nur
der Schreiber der Modelle in der Lage sein, Zeichen zu schreiben,
die korrekt erkannt werden können.
Es kann jedoch eine Anzahl verschiedener Beispiele für jeden
Buchstaben als Modelle eingegeben werden, um die Variation zu berücksichtigen,
die möglich
ist, oder das System kann sich wie weiter unten beschrieben selbst
anpassen.
-
Der
Prozessor 12 kann sich entweder im Modus des Akzeptierens
von Modellsymbolen oder im Modus des Akzeptierens unbekannter Symbole
befinden. Unter erneuter Bezugnahme auf 2, und wenn das Symbol, das geschrieben
wird, ein Modellsymbol ist, werden die Abtastwerte, wie von den
Blöcken 26 und 27 angegeben,
für ein
solches Symbol im Symbolspeicher 13 des Prozessors 12 gespeichert.
Bevor solche Abtastwerte gespeichert werden, werden sie jedoch translatiert,
sodass der „Schwerpunkt" oder das Zentroid
des Symbols an einem Ursprung ist. Wie wir weiter unten sehen werden,
ist diese Translation, die an den Modellsymbolen und den unbekannten
Symbolen durchgeführt
wird, ein anfänglicher
Schritt beim Vergleichen eines unbekannten Symbols mit den Modellsymbolen
und positioniert das unbekannte und die Modellsymbole zueinander,
sodass die Lage des unbekannten Symbols auf dem Tablett 11 irrelevant
ist, und sodass Drehungen folgerichtig berücksichtigt werden können. Eine
solche Translation ist an anderer Stelle beschrieben, wie zum Beispiel
im Artikel von Tappert, der weiter oben erwähnt wurde. Das zum Durchführen der
Translation verwendete Verfahren wird weiter unten in Verbindung
mit der Beschreibung von 4 beschrieben.
-
Es
ist günstig,
die Translation auf einem Modellsymbol durchzuführen, bevor die Abtastwerte
für das Modellsymbol
gespeichert werden, sodass die Translation nicht jedes Mal durchgeführt werden
muss, wenn ein Vergleich mit dem Modellsymbol erfolgt. Eine solche
Translation kann jedoch nach Wunsch im Zeitpunkt des Vergleichs
durchgeführt
werden. Die Abtastwerte werden im Modellspeicher gemeinsam mit der
Anzahl der Striche gespeichert und zwar so, dass die Abtastwerte
für jeden
Strich identifiziert werden können.
Zugeordnet zu den Abtastwerten wird auch eine Identifikation des
Modellsymbols, das die Abtastwerte darstellen, gespeichert.
-
Die
Abtastwerte für
ein Symbol können
in einem mathematischen Sinn als ein Vektor betrachtet werden. Die
Abtastwerte für
ein Symbol vor der Translation, die oben beschrieben wurde, können zum
Beispiel als ein Vektor n ausgedrückt werden:
und nach der Translation
als Vektor v:
-
Wenn
das geschriebene Symbol ein unbekanntes Symbol ist, setzt der Prozessor 12,
wie in Block 26 in 2 angegeben,
mit den Schritten fort, die im Flussdiagramm der 4 gezeigt sind.
-
3 ist ein Diagramm, das
typische handschriftliche Symbole und Reihen von Punkten zeigt,
die Abtastbeispiele darstellen, die für solche Symbole abgenommen
werden. Der Blockbuchstabe „A", der links gezeigt
wird, kann mit zwei Strichen 30 und 31 geschrieben
werden, wobei sich die Striche in die von den Pfeilen gezeigten
Richtungen bewegen. Die gepunktete Version des Buchstabens „A" zeigt Abtastwerte,
die aufgenommen wurden, als der Buchstabe geschrieben wurde, wobei
die Geschwindigkeit der Stiftspitze relativ konstant war. Der erste
und der letzte Abtastwert des ersten Strichs liegen in 32 und 33;
der erste und der letzte Abtastwert des zweiten Strichs liegen in 34 und 35.
Der Handschriftbuchstabe „a", der rechts gezeigt
ist, würde gewöhnlich mit
einem Strich 36 geschrieben, der in Punkt 37 umkehrt,
der jedoch typisch ohne Abheben des Stifts vom Tablett geschrieben
würde.
Der erste und der letzte Abtastwert des Strichs 36 sind
in 38 und 39 gezeigt.
-
Wie
ersichtlich, hängen
die tatsächlichen
Werte der Abtastwerte, die aufgezeichnet werden, während ein
Symbol geschrieben wird, von der Geschwindigkeit ab, mit der die
Stiftspitze bewegt wird, und die Sequenz der Abtastwerte in dem
Vektor, der das Symbol darstellt, hängt von den Richtungen ab,
die den verschiedenen Strichen in dem Symbol zugeordnet sind. Daher
können
Abtastwerte für
Symbole, die identisch zu sein scheinen, recht unterschiedlich sein,
je nach dem, wie die Symbole tatsächlich geschrieben wurden.
Dieser Unterschied kann reichen, damit das erfindungsgemäße Verfahren
die Symbole nicht als identisch erkennt. Diese Eigenschaft der Erfindung
kann jedoch vorteilhaft verwendet werden, wie weiter unten in Verbindung
mit der Verifizierung von Unterschriften beschrieben wird.
-
4 ist ein Flussdiagramm,
das zeigt, wie die Abtastwerte für
ein unbekanntes Symbol mit den Modellsymbolen verglichen werden,
um das unbekannte Symbol zu identifizieren. Nachdem ein unbekanntes Symbol
eingegeben wurde, wird der Vektor vk für ein Modellsymbol
abgerufen, das die gleiche Anzahl von Strichen hat wie das unbekannte,
wie es die Blöcke 42 und 43 angeben.
Der Vektor vα für das unbekannte
Symbol und der Vektor vk für das Modellsymbol
müssen
dann verglichen werden, um zu bestimmen, wie gut sie übereinstimmen.
Zur Durchführung
der Korrelation ist es jedoch erforderlich, dass vα und
vk, die gleiche Anzahl von Abtastwerten
enthalten, und, wenn das Symbol mehr als einen Strich enthält, ist
es vorzuziehen, dass die Anzahl der Abtastwerte in jedem Strich übereinstimmt.
Dies erzielt man durch Angleichen der Anzahl von Abtastwerten in
vα und
vk, Strich für Strich.
-
Dieses
Angleichen kann in einer Anzahl verschiedener Methoden erfolgen.
Eine Methode, die sich als zufrieden stellend herausgestellt hat,
besteht darin, nur jeden zehnten Abtastwert in jedem Strich von
vα zu
verwenden und dann die gleiche Anzahl von Abtastwerten von jedem
Strich von vk zu verwenden. Ein Beispiel
für ein
solches Angleichen ist in 5 beschrieben,
in der eine Anzahl von Abtastwerten entlang dem Strich 50 gezeigt
werden. Gepunktete Linien, wie zum Beispiel 51, führen zur
gleichen Anzahl von Abtastwerten, die aus vielen mehr entlang dem
Strich 52 auszuwählen
sind. Die Abtastwerte entlang dem Strich 50 stellen jeden zehnten
Abtastwert in einem Strich von vα dar.
Dieses Verfahren geht davon aus, dass der Original-vα niemals mehr
als zehnmal die Anzahl von Abtastwerten hat als er Original- vk.
-
Eine
andere Methode zum Durchführen
des Angleichens besteht darin, zusätzliche Abtastwerte in vk zu interpolieren, sodass ein solcher Vektor
viel mehr Abtastwerte enthält
als vα,
dann nur die Anzahl der Abtastwerte des erhöhten vk wie
in vα vorhanden
sind, auszuwählen.
Die Interpolation und Auswahl sollten gleichmäßig entlang vk verteilt
sein.
-
Nach
dem Angleichen wird v
α dann wie durch Block
45 angegeben
translatiert, sodass der Schwerpunkt des unbekannten Symbols an
dem Ursprung liegt, wie das auch für die Modellsymbole geschah,
als diese gespeichert wurden (Block
27 in
2). Zum Durchführen dieser Translation auf
einem Vektor wird der Schwerpunkt z gefunden durch
und die
Translation wird durchgeführt
durch Bewerten
-
-
Die
Gleichung 4 liefert die Bedingungen, die in Gleichung 2 weiter oben
gezeigt werden.
-
Wie
von Block
46 angegeben, wird die Korrelation C zwischen
dem unbekannten Symbol und dem Modellsymbol, mit dem es verglichen
wird, berechnet aus
der der
Vektor ist, der von v
k durch eine Drehung
gegen den Uhrzeigersinn um π/2
Radiant abgeleitet wird, und wobei v
α·v
k und v
α·v
k skalare
Punktprodukte der jeweiligen Vektoren sind.
-
Die
Korrelation C stellt den Grad der Nähe des Vektors vα für das unbekannte
Symbol mit dem Vektor vk für das Modellsymbol
dar. Je größer der
Wert von C ist, desto näher
sind die Vektoren. Wie von den Blöcken 47, 48 und 49 angegeben,
wird das Modellsymbol, das dem höchsten
Wert von C zugeordnet ist, als, das unbekannte Symbol erkannt.
-
Eine
detaillierte Besprechung der Ableitung der Gleichung 5 ist im Anhang
gegeben. Eine kurze Besprechung der Theorie, auf der die Ableitung
der Gleichung 5 aufbaut, wird hier präsentiert.
-
Da
der Vektor vα das
unbekannte Symbol darstellt und der Vektor vk das
Modellsymbol, enthält
jeder n Abtastwerte und 2n unterschiedliche Mengen. Jeder solche
Vektor kann als ein Punkt in einem 2n-dimensionalen Raum betrachtet werden.
Man beachte, dass vα und vk angeglichen
wurden, sodass beide die gleiche Anzahl von Abtastwerten haben,
und dass sie translatiert wurden, sodass die Schwerpunkte ihrer
jeweiligen Symbole an einem Ursprung liegen. Solche translatierte
und angeglichene Vektoren für
alle möglichen
Drehungen und Größen eines
Symbols fallen in eine zweidimensionale Ebene, die durch den Ursprung
eines solchen 2n-dimensionalen Raums verläuft. Daher werden alle möglichen
Drehungen und Größen des
unbekannten Symbols durch eine solche 2-dimensionale Ebene dargestellt,
und alle möglichen
Drehungen und Größen des
Modellsymbols werden durch eine andere solche 2-dimensionale Ebene
dargestellt. Beide Ebenen treffen sich nur am Ursprung eines solchen
2n-dimensionalen
Raums, und ein Winkel θ kann
zwischen den Ebenen definiert werden. Winkel sind eindimensionale
Größen, die
leicht verglichen werden können.
Je kleiner der Winkel zwischen solchen Ebenen, desto höher die
Korrelation zwischen den Symbolen, die sie darstellen, ungeachtet
der Stelle auf den Ebenen, auf welchen die Punkte, die die tatsächlichen
Größen und
Drehungen der Symbole definieren, liegen. Die Menge C, die in Gleichung
5 berechnet wird, hängt
vom Kosinus eines solchen Winkels θ ab. Da sich der Kosinus eines
Winkels 1 nähert,
wenn sich der Winkel Null nähert,
stellt das größte C die
nächste
Korrelation dar.
-
Einige
Beispiele der tatsächlichen
Werte, die für
C berechnet werden, können
gegeben werden, um den erfindungsgemäßen Vorgang darzustellen. Die
Modelle der 36 alphanumerischen Zeichen wurden als Blockbuchstaben über ein
Digitalisiertablett wie oben beschrieben eingegeben. Zwanzig Zeichen
(zum Beispiel L, W, 1, 6), wurden als 1-Strich-Zeichen eingegeben;
14 (zum Beispiel A, X, 4, 5) als 2-Strich-Zeichen und zwei (H, I)
als 3-Strich-Zeichen. Die Modellzeichen und unbekannten Zeichen
wurden auf einem Digitalisiertablett ohne besondere Beachtung der
Größe, Orientierung
oder Lage auf dem Tablett eingegeben. Die Korrelationen, die sich
ergaben, sind in Tabelle I aufgelistet. Wie aus Tabelle I ersichtlich
ist, war das Modell, das die höchste
Korrelation hatte, zum Beispiel wenn der Buchstabe W als ein unbekanntes
Symbol eingegeben wurde, der Buchstabe „W", das mit der nächsthöchsten war die Ziffer „9", und das mit dem
niedrigsten war der Buchstabe „M".
-
Bestimmte
Zeichen sind den Drehungen anderer ähnlich, zum Beispiel „M"-„W" und „6"-„9". Aufgrund der üblichen
Zeitsequenz des Schreibens dieser Zeichen, können solche Drehungen jedoch
unterschieden werden. Diese Unterscheidung ist in 6 dargestellt. Die Buchstaben „W" und „M", die in 60 und 61 gezeigt sind,
wurden typisch als einfache Striche geschrieben, die sich in die
Richtungen der Pfeile bewegen. Daher folgt die Zeitsequenz der Abtastwerte
jedes dieser Buchstaben den Pfeilen. Wenn der Buchstabe „M" in 61 gedreht
wird, um das „W" in 62 zu
bilden, zeigen die Pfeile jedoch in die entgegengesetzte Richtung.
Daher sind die Abtastwerte für
ein „W", das ein gedrehtes „M" ist, in umgekehrter
Reihenfolge zu dem eines „W", das als solches
geschrieben wird, und die oben berechnete Korrelation wird niedrig.,
Wie aus Tabelle I ersichtlich, stellte sich die, Korrelation' mit dem Modell für „M", wenn ein „W" als ein unbekanntes
Symbol in das System eingegeben wurde, als das niedrigste aller
anderen 1-Strich-Symbole heraus.
-
Es
kann Drehungen geben, zum Beispiel „N"-„Z" und „E"„W", bei welchen die Formen der Symbole ähnlich sind,
und die Zeitsequenzen der Abtastwerte im Wesentlichen die gleichen
sind. In solchen Fällen könnten die
Korrelationen für
ein unbekanntes Zeichen in Bezug auf jedes der Modelle für die verschiedenen Drehungen
nahe sein, und eine Auswahl, die allein auf dem höchsten Wert
von C beruht, könnte
unzuverlässig sein.
Um solche Fälle
zu unterscheiden, ist es nutzbringend, auch die tatsächliche
Drehung zwischen dem unbekannten Symbol und den Modellsymbolen zu
vergleichen. Das kann durchgeführt
werden, indem auch
für das unbekannte
Symbol in Bezug zu jedem Modellsymbol bewertet wird. R stellt den
Kosinus des Winkels der Drehung zwischen dem unbekannten Symbol
und dem Modellsymbol, mit welchem es verglichen wird, dar. Da sich
der Kosinus eines Winkels 1 nähert,
wenn sich der Winkel Null nähert,
wird dem Modellsymbol der Wert von R zugeordnet, der 1 am nächsten ist.
-
7 zeigt das Flussdiagramm
der 4 modifiziert, um
die Berechnung und die Verwendung von R bei der Auswahl des nächsten Modellsymbols
für das
unbekannte Symbol einzugliedern. Die Bezugszeichen für Blöcke, die
gleiche Funktionen haben, sind gleich wie in 4.
-
Unter
Bezugnahme auf 7, zeigt
Block 70 die Berechnung und das Speichern von C und R für jedes
Modellsymbol an, das mit dem unbekannten Symbol verglichen wird.
Nach der Durchführung
solcher Berechnungen für
alle relevanten Modelle, wird ein Schwellenwert wie von Block 72 angegeben
bestimmt. Dieser Schwellenwert kann ein Prozentsatz sein, zum Beispiel
90 % des höchsten
C. Wenn das nur einem Modellsymbol zugeordnete C über dem
Schwellenwert liegt, wird das unbekannte Symbol als solches Modellsymbol erkannt,
wie die Blöcke 73 und 49 angeben.
Liegt jedoch mehr als ein C über
dem Schwellenwert, wird das unbekannte Symbol als das Modellsymbol
erkannt, das sowohl C über
dem Schwellenwert und R 1 am nächsten
hat, wie die Blöcke 73 und 74 angeben.
-
Wie
Block 70 angibt, wird R gleichzeitig mit C für jedes
verglichene Modellsymbol berechnet. Es kann jedoch günstiger
sein, bis kurz vor dem Erkennungsschritt, der in Block 74 angegeben
ist, zu warten, und R nur für
die kleinere Anzahl von Modellsymbolen zu berechnen, die Werte für C über dem
Schwellenwert haben.
-
Tabelle
II zeigt Beispiele, die die Auflösung
von Drehungen wie soeben beschrieben darstellen. Die eingegebenen
Symbole waren einstrichige alphanumerische Blockbuchstaben, wobei
jedoch die Modell- und unbekannten Zeichen im Wesentlichen mit der
gleichen Orientierung eingegeben wurden. In Beispiel 1 wurde der
Buchstabe „N" als das unbekannte
Symbol eingegeben, das Modellsymbol „N" hatte sowohl das höchste C, als auch den Wert
R, der 1 am nächsten
war, und das Modell „Z" hatte ebenfalls
C über
dem Schwellenwert. In Beispiel 2 wurde der Buchstabe „N" wieder als das unbekannte Symbol
eingegeben, das Modellsymbol „Z" hatte jedoch das
höchste
C, und das Modell „N" hatte C über dem
Schwellenwert und den Wert für
R am nächsten
von 1. In beiden Fällen
wurde das Modellsymbol „N" als das unbekannte
Symbol auf der Grundlage seines Werts für R erkannt.
-
Beispiel
3 zeigt „Z" als das unbekannte
Symbol und das Modellsymbol „N" mit dem höchsten C,
wobei jedoch „Z" auf der Grundlage
des R, das 1 am nächsten
liegt, als das unbekannte Symbol erkannt wird.
-
Bei
der oben beschriebenen Ausführungsform
der Erfindung wird ein unbekanntes Symbol mit Modellsymbolen verglichen,
um eine Übereinstimmung
zu finden. Für
jedes Symbol kann falls wünschenswert
mehr als ein Modell gespeichert werden, um Variationen in der Art,
wie Symbole von einem bestimmten Benutzer geschrieben werden, zu
berücksichtigen,
oder um sogar ein vom Benutzer unabhängiges System zu schaffen. Bei
einem benutzerunabhängigen
System kann die Bibliothek der Modellsymbole alle wahrscheinlichen
Variationen und Kombinationen der Anzahl von Strichen, der Strichreihenfolge
und Strichrichtung für
jedes Symbol umfassen. Solche Variationen steigern die Wahrscheinlichkeit
der korrekten Identifikation unbekannter Symbole, die von irgendjemandem
geschrieben werden. Eine solche Bibliothek kann vorgespeichert und
vorteilhaft in Systemen genutzt werden, die den Benutzern „handelsüblich" geliefert werden.
-
Ausführungsformen
der Erfindung können
strukturiert werden, um zusätzliche
Modelle zu erfassen, wenn die Originale nicht ausreichen, oder um
die Modelle durch Erfahrung zu ändern.
Ein Beispiel für
ein Verfahren zum Erfassen zusätzlicher
Symbole ist im Flussdiagramm der 8 dargestellt,
die einen Übungsmodus
darstellt. Bei diesem Modus wird ein unbekanntes Symbol eingegeben,
und das nächste
Modellsymbol zum unbekannten Symbol wird unter Verwendung des erfindungsgemäßen oben
beschriebenen Verfahrens ausgewählt,
und die Auswahl wird der Person, die das System übt, angezeigt. Wie von Block 80 dargestellt, gibt" der Trainer dann
an, ob die Auswahl richtig war oder nicht, und, wenn sie falsch
war, was die richtige Auswahl ist. Dann speichert das System wie
durch Block 81 angegeben den Abtastwertvektor für das unbekannte eingegebene
Symbol als ein zusätzliches
Modell für
die richtige Auswahl. Ein solcher Übungsmodus kann fortgesetzt
werden, bis die Leistung des Systems zufrieden stellend ist.
-
Eine
andere Methode, das System zum Anpassen zu bringen, besteht darin,
den Vektor für
ein Modellsystem jedes Mal zu ändern,
wenn ein unbekanntes System eingegeben wird, von dem sich herausstellt, dass
es dem Modell entspricht. Ein Ansatz besteht einfach darin, das
Modell durch das, unbekannte Symbol unter der Annahme zu ersetzen,
dass die jüngste
Instanz eines Symbols die beste ist. Ein weiteres Verfahren bestünde darin
zu bewirken, dass sich das Modell leicht in die Richtung jedes unbekannten
Symbols, dessen Übereinstimmung
festgestellt wird, „verschiebt". Eine solche Verschiebung
würde jedoch
die Berechnung neuer Werte für
die Abtastwerte im Modellvektor erforderlich machen, was aufgrund
der Unterschiede, die eventuell in der Anzahl der Abtastwerte und
der Werte solcher Abtastwerte zwischen einem übereinstimmenden unbekannten
Symbol und dem Modellsymbol existieren können, nicht unbedingt eine
geringfügige
Aufgabe ist.
-
Ein
bevorzugtes Verfahren zum Anpassen besteht darin, eine Anzahl der
jüngsten
Instanzen für
jedes Modell zu speichern, und die ältesten Instanzen jedes Ma1,
wenn eine neue eintrifft, zu eliminieren. Dadurch ist der Satz der
Modelle immer „aktualisiert", und gibt alle langfristigen Änderungen
wieder, die eventuell an den Symbolen des Satzes auftreten.
-
Für Anwendungen,
bei welchen die Erfindung von einer Person oder einer kleinen Anzahl
von Benutzern verwendet wird, kann eine Ausführungsform konfiguriert werden,
die sich an den Benutzer oder die Benutzer anpasst und im Laufe
der Anpassungen schneller funktioniert. Bei einer solchen Ausführungsform
wird das System ursprünglich
als benutzerunabhängig
konfiguriert, indem alle wahrscheinlichen Variationen von Symbolen
in die Modellbibliothek wie oben beschrieben aufgenommen werden.
Dann werden Instanzen von Symbolen, die von Benutzern eingegeben
werden, zu der Bibliothek hinzugefügt, und, nachdem eine entsprechende
Anzahl solcher Benutzerinstanzen hinzugefügt wurde, werden die Originalmodelle
eliminiert. Die Anzahl der Benutzerinstanzen, die für jedes
Symbol behalten werden, kann ziemlich klein sein, sogar so klein
wie ein Modell pro Symbol. Da daher die Anzahl der Modelle für jedes
Symbol reduziert wird, was die Berechnungszeit verringert, die erforderlich
ist, um das nächste
Modell zu bestimmen, und die Symbole für den Benutzer oder die Benutzer
spezifisch sind, entwickelt sich das System von einem benutzerunabhängigen System
zu einem benutzerunabhängigen
System, das schneller und genauer ist, weiter.
-
Umgekehrt
kann für
ein benutzerunabhängiges
System, das von einer großen
Anzahl von Benutzern verwendet werden soll, eine Ausführungsform
konfiguriert werden, die sich anpasst, indem Modelle zum Beispiel
wie in der Beschreibung der 8 weiter
oben beschrieben hinzufügt
werden. Weil das Anheben der Anzahl der Modelle jedoch dazu tendiert,
die Berechnungszeit zu steigern, die erforderlich ist, um das nächste Modell zu
bestimmen, tendiert ein solches System dazu, langsamer zu sein als
ein benutzerabhängiges
System.
-
Wie
aus der oben beschriebenen Beschreibung ersichtlich, hängt das
erfindungsgemäße Verfahren stark
von der Richtung und der Sequenz ab, in' der die verschiedenen Striche eines
Symbols geschrieben werden. Kann ein Symbol bei einem praktischen
System zur Symbolerkennung, auf mehr 'als eine Art geschrieben werden, muss
wahrscheinlich mindestens ein Modell für jede Möglichkeit enthalten sein. Diese
Eigenschaft der Erfindung kann jedoch zu Anwendungen wie zum Beispiel
zur Verifizierung von Unterschriften verwendet werden.
-
Das
erfindungsgemäße System
kann zur Verifizierung von Unterschriften verwendet werden, indem potenzielle
Unterschriften als Modellsymbole eingegeben werden. Wenn dann eine
Unterschrift zum Verifizieren eingegeben wird, wird sie mit den
Modellen verglichen, um eine Übereinstimmung
zu finden. Wenn das richtige Modell ausgewählt wird, wird die Unterschrift
als verifiziert betrachtet. Auch wenn ein Fälscher eine annehmbare Kopie
einer Unterschrift schreiben könnte,
ist es viel weniger wahrscheinlich, dass der Fälscher die Strichsequenz und
die Schreibdynamiken des Eigentümers
der Unterschrift duplizieren könnte,
sodass eine gute Übereinstimmung
erzielt wird. Bei dieser Art von Anwendung kann es wünschenswert
sein, wenn die höchste
Korrelation C gefunden wird, auch die höchste Korrelation C mit der
nächsthöchsten zu
vergleichen, um ein Maß für das Vertrauen
zu erstellen, dass die richtige Unterschrift gefunden wurde. Wenn
die nächsthöchste Korrelation
C zum Beispiel mehr als einen bestimmten Prozentsatz beträgt, zum
Beispiel 80 % der höchsten,
könnte
die präsentierte
Unterschrift als nicht zuverlässig übereingestimmt
zurückgewiesen
werden. Eine Alternative bestünde
darin, die höchste
Korrelation C mit einem Schwellenwert zu vergleichen, und jede präsentierte
Unterschrift zurückzuweisen,
bei der C den Schwellenwert für
eine beliebige Modellunterschrift erreicht.
-
ANHANG
-
In
Gleichung 5 ist C ein Maß für die Ähnlichkeit
oder Nähe
zwischen einem unbekannten Symbol und einem Modellsymbol oder, genauer,
genommen, die Ähnlichkeit
oder Nähe
zwischen dem Vektor, vα, der das unbekannte Symbol
darstellt, und dem Vektor vk, der das Modellsymbol
darstellt. Von jedem Vektor wird angenommen, dass er n Abtastwerte
umfasst, von welchen jeder eine x-Koordinate und eine y-Koordinate
umfasst. Daher gibt es in, jedem Vektor 2n Mengen oder Dimensionen.
Wie in der Beschreibung erklärt,
wird die Anzahl der Abtastwerte für das unbekannte Symbol und
das Modellsymbol, mit dem es verglichen wird, angeglichen, um gleich zu sein. Da jeder Vektor 2n Dimensionen
hat, stellt er einen einzigen Punkt in einem 2n-dimensionalen Raum
(2n-Raum) dar.
-
Man
muss ein unbekanntes Symbol mit den Modellsymbolen ungeachtet der
Orientierung oder Größe des unbekannten
Symbols in Bezug auf die Modelle vergleichen können. Das kann durch Vergleichen
des Satzes Sa aller Größen und
Orientierungen eines unbekannten Symbols mit dem Satz Sk aller
Größen und
Orientierungen jedes Modellsymbols erfolgen. Die Vektoren für einen
solchen Satz fallen alle auf die gleiche zwei-dimensionale Ebene
im 2n-Raum. Solche Ebenen treffen sich am Ursprung des 2n-Raums.
Die „Entfernung" zwischen solchen
Ebenen kann als der Winkel zwischen ihnen definiert werden, und
die Ähnlichkeit
oder Nähe von
zwei Symbolen hängt
von den Winkeln zwischen ihren repräsentativen Ebenen ab. Die Aufgabe
besteht daher darin, einen solchen Winkel zu berechnen.
-
Zum
Definieren des Satzes S aller Größen und
Orientierungen für
ein Symbol müssen
wir zuerst einen Vektor w wie folgt definieren:
wobei
u eine Drehung gegen den Uhrzeigersinn um π/2 Radiant darstellt. Ausgehend
von Gleichung 7 ist ersichtlich, dass der Vektor w von einem Vektor
v durch eine r-malige Vergrößerung oder
Ausdehnung und eine Drehung gegen den Uhrzeigersinn um y Radiant
abgeleitet wird. Die Sätze
aller Größen und
Orientierungen eines vom Vektor v dargestellten Symbols lauten dann:
-
Der
Winkel zwischen zwei Vektoren z
1 und z
2 im 2n-Raum kann von der Definition des
skalaren Produkts solcher Vektoren abgeleitet werden:
-
-
Für zwei beliebige
Vektoren ergibt Gleichung 13 einen Winkel zwischen 0 und π Radiant.
-
Der
Winkel zwischen den Ebenen S
α und S
k wird
als der kleinste Winkel zwischen einem beliebigen Paar von Vektoren
w
α (γ
α r
α)
(w
k γ
k, r
k) jeweils in
S
α und
S
k definiert. Daher:
-
Unter
Heranziehungen der Gleichungen 8 und 10, kann die Gleichung 14 umgeschrieben
werden, was die gegebenen Vektoren vα und
vk betrifft. Um jedoch das Vereinfachen
des Ergebnisses zu erleichtern, sollten die folgenden Beziehungen
beachtet werden:,.
-
-
Die
Gleichungen 16 und 17 definieren neue Symbole p
k und
q
k. Ohne Verlust der Allgemeingültigkeit, können die
Vektoren v
α,
v
k, u
α und u
k auf
1 normalisiert werden, sodass:
-
Ersetzt
man in Gleichung 14 die Ausdrücke
für w
α und
w
k, die von der Gleichung 8 gegeben werden, und
vereinfacht man durch Verwenden der Gleichungen 15-18, ergibt sich:
wobei γ=γ
k–γ
α ist,
und das Minimum wird nun über
dem alleinigen Parameter y genommen. Man beachte, dass die Ausdehnungsfaktoren
r
α,
r
k aufgrund der Normalisierung verschwunden
sind. Da der Arkuskosinus eine über
den Bereich 0, π sinkende
Funktion ist, kann Gleichung 19 wie folgt umgeschrieben werden:
-
Die
rechnerische Bestimmung des Maximums ergibt:
-
In
der Praxis braucht der tatsächliche
Winkel selbst nicht berechnet zu werden, denn man sucht nach der
Identität
des Modellsymbols, das dem kleinsten Winkel θ zugeordnet ist; die erforderlichen
Vergleiche können
durch Vergleichen der Werte des folgenden Ausdrucks ausgeführt werden:
der den Symbolen zugeordnet
ist, die verglichen werden. Gleichung 22 kann, was die Vektoren
v
α,
v
k, u
α und uk betrifft, wie
folgt umgeschrieben werden, indem die Gleichungen 15-17 verwendet
werden:
-
Um
die oben stehende Ableitung zu vereinfachen, wurde der Normalisierungsschritt
wie in Gleichung 18 gezeigt durchgeführt. Ohne eine solche Normalisierung
würde aus
der Gleichung 23 Folgendes:
-
Da
Sonderzeichen v
α beim
Vergleichen der Korrelationen eines unbekannten Vektors v
α mit
den verschiedenen Modellvektoren v
k gleich
bleibt, reicht es, die Werte zu berechnen und vergleichen, die für jeden Modellvektor
v
k gegeben werden von:
-
Gleichung
25 ist gleich wie Gleichung 5.
-
-