DE69425009T2 - Zeichenerkennung - Google Patents

Zeichenerkennung

Info

Publication number
DE69425009T2
DE69425009T2 DE69425009T DE69425009T DE69425009T2 DE 69425009 T2 DE69425009 T2 DE 69425009T2 DE 69425009 T DE69425009 T DE 69425009T DE 69425009 T DE69425009 T DE 69425009T DE 69425009 T2 DE69425009 T2 DE 69425009T2
Authority
DE
Germany
Prior art keywords
character
features
vectorial
topological
extracting
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 - Fee Related
Application number
DE69425009T
Other languages
English (en)
Other versions
DE69425009D1 (de
Inventor
Girolamo Gallo
Cristina Lattaro
Flavio Lucentini
Giulio Marotta
Giuseppe Savarese
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.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
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
Application filed by Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of DE69425009D1 publication Critical patent/DE69425009D1/de
Application granted granted Critical
Publication of DE69425009T2 publication Critical patent/DE69425009T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/18Extraction of features or characteristics of the image
    • G06V30/184Extraction of features or characteristics of the image by analysing segments intersecting the pattern
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/19Recognition using electronic means
    • G06V30/19007Matching; Proximity measures
    • G06V30/19013Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Character Discrimination (AREA)

Description

  • Diese Erfindung bezieht sich auf ein Verfahren und eine Vorrichtung zur Zeichenerkennung, insbesondere zur Erkennung von Buchstaben, Ziffern und anderen Symbolen, wie etwa japanische Zeichen, musikalische Symbole, einfache Zeichnungen u. ä.
  • Bei tastaturlosen Eingabeschemen für Computersysteme können beispielsweise Befehle oder Daten durch einen Benutzer des Systems auf einem Eingabe/Ausgabebildschirm mit Hilfe eines stiftähnlichen Schreibers eingegeben werden. Ein Beispiel eines solchen Bildschirms ist ein berührungsempfindlicher Monitor. Die Eingabebefehle können handschriftliche Schriftzeichen, Ziffern oder jede andere Form handschriftlicher Zeichen sein. Bei diesen Arten von Systemen ist es für den Computer wichtig, die Eingabe, die durch den Benutzer eingegeben wurde, zu "verstehen" und die eingegebenen Zeichen zu erkennen und zu lesen.
  • Es gibt eine Reihe bekannter Systeme, die eingegebene Zeichen erkennen und lesen können. Ein solches System ist in US 4.972.496 offenbart. Dieses Patent offenbart ein System mit einem transparenten Eingabebildschirm, der Positionsinformationen erzeugt, die den Positionen entsprechen, auf denen ein Schreiber den Bildschirm berührt (d. h. die Positionsinformationen des Zeichens), und der außerdem dem Benutzer anzeigt, daß die Eingabe angenommen wurde. Das System enthält ferner einen Computer, der so programmiert ist, daß er die Positions- informationen in "Striche" übersetzt, die durch den Schreiber gemacht wurden. Die Striche werden analysiert, um den Anfangspunkt jedes Strichs, den Endpunkt jedes Strichs, die Neigung des Strichs, den Mittelpunkt (Centriod) des Strichs und die Änderungsrate der Neigung zu ermitteln und dort, wo ein Zeichen mehr als einen Strich umfaßt, zu analysieren, ob es der erste Strich, der zweite Strich, usw. ist. Wenn der Strich analysiert worden ist, wird auf eine personenbezogene Datenbank zugegriffen, die für einen speziellen Benutzer einmalig ist, um das Zeichen zu identifizieren, das am ehesten dem untersuchten Zeichen entspricht.
  • Aufgrund der genauen Strichanalyse, die ausgeführt werden muß, ist dieses System unter Verwendung spezieller Hardware zur Srichanalyse relativ komplex zu realisieren. Außerdem beruht es auf einer Datenbank für jeden Benutzer. Dies kann bedeuten, daß eine große Speichermenge vergeudet wird, wenn ein vorgegebenes System von vielen Benutzern verwendet wird. Wenn keine personenbezogene Datenbank eingerichtet wird, kann der Grad der Erkennung des Systems unter einen annehmbaren Pegel abfallen. Das dieses System lediglich auf der Strichanalyse beruht, ist es für alle Benutzer wichtig, die Zeichen in einer vorgegebenen konventionellen Weise zu schreiben. Die Erkennung ist stark eingeschränkt, wenn der Benutzer einen Schreibstil annimmt, bei dem die Striche sich von der vorgegebenen konventionellen Weise unterscheiden. Selbst wenn die im freien Stil geschriebenen Zeichen den konventionellen Zeichen sehr ähnlich sind, kann die Erkennung nicht zutreffend sein, wenn die Strichanalyse ein anderes Zeichen als das geschriebene anzeigt.
  • Das Dokument DE-A-38 22 671 offenbart ein Verfahren und eine Vorrichtung zum Vergleichen von Liniencharakteristiken oder von Sätzen der Liniencharakteristiken, insbesondere um Handschriften und Unterschriften zu identifizieren. Um eine Liniencharakteristik zu erhalten, wird die Schreibgeschwindigkeit bestimmt und wird anschließend die Linie in Bereiche unterteilt, die deren unterschiedlichen Geschwindigkeiten entsprechen. Beim Vergleichen mit Unterschriften werden die jeweiligen zuvor gespeicherten charakteristischen Daten verglichen. Die charakteristischen Daten sind einer speziellen Person eigen.
  • Die zu verarbeitende Datenmenge vermindert sich wegen der Klassifizierung in unterschiedliche Geschwindigkeitsbereiche oder Segmente, wodurch eine Echtzeitverarbeitung ermöglicht wird.
  • Es ist eine Aufgabe der vorliegenden Erfindung, ein System zur Zeichenerkennung zu schaffen, das wenigstens einige der Nachteile bekannter Systeme überwindet.
  • Es ist eine weitere Aufgabe der vorliegenden Erfindung, ein einfaches System zur Zeichenerkennung zu schaffen, das eine verbesserte Erkennungsrate aufweist, selbst wenn keine personenbezogene Datenbank verwendet wird.
  • Es werden ein Verfahren und eine Vorrichtung zum Erkennen eines handschriftlichen Zeichens geschaffen, wie sie in den unabhängigen Ansprüchen 1 und 13 dargestellt sind.
  • Das System der Erfindung besitzt den Vorteil, daß es keine Notwendigkeit für eine zeitaufwendige komplexe Analyse des Zeichens gibt und daß eine Datenbank die Erkennung von mehr als 98% aller durch einen Benutzer eingegebenen Zeichen gewährleistet.
  • Es wird nun beispielhaft Bezug auf die angefügte Zeichnung genommen, in der:
  • Fig. 1 ein Blockdiagramm eines Systems zur Zeichenerkennung gemäß einem Aspekt der vorliegenden Erfindung ist;
  • Fig. 2 ein Diagramm eines Beispiels eines Programmspeichers ist, der auf dem Bildschirm des Systems angezeigt ist;
  • Fig. 3 ein Diagramm ist, das einige Beispiele von Zeichen mit bevorzugten Rahmenbegrenzungen zeigt;
  • Fig. 4 ein Diagramm eines STK-Formats des Buchstabens A ist;
  • Fig. 5 ein Diagramm eines Musterformats des Buchstabens A ist;
  • Fig. 6 ein Diagramm ist, das einen Satz topologischer Merkmale zeigt, der verwendet wird, um ein Zeichen zu identifizieren;
  • die Fig. 7 und 8 Diagramme sind, die zeigen, wie das Zeichen erkannt wird.
  • In Fig. 1 ist ein System zur Zeichenerkennung allgemein mit dem Bezugszeichen 10 gezeigt. Das System umfaßt einen Mikrocomputer 12 mit einem Monitor 14. Der Computer ist mit einem berührungsempfindlichen Bildschirm verbunden, z. B. mit einer graphischen Digitalisiereinrichtung 16. Es ist möglich, den Monitor durch einen berührungsempfindlichen Monitor zu ersetzen und ohne den berührungsempfindlichen Bildschirm auszukommen. Ein stiftähnlicher Schreiber 18 kann am berührungsempfindlichen Bildschirm verwendet werden, um Befehle, Daten u. ä. in den Computer einzugeben. Ein Benutzer kann Befehle direkt auf den Bildschirm schreiben. Zur genauesten Erkennung der Befehle sollten die Zeichen vorzugsweise in einen Rahmen eingegeben werden, der allgemein mit dem Bezugszeichen 20 gezeigt ist. Das Menü des berührungsempfindlichen Bildschirms, das durch den Benutzer zur Eingabe von Informationen verwendet wird, ist in Fig. 2 gezeigt. Die zur Verfügung stehenden Hauptoptionen sind im Block 22 gezeigt und können aktiviert werden, indem das geeignete Feld 24a-f mit dem Schreiber berührt wird.
  • Der Rahmen 20 ist in Fig. 3 genauer gezeigt. Er umfaßt einen oberen Rahmen 26, einen mittleren Rahmen 28 und einen unteren Rahmen 30. Jedes Zeichen sollte in eine Spalte 32 eingegeben werden. Die Position des Zeichens wird verwendet, um bei der Erkennung des Zeichens zu helfen. Zum Beispiel sollten "kurze" Kleinbuchstaben, wie etwa a, c, e, m, n, o, r, s, u, v, w, x und z in den mittleren Rahmen eingegeben werden und sollten vorzugsweise eine solche Größe aufweisen, daß sie sich nicht in die anderen Rahmen erstrecken. Größere Kleinbuchstaben wie etwa b, d, f, h, k, i, k, l, und t sollten eine größere vertikale Größe aufweisen als die kleineren Kleinbuchstaben und sollten in die oberen und mittleren Rahmen eingegeben werden. Kleinbuchstaben mit einem "Schwanz", wie etwa g, j, p, q und q sollten vorzugsweise so eingegeben werden, daß der Schwanz sich in den unteren Rahmen erstreckt. Großbuchstaben und Ziffern sollten im allgemeinen in einer vorgegebenen Spalte 32 in die oberen und mittleren Rahmen eingegeben werden. Andere Zeichen, wie etwa beispielsweise Satzzeichen, sollten an ihren normalen Positionen in bezug auf die alphanumerischen Zeichen eingegeben werden. Der Erkennung von Satzzeichen wird in diesem Dokument nicht erläutert, wird jedoch in unserer gleichzeitig anhängigen Anmeldung (TI-17480) dargestellt.
  • In Zusammenhang mit den obenstehend erläuterten Rahmenbegrenzungen ermöglicht das System, den Unterschied beispielsweise zwischen "c" und "C" zu erkennen. Es ist für den Bediener möglich, die Größe der Rahmen einzustellen oder den Standardrahmen zu verwenden. Außerdem sind bei jenen Alphabeten wie etwa japanischen Zeichen, die keine Symbole mit der gleichen Form jedoch mit unterschiedlichen Größen aufweisen, Rahmenbegrenzungen nicht notwendig und der Benutzer kann die Zeichen ohne Rahmenbegrenzungen in eine Box eingeben. Das selbe gilt weiterhin, wenn das System für die Erkennung geometrischer Symbole oder zur Zeichnungserkennung verwendet wird. Alle Einzelheiten, wie die Rahmenbegrenzung bei der Erkennung hilft, werden nachfolgend genauer beschrieben.
  • Wenn die handschriftlichen Daten in die graphische LCD-Digitalisiereinrichtung 16 eingegeben worden sind, wird die Ausgabe der Digitalisiereinrichtung zum Computer in eine sogenannte Strichformatdatei (STK-Datei) heruntergeladen. In einem solchen Format wird das Zeichen durch eine Folge von Strichen beschrieben, wobei jeder von diesen aus einer Reihe von Koordinaten zwischen einem Abstrich- und einem Aufstrich-Zustand besteht. Fig. 4 zeigt eine Übersetzung im ASCII-Format des Inhalts einer binären Strichdatei des Buchstabens A. Die Ausgabe von der Digitalisiereinrichtung wird "vorverarbeitet", bevor die Zeichenerkennung ausgeführt wird. Diese Vorverarbeitung umfaßt die Skalierung des Zeichens, das Einmitten, die digitale Rauschfilterung und das Anpassen der digitalen Informationen in eine Pixelmatrix einer vorgegebenen Größe, z. B. eine 16 · 16- Matrix.
  • Nach der Vorverarbeitung wird das Zeichen einem Erkennungsvor gang unterzogen, der drei Grundschritte umfaßt:
  • die Extraktion der topologischen Charakteristiken (Merkmale) des eingegebenen handschriftlichen Zeichens;
  • die Bestimmung des Vektorcodes des Zeichens; und
  • die Erkennung durch "Fuzzy"-Vergleich mit einem Satz Referenzzeichen, die in einem Speicher gespeichert sind.
  • Die Handschrift-Erkennung wird an jedem einzelnen Zeichen ausgeführt, nachdem es geschrieben worden ist. Dies ermöglicht eine vollständige Freiheit beim Schreiben der Zeichen gemäß dem Stil des Benutzers, d. h. es ist nicht notwendig, die Zeichen als eine bestimmte Folge von Strichen einzugeben. Dies kann Änderungen in der Bewegungsrichtung des Stiftes ermöglichen und es können Korrekturen ausgeführt werden, nachdem die Zeichen ursprünglich geschrieben wurden. Die Erkennung basiert hauptsächlich auf den optischen Charakteristiken des Symbols. Um Mehrdeutigkeiten aufgrund des optischen Erscheinungsbildes der Zeichen zu lösen, wie etwa "S" und "5", wird für jedes Zeichen ein Vektorcode bestimmt. Diese Vektorcodebestimmung wird nachfolgend genauer beschrieben. Wie zuvor festgestellt wurde, wird die Erkennung von Großbuchstaben und von Kleinbuchstaben mit derselben Form (z. B. "c" und "C") dadurch verbessert, daß der Benutzer in Felder oder in Rahmen schreibt.
  • Dieses spezielle System ist für Zeichen sowie für alle anderen Symbole optimiert, die auf einer Standard-Computertastatur vorkommen. Das System ist außerdem für alle Alphabete, japanische Zeichen, geometrische Symbole und einfache Zeichnungen optimiert worden. Das Prinzip ist außerdem für alle anderen Alphabete gültig. Das System kann in einem vom Schreiber abhängigen Modus verwendet werden, in dem es eine bessere Erkennungrate aufweist. Eine sehr gute Erkennung ist jedoch möglich, wenn das System als ein vom Schreiber unabhängiges System verwendet wird, d. h. ohne Systemtraining. Der Benutzer kann seinen eigenen Satz Referenzzeichen über einen benutzerfreundlichen Zeichenmodus eingeben. Wenn es ausreichend trainiert ist, kann das System jeden Handschriftstil akzeptieren. Ein Benutzer kann beispielsweise das System darauf trainieren, mehrere Zeichenstile für einen vorgegebenen Buchstaben des Alphabets oder seine spezielle Art, wie er ein vorgegebenes Zeichen schreibt, zu erkennen. Alternativ kann das System im "untrainierten Modus" mit einem Standardzeichensatz verwendet werden.
  • Die Vorverarbeitung setzt anfangs das obenstehend beschriebene STK-Format in ein Musterformat (PTN) einer normierten 16 · 16- Matrix um. Dieses PTN-Format ist in Fig. 5 gezeigt. Die restliche Zeichenvorverarbeitung wird wie folgt ausgeführt:
  • Eine Punktinterpolation/Glättung erfolgt, wenn die Digitalisiereinrichtung Punkte bei einer konstanten Rate umwandelt, wobei der Abstand zwischen zwei aufeinanderfolgenden Punkten zur Stiftgeschwindigkeit proportional ist. Wenn die Schreibgeschwindigkeit gering ist, können einige Punkte sehr eng beieinander liegen, was ein Digitalisierungsrauschen zur Folge hat. Wenn die Schreibgeschwindigkeit alternativ relativ schnell ist, können Punkte untereinander einen Abstand aufweisen, wodurch im Strich Löcher verbleiben. Um diesen Nachteil zu überwinden, wird die Interpolations-/Glättungsroutine verwendet, um interpolierte Punkte immer dann einzufügen, wenn Punkte zu weit auseinander liegen, und um die Punkte zu entfernen, die zu eng beieinander liegen;
  • die Zeichenbegrenzungen werden bewertet und die Punkte werden skaliert, damit sie in eine normierte 16 · 16-Matrix passen. Die X- und Y-Komponenten werden mit unterschiedlichen Skalierungsfaktoren skaliert, damit die Matrix vollständig gefüllt wird. Wenn das Verhältnis X-Abmessung/Y-Abmessung oder Y-Abmessung/X-Abmessung größer als ein vorgegebener Schwellenwert (typischerweise 4) ist, wird lediglich die größere Komponente (X oder Y) des Zeichens skaliert. Dies dient dazu, eine ungeeignete Expansion von "schlanken" Zeichen, wie etwa "I" oder "- " zu vermeiden; und
  • durch Zeichenabbildung, die beinhaltet, daß die Anzahl der Punkte, die zu jedem der 16 · 16-Pixel gehören, gezählt werden und ihr mittlerer Wert berechnet wird. Ein Schwellenwert (ungefähr 1/8 des mittleren Werts) wird zum Aufbau verwendet, wenn ein vorgegebenes Pixel der Matrix schwarz (1) oder weiß (0) sein muß. Wenn die Anzahl der Punkte in einem vorgegebenen Pixel größer als der Schwellenwert ist, soll das entsprechende Bit auf 1 gesetzt werden, andernfalls wird es auf 0 gesetzt. Der Zeichenmatrix werden zusätzliche Daten hinzugefügt, um die Zeichenidentifizierung zu spezifizieren (nur möglich, wenn das Zeichen Teil des Referenzsatzes ist), diese Daten enthalten die Anzahl der Striche des Zeichens und die Rahmenposition. Diese Informationen werden während des Erkennungsvorgangs verwendet, wie nachfolgend beschrieben wird. Die Rahmenposition wird codiert, indem jedem der drei Schreibrahmen eine Wertung zugewiesen wird: 1 für den oberen Rahmen 26, 2 für den mittleren Rahmen 28 und 4 für den unteren Rahmen. Zum Beispiel wird das Zeichen "g" normalerweise in die mittleren und unteren Rahmen geschrieben, so daß seine Rahmenzahl 2 + 4 = 6 beträgt. Die Rahmenzahlen werden bewertet, indem die Zeichenposition auf dem Schreibfeld überprüft wird. Damit kleine Rahmenfehler, die durch den Benutzer gemacht werden, nicht berücksichtigt werden, ist die aktive Fläche der oberen und unteren Felder tatsächlich etwas kleiner als durch die Rahmenlinien angezeigt wird. Dies bedeutet, daß die tatsächliche Grenze zwischen dem mittleren und dem oberen Rahmen etwas höher als gezeigt liegt und die Grenze zwischen dem mittleren und dem unteren Rahmen etwas tiefer als gezeigt liegt. Der Betrag dieser Verschiebungen kann vom Benutzer eingestellt werden.
  • Das Ergebnis der Zeichenvorverarbeitungsstufe ist eine 16 · 16- Matrix im Musterformat, wobei jedes Pixel der Matrix ein Pixel der Zeichendarstellung ist. Zugelassene Werte für das gegebene Element sind 0 (weißes Pixel) und 1 (schwarzes Pixel), wie in Fig. 5 gezeigt ist. An der Oberseite der Matrix befindet sich eine Kopfdatenzeile, die die folgenden Informationen enthält:
  • a) Zeichenidentifikation (steht lediglich dann zur Verfügung, wenn das Zeichen Teil des Referenzsatzes ist);
  • b) Anzahl der Striche; und
  • c) Rahmenpositionierung.
  • Die Kopfdatenzeile kann außerdem Zeichenvektorcodes enthalten.
  • Der erste Schritt des Erkennungsvorgangs besteht in der Extraktion einer topologischen und dynamischen Beschreibung (Vektorbeschreibung) der Zeichen oder eines topologischen und dynamischen Codes der Zeichen aus der ursprünglichen 16 · 16- Matrix und aus dem STK-Zeichenformat. Anschließend wird die Erkennung durchgeführt, indem der eingegebene Zeichencode mit den Codes der Referenzzeichen verglichen wird, die durch den Benutzer während der Lernphase gesammelt wurden oder aus dem Standardsatz im Speicher stammen. Der Code enthält im Grunde vier Typen von Informationen:
  • i) Merkmalextraktionscode;
  • ii) Schnittpunktcode;
  • iii) Rahmenposition, Strichanzahl und Zeichenidentifikation (die letztere steht lediglich dann zur Verfügung, wenn das Zeichen Teil des Referenzsatzes ist), und
  • iv) Zeichenvektorcode.
  • Die Merkmalextraktion ist der Schlüsselschritt des Erkennungsalgorithmus. Sie führt eine getreue Beschreibung der Topologie des Zeichens aus, um die Erkennung sehr genau zu gestalten. Diese Operation wird durchgeführt, indem ein "topologischer Merkmalsatz" verwendet wird. Er besteht aus den 99 in Fig. 6 gezeigten 16 · 16-Matritzen, die elementare geometrische Strukturen repräsentieren. Diese Matrizen sind durch eine komplexe Optimierungsarbeit gewonnen worden, die von vielen unterschiedlichen Personen unter Verwendung zahlreicher Zeichensätze ausgeführt wurde.
  • Der Vorgang der Merkmalextraktion besteht im Grunde aus der Überlappung des Zeichens mit der i-ten (i = 1, ..., 99) Merkmalmatrix und dem anschließenden Zählen der Anzahl schwarzer Pixel, die sie gemeinsam haben. Diese Operation kann mit Hilfe einer bitweisen UND-Funktion einfach realisiert werden. Das Zählergebnis X wird anschließend mit drei Schwellenwerten T1, T2 und T3 verglichen.
  • Wenn X < = T1 wird die Antwort fi des i-ten Merkmals auf 0 gesetzt,
  • wenn T1 < X < = T2 wird die Antwort fi des i-ten Merkmals auf 1 gesetzt,
  • wenn T2 < X < = T3 wird die Antwort fi des i-ten Merkmals auf 2 gesetzt, und
  • wenn X > = T3 wird die Antwort fi des i-ten Merkmals auf 3 gesetzt.
  • Dieser Vorgang ist in Fig. 7 gezeigt. Deswegen ist das Ergebnis der beschriebenen Operation eine Anordnung von 99 ganzzahligen Werten, die als Merkmalextraktionscode bezeichnet wird, der die Antwort des Merkmalsatzes auf das gegebene Zeichen repräsentiert. T1, T2, T3 werden aus Simulationen des Systems gewählt und werden typischerweise so gesetzt, daß T1 = 2, T2 = 3, T3 = 6.
  • Der Schnittpunktcode enthält zusätzliche Informationen zur Zeichentopologie. Er besteht aus 32 ganzzahligen Werten Ni (i = 1, ..., 32), wobei jeder von ihnen die Anzahl der Schnittpunkte des Zeichens mit den 16 horizontalen und den 16 vertikalen Zeilen der Matrix sind. Ein Beispiel dieser Operation ist in Fig. 8 gezeigt.
  • Das nächste Feld des Zeichencodes enthält die Rahmenposition, die Anzahl der Striche des Zeichens und dann, wenn das Zeichen Teil des Lernsatzes ist, seine Identifizierung, die durch den Benutzer geliefert wird.
  • Das letzte Feld ist die Vektorcodeinformation des Zeichens. Diese enthält die folgenden Vektorparameter:
  • i) Nd, wobei Nd + 1 die Anzahl von Punkten im STK-Zeichenformat ist;
  • ii) DIN, eine Anordnung von Nd 4 Bit-Werten, die die Posi tion jedes Punkts im STK-Zeichenformat in bezug auf den vorherigen Punkt beschreiben;
  • iii) APPX, eine Anordnung von Nd 3 Bit-Werten, die die Position der X-Koordinate jedes Punkts des STK-Zeichenformats in bezug auf die X-Koordinate der ersten, mittleren und letzten Punkte des STK-Zeichenformats beschreiben;
  • iv) APPY, eine Anordnung von Nd 3 Bit-Werten, die die Position der Y-Koordinate jedes Punkts des STK-Zeichenformats in bezug auf die Y-Koordinate der ersten, mittleren und letzten Punkte des STK-Zeichenformats beschreiben; und
  • v) REL, eine Anordnung von 12 2 Bit-Werten, die die relative Position der Extrempunkte (max und min) des Zeichens repräsentieren.
  • Der DIN-Parameter, der die Position jedes Punkts im STK-Format in bezug auf den vorherigen Punkt beschreibt, wird auf folgende Weise bestimmt.
  • Es wird angenommen, daß (X1, Y1) die Koordinaten eines gegebenen Punkts im STK-Format sind, und daß (X2, Y2) die Koordinaten des nachfolgenden Punkts sind, usw. die Aufstrich- Abstrich- Koordinaten in der STK-Punktfolge werden außer Acht gelassen, deswegen kann das folgende Verfahren angewendet werden, selbst wenn die zwei Punkte zu unterschiedlichen Strichen gehören. Die relative Position der zwei Punkte wird unter Verwendung des folgenden Ablaufs dargestellt:
  • Wenn (X1 > X2)
  • {wenn (Y1 > Y2) DIN = 1
  • wenn (Y1 = Y2) DIN = 2
  • wenn (Y1 < Y2) DIN = 3}
  • sonst wenn (X1 = X2)
  • {wenn (Y1 > Y2) DIN = 4
  • wenn (Y1 = Y2) DIN = 5
  • wenn (Y1 < Y2) DIN = 6}
  • sonst wenn (X1 < X2)
  • {wenn (Y1 > Y2) DIN = 7
  • wenn (Y1 = Y2) DIN = 9
  • wenn (Y1 < Y2) DIN = 10}
  • Die Anzahl der DIN-Werte für jedes Zeichen beträgt Nd (Anzahl der Punkte -1). Da die DIN-Werte von 1 und 10 reichen, wird ein 4 Bit-Wert benötigt, um sie alle darzustellen.
  • Wenn z. B. ein Zeichen aus den folgenden 5 Punkten aufgebaut ist:
  • 1: (3, 6)
  • 2: (3, 8)
  • 3: (4, 7)
  • 4: (3, 7)
  • 5: (3, 8)
  • wird erhalten:
  • Nd = (N Punkte - 1) = 4;
  • DIN[0] = 6;
  • DIN[1] = 7;
  • DIN[2] = 2; und
  • DIN[3] = 6.
  • Die APPX- und APPY-Parameter repräsentieren die Position jedes Punkts im STK-Zeichenformat in bezug auf die ersten, mittleren und letzten Punkte. Wie zuvor angezeigt wurde, werden Aufstrich- und Abstrich-Koordinaten nicht berücksichtigt. Angenommen:
  • (X, Y) sind die Koordinaten des momentanen Punkts;
  • (Xo, Yo) sind die Koordinaten des ersten Punkts;
  • (Xc, Yc) sind die Koordinaten des mittleren Punkts; und
  • (Xn, Yn) sind die Koordinaten des letzten Punkts;
  • dann werden die APPX- und APPY-Werte erhalten als:
  • wenn (Xc > X & Xn > X & Xo > X) APPX = 0;
  • wenn (Xc > X & Xn > X & XoX) APPX = 1;
  • wenn (Xc > X & XnX & Xo > X) APPX = 2;
  • wenn (Xc > X & XnX & Xo X) APPX = 3;
  • wenn (XcX & Xn > X & Xo > X) APPX = 4;
  • wenn (Xc > X & Xn > X & XoX) APPX = 5;
  • wenn (XcX & XnX & Xo > X) APPX = 6; und
  • wenn (XcX & XnX & XoX) APPX = 7;
  • während dann
  • wenn (Yc > Y & Yn > Y & Yo > Y) APPY = 0;
  • wenn (Yc > Y & Yn > Y & YoY) APPY = 1;
  • wenn (Yc > Y & YnY & Yo > Y) APPY = 2;
  • wenn (Yc > Y & YnY & Yo Y) APPY = 3;
  • wenn (YcY & Yn > Y & Yo > Y) APPY = 4;
  • wenn (Yc > Y & Yn > Y & YoY) APPY = 5;
  • wenn (YcY & YnY & Yo > Y) APPY = 6; und
  • wenn (YcY & YnY & YoY) APPY = 7.
  • Die Anzahl der APPX- und APPY-Werte für jedes Zeichen beträgt Nd wie für die DIN-Parameter. Da die möglichen Werte von 1 bis 8 reichen und ein 3 Bit-Wert benötigt wird, um den APPX/APPY- Code zu speichern, werden 2 · 3 · Nd Bits benötigt. Zum Beispiel lautet der APP-Code für das Zeichen im vorherigen Beispiel:
  • APPX[0] = 3; APPX[1] = 7; APPX[2] = 3; APPX[3] = 3
  • APPY[0] = 7; APPY[1] = 5; APPY[2] = 3; APPY[3] = 6
  • wobei
  • (Xo, Yo) = (3, 6)
  • (Xc, Yc) - (4, 7)
  • (Xn, Yn) = (3, 8)
  • Die REL-Parameter, die die relative Position der Extrempunkte des Zeichens repräsentieren, werden wie folgt ermittelt:
  • Es wird angenommen, daß:
  • Xmax der Maximalwert der X-Koordinate im STK-Zeichenformat ist;
  • Ymax der Maximalwert der Y-Koordinate im STK-Zeichenformat ist;
  • Xmin der Minimalwert der X-Koordinate im STK-Zeichenformat ist;
  • Ymin der Minimalwert der Y-Koordinate im STK-Zeichenformat ist;
  • und daß
  • Y(Xmax) die y-Koordinate des Punkts ist, zu dem Xmax gehört;
  • X(Ymax) die x-Koordinate des Punkts ist, zu dem Ymax gehört;
  • Y(Xmin) die y-Koordinate des Punkts ist, zu dem Xmin gehört;
  • und
  • X(Ymin) die x-Koordinate des Punkts ist, zu dem Ymin gehört.
  • Die 4 Extrempunkte werden in der zeitlichen Reihenfolge, in der sie vom Benutzer geschrieben wurden, betrachtet und ihre Koordinatenwerte werden verglichen. Das Ergebnis des Vergleichs wird auf "+" gesetzt, wenn die Differenz positiv ist, auf "-", wenn sie negativ ist, und auf "=", wenn sie 0 ist.
  • Wird beispielsweise das gegebene Beispiel betrachtet, wird erhalten:
  • Xmax = 4; Ymax = 8, Xmin = 3, Ymin = 6
  • und die zeitlich geordnete Folge lautet:
  • 1. (Xmin, Y(Xmin)) = (3, 6)
  • 2. (X(Ymin), Ymin) = (3, 6)
  • 3. (X(Ymax), Ymax) = (3, 8)
  • 4. (Xmax, Y(Xmax)) = (4, 7)
  • Wird der erste Punkt mit dem zweiten verglichen, wird erhalten: = =
  • Wird der erste Punkt mit dem dritten verglichen, wird erhalten: = -
  • Wird der erste Punkt mit dem vierten verglichen, wird erhalten: - -
  • Wird der zweite Punkt mit dem dritten verglichen, wird erhalten: = -
  • Wird der zweite Punkt mit dem vierten verglichen, wird erhalten: - -
  • Wird der dritte Punkt mit dem vierten verglichen, wird erhalten: - -
  • Deswegen lautet der REL-Code, der dem speziellen Zeichen zugeordnet ist:
  • "= = = - - - = - - - - -"
  • Da jedes Symbol im REL-Code 3 unterschiedliche Werte annehmen kann, werden 4 Bits benötigt, um sie alle zu speichern. Somit erfordert der REL-Code jedes Zeichens 2 · 12 = 24 Bits.
  • Die DIN-, APPX/APPY- und REL-Codes sowie die Nd-Werte werden zum obenstehend beschriebenen geometrischen (oder topologischen) Zeichencode hinzugefügt. Deswegen enthält der aktualisierte Zeichencode die folgenden Informationen:
  • 1. Merkmalextraktionscode
  • 2. Schnittpunktcode
  • 3. Rahmenposition, Strichanzahl und Zeichenidentifikation (die letztere steht lediglich dann zur Verfügung, wenn das Zeichen Teil des Referenzsatzes ist)
  • 4. Nd-Anzahl
  • 5. DIN-Code
  • 6. APPX/APPY-Code
  • 7. REL-Code
  • Deswegen wird ein gegebenes Zeichen nach dem Codiervorgang durch eine Anordnung ganzer Zahlen repräsentiert: 99 von der Merkmalextraktion; 32 von Schnittpunkten; 1 für die Strichanzahl; 1 für die Rahmenposition; 1 für Nd; Nd für DIN; 2Nd für APPX/APPY und 12 für REL.
  • Die Erkennung wird durchgeführt, indem der Code des unbekannten eingegebenen Zeichens Wert für Wert mit den codierten Zeichen im Referenzsatz verglichen werden, die die selbe Rahmennummer aufweisen. Zeichen mit Rahmennummern, die sich von denen des eingegebenen Zeichens unterscheiden, werden während des Vergleichs außer Acht gelassen. Dies hat zwei wichtige Vorteile. Erstens ermöglicht es die Erkennung von Zeichen mit der selben Form und unterschiedlicher Größe. Zweitens ist der Erkennungsvorgang relativ schneller, denn er beinhaltet eine geringere Anzahl von Vergleichen. Als ein Ergebnis ist die Wertung Sj gegeben durch:
  • Sj = Wo · Soj - Sdj
  • und ist in der Gleichung dem Vergleich zwischen dem unbekannten eingegebenen Zeichen und dem j-ten Zeichen in der Zeichendatenbank zugewiesen. In der Gleichung ist Wo ein Gewichtungsfaktor, der die relative Wichtigkeit der optischen und vektoriellen Informationen beschreibt; Soj ist die sogenannte optische oder topographische Wertung; und Sdj ist die sogenannte dynamische Wertung.
  • Die "optische" Wertung Soj, die den j-ten Vergleichen zugeordnet ist (j = 1, ..., Ncar), ist gegeben durch:
  • Soj = SW · (S - Stj) + (fi - fij) + IW · (Ni - Nij
  • wobei:
  • S = Strichanzahl des eingegebenen Zeichens
  • Stj = Strichanzahl des j-ten Referenzzeichens
  • fi = Antwort des i-ten Merkmals auf das eingegebene Zeichen
  • fij = Antwort des i-ten Merkmals auf das j-te Referenzzeichen
  • Ni = Anzahl der Schnittpunkte der i-ten Linie mit dem eingegebenen Zeichen
  • Nij = Anzahl der Schnittpunkte der i-ten Linie mit dem j-ten Referenzzeichen
  • SW = Strichgewicht
  • IW = Schnittpunktgewicht.
  • Diese Wertung wird für jedes der Ncar Referenzzeichen ermittelt.
  • Sdj, der dynamische Term der Zeichenwertung, kann als die Summe von drei unterschiedlichen Termen ausgedrückt werden:
  • Sdj = Aj + Wr · Rj + Wp · Nd - Ndj
  • wobei
  • Aj die APP/DIN-Wertung ist;
  • Rj die REL-Wertung ist; und
  • Wp und Wr Gewichtungsfaktoren sind.
  • Simulationsergebnisse zeigen, daß 8 bzw. 4 die besten Werte für die Gewichtungsfaktoren Wr und Wp sind.
  • Die Aj-Wertung wird durch einen Vergleich der DIN- und APPX/APPY-Codes ermittelt.
  • DIN, APPX, APPY und Nd sollen die Parameter sein, die sich auf das eingegeben Zeichen beziehen, und DINj, APPXj, APPY, und Ndj sollen sich auf das j-te Zeichen im Referenzsatz beziehen.
  • DIN, APPX und APPY sind aus Nd Elementen aufgebaut, DINj, APPXj, APPY, und Ndj enthalten Ndj Elemente. Da im allgemeinen NdNdj gilt und es eine große Vielfalt von Handschriften gibt, ist es nicht ausreichend, die DIN- und APPX/APPY-Werte so zu vergleichen wie sie sind, sondern es sind mehrere Vergleiche erforderlich, wobei jeder dieser Vergleiche auszuführen ist, nachdem die beiden Anordnungen untereinander verschoben worden sind. Simulationsergebnisse zeigen, daß die beste Erkennungsrate erreicht wird, wenn 7 unterschiedliche Relativverschiebungen berücksichtigt werden. Wenn zum Beispiel:
  • DIN = {1, 3, 2, 7, 5, 9, 5, 8, 4, 3}
  • DINj = {3, 4, 3, 3, 2, 7, 6}
  • APPX = {4, 4, 6, 5, 3, 7, 6, 6, 4, 5}
  • APPXj = {4, 6, 7, 4, 4, 5, 5}
  • APPY = {4, 4, 6, 5, 3, 7, 6, 6, 6, 7}
  • APPXj = {2, 5, 6, 3, 4, 7, 6}
  • Nd = 10
  • Ndj = 7
  • Die 7 zu berücksichtigenden Verschiebungen sind:
  • 1. DIN {1, 3, 2, 7, 5, 9, 5, 8, 4, 3}
  • DINj {3, 4, 3, 3, 2, 7, 6}
  • APPX {4, 4, 6, 5, 3, 7, 6, 6, 4, 5}
  • APPXj {4, 6, 7, 4, 4, 5, 5}
  • APPY {4, 4, 6, 5, 3, 7, 6, 6, 6, 7}
  • APPYj {2, 5, 6, 3, 4, 7, 6}
  • 2. DIN {1, 3, 2, 7, 5, 9, 5, 8, 4, 3}
  • DINj {3, 4, 3, 3, 2, 7, 6}
  • APPX {4, 4, 6, 5, 3, 7, 6, 6, 4, 5}
  • APPXj {4, 6, 7, 4, 4, 5, 5}
  • APPY {4, 4, 6, 5, 3, 7, 6, 6, 6, 7}
  • APPYj {2, 5, 6, 3, 4, 7, 6}
  • 3. DIN {1, 3, 2, 7, 5, 9, 5, 8, 4, 3}
  • DINj {3, 4, 3, 3, 2, 7, 6}
  • APPX {4, 4, 6, 5, 3, 7, 6, 6, 4, 5}
  • APPXj {4, 6, 7, 4, 4, 5, 5}
  • APPY {4, 4, 6, 5, 3, 7, 6, 6, 6, 7}
  • APPYj {2, 5, 6, 3, 4, 7, 6}
  • 4. DIN {1, 3, 2, 7, 5, 9, 5, 8, 4, 3}
  • DINj {3, 4, 3, 3, 2, 7, 6}
  • APPX {4, 4, 6, 5, 3, 7, 6, 6, 4, 5}
  • APPXj {4, 6, 7, 4, 4, 5, 5}
  • APPY {4, 4, 6, 5, 3, 7, 6, 6, 6, 7}
  • APPYj {2, 5, 6, 3, 4, 7, 6}
  • 5. DIN {1, 3, 2, 7, 5, 9, 5, 8, 4, 3}
  • DINj {3, 4, 3, 3, 2, 7, 6}
  • APPX {4, 4, 6, 5, 3, 7, 6, 6, 4, 5}
  • APPXj {4, 6, 7, 4, 4, 5, 5}
  • APPY {4, 4, 6, 5, 3, 7, 6, 6, 6, 7}
  • APPYj {2, 5, 6, 3, 4, 7, 6}
  • 6. DIN {1, 3, 2, 7, 5, 9, 5, 8, 4, 3}
  • DINj {3, 4, 3, 3, 2, 7, 6}
  • APPX {4, 4, 6, 5, 3, 7, 6, 6, 4, 5}
  • APPXj {4, 6, 7, 4, 4, 5, 5}
  • APPY {4, 4, 6, 5, 3, 7, 6, 6, 6, 7}
  • APPYj {2, 5, 6, 3, 4, 7, 6}
  • 7. DIN {1, 3, 2, 7, 5, 9, 5, 8, 4, 3}
  • DINj {3, 4, 3, 3, 2, 7, 6}
  • APPX {4, 4, 6, 5, 3, 7, 6, 6, 4, 5}
  • APPXj {4, 6, 7, 4, 4, 5, 5}
  • APPY {4, 4, 6, 5, 3, 7, 6, 6, 6, 7}
  • APPYj {2, 5, 6, 3, 4, 7, 6}
  • Für jeden der 7 erwähnten Fälle wird der Vergleich wie folgt ausgeführt.
  • APPX[i], das das i-te Element der APPX-Anordnung ist, wird mit APPXj[i] verglichen und APPY[i] wird mit APPYj[i] verglichen. Der Vergleich wird nicht ausgeführt, wenn eines dieser Elemente nicht zur Verfügung steht. Anschließend können 3 unterschiedliche Fälle auftreten:
  • a) APPX[i] = APPXj[i] APPY[i] = APPYj[i]
  • In diesem Fall ist das Vergleichsergebnis Cijk (k = 1, ..., 7) durch das Element gegeben, das sich auf der Position (DIN[i], DINj[i]) der folgenden Matrix befindet:
  • (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
  • (0, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0)
  • (0, 1, 2, 1, 0, 1, 0, 0, 0, 0, 0)
  • (0, 0, 1, 2, 0, 0, 1, 0, 0, 0, 0)
  • (0, 1, 0, 0, 2, 1, 0, 1, 0, 0, 0)
  • (0, 0, 1, 0, 1, 2, 1, 0, 0, 1, 0)
  • (0, 0, 0, 1, 0, 1, 2, 0, 0, 0, 1)
  • (0, 0, 0, 0, 1, 0, 0, 2, 0, 1, 0)
  • (0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0)
  • (0, 0, 0, 0, 0, 1, 0, 1, 0, 2, 1)
  • (0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 2)
  • b) APPX[i]APPXj[i] APPY[i] = APPYj[i]
  • In diesem Fall ist das Vergleichsergebnis Cijk durch das Element gegeben, das sich auf der Position (DIN[i], DINj[i]) der folgenden Matrix befindet:
  • (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
  • (0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0)
  • (0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0)
  • (0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0)
  • (0, 1, 0, 0, 1, 0, 0, 1, 0, 0, O)
  • (0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0)
  • (0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1)
  • (0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0)
  • (0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0)
  • (0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0)
  • (0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1)
  • c) APPX[i] = APPXj[i] APPY[i]APPYj[i]
  • In diesem Fall ist das Vergleichsergebnis Cijk durch das Element gegeben, das sich auf der Position (DIN[i], DINj[i]) der folgenden Matrix befindet:
  • (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
  • (0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0)
  • (0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0)
  • (0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0)
  • (0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0)
  • (0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0)
  • (0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0)
  • (0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0)
  • (0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0)
  • (0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1)
  • (0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1)
  • d) APPX[i]APPXj[i] APPY[i]APPYj[i]
  • Das Ergebnis des Vergleichs ist Cijk = 0.
  • Das Gesamtergebnis der Vergleiche, die auf eine vorgegebene Verschiebungsposition bezogen sind, ist Cjk = &Sigma; Cijk, wobei die Summe über alle i-Werte ausgeführt werden muß, für die APPX(i) und APPXj(i) gleichzeitig definiert sind.
  • Schließlich ist die APP/DIN-Wertung gegeben durch:
  • Aj = max(Cijk) · 1000 / max(Nd, Ndj)
  • k = 1, ..., 7
  • Um die Rj-Wertung zu ermitteln, werden der REL-Code des eingegebenen Zeichens und der RELj-Code des j-ten Zeichens im Referenzsatz Wert für Wert verglichen. Wenn RELi und RELji (i = 1, ..., 12) den i-ten Wert des REL-Codes und des RELj-Codes repräsentieren, ist die Rj-Wertung gegeben durch:
  • Rj = aij
  • wobei
  • aij = 2, wenn RELi = RELij
  • aij = 1, wenn RELiRELj und RELi oder RELij ein "=" ist, sonst aij = 0.
  • Wenn z. B. RELi = "+=---==+++==" und RELji = "+++==--+=--=", ist Rj = 13.
  • Wenn Aj und Rj ermittelt worden sind, können sie eingesetzt werden, um Sdj zu berechnen.
  • Anschließend wird die Gesamtwertung Sj, die dem Vergleich mit dem j-ten Zeichen in der Referenzdatenbank zugewiesen ist, für jedes der Ncar Referenzzeichen ermittelt. Die Identifizierung des Referenzzeichens mit der kleinsten Wertung wird dem unbekannten eingegebenen Symbol zugewiesen.
  • Die Rolle, die die dynamischen Gewichtungsfaktoren Wo, Wr, Wp und das Strichgewicht SW spielen, ist sehr wichtig. Je größer Wo ist, desto wichtiger ist tatsächlich das Gewicht der optischen Informationen im Erkennungsvorgang. Wr und Wp beschreiben die relative Wichtigkeit der unterschiedlichen Komponenten der dynamischen Wertung Sdj. Ein weiterer wichtiger Parameter ist das Strichgewicht SW: je größer es ist, desto größer ist der Einfluß der Strichanzahl. Deswegen ist es in Abhängigkeit von der Anwendung möglich, die relative Wichtigkeit des optischen und des dynamischen Teils des Algorithmus zu gewichten, indem die Wo-, Wr-, Wp- und SW-Faktoren angepaßt werden. Wenn beispielsweise der Erkennungsalgorithmus für die Erkennung japanischer Zeichen verwendet wird, die im allgemeinen mit der selben Strichfolge geschrieben werden, wird der dynamische Beitrag sehr wichtig, und der Wo-Parameter sollte kleiner sein als derjenige, der für romanische Zeichen verwendet wird. Gleichfalls sollten SW, Wr und Wp größer sein. Für einige Anwendungen können diese Gewichtungsfaktoren vom Benutzer angepaßt werden. Simulationsergebnisse zeigen, daß für romanische Zeichen Wo = 24, Wr = 8, Wp = 4, SW = 15 und für japanische Zeichen Wo = 20, Wr = 8, Wp = 4, SW = 50 die besten Werte für die Gewichtungsfaktoren sind.
  • Der Lernvorgang, der verwendet werden kann, um dem Computer die Handschriftstile des Benutzers zu lehren, wird nachfolgend genauer erklärt. Wenn der Benutzer nicht wünscht, das System zu lehren, kann er auf die Erkennung vertrauen, die mit Hilfe eines Referenzsatzes ausgeführt wird, der permanent im System gespeichert ist, oder die mit Hilfe des Referenzsatzes eines anderen Benutzers ausgeführt wird.
  • Der Lernvorgang besteht aus dem Sammeln einer geeigneten Anzahl von Beispielen für jedes Symbol, von dem der Benutzer wünscht, daß es erkannt wird. Diese Symbole werden während des Erkennungsvorgangs den Referenzsatz bilden. Es stehen zwei unterschiedliche Lernmodi (oder Trainingsmodi) zur Verfügung. Der erste ist als der integrierte Lernmodus bekannt. Bei diesem Modus fordert das Programm den Benutzer auf, Beispiele der in einer Befehlsdatei aufgeführten Symbole zu schreiben. Diese Datei enthält eine vollständige Liste der zu erkennenden Symbole mit den entsprechenden Rahmenbegrenzungen. Die Symbolliste und die Rahmenbegrenzungen können vom Benutzer in Abhängigkeit von den Symbolen, die er zu erkennen wünscht und von seinem Handschriftstil geändert werden. Für jedes Symbol sind mehrere Werte der Rahmenbegrenzungen möglich. Um zu verhindern, daß in den Lernsatz fehlerhafte Zeichen eingesetzt werden, weist das Programm Zeichen zurück, die Rahmenpositionen aufweisen, die sich von denen unterscheiden, die in der Datei festgelegt sind.
  • Der zweite Modus ist der interaktive Lernmodus. Der Benutzer schreibt Symbole in der von ihm gewünschten Reihenfolge. Anschließend wird die Erkennung durchgeführt. Jedesmal dann, wenn die Erkennungseinrichtung versagt, werden die nicht erkannten Symbole in den Lernsatz (oder Referenzsatz) automatisch eingefügt. Außerdem werden Zeichen mit unzulässigen Rahmenpositionen zurückgewiesen.
  • Nachdem der integrierte Lernmodus durchgeführt wurde, kann die Erkennungsfähigkeit weiter verbessert werden, indem durch den interaktiven Lernmodus dem Lernsatz weitere Zeichen hinzugefügt werden.
  • Dieses HPCR-Projekt (Projekt zur Erkennung handschriftlicher Zeichen) kann hardwaremäßig realisiert werden. Um bei Bedarf zu Silicium überzugehen, ist die Anzahl der schwarzen Pixel konstant gewählt und ist gleich 16. Dies ist jedoch lediglich eine bevorzugten Wahl und soll nicht einschränkend sein.
  • Die Übertragung des obenstehend angeführten Systems auf Silicium würde mehrere Vorteile schaffen, wobei die am meisten relevanten sind:
  • Eine Erhöhung der Geschwindigkeit, was bedeuten würde, daß eine spezielle Hardware eine massive Parallelarchitektur nutzen könnte, um die zahlreichen Vergleichsoperationen auszuführen, die notwendig sind, um sowohl die Merkmalextraktion als auch den zugehörigen Speicher in viel kürzerer Zeit zu realisieren;
  • und
  • der Leistungsverbrauch würde minimiert werden und die spezielle Hardware könnte lediglich dann aktiviert werden, wenn eine Erkennung durchgeführt werden muß. Der Datenbankspeicher könnte auf dem Chip integriert werden. Auf diese Weise wird Leistung eingespart, die gebraucht wird, um die externen Busse anzusteuern; und
  • spezielle Chips können in kostengünstigen Verbraucherprodukten dort verwendet werden, wo leistungsstarke Mikrochips nach dem Stand der Technik nicht zur Verfügung stehen.
  • Es muß erwähnt werden, daß sich das System sehr gut für eine Siliciumrealisierung eignet. Tatsächlich sind die auszuführenden Operationen, obwohl sie zahlreich sind, eigentlich sehr einfach (im wesentlichen UND- und EXNOR-Operationen). Die massive Parallelarchitektur, die für die hohe Geschwindigkeit benötigt wird, könnte Dank der internen Struktur der DRAM selbst in einer relativ einfachen Weise um DRAM-Kerne herum (die für Datenbank-/Merkmalspeicherung verwendet werden) aufgebaut sein.
  • Während das System in bezug auf Zeichen beschrieben wurde, die einen Teil des einen oder anderen Alphabets bilden, sollte angemerkt werden, daß außerdem die Erkennung weiterer Symbole bestimmt werden kann. Beispielsweise können einfache geometri sche Symbole identifiziert werden, indem ihre Codes mit jenen der geometrischen Referenzsymbole verglichen werden. Einige Beispiele solcher Symbole enthalten Symbole von Halbleitereinrichtungen (d. h. Widerstände, Kondensatoren, Transistoren, Dioden, usw.), musikalische Symbole (Noten, Erhöhungszeichen, Verminderungszeichen, u. ä.), einfache Zeichnungen (z. B. Katzen, Hunde, Sonne, Mond und sehr viele andere). Wenn für ein gegebenes Symbol ein Referenzcode erzeugt worden ist, gibt es für den Umfang dieses Systems keine Einschränkung.

Claims (23)

1. Verfahren zum Erkennen eines handschriftlichen Zeichens, das die folgenden Schritte umfaßt:
Eingeben des Zeichens unter Verwendung eines Zeicheneingabemittels;
Digitalisieren des Zeichens;
Speichern des digitalisierten Zeichens;
Extrahieren topologischer Merkmale und vektorieller Merkmale des Zeichens;
Vergleichen der topologischen Merkmale und der vektoriellen Merkmale des Zeichens mit einem Satz topologischer Referenzmerkmale und vektorieller Referenzmerkmale, die in einem Speicher gespeichert sind, wobei jedes Merkmal des Satzes einem spezifischen Zeichen entspricht; und
Ausführen eines logischen Prozesses, um festzustellen, welches der Referenzmerkmale des Satzes den topologischen Merkmalen und den vektoriellen Merkmalen des digitalisierten Zeichens am ehesten entspricht, um dadurch das handschriftliche Zeichen zu erkennen,
dadurch gekennzeichnet, daß der Extraktionsschritt das Extrahieren topologischer Merkmale und vektorieller Merkmale des zu erkennenden Zeichens umfaßt, wobei das Extrahieren vektorieller Merkmale des Zeichens das Extrahieren eines Codes Nd enthält, der die Anzahl von Punkten des Zeichens angibt, wobei Nd + 1 die Anzahl der Punkte in einem Zeichenformat (STK) ist, das ein Strichformat repräsentiert, indem es das Zeichen als eine Folge von Strichen darstellt, wobei jeder der Striche als eine Reihe von Koordinaten zwischen einem Abstrich- und einem Aufstrich-Zustand definiert ist.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß das Extrahieren topologischer Merkmale und vektorieller Merkmale die Gewichtung der Merkmale entweder des topologischen oder des vektoriellen Aspekts stärker als die jeweils anderen unabhängig von der Art des Zeichens in einer vorbestimmten Weise umfaßt.
3. Verfahren nach Anspruch 1 oder Anspruch 2, dadurch gekennzeichnet, daß das Extrahieren vektorieller Merkmale das Extrahieren von Merkmalen des Zeichens in Form eines von mehreren Vektorcodes umfaßt, wobei jeder Vektorcode eines der vektoriellen Merkmale des Zeichens angibt.
4. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß das Digitalisieren des Zeichens das Konstruieren einer Matrix aus Einsen und Nullen und einer Matrix aus Punkten, die das Zeichen repräsentieren, umfaßt.
5. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß das Extrahieren des Vektorcodes ferner das Extrahieren eines Codes umfaßt, der die Position jedes Punkts der Matrix relativ zum vorhergehenden Punkt beschreibt.
6. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die vektoriellen Merkmale aus dynamischen Merkmalen, wie das Zeichen gebildet wird, bestimmt werden.
7. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß das Extrahieren des Vektorcodes ferner das Extrahieren eines Codes umfaßt, der eine X-Koordinate für jeden Punkt in bezug auf eine oder mehrere vorgegebene X- Koordinaten des Zeichens beschreibt.
8. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß das Extrahieren des Vektorcodes ferner das Extrahieren eines Codes umfaßt, der eine Y-Koordinate für jeden Punkt in bezug auf eine oder mehrere vorgegebene Y- Koordinaten des Zeichens beschreibt.
9. Verfahren nach einem der vorhergehenden Ansprüche, da durch gekennzeichnet, daß das Extrahieren des Vektorcodes ferner das Extrahieren eines Codes umfaßt, der die relativen Positionen der Extrempunkte des Zeichens repräsentiert.
10. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der logische Prozeß das Bewerten einer Wertung Sj für jedes der Referenzzeichen (Ncar) und das Identifizieren des Referenzzeichens mit der niedrigsten Wertung Sj als das Zeichen, das als das handschriftliche Zeichen eingegeben wurde, umfaßt, wobei Sj gegeben ist durch:
Sj = Wo · Soj - Sdj
wobei
Wo ein Gewichtungsfaktor ist;
Soj eine topologische Wertung ist; und
Sdj eine vektorielle Wertung ist.
11. Verfahren nach Anspruch 10, bei dem die Bewertung der Wertung Sj das Bewerten von Soj umfaßt, das gegeben ist durch:
Soj = SW · S - Stj + fi - fij + IW · Ni - Nij
wobei
S = Strichanzahl des eingegebenen Zeichens;
Stj = Strichanzahl des j-ten Referenzzeichens
fi = Antwort des i-ten Merkmals auf das eingegebene Zeichen
fij = Antwort des i-ten Merkmals auf das j-te Referenzzeichen
Ni = Anzahl der Schnittpunkte der i-ten Linie mit dem eingegebenen Zeichen
Nij = Anzahl der Schnittpunkte der i-ten Linie mit dem j-ten Referenzzeichen
SW = Strichgewicht
IW = Schnittpunktgewicht.
12. Verfahren nach Anspruch 10, bei dem die Bewertung der Wertung das Bewerten von Sdj umfaßt, das gegeben ist durch:
Sdj = Aj + Wr · Rj + Wp · Nd - Ndj
wobei
Aj die APP/DIN-Wertung ist;
Rj die REL-Wertung ist;
Wp und Wr Gewichtungsfaktoren sind;
Nd die (Anzahl von Zeichenpunkten - 1) des eingegebenen Zeichens ist; und
Ndj die (Anzahl von Zeichenpunkten - 1) des j-ten Referenzzeichens ist.
13. Vorrichtung zum Erkennen eines handschriftlichen Zeichens, mit:
einem Zeicheneingabemittel (16) zum Eingeben und Empfangen des Zeichens;
einem Digitalisierungsmittel (18) zum Digitalisieren des Zeichens;
einem Speichermittel (12) zum Speichern des digitalisierten Zeichens;
Merkmalextraktionsmitteln (12) zum Extrahieren topologischer Merkmale und vektorieller Merkmale, die das Zeichen repräsentieren;
einem Vergleichsmittel (12) zum Vergleichen der topologischen Merkmale und der vektoriellen Merkmale des Zeichens mit einem Satz topologischer Referenzmerkmale und vektorieller Referenzmerkmale, die in einem Speicher gespeichert sind, wobei jedes Merkmal des Satzes einem spezifischen Zeichen entspricht;
einem Logikmittel (12), das identifiziert, welches Referenzmerkmal des Satzes den topologischen Merkmalen des digitalisierten Zeichens am ehesten entspricht, wodurch das handschriftliche Zeichen erkannt wird,
gekennzeichnet durch Mittel (12) zum Extrahieren topologischer Merkmale und vektorieller Merkmale des zu erkennenden Zeichens, wobei das Extrahieren vektorieller Merkmale des Zeichens das Extrahieren eines Codes Nd umfaßt, der die Anzahl von Punkten des Zeichens angibt, wobei Nd + 1 die Anzahl von Punkten in einem Zeichenformat (STK) ist, das ein Strichformat repräsentiert, das das Zeichen als eine Folge von Strichen darstellt, wobei jeder der Striche als eine Reihe von Koordinaten zwischen einem Abstrich- und einem Aufstrich-Zu stand definiert ist.
14. Vorrichtung nach Anspruch 13, ferner mit einem Gewichtungsmittel, das dem Merkmalextraktionsmittel zugeordnet ist und jedem der topologischen Merkmale und der vektoriellen Merkmale in vorgegebener Weise, die von der Art des Zeichens abhängt, einen unterschiedlichen Gewichtungsfaktor verleihen kann.
15. Vorrichtung nach Anspruch 14, bei der für ein japanisches handschriftliches Zeichen der Gewichtungsfaktor für das vektorielle Merkmal größer als der Gewichtungsfaktor für das topologische Merkmal ist.
16. Vorrichtung nach Anspruch 14, bei der für ein romanisches handschriftliches Zeichen der Gewichtungsfaktor für das vektorielle Merkmal kleiner als der Gewichtungsfaktor für das topologische Merkmal ist.
17. Vorrichtung nach einem der Ansprüche 13 bis 16, bei der die Merkmalextraktionsmittel Codeerzeugungsmittel zum Erzeugen mehrerer Codes, die die vektoriellen Merkmale und die topologischen Merkmale angeben, umfassen.
18. Vorrichtung nach einem der Ansprüche 13 bis 17, bei der das Vergleichsmittel Codes des Referenzsatzes mit Codes für das eingegebene Zeichen vergleicht.
19. Vorrichtung nach einem der Ansprüche 13 bis 18, bei der das Logikmittel eine Wertung Sj für jedes Referenzzeichen (Nd) bewertet und das Referenzzeichen mit der niedrigsten Wertung als das dem handschriftlichen Zeichen entsprechende Zeichen identifiziert, wobei Sj gegeben ist durch:
Sj = Wo · Soj - Sdj
wobei
Wo ein Gewichtungsfaktor ist;
Soj eine topologische Wertung ist; und
Sdj eine vektorielle Wertung ist.
20. Vorrichtung nach Anspruch 19, bei der Soj gegeben ist durch:
Soj = SW · S - Stj + fi - fij + IW · Ni - Nij
wobei
S = Strichanzahl des eingegebenen Zeichens;
Stj = Strichanzahl des j-ten Referenzzeichens
fi = Antwort des i-ten Merkmals auf das eingegebene Zeichen
fij = Antwort des i-ten Merkmals auf das j-te Referenzzeichen
Ni = Anzahl der Schnittpunkte der i-ten Linie mit dem eingegebenen Zeichen
Nij = Anzahl der Schnittpunkte der i-ten Linie mit dem j-ten Referenzzeichen
SW = Strichgewicht
IW = Schnittpunktgewicht.
21. Vorrichtung nach Anspruch 19 oder Anspruch 20, bei der Sdj gegeben ist durch:
Sdj = Aj + Wr · Rj + Wp · Nd - Ndj
wobei
Aj die APP/DIN-Wertung ist;
Rj die REL-Wertung ist;
Wp und Wr Gewichtungsfaktoren sind;
Nd die (Anzahl von Zeichenpunkten - 1) des eingegebenen Zeichens ist; und
Ndj die (Anzahl von Zeichenpunkten - 1) des j-ten Referenzzeichens ist.
22. Vorrichtung nach einem der Ansprüche 13 bis 21, bei der zwischen der Vorrichtung und einem Computer eine Schnittstelle vorgesehen ist, derart, daß die Schnittstelle das identifizierte Zeichen zum Computer durchläßt, wodurch es einen Teil der Befehle für den Computer bildet.
23. Computergestütztes Produkt, das eine Vorrichtung nach einem der Ansprüche 13 bis 21 sowie eine Schnittstelle zwischen der Vorrichtung und dem Computer zum Durchlassen eines Befehls zum Computer von der Vorrichtung umfaßt.
DE69425009T 1993-03-22 1994-03-18 Zeichenerkennung Expired - Fee Related DE69425009T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT93RM000179A IT1265673B1 (it) 1993-03-22 1993-03-22 Apparecchio e procedimento per il riconoscimento di caratteri manoscritti.

Publications (2)

Publication Number Publication Date
DE69425009D1 DE69425009D1 (de) 2000-08-03
DE69425009T2 true DE69425009T2 (de) 2001-03-08

Family

ID=11401635

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69425009T Expired - Fee Related DE69425009T2 (de) 1993-03-22 1994-03-18 Zeichenerkennung

Country Status (7)

Country Link
US (1) US5757962A (de)
EP (1) EP0617381B1 (de)
JP (1) JPH06325212A (de)
KR (1) KR100308856B1 (de)
DE (1) DE69425009T2 (de)
IT (1) IT1265673B1 (de)
TW (1) TW321747B (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6144764A (en) * 1997-07-02 2000-11-07 Mitsui High-Tec, Inc. Method and apparatus for on-line handwritten input character recognition and recording medium for executing the method
AU9115498A (en) * 1997-08-27 1999-03-16 Cybermarche, Inc. A method and apparatus for handwriting capture, storage, and ind exing
US6640337B1 (en) * 1999-11-01 2003-10-28 Koninklijke Philips Electronics N.V. Digital television (DTV) including a smart electronic program guide (EPG) and operating methods therefor
US7295193B2 (en) * 1999-12-23 2007-11-13 Anoto Ab Written command
US7298903B2 (en) * 2001-06-28 2007-11-20 Microsoft Corporation Method and system for separating text and drawings in digital ink
US6721452B2 (en) 2001-09-12 2004-04-13 Auburn University System and method of handwritten character recognition
AUPR824301A0 (en) * 2001-10-15 2001-11-08 Silverbrook Research Pty. Ltd. Methods and systems (npw001)
US9285983B2 (en) * 2010-06-14 2016-03-15 Amx Llc Gesture recognition using neural networks
US20130011066A1 (en) * 2011-07-07 2013-01-10 Edward Balassanian System, Method, and Product for Handwriting Capture and Storage
CN104866117B (zh) * 2015-06-02 2017-07-28 北京信息科技大学 基于图形拓扑特征进行识别的纳西东巴象形文字输入方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4773098A (en) * 1980-05-27 1988-09-20 Texas Instruments Incorporated Method of optical character recognition
US4543660A (en) * 1982-04-15 1985-09-24 Tokyo Shibaura Denki Kabushiki Kaisha Pattern features extracting apparatus and method
JPS5975375A (ja) * 1982-10-21 1984-04-28 Sumitomo Electric Ind Ltd 文字認識装置
JPS63311583A (ja) * 1987-06-15 1988-12-20 Fuji Xerox Co Ltd 手書き文字認識システム
JPH01183793A (ja) * 1988-01-18 1989-07-21 Toshiba Corp 文字認識装置
US5058182A (en) * 1988-05-02 1991-10-15 The Research Foundation Of State Univ. Of New York Method and apparatus for handwritten character recognition
DE3822671A1 (de) * 1988-07-05 1990-01-11 Kromer Theodor Gmbh & Co Kg Verfahren und vorrichtung zum elektronischen vergleichen von linienzuegen
US5105468A (en) * 1991-04-03 1992-04-14 At&T Bell Laboratories Time delay neural network for printed and cursive handwritten character recognition

Also Published As

Publication number Publication date
IT1265673B1 (it) 1996-11-22
DE69425009D1 (de) 2000-08-03
ITRM930179A1 (it) 1994-09-22
KR100308856B1 (ko) 2001-12-28
ITRM930179A0 (it) 1993-03-22
KR940022338A (ko) 1994-10-20
US5757962A (en) 1998-05-26
EP0617381A2 (de) 1994-09-28
JPH06325212A (ja) 1994-11-25
TW321747B (de) 1997-12-01
EP0617381B1 (de) 2000-06-28
EP0617381A3 (de) 1995-02-15

Similar Documents

Publication Publication Date Title
DE69424196T2 (de) Automatische Zeichenerkennung mit Verwendung statischer und dynamischer Parameter
DE69526285T2 (de) Zeichenerkennung
DE69231309T2 (de) Methode und System zur Handschrifterkennung
DE69417105T2 (de) Vorrichtung und Verfahren zum Erkennen handgeschriebener Symbole
DE3485953T2 (de) Verfahren und anlage zur on-line-erkennung handgeschriebener muster.
DE60204005T2 (de) Verfahren und einrichtung zur erkennung eines handschriftlichen musters
DE3689416T2 (de) Mustermerkmalextraktion.
DE69517564T2 (de) Verfahren und Gerät zur Erzeugung einer hybriden Datenstruktur zur Anzeige eines Rasterbildes
DE3716787C2 (de)
DE69333431T2 (de) Verfahren zum Erkennen von handgeschriebenen Symbolen
DE69731418T2 (de) Such- und Wiederauffindungssystem für Dokumente mit Suchverfahren von teilweise passenden, benutzergezeichneten Anmerkungen
DE69325204T2 (de) Verfahren und Vorrichtung zum Weiterentwickeln einer Anfangssammlung von Handschriftprototypen zu einer anwender-spezifischen Sammlung
DE69525401T2 (de) Verfahren und Gerät zur Identifikation von Wörtern, die in einem portablen elektronischen Dokument beschrieben sind
DE60217299T2 (de) Holistisch-analytische erkennung von handgeschriebenem text
DE19705757C2 (de) Verfahren zum Erkennen eines Eingabemusters und zum Erzeugen einer Datenbank sowie Zeichenerkennungssystem
DE60312572T2 (de) Verfahren und Gerät zum Konvertieren digitaler Bilder von Handzeichnungen zur weiteren Verwendung in einem strukturierten Text/Graphik Editor.
DE69724755T2 (de) Auffinden von Titeln und Photos in abgetasteten Dokumentbildern
DE69230031T2 (de) Mustererkennung und -echtheitsprüfung, insbesondere für handgeschriebene Unterschriften
DE60225170T2 (de) Verfahren und vorrichtung zum dekodieren handschriftlicher zeichen
DE69230633T2 (de) Verfahren zur Ermittlung von Wortformen zum folgenden Vergleich
DE69421117T2 (de) Gerät zur Bildinformationsverarbeitung und -wiedergabe
DE69027519T2 (de) Handschrifterkennung mit Verwendung von jeweils zwischen zwei Klassen unterscheidenden Massnahmen
DE69425009T2 (de) Zeichenerkennung
EP2082357B1 (de) Vorrichtung, verfahren und computerprogramm zur erkennung von schriftzeichen in einem bild
EP0402868B1 (de) Verfahren zur Erkennung von vorab lokalisierten, in digitalen Grauwertbildern vorliegenden Zeichen, insbesondere zum Erkennen von in Metalloberflächen eingeschlagenen Zeichen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee