DE69227174T2 - Zeichenerkennung - Google Patents
ZeichenerkennungInfo
- Publication number
- DE69227174T2 DE69227174T2 DE69227174T DE69227174T DE69227174T2 DE 69227174 T2 DE69227174 T2 DE 69227174T2 DE 69227174 T DE69227174 T DE 69227174T DE 69227174 T DE69227174 T DE 69227174T DE 69227174 T2 DE69227174 T2 DE 69227174T2
- Authority
- DE
- Germany
- Prior art keywords
- character
- digitized
- frame
- feature
- topological features
- 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
Links
- 239000011159 matrix material Substances 0.000 claims description 55
- 230000015654 memory Effects 0.000 claims description 47
- 238000000034 method Methods 0.000 claims description 29
- 230000008569 process Effects 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 10
- 238000000605 extraction Methods 0.000 claims description 9
- 230000006870 function Effects 0.000 description 17
- 239000000872 buffer Substances 0.000 description 14
- 238000010586 diagram Methods 0.000 description 14
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 5
- 230000008901 benefit Effects 0.000 description 5
- 230000000295 complement effect Effects 0.000 description 5
- 238000007781 pre-processing Methods 0.000 description 5
- 229910052710 silicon Inorganic materials 0.000 description 5
- 239000010703 silicon Substances 0.000 description 5
- 239000003990 capacitor Substances 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 4
- 238000012549 training Methods 0.000 description 3
- WBMKMLWMIQUJDP-STHHAXOLSA-N (4R,4aS,7aR,12bS)-4a,9-dihydroxy-3-prop-2-ynyl-2,4,5,6,7a,13-hexahydro-1H-4,12-methanobenzofuro[3,2-e]isoquinolin-7-one hydrochloride Chemical compound Cl.Oc1ccc2C[C@H]3N(CC#C)CC[C@@]45[C@@H](Oc1c24)C(=O)CC[C@@]35O WBMKMLWMIQUJDP-STHHAXOLSA-N 0.000 description 2
- 101150110971 CIN7 gene Proteins 0.000 description 2
- 101100286980 Daucus carota INV2 gene Proteins 0.000 description 2
- 101150110298 INV1 gene Proteins 0.000 description 2
- 241001422033 Thestylus Species 0.000 description 2
- 101100397044 Xenopus laevis invs-a gene Proteins 0.000 description 2
- 101100397045 Xenopus laevis invs-b gene Proteins 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 210000001072 colon Anatomy 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/18—Extraction of features or characteristics of the image
- G06V30/1801—Detecting partial patterns, e.g. edges or contours, or configurations, e.g. loops, corners, strokes or intersections
- G06V30/18019—Detecting partial patterns, e.g. edges or contours, or configurations, e.g. loops, corners, strokes or intersections by matching or filtering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/19—Recognition using electronic means
- G06V30/19007—Matching; Proximity measures
- G06V30/19013—Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character 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 und insbesondere auf die Erkennung von Buchstaben, Zahlen, Zeichen und Satzzeichen.
- Bei ohne Tastatur auskommenden Eingabesystemen für Computersysteme können z. B. Befehle oder Daten durch den Anwender des Systems mittels einer stiftähnlichen Schreibspitze auf einem Eingabe-/Ausgabeschirm eingegeben werden. Ein Beispiel für einen solchen Schirm ist ein berührungsempfindlicher Monitor. Die Eingabebefehle können aus mit der Hand geschriebener Schreibschrift, Zahlen oder irgendeinem anderen mit der Hand geschriebenen Zeichen bestehen. Bei derartigen Systemen ist es entscheidend, daß der Computer die ihm vom Anwender gelieferten Eingaben "versteht" und daß er die eingegebenen Zeichen erkennt und liest.
- Es gibt eine Reihe von bekannten Systemen, die eingegebene Zeichen erkennen und lesen können. Ein solches System ist in der US 4,972,496 offenbart. Diese Patentschrift offenbart ein System mit einem transparenten Eingabeschirm, das Informationen über die Position entsprechend den Positionen, an denen eine Schreibspitze den Schirm berührt (d. h. Informationen über die Positionen der Zeichen), erzeugt und außerdem dem Anwender die eingegebenen Zeichen anzeigt. Das System umfaßt darüber hinaus einen Computer, der so programmiert ist, daß er die Informationen über die Positionen in "Striche" übersetzt, die durch die Schreibspitze erzeugt wurden. Die Striche werden analysiert, um den Anfangspunkt jedes Striches, das Ende jedes Striches, die Steigung des Striches, den Schwerpunkt des Striches, die Änderungsrate der Steigung, und, falls ein Zeichen mehr als einen Strich umfaßt, die Angabe, ob es der erste, zweite, etc. Strich gewesen ist, zu identifizieren. Nachdem der Strich analysiert worden ist, wird auf eine eine bestimmte Person charakterisierende Datenbank zugegriffen, die nur zu einem einzigen Anwender gehört, um das Zeichen zu identifizieren, das am dichtesten an dem analysierten Zeichen liegt.
- Dieses System ist relativ kompliziert einzurichten, da es wegen der durchzuführenden genauen Strichanalyse speziell darauf zugeschnittene Hardware verwendet. Außerdem gründet es sich auf eine eine bestimmte Person charakterisierende Datenbank für jeden Anwender. Das kann bedeuten, daß eine große Menge an Speicher verschwendet wird, wenn ein bestimmtes System von vielen Anwendern verwendet wird. Falls keine eine bestimmte Person charakterisierende Datenbank eingerichtet wird, kann die Erkennungsquote des Systems auf ein nicht akzeptierbares Niveau fallen. Da sich dieses System auf die Strichanalyse gründet, ist es wichtig, daß alle Anwender die Zeichen in einer vorherbestimmten herkömmlichen Weise schreiben. Die Erkennung wird sehr stark erschwert, wenn der Anwender einen Schreibstil verwendet, bei dem die Striche von der vorherbestimmten herkömmlichen Weise abweichen. Selbst wenn die in freiem Stil geschriebenen Zeichen den herkömmlichen Zeichen sehr ähnlich sehen, kann die Erkennung ungenau sein, da die Strichanalyse auf ein Zeichen hinweist, das von dem geschriebenen abweicht.
- JP-A-63186 offenbart ebenfalls eine Zeichenerkennung durch Vergleich topologischer Merkmale in einem Erkennungsnachschlagewerk.
- JP-A-02217981 bestimmt Positionen von Merkmalen in einem unbekannten Zeichen.
- US-A-4866646 erfordert das Eingeben von Zeichen in einzelne Rahmen.
- Eine Aufgabe der vorliegenden Erfindung besteht darin, ein Zeichenerkennungssystem zu schaffen, das wenigstens einige der Nachteile bekannter Systeme überwindet.
- Eine weitere Aufgabe der vorliegenden Erfindung besteht darin, ein einfaches Zeichenerkennungssystem zu schaffen, das selbst dann eine erhöhte Erkennungsquote aufweist, wenn keine eine bestimmte Person charakterisierende Datenbank verwendet wird.
- Die Erfindung ist in den Ansprüchen 1 und 12 definiert.
- Das System der Erfindung bietet die Vorteile, daß es eine zeitaufwendige und komplexe Strichanalyse des Zeichens überflüssig macht und daß eine Datenbank eine Erkennung von mehr als 95% der von einem Anwender insgesamt eingegebenen Zeichen gewährleistet.
- Nun wird beispielshalber auf die beigefügten Zeichnungen Bezug genommen, in denen:
- Fig. 1 ein Blockdiagramm eines Zeichenerkennungssystems gemäß einem Aspekt der vorliegenden Erfindung ist;
- Fig. 2 ein Beispiel eines auf dem Schirm des Systems angezeigten Programmspeichers ist;
- Fig. 3 ein Diagramm ist, das einige Beispiele für Zeichen mit Vorgaben für die Bedingungen in bezug auf den Rahmen zeigt;
- Fig. 4 ein Diagramm einer ASCII-Darstellung des Buchstabens A ist;
- Fig. 5 ein Diagramm einer Musterdarstellung des Buchstabens A ist;
- Fig. 6a-6h zusammen ein Diagramm zeigen, das einen Satz topologischer Merkmale darstellt, die zur Identifizierung eines beliebigen Zeichens verwendet werden;
- Fig. 7 und 8 Diagramme sind, die zeigen, wie das Zeichen erkannt wird;
- Fig. 9 ein Flußdiagramm ist, das das Verfahren zur Erkennung eines Satzzeichens darstellt;
- Fig. 10 ein Blockdiagramm einer Schaltung zum Speichern geometrischer Muster und zum Vergleichen mit dem zu klassifizierenden Muster ist;
- Fig. 11 ein Schaltplan einer Matrix aus Speicher- und Vergleichszellen für die Verwendung in der Schaltung der Fig. 10 ist;
- Fig. 12 eine andere Ausführungsform einer Matrix für die Verwendung in Verbindung mit der Schaltung der Fig. 10 ist;
- Fig. 13 ein Blockdiagramm einer weiteren Ausführungsform einer Klassifizierungsschaltungsanordnung für digitale Muster oder Anordnungen ist;
- Fig. 14 ein Schaltplan der Speicher- und Vergleichszellenmatrix für die Verwendung in der Schaltung der Fig. 13 ist;
- Fig. 15 ein Schaltplan eines Logikblocks für die Verwendung in der Schaltung der Fig. 13 ist; und
- Fig. 16 ein Schaltplan einer alternativen Speicher- und Vergleichszellenmatrix für die Verwendung in der Schaltung der Fig. 13 ist.
- In der Fig. 1 ist ein Zeichenerkennungssystem dargestellt, das in seiner Gesamtheit mit 10 bezeichnet ist. Das System umfaßt einen Mikrocomputer 12 mit einem Monitor 14. Der Computer ist mit einem berührungsempfindlichen Schirm verbunden, z. B. mit einem LCD-Digitalisiertablett 16. Es ist auch möglich, den Monitor durch einen berührungsempfindlichen Monitor zu ersetzen und auf den getrennten berührungsempfindlichen Schirm zu verzichten. Eine stiftähnliche Schreibspitze 18 kann auf dem berührungsempfindlichen Schirm verwendet werden, um Befehle, Daten oder dergl. in den Computer einzugeben. Ein Anwender kann Befehle direkt auf den Schirm schreiben. Für die genaueste Erkennung der Befehle sollten die Zeichen vorzugsweise in einen in seiner Gesamtheit mit 20 gekennzeichneten Rahmen eingegeben werden. Das vom Anwender zum Eingeben von Informationen verwendete berührungsempfindliche Schirmmenü ist in der Fig. 2 dargestellt. Die wichtigsten verfügbaren Auswahlpunkte sind in den Blöcken 22 dargestellt und können durch Berühren des geeigneten Kastens 24a-f mit dem Schreibstift aktiviert werden.
- Der Rahmen ist noch detaillierter in der Fig. 3 dargestellt. 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 als Hilfsmittel bei der Erkennung dieses Zeichens verwendet. So sollten z. B. "kurze" Kleinbuchstaben wie a, c, e, m, n, o, r, s, u, v, w, x und z in den mittleren Rahmen eingegeben werden und sie sollten vorzugsweise von einer solchen Größe sein, daß sie sich nicht in die anderen Rahmen hinein erstrecken. Größere Kleinbuchstaben wie b, d, f, h, i, k, l und t sollten in der Vertikalen größer sein als die kleineren Kleinbuchstaben und sollten in den oberen und mittleren Rahmen eingegeben werden. Kleinbuchstaben mit "Schwanz" wie g, j, p, q und y sollten vorzugsweise so eingegeben werden, daß die Schwänze sich nicht in den unteren Rahmen hinein erstrecken. Großbuchstaben und Zahlen sollten generell in den oberen und mittleren Rahmen irgendeiner bestimmten Spalte 32 eingegeben werden. Andere Zeichen, z. B. Satzzeichen, sollten in ihren normalen Positionen im Verhältnis zu den alphanumerischen Zeichen eingegeben werden.
- Indem es sich an die oben dargestellten Bedingungen in bezug auf den Rahmen hält, kann das System z. B. den Unterschied zwischen "c" und "C" erkennen. Es ist für den Bediener möglich, die Größe der Rahmen einzustellen oder den Standardrahmen zu verwenden. Ferner werden bei verschiedenen Alphabeten, z. B. japanischen Buchstaben, die Bedingungen in bezug auf den Rahmen so gewählt, daß die Erkennung dieser Zeichen erleichtert wird. Die genauen Einzelheiten, wie die Bedingungen in bezug auf den Rahmen bei der Erkennung helfen, werden unten genau beschrieben.
- Wenn die mit der Hand geschriebenen Daten in das LCD- Digitalisierertablett 16 eingegeben worden sind, werden die Ausgaben des Digitalisierers in den Computer in eine sog. Strichdarstellungsdatei (STK-Datei) geladen. Bei einer solchen Darstellung wird das Zeichen durch eine Reihe von Strichen beschrieben, von denen jeder aus einer Reihe von Koordinaten zwischen einem Ansetzen und einem Absetzen des Stifts besteht. Die Fig. 4 zeigt eine Übersetzung in eine ASCII-Darstellung des Inhalts einer Strichdatei in binärer Form des Buchstabens A. Die Ausgaben vom Digitalisierer werden dann "vorverarbeitet", bevor die Zeichenerkennung durchgeführt wird. Diese Vorverarbeitung umfaßt die Zeichenskalierung, Zentrierung, digitale Rauschfilterung und das Einpassen der digitalen Informationen in eine Pixelmatrix bestimmter Größe, z. B. in eine 16 · 16 Matrix.
- Nach der Vorverarbeitung wird das Zeichen einem Erkennungsprozeß unterzogen, der aus zwei Grundschritten besteht:
- Ermitteln der topologischen Eigenschaften (Merkmale) der mit der Hand geschriebenen eingegebenen Zeichen; und
- Erkennen durch "Fuzzy"-Vergleich mit einem Satz von Referenzzeichen, die in einem Speicher gespeichert sind.
- Die Erkennung der Handschrift wird an jedem einzelnen Zeichen durchgeführt, sobald es geschrieben worden ist. Dies erlaubt eine völlige Freiheit beim Schreiben der Zeichen gemäß dem Stil des Anwenders, d. h., daß es nicht erforderlich ist, die Zeichen als eine bestimmte Sequenz von Strichen einzugeben. Das ermöglicht Variationen bei der Richtung der Bewegung des Stifts, und es können Korrekturen durchgeführt werden, nachdem die Zeichen ursprünglich geschrieben worden sind. Die Erkennung basiert hauptsächlich auf den optischen Eigenschaften der Zeichen. Falls es Mehrdeutigkeiten, wie z. B. zwischen "S" und "5" gibt, wird die tatsächliche Anzahl der das Zeichen bildenden Striche verwendet, um die Mehrdeutigkeiten zu beseitigen, d. h. in diesem Falle ein Strich für das "S" und zwei oder mehr für die "5". Wie bereits vorher erwähnt, wird die Erkennung von Groß- und Kleinbuchstaben mit der gleichen Form (z. B. "c" und "C") dadurch verbessert, daß der Anwender in Feldern oder Rahmen schreibt.
- Dieses besondere System ist sowohl für Zeichen (character) als auch für beliebige andere auf einer Standardcomputertastatur vorhandene Zeichen optimiert. Jedoch läßt sich dieses Prinzip beispielsweise auch bei dem japanischen oder anderen Alphabeten anwenden. Das System kann in einem schreiberabhängigen Modus verwendet werden, bei dem es eine bessere Erkennungsquote liefert. Jedoch ist auch eine sehr gute Erkennung möglich, wenn es als schreiberunabhängiges System verwendet wird, d. h. ohne Training des Systems. Der Anwender kann seinen eigenen Referenzzeichensatz über einen anwenderfreundlichen Zeichenmodus eingeben. Wenn es in richtiger Weise trainiert worden ist, kann das System eine beliebige Handschrift akzeptieren. Ein Anwender kann das System z. B. so trainieren, daß es mehrere Zeichensätze eines bestimmten Buchstabens des Alphabets erkennt oder seine spezielle Art, einen bestimmten Buchstaben zu schreiben. Das System kann alternativ dazu auch in einem "nichttrainierten Modus" mit einem Standardzeichensatz verwendet werden.
- Der Vorverarbeitungsschritt wandelt anfangs das oben beschriebene STK-Format in ein Muster-(PTN)-Format einer normalisierten 16 · 16 Matrix um. Das PTN-Format ist in der Fig. 5 dargestellt. Der Rest der Zeichenvorverarbeitung wird folgendermaßen durchgeführt:
- Es tritt eine Punktinterpolation/-glättung auf, wenn der Digitalisierer Punkte mit einer konstanten Geschwindigkeit umwandelt, wobei der Abstand zwischen zwei aufeinanderfolgenden Punkten proportional zur Stiftgeschwindigkeit ist. Wenn die Schreibgeschwindigkeit klein ist, können einige Punkte sehr dicht aneinanderliegen, was zu Digitalisierungsstörungen führt. Andererseits können dann, wenn die Schreibgeschwindigkeit relativ groß ist, Punkte in einem großen Abstand zueinander liegen, was Löcher in den Strichen zurückläßt. Um diese Schwierigkeit zu überwinden, wird eine Interpolations-/ Glättungsroutine verwendet, um interpolierte Punkte einzufügen, wenn Punkte zu weit voneinander entfernt sind, und um Punkte zu entfernen, die zu dicht aneinanderliegen.
- Die Zeichengrenzen werden ausgewertet und die Punkte werden skaliert, um sie in eine normalisierte 16 · 16 Matrix einzupassen. Die X- und Y-Komponenten werden mit verschiedenen Skalierungsfaktoren skaliert, um die Matrix vollständig auszufüllen. Wenn das Verhältnis X-Größe/Y-Größe oder das Verhältnis Y-Größe/X-Größe über einem bestimmten Schwellenwert (typischerweise 4) liegt, wird lediglich die größere Komponente (X oder Y) des Zeichens skaliert. Dies dient dazu, eine falsche Ausdehnung "schlanker" Zeichen wie "I" oder "-" zu vermeiden; und
- Zeichenabbildung, zu dem das Zählen der Anzahl der Punkte, die zu jedem der 16 · 16 Pixel gehören, und das Berechnen ihres Durchschnittswerts umfaßt. Ein Schwellenwert (ungefähr 1/8 des Durchschnittswerts) wird verwendet, um festzustellen, ob ein bestimmtes Pixel der Matrix schwarz (1) oder weiß (0) ist. Wenn die Anzahl an Punkten in einem bestimmten Pixel über der Schwelle liegt, wird das entsprechende Bit auf 1 gesetzt. Ansonsten wird es auf 0 gesetzt. Zusätzliche Daten werden zur Zeichenmatrix hinzugefügt, um die Zeichenkennung zu spezifizieren (nur verfügbar, wenn das Zeichen aus dem Referenzsatz stammt), wobei zu diesen Daten die Anzahl der Striche des Zeichens und die Rahmenposition gehören. Diese Informationen werden während des Erkennungsprozesses verwendet, was unten be schrieben wird. Die Rahmenposition wird codiert, indem jedem der drei Schreibrahmen eine Bewertung zugeordnet wird: 1 für den oberen Rahmen 26, 2 für den mittleren 28 und 4 für den unteren 30. Zum Beispiel wird das Zeichen "g" normalerweise in dem mittleren Rahmen und dem unteren Rahmen geschrieben, so daß seine Rahmenzahl 2 + 4 = 6 ist. Die Rahmennummern werden ausgewertet, indem die Zeichenposition in dem Schreibfeld überprüft wird. Um geringe, durch den Anwender verursachte Rahmenfehler zu ignorieren, ist die aktive Fläche des oberen und des unteren Feldes tatsächlich etwas kleiner, als es durch die Rahmenlinien angezeigt wird. Das bedeutet, daß die tatsächliche Grenze zwischen dem mittleren Rahmen und dem oberen Rahmen ein wenig größer als dargestellt ist, und die Grenze zwischen dem mittleren Rahmen und dem unteren Rahmen ein wenig niedriger als dargestellt ist. Das Ausmaß dieser Verschiebungen kann durch den Anwender eingestellt werden.
- Das Ergebnis der Zeichenvorverarbeitungsstufe ist eine 16 · 16 Matrix in Musterform, wobei jedes Element der Matrix aus einem Pixel des Zeichenbildes besteht. Wie es in der Fig. 5 dargestellt ist, sind die zulässigen Werte für ein bestimmtes Element 0 (weißer Pixel) und 1 (schwarzer Pixel). Oben in der Matrix gibt es eine Kopfdatenzeile, die die folgenden Informationen enthält:
- a) Zeichenkennung (nur verfügbar, wenn das Zeichen zu dem Referenzsatz gehört);
- b) Anzahl der Striche; und
- c) Rahmenpositionierung.
- Der erste Schritt des Erkennungsprozesses besteht darin, aus der ursprünglichen 16 · 16 Matrix eine topologische Beschreibung oder einen Code des Zeichens zu gewinnen. Die Erkennung wird durchgeführt, indem der eingegebene Zeichencode mit den Codes der Referenzzeichen verglichen wird, die durch den Anwender während der Lernphase oder aus dem Standardsatz in dem Speicher gewonnen wurden. Der Code enthält im Grunde genommen drei Arten von Informationen:
- i) einen Merkmalsgewinnungscode;
- ii) einen Schnittcode; und
- iii) die Rahmenposition, die Anzahl an Strichen und die Zeichenkennung (letztere ist nur verfügbar, wenn das Zeichen zu dem Referenzsatz gehört).
- Die Merkmalsgewinnung ist der Schlüsselschritt des Erkennungsalgorithmusses. Sie führt eine getreue Beschreibung der Topologie des Zeichens durch, um die Erkennung sehr genau zu machen. Diese Operation wird unter Verwendung eines "Satzes topologischer Merkmale" durchgeführt. Er besteht aus den 99 in den Fig. 6a-6h dargestellten 16 · 16 Matrizen, die elementare geometrische Strukturen darstellen. Diese Matrizen wurden durch eine komplexe Optimierungsarbeit erzielt, die unter Verwendung mehrerer Charaktersätze von vielen verschiedenen Personen durchgeführt wurde.
- Der Merkmalsgewinnungsprozeß besteht im Grunde genommen darin, das Zeichen mit der i.ten (i = 1 ....,99) Merkmalsmatrix zu überlagern und dann die Anzahl gemeinsamer schwarzer Pixel zu zählen. Diese Operation kann leicht mittels einer bitweisen UND-Funktion implementiert werden. Das Zählergebnis X wird dann mit drei Schwellenwerten T1, T2 und T3 verglichen;
- wenn X < = T1, wird die Antwort fi des i.ten Merkmals gleich 0 gesetzt,
- wenn T1 < X < = T2 ist, wird die Antwort fi des i.ten Merkmals gleich 1 gesetzt,
- wenn T2 < X < = T3, wird die Antwort fi des i.ten Merkmals gleich 2 gesetzt,
- wenn X > = T3, wird die Antwort fi des i.ten Merkmals gleich 3 gesetzt.
- Dieses Verfahren ist in der Fig. 7 dargestellt. Daher ist das Ergebnis der beschriebenen Operation eine Matrix aus 99 ganzzahligen Werten, die als Merkmalsgewinnungscode bezeichnet wird und die Antwort des Merkmalssatzes auf das gegebene Zeichen darstellt. T1, T2 und T3 werden aufgrund von Simulationen des Systems gewählt und sind typischerweise auf T1 = 2, T2 = 3 und T3 = 6 eingestellt.
- Der Schnittcode enthält zusätzliche Informationen über die Topologie des Zeichens. Er besteht aus 32 ganzzahligen Werten Ni (i = 1, ...,32), von denen jeder angibt, wie oft das Zeichen die 16 horizontalen und die 16 vertikalen Linien der Matrix schneidet. Ein Beispiel dieser Operation ist in der Fig. 8 dargestellt.
- Das letzte Feld des Zeichencodes enthält die Rahmenposition, die Anzahl an Strichen des Zeichens und, falls das Zeichen zu dem Lernsatz gehört, seine durch den Anwender gelieferte Kennung.
- Somit wird nach dem Kodierungsermittlungsverfahren ein gegebenes Zeichen durch eine Matrix aus 133 Ganzzahlwerten dargestellt: 99 von der Merkmalsgewinnung, 32 von den Schnitten, 1 für die Anzahl der Striche und 1 für die Rahmenposition.
- Die Erkennung wird durchgeführt, indem der Code des unbekannten eingegebenen Zeichens Bit für Bit mit den codierten Zeichen in dem Referenzsatz mit der gleichen Rahmennummer verglichen wird. Zeichen, deren Rahmennummern sich von denjenigen der eingegebenen Zeichen unterscheiden, werden während des Vergleiches nicht beachtet. Dieses hat zwei wesentliche Vorteile. Erstens ermöglicht es die Erkennung von Zeichen mit der gleichen Form und unterschiedlicher Größe. Zweitens ist der Erkennungsprozeß dadurch schneller, weil er eine geringere Anzahl an Vergleichen umfaßt. Im Ergebnis ist die dem j.ten Vergleich (j = 1, ..., Ncar) zugeordnete Bewertung Sj gegeben durch:
- wobei:
- S = Anzahl der Striche des eingegebenen Zeichens,
- Sj = Anzahl der Striche 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 Schnitte zwischen der i-ten Linie und dem eingegebenen Zeichen,
- Nij = Anzahl der Schnitte zwischen der i-ten Linie und dem j-ten Referenzzeichen,
- SW = Strichgewichtung,
- IW = Schnittgewichtung.
- Diese Bewertung wird für jedes der Ncar Referenzzeichen ausgewertet. Die Kennung des Referenzzeichens mit der kleinsten Bewertung wird dem unbekannten eingegebenen Zeichen zugeordnet.
- Der Lernprozeß, der verwendet werden kann, um dem Computer den Handschriftstil des Anwenders beizubringen, ist unten genauer erläutert. Wenn der Anwender das System nicht trainieren will, kann er auf die Erkennung anhand eines permanent in dem System gespeicherten Referenzsatzes oder auf den Referenzsatz eines anderen Anwenders vertrauen.
- Der Lernprozeß besteht im Sammeln einer geeigneten Anzahl an Beispielen für jedes Zeichen, von dem der Anwender möchte, daß es erkannt wird. Diese Zeichen bilden während des Erkennungsverfahrens den Referenzsatz. Zwei verschiedene Lern- (oder Trainings-) Modi sind verfügbar. Der erste ist als eingebauter Lernmodus bekannt. In diesem Modus fordert das Programm den Anwender auf, Beispiele in einer Befehlsdatei aufgelisteter Zeichen zu schreiben. Diese Datei enthält eine komplette Liste der Zeichen, die erkannt werden sollen, zusammen mit den entsprechenden Bedingungen in bezug auf den Rahmen. Die Liste der Symbole und die Bedingungen in bezug auf den Rahmen können durch den Anwender je nach den Zeichen, deren Erkennung er/sie wünscht und je nach seinem/ihrem Handschriftstil verändert werden. Für jedes Zeichen sind mehrere Werte für die Bedingungen in bezug auf den Rahmen zugelassen. Um das Einfügen von schlechten Zeichen in den Lernsatz zu verhindern, weist das Programm Zeichen zurück, deren Rahmenpositionen von den in der Datei angegebenen abweichen.
- Der zweite Modus ist der interaktive Lernmodus. Der Anwender schreibt Symbole in der von ihm/ihr gewünschten Reihenfolge. Dann wird die Erkennung durchgeführt. Jedesmal wenn der Erkenner versagt, werden die nicht erkannten Zeichen automatisch in den Lern- (oder Referenz-) Satz eingefügt. Außerdem werden Zeichen mit nicht erlaubten Rahmenpositionen zurückgewiesen.
- Nachdem der eingebaute Lernmodus durchlaufen wurde, kann die Erkennungsfähigkeit dadurch weiter verbessert werden, daß durch den interaktiven Lernmodus andere Zeichen zum Lernsatz hinzugefügt werden.
- Neben der Erkennung von Zeichen kann das System außerdem Satzzeichen erkennen. Das System kann Zeichen wie Kommas, Doppelpunkte, Semikola, Punkte usw. erkennen. Für diesen Erkennungsprozeß ist keinerlei Lernprozeß erforderlich. So ist die Satzzeichenerkennung vollkommen unabhängig vom Anwender. Das Flußdiagramm des Verfahrens ist in der Fig. 9 dargestellt.
- Nach der Erfassung wird die Größe der jeden Strich des Zeichens enthaltenden Kästen gemessen. Wenn bei allen Kästen die x- und y-Bemessungen unterhalb der Satzzeichenschwelle (Pth) liegen, schaltet das Programm in den "Satzzeichenmodus". Sonst kehrt es in den oben beschriebenen "Zeichenmodus" zurück.
- Die Anzahl isolierter Teile des Zeichens wird ausgewertet. Diese Funktion besteht im Zählen der Anzahl der Kästen, die die geometrisch getrennten Zeichenstriche enthalten. Alle Kästen, die einander überlappen, werden zu einem einzigen Kasten zusammengefaßt.
- Der Zweck dieses Ansatzes besteht darin, zwischen einem Zeichen, das aus zwei sich überlappenden Punkten (2 Striche, jedoch 1 Kasten) besteht, das aber immer noch ein Punkt ist, und einem anderen zu unterscheiden, das aus zwei getrennten Punkten (2 Striche, 2 Kästen) besteht, das ein Komma darstellt. Wenn die Anzahl getrennter Teile des Zeichens berechnet worden ist, können drei verschiedene Fälle auftreten:
- a) Wenn mehr als zwei Kästen besetzt sind, verläßt das Programm den "Satzzeichenmodus" und kehrt zum "Zeichenmodus" zurück (kein Satzzeichen (; ,:.) besteht aus mehr als drei getrennten Teilen).
- b) Wenn lediglich ein Kasten besetzt ist, wird die Position des Kastens ausgewertet: wenn er in seiner Gesamtheit unterhalb der horizontalen Linie in der Mitte des mittleren Rahmens liegt, geht das Programm zur Komma/Punkt-Routine. Andernfalls verläßt es den "Satzzeichenmodus", da das Zeichen wahrscheinlich aus einem Kleinbuchstaben geringer Größe besteht. Die Komma/Punkt-Routine überprüft, ob das Satzzeichen aus einem Komma oder einem Punkt besteht. Sie verwendet zwei verschiedene Informationen: die Kastengröße und -position. Sie berechnet die folgende Bewertung:
- Bewertung = PW*(af[1]-fAC-FPB)+DeltaXch+DeltaYch-2*CTH
- wobei:
- PW ein Parameter ist, der Satzzeichengewichtung genannt wird und typischerweise auf den Wert 100 eingestellt wird,
- af[1] die Position der unteren Kante des Kastens ist,
- fAC die Position der Trennungslinie zwischen dem mittleren Rahmen und dem unteren Rahmen ist,
- FPB das Rahmensatzzeichenband ist, welches ein Schwellenwert ist,
- DeltaXch die X-Größe des Kastens ist,
- DeltaYch die Y-Größe des Kastens ist, und
- CTH die Komma/Punkt-Schwelle ist.
- Wenn die Bewertung > 0 ist, wird das Zeichen als Komma erkannt. Sonst wird es als Punkt erkannt.
- c) Wenn zwei getrennte Kästen besetzt sind, verläßt das Programm den "Satzzeichenmodus" und kehrt in den folgenden zwei Fällen in den Zeichenmodus zurück:
- - der obere Kasten überlappt den oberen Rahmen,
- - entweder die X- oder die Y-Größe des oberen Kastens überschreiten CTH.
- Sonst wird die oben beschriebene Komma/Punkt-Routine auf den unteren Kasten angewendet. Wenn die Bewertung > 0 ist, wird das Zeichen als Semikolon erkannt. Sonst wird es als Doppelpunkt erkannt.
- Dieses Projekt zur Erkennung mit der Hand geschriebener Zeichen (HPCR, englisch: "hand printed character recognition") kann hardwaremäßig implementiert werden. Um die Verschiebung auf die Siliziumebene zu erleichtern, wurde, falls notwendig, die Anzahl schwarzer Pixel konstant gleich 16 gewählt. Dieses ist jedoch nur eine bevorzugte Auswahl und nicht in einschränkendem Sinne auszulegen.
- Das Verschieben des oben beschriebenen Systems auf die Siliziumebene bietet mehrere Vorteile, wobei zu den wichtigsten die folgenden gehören:
- eine Erhöhung der Geschwindigkeit, was bedeutet, daß speziell darauf ausgelegte Hardware eine in hohem Maße parallele Architektur ausnutzen kann, um zahlreiche Vergleichsoperationen, die sowohl zur Implementierung der Merkmals gewinnung als auch des dazugehörigen Speichers erforderlich sind, in einer sehr viel geringeren Zeit durchzuführen.
- Der Stromverbrauch würde dadurch minimiert und die speziell darauf zugeschnittene Hardware könnte nur dann aktiviert werden, wenn die Erkennung durchgeführt werden soll. Datenbankspeicher könnten auf Chips integriert werden, was den zum Treiben externer Busse notwendigen Stromverbrauch reduzieren könnte.
- Speziell darauf zugeschnittene Chips können in billigen Verbraucherprodukten verwendet werden, für die leistungsfähige und zum Stand der Technik gehörende Mikrochips nicht verfügbar sind.
- Es muß erwähnt werden, daß sich das System sehr gut für die Siliziumimplementierung eignet. In der Tat sind die durchzuführenden Operationen, obwohl sie zahlreich sind, selbst sehr einfach (hauptsächlich UND- und ÄQUIVALENZ-Verknüpfungen). Die für hohe Geschwindigkeit erforderliche, in hohem Maße parallele Architektur kann um DRAM-Speicherkerne (die zur Datenbank/Merkmalsspeicherung verwendet werden) aufgrund der inneren Struktur des DRAM selbst in einer relativ einfachen Weise hergestellt werden.
- Wie es bereits vorher erwähnt wurde, gibt es zahlreiche Weisen, wie das System in Form von Hardware implementiert werden kann. Es werden unten vier Hauptausführungsformen beschrieben. Die ersten beiden betreffen eine Schaltung zum Gewinnen geometrischer oder topologischer Merkmale aus den digitalen, die Zeichen repräsentierenden Mustern, während die beiden zweiten Ausführungsformen die Klassifizierung der digitalen Muster als Ergebnis des Vergleichs derselben mit den Standard- oder Referenzmustern betreffen.
- Unter Bezug auf die Fig. 10 ist zu erkennen, daß die Schaltungsanordnung gemäß der ersten derartigen Ausführungsform einen Eingabedienst- oder Pufferspeicher 100 umfaßt, der in effizienter Weise als ein K-bit aufweisendes serielles Register ausgebildet ist, das einen seriellen Eingabekanal und einen parallelen Ausgabekanal mit K-Bits, DL1, DL2, ..., DLK, besitzt, dem sowohl die N elementaren geometrischen Muster als auch das zu klassifizierende Muster zugeführt werden.
- Die K-Ausgänge des Eingabepuffers sind mit den Spalteneingängen einer Matrix aus Speicher- und Vergleichszellen verbunden, die aus N Reihen und K Spalten aufgebaut ist, z. B. als ein RAM 102.
- Jede Speicher- und Vergleichszelle ist so ausgebildet, daß sie ein digitales Datenelement speichern kann, ein eingegebenes Datenelement mit dem darin gespeicherten Datenelement vergleichen kann und einen Strom erzeugen kann, wenn beide Datenelemente eins sind.
- Die Zeilenadressierung dieser Matrix mit N Zeilen und K Spalten an Speicher- und Vergleichszellen wird mittels einer Decodierschaltungsanordnung 104 herkömmlichen Aufbaus und herkömmlicher Arbeitsweise durchgeführt. Sie empfängt eine Adresse, die aus einem digitalen erfaßten Wort mit N Bits besteht und ist mit der Matrix aus Speicher- und Vergleichszellen mittels der N Leitungen (Wortleitungen) WL1, WL2, ..., WLN verbunden.
- Die Matrix aus Speicher- und Vergleichszellen besitzt eine Ausgangsleitung für jede Zeile und daher N Ausgabeleitungen (Bitleitungen) BL1, BL2, ...., BLN, über die es mit einem Ausgabedienst- oder Pufferspeicher 106 verbunden ist, der N parallele Eingänge und einen seriellen Ausgang besitzt, von dem das umcodierte Muster erhalten wird.
- Schließlich ist eine Steuerlogik 108 vorgesehen, die sowohl den Decodierer als auch die Eingabe- und die Ausgabepuffer steuert.
- Bevor die schaltungsmäßige Implementierung des die Speicher- und Vergleichsmatrix enthaltenden Blocks untersucht wird, wird die Arbeitsweise im ganzen erklärt.
- Es werde angenommen, daß ein unbekanntes Zeichen oder ein Standardzeichen in geometrische Ausdrücke als Funktion N elementarer Muster umcodiert werden soll, die ebensoviele elementare geometrische Merkmale repräsentieren. Wenn jede Matrix "entfaltet" wird, ist zu erkennen, daß jedes Zeichen oder geometrische Merkmal durch ein aus einer Zeichenkette mit K Bits bestehendes Muster repräsentiert wird.
- Ein für das Umcodieren durchzuführender vorbereitender Schritt lädt sämtliche interessierenden elementaren geometrischen Muster in die Speicher- und Vergleichszellenmatrix.
- So wird das aus K Bits bestehende elementare geometrische Muster seriell in die K Stellen des den Eingabepuffer umfassenden Registers geladen. Diese Übertragung wird durch die Steuerlogik gesteuert.
- Wenn sämtliche elementaren geometrischen Muster in die Matrix geladen worden sind, ist die Schaltung bereit, ein Standardmuster oder ein unbekanntes Muster als Funktion derselben umzucodieren.
- Das umzucodierende Muster wird so seriell in das Register geladen und dann in identischer Weise und gleichzeitig zu allen Zeilen der Speicher- und Vergleichszellenmatrix übertragen. Diese Zellen, die schon ein Bit der elementaren geometrischen Muster enthalten, sind so eingerichtet, daß sie die zwei Bits vergleichen und einen Strom erzeugen, wenn, und nur dann, wenn zwei Bits einen logischen "1"-Wert aufweisen. Mit anderen Worten wird bei jeder Zeile das umzucodierende Muster mit einem elementaren geometrischen Muster verglichen und für jedes Paar mit homologen "1"-Werten ein Strom erzeugt.
- Da sämtliche Zellen einer Zeile mit einer einzigen Ausgangsleitung (Bitleitung) BL1, BL2, ...., BLN verbunden sind und da sich die Ströme so addieren, wird die Bitleitung jeder Zeile einen Strom führen, der proportional zur Anzahl koinzidenter "1"-Werte ist, die zwischen den Bits des umzucodierenden Musters und den homologen Bits des darin gespeicherten elementaren geometrischen Musters gefunden werden können. Sämtliche N Ausgabeleitungen BL1, BL2, ..., BLN sind über eine (in der Fig. 10 nicht dargestellte) Schwellendiskriminatorschaltung und eine (in der Fig. 10 nicht dargestellte) Schmitt-Trigger-Schaltung verbunden, so daß sie ein "0"-Signal ausgeben, wenn der Zeilenstrom unter einem vorherbestimmten Schwellenwert liegt, und ein "1"-Signal ausgeben, wenn er über einem vorherbestimmten Schwellenwert liegt. Sämtliche Ausgaben werden parallel in einen Ausgabepufferspeicher geladen, der in serieller Weise ein digitales Muster aus N Bits liefert, das die Umcodierung in geometrische Ausdrücke repräsentiert.
- Wie oben erwähnt, bestehen die Eingabe- und Ausgabedienst- oder Pufferspeicher, der für die Zeilenadressierung der Speicher- und Vergleichszellenmatrix verwendete Decodierer, und auch die die Operation der gesamten Schaltung steuernde und synchronisierende Steuerlogik aus herkömmlich arbeitenden Komponenten, so daß nur die Schaltungsanordnung der Matrix nun genauer erklärt werden wird.
- Die oben erwähnte Matrix aus Speicher- und Vergleichszellen ist insbesondere in der Fig. 11 dargestellt. Sie umfaßt N · K Zellen, die als N Zeilen und K Spalten angeordnet sind.
- Sämtliche Zellen einer Spalte empfangen gleichzeitig die zu speichernden oder die zu vergleichenden Muster über die Datenleitungen DL1, DL2, ..., DLK von den entsprechenden Stellen der Eingaberegister und sämtliche Zellen einer Zeile empfangen die Adreßinformation gleichzeitig von dem Adressendecodiererblock über die Adressenleitungen (Wortleitungen) WL1, WL2, ..., WLN und ihre Ausgänge sind über die Ausgangsleitungen (Bitleitungen) BL1, BL2, ... bzw. BLN mit dem Ausgabepuffer verbunden. Ferner ist eine gemeinsame Vorspannung Vbias, deren Funktion im folgenden deutlich werden wird, mit allen Zellen der Matrix verbunden.
- Jede Zelle kann aus zwei Abschnitten bestehend betrachtet werden, die die Funktion des Speicherns eines Bits eines elementaren geometrischen Musters bzw. die Funktion des Vergleichens des darin gespeicherten Bits mit dem homologen Bit des in geometrische Ausdrücke umzucodierenden Musters und die Erzeugung eines Stroms, wenn die Werte der beiden verglichenen Bits 1 sind, durchführen.
- Der Speicherabschnitt umfaßt einen MOS-Transistor M8, der als Freigabe- oder Adressierungstransistor betrachtet werden kann, wobei sein Gate-Bereich mit der Adreßleitung verbunden ist, z. B. mit der Leitung WL1, bei den Zellen der ersten Zeile, und wobei der Transistor zwischen die Datenleitung (oder Spaltenleitung), z. B. DL1, für die Zellen der ersten Spalte, und einen Knoten Q geschaltet ist, mit dem zwei Inverter INV1 und INV2 verbunden sind, und zwar Rücken an Rücken geschaltet, um eine Speicherzelle zu bilden.
- In bezug auf die Arbeitsweise läßt sich leicht erkennen, daß dann, wenn ein Bit in der Speicherzelle INV1-INV2, z. B. ein Bit "1", gespeichert werden soll, dieses durch die Datenleitung DL1 ermöglicht wird, vorausgesetzt, daß die interessierende Zelle durch die Adreßleitung WL1 adressiert wird, wodurch der Transistor M8 durchgeschaltet wird. Der Transistor M8 wirkt daher als Schalter. Die gespeicherten Daten bleiben am Knoten Q verfügbar.
- Zusammenfassend läßt sich sagen, daß dann, wenn ein bestimmtes elementares geometrisches Muster in einer Zeile i der Matrix gespeichert werden soll, es, wie es bereits erwähnt worden ist, zuerst seriell in dem Eingabeschieberegister gespeichert wird und dann parallel in die Zellen der Zeile i der Matrix übertragen wird, indem einfach die Zellen einer solchen Zeile durch die Leitung WL1 adressiert werden, während die Zellen sämtlicher restlicher Zeilen deaktiviert sind.
- Was den Vergleichsabschnitt angeht, so umfaßt jede Zelle einen MOS-Transistor M7, der als ein Stromerzeuger wirkt, an Masse angeschlossen ist, wobei sein Gate-Bereich durch die Spannung Vbias gesteuert wird.
- Zwei weitere MOS-Transistoren M1 und M2, deren Gate-Bereiche mit der Datenleitung DL1 bzw. dem Knoten Q verbunden sind, sind mit dem Transistor M7 in Reihe geschaltet.
- In bezug auf die Arbeitsweise läßt sich beobachten, daß es für einen zwischen dem in der Speicherzelle INV1-INV2 gespeicherten und am Knoten Q verfügbaren Datenelement und dem auf der Datenleitung DL1 verfügbaren Datenelement herzustellenden Vergleich ausreicht, den Transistor M7 mittels der Vorspannung Vbias durchzuschalten. Es ist zu erkennen, daß nur dann, wenn die am Knoten Q und an der Datenleitung DL1 verfügbaren Datenelemente beide "1" sind, die Transistoren M1 und M2 beide durchgeschaltet sein werden und der Transistor M7 in der Lage sein wird, einen Ausgangsstrom Iout über die Ausgangsleitung BL1 zu liefern. Es gibt keine andere Möglichkeit, einen Strom Iout zu liefern.
- Da jede Zellenreihe ein elementares geometrisches Muster enthält und für jede Zellenreihe ein Vergleich zwischen einem umzucodierenden Muster und dem darin gespeicherten elementaren geometrischen Muster durchgeführt wird und da sämtliche Zellen einer Zeile i mit derselben Ausgangsleitung BL1 verbunden sind, wird der durch die Leitung BL1 gelieferte Ausgangsstrom der Summe der Ströme entsprechen, die durch sämtliche Zellen zu der Leitung geliefert werden, bei denen sowohl das gespeicherte Datenelement als auch das damit verglichene Datenelement den logischen Wert "1" annehmen.
- Natürlich wird es während des Schritts des Ladens der elementaren geometrischen Muster günstig sein, die Spannung Vbias auf Null zurückzusetzen, wodurch der Stromerzeuger Transistor M7 gesperrt wird. So wird eine unnötige Stromaufnahme vermieden.
- Den Abschluß jeder Ausgangsleitung BL1 bilden zwei P-MOS- Transistoren M3 und M4, die in einer Stromspiegelanordnung geschaltet sind, um so zum Ausgangsknoten N1 einen Strom zu liefern, der proportional zum Strom Iout ist. Außerdem ist eine Schmitt-Trigger-Schaltung 120 mit dem Knoten N1 verbunden. Zwei weitere MOS-Transistoren M5 und M6 sind ebenfalls mit dem Knoten N1 verbunden (wobei der Transistor M6 ein allen Zeilen gemeinsames Element ist) und sie sind als Stromspiegel angeordnet, so daß ein vorherbestimmter Referenzstrom Iref durch den Ausgangsknoten NI geliefert wird, wodurch ein Schwellenwert gebildet wird. Wenn der Strom Iout über diesem Schwellenwert liegt, wird der Knoten NI in einem logischen H- Zustand sein und die Schmitt-Trigger-Schaltung wird geschaltet werden.
- Wenn der Strom Iout unterhalb dieses Schwellenwertes liegt, wird der Knoten N1 in einem logischen L-Zustand sein und die Schmitt-Trigger-Schaltungen werden daher eine "1" in Hinsicht auf alle Zeilen aufweisen, wenn die Anzahl an Zellen, bei denen sowohl das gespeicherte Datenelement als auch das verglichene Datenelement eine "1" aufweisen, über einer experimentell vorherbestimmten minimalen Anzahl liegen.
- Die Ausgänge der Schmitt-Trigger-Schaltungen sind mit den parallelen Eingängen des Ausgabedienst- oder Pufferspeichers verbunden, dessen serielle Ausgaben die in geometrische Ausdrücke erfolgende Umcodierung des Eingangsmusters als Funktion der in der Matrix der Speicher- und Vergleichszellen gespeicherten elementaren geometrischen Muster darstellt.
- In der Fig. 12 ist eine andere mögliche Implementierung der Speicher- und Vergleichszellenmatrix dargestellt. Diese zweite Ausführungsform ist für eine Anwendung entworfen worden, bei der die vorher gespeicherten Inhalte der Zellen nicht verändert zu werden brauchen und sie ist mittels ROM- Speicherzellen implementiert worden. Der Hauptvorteil dieses Ansatzes liegt darin, daß bei einer ROM-Zelle weniger Silizium- Wafer-Fläche erforderlich ist als bei einer statischen oder dynamischen RAM-Zelle. Das Blockdiagramm der Vorrichtung ist unverändert, außer was den Adressendecodierer betrifft: Tatsächlich kann dieser in diesem Falle weggelassen werden.
- Das Laden der elementaren geometrischen Muster wird lediglich einmal während der gesamten Lebensdauer der Vorrichtung durchgeführt, indem geeignete programmierbare Kontakte des PCs der Fig. 4 angeschlossen werden, d. h. daß ein Referenzsatz in den Speicher vorher einprogrammiert wird und das System nicht in der Lage ist, neue Zeichen zu "lernen".
- Je nach dem, ob eine logische "1" oder eine logische "0" in die Speicherzelle geladen werden soll, ist der Gate-Bereich des Transistors M2 an Masse angeschlossen oder mit der Versorgungsspannung Vcc verbunden.
- Eine solche Ausführungsform arbeitet genauso wie die erste Ausführungsform: Genau gesagt wird nur dann ein Strom zur Leitung BL1 (durch den Transistor M7) geliefert, wenn der Gate- Bereich des Transistors M2 mit der Spannung Vcc verbunden ist und wenn der logische Wert des mit dem Gate-Bereich des Transistors M1 verbundenen Datenelements "1" ist. Die durchgeführte logische Operation ist offensichtlich bei beiden Ausführungsformen eine UND-Operation.
- Die dritte Ausführungsform ist vom Aufbau her in gewisser Hinsicht der ersten Ausführungsform ähnlich. Die Unterschiede werden unten genauer beschrieben. Unter Bezug auf die Fig. 13 ist zu erkennen, daß die Schaltungsanordnung einen Zwischenspeicher oder Eingabepuffer 300 umfaßt, der tatsächlich in Form eines seriellen Registers mit K Bits implementiert werden kann, das einen seriellen Eingang und einen parallelen Ausgang mit K Bits aufweist. Dieser Eingabepuffer ist außerdem in der Lage, die oben erwähnten parallelen K Ausgaben nicht nur in ihrer wirklichen Form, sondern auch in ihrer inversen oder komplementären Form, nämlich als DL1, DL1, DL2, DL2, ... DLK, DLK, zu liefern.
- Die K Ausgaben des Eingabepuffers werden zusammen mit ihren komplementären Formen an die Spalteneingänge einer Gruppe oder Matrix aus Speicher- und Vergleichszellen angelegt, welche aus N Zeilen und K Spalten aufgebaut ist und z. B. aus einem RAM 302 besteht. Jede Spalte empfängt sowohl die echten als auch die komplementären Datenelemente, wie es unten genauer beschrieben wird.
- Jede Speicher- und Vergleichszelle der Matrix ist so ausgebildet, daß sie ein digitales Datenelement speichern, das eingegebene Datenelement mit dem bereits darin gespeicherten Datenelement vergleichen und dann einen Strom erzeugen kann, wenn eine Koinzidenz zwischen dem gespeicherten Datenelement und dem eingegebenen Datenelement besteht.
- Die Zeilen der aus N Zeilen und K Spalten bestehenden Speicher- und Vergleichszellenmatrix werden mittels einer geeigneten Decodiererschaltungsanordnung 304 adressiert, die mit der Speicher- und Vergleichszellenmatrix mittels N Leitungen (Wortleitungen) WL1, WL2, ..., WLN verbunden ist.
- Die Speicher- und Vergleichszellenmatrix in dem RAM 302 besitzt einen Ausgang für jede Zeile, nämlich N Ausgangsleitungen (Bitleitungen) BL1, BL2, ..., BLN, an die ein Logikblock 306 angeschlossen ist, wobei dieser so eingerichtet ist, daß er z. B. eine FUZZY-ODER-Funktion ausführen kann.
- Eine solche Funktion besteht darin, unter den N Zeilenströmen denjenigen auszuwählen, der den größten Strom aufweist. Vom praktischen Gesichtspunkt aus gesehen besteht, wenn eine Analog/Digital-Wandlung durchgeführt wird, eine solche Funktion darin, N analoge Stromeingangssignale zu empfangen und eine digitale Kette aus N Ausgabebits zu erzeugen, die bis auf ein Element ausschließlich aus Nullen und aus einer Eins bestehen, die der Eingangsleitung entspricht, die durch den größten Strom getrieben wird.
- Schließlich gibt es einen Codierer 308, der N Eingänge und zwei N Protokollausgänge besitzt, und die Ausgabe der Ausgabekette von dem Logikblock codiert und klassifiziert.
- Wird wiederum das Anwendungsbeispiel der Zeichenerkennung (im englischen: "character acknowledgement" oder "character recognition") betrachtet, so wird angenommen, daß ein unbekanntes Zeichen durch Vergleich desselben mit einem Satz von Beispiel- oder Standardmustern desselben Zeichens, wobei jedes in Form einer Matrix aus X Zeilen und Y Spalten ausgedrückt wird, was insgesamt K Bits ergibt, erkannt und klassifiziert wird. Wenn jede Matrix "entfaltet" wird, ist zu erkennen, daß jedes Zeichen durch eine Anordnung oder ein Muster ausgedrückt wird, das aus einer Kette mit K Bits besteht.
- Der für diesen Vergleich durchzuführende vorbereitende Schritt ist das Laden sämtlicher Probemuster in die Speicher- und Vergleichszellenmatrix, unabhängig davon, ob es sich um Standardmuster oder benutzerabhängige Muster handelt. Um zu diesem Ergebnis zu kommen, wird jedes aus K Bits bestehende Probenmuster seriell in die K Stellen des Registers geladen, das als Eingabepuffer fungiert. Die Logikschaltungsanordnung 310 steuert diesen Schritt des Ladens. Wenn dieser Ladeschritt zum Laden der Probenmuster in das Register abgeschlossen ist, bewirkt die Steuerlogikschaltungsanordnung einen parallelen Ladeschritt, durch den die gesamte aus K Bits bestehende Kette von dem Register in eine Speicher- und Vergleichszellenzeile der Matrix, mit einem Bit für jede Zelle, übertragen wird. Die Zeilenadressierungsfunktion wird mittels des Decodiererblocks und wieder durch die Steuerung der Steuerlogikschaltungsanordnung bewirkt.
- Wenn alle Probenmuster in die Matrix geladen worden sind, ist die Schaltung bereit, ein neues unbekanntes und zu erkennendes Muster zu klassifizieren. Dieses unbekannte Muster wird dafür in serieller Weise in das Register geladen und dann in identischer Form und gleichzeitig zusammen mit seiner inversen oder komplementären Form in sämtliche Zeilen der Speicher- und Vergleichszellenmatrix übertragen. Diese Zellen, von denen jede bereits ein Bit des Probenmusters enthält, sind so ausgebildet, daß sie das gemäß der Spaltenreihenfolge zu ihnen ge hörende Bit, d. h. Bit 1 für Spalte 1, usw., mit dem darin gespeicherten Bit vergleichen und einen Strom dann und nur dann erzeugen, wenn zwischen den zwei Bits Koinzidenz auftritt. Wenn keine Koinzidenz auftritt, wird kein Strom erzeugt.
- Mit anderen Worten wird bei jeder Zeile das unbekannte Muster mit einem Probenmuster verglichen und ein Strom bei jeder Koinzidenz homologer Bits erzeugt. Da sämtliche Zellen einer Zeile mit einer einzigen Ausgangsleitung (Bitleitung) BL 1, BL2, ..., BLN verbunden sind und da sich die in den einzelnen Zellen erzeugten Ströme addieren, wird die Bitleitung jeder Zeile einen Strom führen, der proportional zur Anzahl der Koinzidenzen ist, die in der Zeile zwischen den Bits des unbekannten zu klassifizierenden Musters und den homologen Bits des darin gespeicherten Probenmusters auftreten.
- Da der Vergleich in paralleler Weise für jede einzelne Zeile und gleichzeitig in sämtlichen Zeilen durchgeführt wird, werden die N Ausgangsleitungen (Bitleitungen) verschiedene Ströme führen, wobei die Stärken dieser Ströme eine echte Repräsentation der Anzahl an Koinzidenzen zwischen den Bits des unbekannten Musters und den Bits des jeweiligen Probenmusters sind. Daher sind sie eine Anzeige für das Ähnlichkeitsverhältnis zwischen dem unbekannten Muster und dem in jeder einzelnen Zeile gespeicherten Probenmuster.
- Die N Leitungen BL1, BL2, ..., BLN sind mit dem FUZZY- oder Logikblock verbunden, der so N analoge Eingangssignale empfängt und ein digitales Ausgangssignal liefert, das aus einer Zeichenkette mit N Bits besteht, die bis auf ein Bit 1, das der Bitleitung mit dem größten Strom entspricht, alle 0 sind.
- Der abschließende Schritt des Verfahrens ist das Codieren des aus N Bits bestehenden digitalen Ausgangssignals von dem Logikblock in einen aus zwei N Protokollbits bestehenden Code, der dann das unbekannte Muster auf der Basis der bekannten Standardprobenmuster identifiziert und klassifiziert.
- Die Speicher- und Vergleichszellenmatrix ist teilweise in der Fig. 14 dargestellt.
- Sie umfaßt N · K Zellen, die in Form von N Zeilen und K Spalten angeordnet sind. Sämtliche Zellen einer Spalte empfan gen gleichzeitig sowohl die echten Daten, über die Datenleitungen DL1, DL2, ..., DLK, und die inversen Daten über die Datenleitungen DL1, DL2, ..., DLK von der entsprechenden Stelle des als Eingabepuffer arbeitenden Schieberegisters. Sämtliche Zellen einer Zeile empfangen über die Adreßleitungen WL1, WL2, ..., WLN von dem Adressendecodierer gleichzeitig die Adreßsignale und sind über Ausgangsleitungen oder sog. Bitleitungen BL1, BL2, ..., bzw. BLN, mit dem entsprechenden Eingabebaustein des FUZZY- oder Logikblocks verbunden. Darüber hinaus empfangen sämtliche Zellen der Matrix eine ihnen gemeinsame Vorspannung Vbias, deren Funktion im folgenden beschrieben wird.
- Jede Zelle kann als aus zwei Abschnitten bestehend betrachtet werden, nämlich einem Speicherabschnitt, der eingerichtet ist, um ein Bit eines Probenmusters zu speichern, und einem Vergleichsabschnitt, der eingerichtet ist, um damit ein homologes Bit des zu klassifizierenden Musters zu vergleichen und einen Strom bei Koinzidenz der beiden verglichenen Bit zu erzeugen.
- Der Speicherabschnitt der Zelle umfaßt einen MOS-Transistor M15, der als Freigabe- oder Adressierungstransistor betrachtet werden kann, wobei sein Gate-Bereich mit der Adressierungsleitung verbunden ist, z. B. mit der Adressierungsleitung WL1 für die Zellen der ersten Zeile, und zwischen die Leitung für die echten Daten, z. B. DL1, für die Zellen der ersten Spalte, und den Knoten Q geschaltet ist. Zwei Rücken an Rücken angeordnete und parallel geschaltete Inverter INV1 und INV2 sind mit dem Knoten Q verbunden, so daß sie eine Speicherzelle (im englischen memory oder storage cell) bilden. Der Knoten Q, der den anderen Verbindungsknoten der zwei Inverter darstellt, entspricht dem Knoten Q.
- Betrachtet man die Arbeitsweise, so ist leicht zu erkennen, daß dann, wenn ein Bit in der Speicherzelle INV1-INV2 gespeichert werden soll, dieses über die Datenleitung DL1 ermöglicht wird, falls die Zelle über die Freigabeleitung WL1 adressiert wird, die den Transistor M15 durchschaltet. Der Transistor M15 arbeitet so als Schalter. Das zu speichernde Datenelement ist daher am Knoten Q verfügbar.
- Zusammenfassend läßt sich sagen, daß dann, wenn ein Probenmuster in der Zeile i der Matrix gespeichert werden soll, dann, wie es dargestellt wurde, dieses zuerst in dem seriellen Register gespeichert wird und daraufhin zu den Zellen der Zeile i der Matrix durch einfaches Adressieren dieser Zeile der Matrix über die Leitung WL1 übertragen wird, während sämtliche übrigen Zeilen deaktiviert oder inaktiviert sind.
- Was den Vergleichsabschnitt angeht, so umfaßt jede Zelle z. B. einen MOS-Transistor M16, der als Stromerzeuger arbeitet, der mit Masse verbunden ist und durch eine Spannung Vbias an seinem Gate-Bereich vorgespannt wird. Zwei parallele Zweige gehen von dem Drain-Bereich des Transistors M16 aus, von denen jeder zwei in Reihe geschaltete MOS-Transistoren M11, M13 bzw. M12, M14 umfaßt, die so angeordnet sind, daß die Gate-Bereiche der ersten beiden Transistoren M11 und M12 mit der echten Datenleitung bzw. der inversen Datenleitung, d. h. beispielsweise DL1 und DL1, verbunden sind; wobei die Gate-Bereiche der zweiten beiden entsprechenden Transistoren M13 und M14 mit den beiden Knoten Q und Q der Speicherzelle INV1-INV2 verbunden sind. Die beiden Transistoren M11 und M12 sind beide mit der Zeilenausgangsleitung, z. B. mit BL1, verbunden.
- Betrachtet man die Arbeitsweise, so ist zu erkennen, daß für einen zwischen einem in der Speicherzelle INV1-INV2 (die durch den logischen H-/L-Zustand der beiden Knoten Q und Q bestimmt wird) und einem zu vergleichenden Datenelement (dieses Datenelement wird zusammen mit seinem entsprechenden inversen oder komplementären Datenelement über die beiden Leitungen DL1 und DL1 geliefert) durchzuführenden Vergleich ausreicht, den Transistor M16 mittels der Vorspannung Vbias durchzuschalten. Unter der Annahme, daß z. B. der Knoten Q 1 ist und der Knoten Q daher 0 ist, wobei das zu vergleichende Datenelement 1 sei, werden sowohl der Transistor M11 als auch der Transistor M13 durchgeschaltet, während die beiden Transistoren M12 und M14 gesperrt werden. In diesem Zustand entspricht der in der Ausgangsleitung BL1 fließende Strom Iout dem in dem Transistor M16 erzeugten Strom. Sollte das zu vergleichende Datenelement 0 sein, dann würde der Transistor M11 gesperrt werden und, da außerdem der Transistor M14 gesperrt ist, wird der Erzeuger transistor M16 isoliert und trägt nicht zu dem Strom der Ausgangsleitung BL1 bei.
- Da die Zellen jeder Zeile ein Probenmuster enthalten und ein Vergleich zwischen den zu klassifizierenden Muster und dem darin gespeicherten Probenmuster in jeder Zeile durchgeführt wird und da sämtliche Zellen einer Zeile mit der gleichen Ausgangsleitung BL verbunden sind, wird am Ausgang der Leitung BL ein Strom erhalten, der der Summe sämtlicher zu der interessierenden Leitung durch sämtliche Zellen, bei denen eine Koinzidenz zwischen dem gespeicherten Bit und dem verglichenen Bit auftritt, gelieferten Ströme entspricht.
- Die unten angegebene Wahrheitstabelle erklärt die möglichen Kombinationen:
- Natürlich wird es während des Probenmusterladeschritts günstig sein, Vbias = 0 zu machen, wodurch der Erzeugertransistor M16 gesperrt wird, um einer unnötigen Stromaufnahme vorzubeugen.
- Da der Vergleich zwischen den zu klassifizierenden Mustern und sämtlichen in der Matrix gespeicherten Probenmustern parallel und gleichzeitig für alle von ihnen durchgeführt wird, wird das zusammengefaßte Ausgangssignal N Ausgangsleitungen BL1, BL2, ..., BLN umfassen, von denen jede einen Strom führt, der proportional zur Anzahl der Zellen jeder jeweiligen Zeile ist, bei der eine Koinzidenz zwischen dem darin gespeicherten Datenelement und dem sich auf das homologe Bit des zur Klassifizierung verglichenen Musters beziehenden Datenelements aufgetreten ist.
- Als Ergebnis davon wird die Leitung BLi (wobei i = 1, 2, ..., N), die den größten Strom aufweist, diejenige sein, die der Zeile zugeordnet ist, die ein Probenmuster enthält, auf das bezogen das unbekannte zu klassifizierende Muster den größten "Ähnlichkeits-"Grad aufweist.
- Unter Bezug auf die Fig. 15 wird nun die Schaltungsanordnung, durch die die Logikblockfunktion implementiert wird, erläutert. Nimmt man N Eingangsleitungen BL1, BL2, ..., BLN an, die verschiedene Ströme führen und nimmt man daher N analoge Eingangssignale an, so wird eine solche Funktion ausgewertet, indem ein digitales Ausgangssignal geliefert wird, das aus einer Zeichenkette mit N Bits besteht, die sämtlichst 0 sind, bis auf das Bit, das dem größten Stromeingangssignal entspricht. Dieses ist 1.
- Die in der Fig. 15 dargestellte Schaltung umfaßt N identische Netzwerke, die einzeln zu jeder Bitleitung BL1 gehören. Unter Bezugnahme auf die erste Leitung BL1 ist zu erkennen, daß jedes Netzwerk einen ersten MOS-Transistor M21 und einen zweiten MOS-Transistor M22 umfaßt, die in Form einer Stromspiegelschaltung verbunden sind. Der erste Transistor M21 führt den Zeilenstrom I und der zweite Transistor M22 führt daher einen Strom, der proportional zum Zeilenstrom mal einem Faktor K ist. Ein dritter Transistor M23, der auch den durch den zweiten Transistor M22 fließenden Strom führt, ist dem Transistor M22 nachgeschaltet. Eine Kette aus Verzögerungszellen, die als Ganzes eine Verzögerungsleitung bilden, ist dem Transistorpaar M22, M23 nachgeschaltet. Jede Verzögerungszelle umfaßt einen ersten MOS-Transistor und einen zweiten MOS-Transistor, nämlich M24 vom N-Typ und M25 vom P-Typ, die zwischen Masse und die Versorgungsspannung Vcc geschaltet sind. Zwischen die Transistoren M24 und M25 ist eine Inverterschaltung 320 eingefügt, die aus zwei in Reihe geschalteten MOS-Transistoren, M26 und M27, mit P-Kanal bzw. N-Kanal, besteht, deren Gate-Bereiche miteinander verbunden sind und durch die Spannung IN gesteuert werden. Der Source und Drain der Transistoren M26 und M27 verbindende Knoten P ist über den Kondensator C mit Masse verbunden und mit dem Verbindungspunkt der homologen Transistoren M26, M27 sämtlicher Zellen der Zellenkette verbunden.
- In der gleichen Weise sind die Gate-Bereiche der P-MOS- Transistoren, die den ersten Stromspiegel M21, M22 bilden, mit den Gate-Bereichen sämtlicher homologer P-MOS-Transistoren M25 sämtlicher Zellen verbunden, um die Spannung VPbias zu liefern, und außerdem ist der Gate-Drain-Knoten des N-MOS-Transistors M23 mit den Gate-Bereichen der homologen Transistoren M24 sämtlicher Verzögerungszellen verbunden (um die Spannung VNbias zu liefern).
- Was die Arbeitsweise angeht, so ist zu erkennen, daß angesichts ihrer Anordnung in Form eines Stromspiegels die Transistoren M24 und M25 den gleichen Strom führen wie die Transistoren M22 und M23 und dieser Strom proportional ist zum Strom, der in den Transistor M21 fließt. Dieser Strom ist wiederum proportional zur Anzahl der Zellen der zugehörigen Leitung BLj, bei denen eine Koinzidenz zwischen dem gespeicherten Datenelement und dem verglichenen Datenelement besteht. Daher ist, da sämtliche Verzögerungszellenketten das gleiche Steuersignal IN aufweisen, dann, wenn das Signal IN = 0 ist, der Transistor M26 durchgeschaltet und der Transistor M27 gesperrt, und als Folge davon wird der Kondensator C auf einen logischen Pegel 1 aufgeladen. Wenn sich die durch die Bitleitungen BLj fließenden Ströme gesetzt haben, wird das Signal IN auf einen logischen Pegel 1 angehoben. Als Folge davon wird der Transistor M26 gesperrt und der Transistor M27 durchgeschaltet. Auf diese Weise wird der Kondensator C über die Transistoren M27 und M24 entladen. Da der Transistor M24 einen Strom liefert, der proportional zu dem Strom ist, der sich auf die Bitleitung BLj bezieht, ist zu erkennen, daß der Kondensator C mit einer Geschwindigkeit entladen wird, die proportional zum Bitleitungsstrom ist. Mit anderen Worten wird sich der Zustand des Knotens P mit einer Geschwindigkeit verändern, die proportional zur Stärke des Stroms der zugehörigen Bitleitung ist.
- Da es eine Reihe von Zellen M25, M26, M27 und M24 gibt, wird eine sich daraus ergebende Verzögerungsleitung in der Weise implementiert, daß bei einem Umschalten einer Zelle ein Umschalten in entgegengesetzter Richtung in der nachfolgenden Zelle auftritt und der Übergang des Signals IN sich entlang der Verzögerungsleitung mit einer Verzögerung entwickelt, die zu dem Strom der zugehörigen Bitleitung umgekehrt proportional ist.
- Jede Verzögerungsleitung wird durch eine Schmitt-Trigger- Schaltung 322 abgeschlossen. Die erste Schmitt-Trigger- Schaltung, die umschaltet, wird diejenige sein, die zu der Verzögerungsleitung gehört, an der die kleinste Übergangsverzögerung entsteht oder mit anderen Worten diejenige, die zu der Bitleitung gehört, die den größten Strom führt.
- Flip-Flop-Schaltungen FF1, FF2, ..., FFN sind mit den Ausgängen der Schmitt-Trigger-Schaltungen verbunden und die Ausgänge der Schmitt-Trigger-Schaltungen sind zu einem N Eingänge aufweisenden ODER-Gatter-Logikblock 324 kombiniert, dessen Ausgangssignal als Freigabesignal zur Deaktivierung der Flip-Flop-Schaltungen FF1, FF2, ..., FFN fungiert. Daher zieht das Umschalten einer der Schmitt-Trigger-Schaltungen das Umschalten der entsprechenden Flip-Flop-Schaltung nach sich und die restlichen Flip-Flop-Schaltungen bleiben unmittelbar danach in dem Zustand, in dem sie sich in diesem Moment befunden haben. Das bedeutet, daß unter der Annahme, daß alle Flip-Flop- Schaltungen FF1, FF2, ..., FFN anfangs in einem bestimmten Zustand waren, z. B. im Zustand 0, sie nach dem oben erwähnten Umschaltungs- und Aufrechterhaltungsschritt immer noch in dem gleichen Zustand sein werden, mit Ausnahme derjenigen Flip- Flop-Schaltung, die in den Zustand 1 umgeschaltet worden ist. Diese entspricht der Bitleitung mit dem größten Strom oder mit anderen Worten der größten Anzahl an Koinzidenzen zwischen den gespeicherten Daten und den verglichenen Daten. Die Ausgangssignale OUT1, OUT2, ..., OUTN bilden eine Zeichenkette, die bis auf eine Ausnahme aus lauter Nullen und einer Eins besteht, die, wie oben, an den kodifizierten Block angelegt wird, dessen Ausgangscode das Muster identifizieren wird, das in bezug auf das zu klassifizierende Muster den größten Ähnlichkeitsgrad aufweist.
- Unter Bezug auf die Fig. 16 ist eine andere Schaltungsimplementierung der Speicher- und Vergleichszellenmatrix dargestellt. Diese vierte Ausführungsform, die der zweiten Ausführungsform ähnlich ist, wird mittels ROM-Speicherzellen anstelle von RAM-Speicherzellen implementiert und ist für eine Anwendung entworfen worden, bei der keine Notwendigkeit zur Veränderung der Inhalte der Zellenmatrix besteht. Der Hauptvorteil dieser Lösung besteht darin, daß im Vergleich zu einer statischen RAM- Speicherzelle die zur Aufnahme einer ROM-Speicherzelle erforderliche Siliziumfläche kleiner ist. Das Blockdiagramm dieser Vorrichtung ändert sich nicht, wobei jedoch berücksichtigt werden muß, daß der Adressendecodierer in diesem Falle weggelassen werden kann.
- Das Laden der Probenmuster in die Matrix wird nur einmal während der Lebensdauer der Vorrichtung durch geeignetes Anschließen in der Fig. 16 dargestellter programmierbarer Kontakte durchgeführt. Insbesondere werden die interessierenden Speicherzellen mit einer 1 oder einer 0 geladen, je nach dem, ob die Gate-Bereiche der zugehörigen Transistoren mit den echten Datenleitungen oder den inversen Datenleitungen verbunden werden. Noch genauer gesagt ist es so, daß dann, wenn der Gate-Bereich des Transistors M31 mit der Leitung DL1 verbunden ist, das tatsächlich in der Zelle gespeicherte Datenelement einen logischen Zustand 1 aufweist, und dann, wenn der Gate- Bereich mit der Leitung DL1 verbunden wird, ein logischer Zustand 0 tatsächlich in dieser Zelle gespeichert wird. Eine solche Schaltungsimplementierung wertet praktisch eine EXKLUSIV-ODER-Funktion aus. Tatsächlich liefert im vorherigen Falle die Zelle nur dann einen Strom, wenn DL1 = 1 und = 0 ist und in dem zweiten Fall wird sie einen Strom nur dann liefern, wenn DL1 = 0 und = 1.
Claims (21)
1. Verfahren zum Erkennen eines mit der Hand geschriebenen
Zeichens, bei dem:
ein Zeichen unter Verwendung eines Zeicheneingabemittels
eingegeben wird, wobei das Zeichen in einen Bereich eingegeben
wird, der einen Rahmen mit drei Abschnitten definiert, und eine
Rahmenzahl erzeugt wird, die die Positionierung des Zeichens
innerhalb des Rahmens angibt;
das Zeichen digitalisiert und das digitalisierte Zeichen
gespeichert wird;
topologische Merkmale des digitalisierten Zeichens
gewonnen werden;
das topologische Merkmal des digitalisierten Zeichens mit
den topologischen Merkmalen mehrerer Referenzzeichen verglichen
wird, die eine entsprechende Rahmenzahl aufweisen; und
bestimmt wird, welches Referenzzeichen der mehreren
Referenzzeichen topologische Merkmale besitzt, die den
topologischen Merkmalen des digitalisierten Zeichens im wesentlichen
entsprechen, wodurch das mit der Hand geschriebene Zeichen
erkannt wird.
2. Verfahren nach Anspruch 1, bei dem der Bestimmungsschritt
das Durchführen eines Logik-Verfahrens umfaßt.
3. Verfahren nach Anspruch 1 oder Anspruch 2, bei dem der
Schritt des Gewinnens das Gewinnen topologischer Merkmale des
digitalisierten Zeichens in Form einer oder mehrerer
Merkmalscodes umfaßt, wobei jeder Merkmalscode eines der topologischen
Merkmale des digitalisierten Zeichens angibt.
4. Verfahren nach einem der vorhergehenden Ansprüche, bei dem
der Schritt des Gewinnens das Gewinnen eines Schnittcodes
umfaßt, der angibt, wie oft sich Matrixlinien und das
digitalisierte Zeichen schneiden.
5. Verfahren nach Anspruch 3, bei dem der Schritt des
Vergleichens das Vergleichen von dem digitalisierten Zeichen
zugeordneten Merkmalscodes mit den mehreren Referenzzeichen
zugeordneten Merkmalscodes umfaßt.
6. Verfahren nach Anspruch 4, bei dem der Schritt des
Vergleichens das Vergleichen von dem digitalisierten Zeichen
zugeordneten Merkmals- und Schnittcodes mit den mehreren
Referenzzeichen zugeordneten Merkmals- und Schnittcodes umfaßt.
7. Verfahren nach einem der Ansprüche 2 bis 6, bei dem der
Schritt des Durchführens eines Logik-Verfahrens das Berechnen
eines Wertes Sj für jedes der Referenzzeichen (Ncar) umfaßt,
der gegeben ist durch:
wobei
S = Anzahl der Striche des eingegebenen Zeichens;
Sj = Anzahl der Striche 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 Schnitte zwischen der i-ten Linie und dem
eingegebenen Zeichen;
Nij = Anzahl der Schnitte zwischen der i-ten Linie und dem
j-ten Referenzzeichen;
SW = Strichgewichtung; und
IW = Schnittgewichtung;
und das Referenzzeichen mit dem kleinsten Wert Sj als das
mit der Hand geschriebene Zeichen identifiziert wird.
8. Verfahren nach einem der vorhergehenden Ansprüche, bei dem
der Schritt des Eingebens des Zeichens das Eingeben des
Zeichens in einen Rahmen umfaßt, der einen oberen Abschnitt, einen
mittleren Abschnitt und einen unteren Abschnitt aufweist.
9. Verfahren nach einem der vorhergehenden Ansprüche, bei dem
darüber hinaus
Rahmencodes entsprechend der Position topologischer
Merkmale des digitalisierten Zeichens relativ zum oberen, mittleren
und unteren Abschnitt des Rahmens dem digitaliserten Zeichen
zugeordnet werden.
10. Verfahren nach Anspruch 9, bei dem der Schritt des
Eingebens des Zeichens das Eingeben des Zeichens an einer Position
relativ zu dem oberen Abschnitt, dem mittleren Abschnitt und
dem unteren Abschnitt des Rahmens entsprechend dem
topologischen Merkmal des Zeichens erfolgt.
11. Verfahren nach Anspruch 9 oder Anspruch 10, bei dem darüber
hinaus
dem digitalisierten Zeichen die Rahmenzahl entsprechend
den zugeordneten Rahmencodes zugeordnet wird.
12. Vorrichtung zum Erkennen eines mit der Hand geschriebenen
Zeichens mit
einem Zeicheneingabemittel zum Eingeben eines Zeichen in
einen Bereich, der einen Rahmen mit drei Abschnitten definiert,
wobei eine Rahmenzahl erzeugt wird, die die Positionierung des
Zeichens innerhalb des Rahmens angibt;
Mitteln zum Digitalisieren des Zeichens;
einem Speicher zum Speichern des digitalisierten Zeichens;
einem Gewinnungsmittel zum Gewinnen topologischer Merkmale
des digitalisierten Zeichens;
Mitteln zum Vergleichen der topologischen Merkmale des
digitalisierten Zeichens mit den topologischen Merkmalen mehrerer
Referenzzeichen, die eine entsprechende Rahmenzahl aufweisen;
Mitteln zum Bestimmen, welches Referenzzeichen der
mehreren Referenzzeichen topologische Merkmale aufweist, die den
topologischen Merkmalen des digitalisierten Zeichens im
wesentlichen entsprechen, wodurch das mit der Hand geschriebene
Zeichen erkannt wird.
13. Vorrichtung nach Anspruch 12, bei der das Bestimmungsmittel
zum Durchführen eines Logik-Verfahrens ausgebildet ist.
14. Vorrichtung nach Anspruch 12 oder Anspruch 13, bei der das
Gewinnungsmittel zum Gewinnen topologischer Merkmale des
digitalisierten Zeichens in Form einer oder mehrerer Merkmalscodes
ausgebildet ist, wobei jeder Merkmalscode eines der
topologischen Merkmale des digitalisierten Zeichens angibt.
15. Vorrichtung nach einem der Ansprüche 12 bis 14, bei der das
Gewinnungsmittel zum Gewinnen eines Schnittcodes ausgebildet
ist, der angibt, wie oft sich Matrixlinien und das
digitalisierte Zeichen schneiden.
16. Vorrichtung nach Anspruch 15, bei der das Mittel zum
Vergleichen zum Vergleichen von dem digitalisierten Zeichen
zugeordneten Merkmals- und Schnittcodes mit den mehreren
Referenzzeichen zugeordneten Merkmals- und Schnittcodes ausgebildet
ist.
17. Vorrichtung nach einem der Ansprüche 13 bis 16, bei der das
Logik-Verfahren das Berechnen eines Wertes Sj für jedes der
Referenzzeichen (Ncar) umfaßt, der gegeben ist durch:
wobei
S = Anzahl der Striche des eingegebenen Zeichens;
Sj = Anzahl der Striche 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 Schnitte zwischen der i-ten Linie und dem
eingegebenen Zeichen;
Nij = Anzahl der Schnitte zwischen der i-ten Linie und dem
j.-ten Referenzzeichen;
SW = Strichgewichtung; und
IW = Schnittgewichtung;
und das Referenzzeichen mit dem kleinsten Wert Sj als das
mit der Hand geschriebene Zeichen identifiziert wird.
18. Vorrichtung nach einem der Ansprüche 12 bis 17, bei der das
Zeicheneingabemittel zum Eingeben des Zeichens in einen Rahmen
ausgebildet ist, der einen oberen Abschnitt, einen mittleren
Abschnitt und einen unteren Abschnitt aufweist.
19. Vorrichtung nach Anspruch 18, die darüber hinaus
Mittel umfaßt, die dem digitaliserten Zeichen Rahmencodes
entsprechend der Position topologischer Merkmale des
digitalisierten Zeichens relativ zum oberen, mittleren und unteren
Abschnitt des Rahmens zuordnen.
20. Vorrichtung nach Anspruch 19, die darüber hinaus
Mittel umfaßt, die dem digitalisierten Zeichen die
Rahmenzahl entsprechend den zugeordneten Rahmencodes zugeordnen.
21. Vorrichtung nach einem der Ansprüche 12 bis 20, die darüber
hinaus eine
zur Verbindung mit einem Computer bestimmte Schnittstelle
umfaßt, die so ausgebildet ist, daß erkannte mit der Hand
geschriebene Zeichen dem Computer übergeben werden, wodurch dem
Computer Befehle geliefert werden.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
ITRM910955A IT1250968B (it) | 1991-12-19 | 1991-12-19 | Circuito e metodo per la classificazione di configurazioni digitali. |
ITRM910956A IT1250969B (it) | 1991-12-19 | 1991-12-19 | Circuito e metodo per la estrazione di caratteristiche geometriche da configurazioni digitali rappresentanti caratteri scritti a mano. |
IT000776 IT1258883B (it) | 1992-10-23 | 1992-10-23 | Procedimento ed apparecchio per il riconoscimento di caratteri. |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69227174D1 DE69227174D1 (de) | 1998-11-05 |
DE69227174T2 true DE69227174T2 (de) | 1999-04-29 |
Family
ID=27274149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69227174T Expired - Fee Related DE69227174T2 (de) | 1991-12-19 | 1992-12-04 | Zeichenerkennung |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP0548030B1 (de) |
JP (1) | JP3291338B2 (de) |
DE (1) | DE69227174T2 (de) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IT1272259B (it) * | 1994-05-30 | 1997-06-16 | Texas Instruments Italia Spa | Procedimento ed apparecchio per il riconoscimento dei caratteri |
WO2015040740A1 (ja) * | 2013-09-20 | 2015-03-26 | 株式会社 東芝 | 電子機器および方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3522586A (en) * | 1965-08-25 | 1970-08-04 | Nippon Electric Co | Automatic character recognition apparatus |
GB1545117A (en) * | 1976-05-25 | 1979-05-02 | Nat Res Dev | Comparison apparatus eg for use in character recognition |
US4288782A (en) * | 1979-08-24 | 1981-09-08 | Compression Labs, Inc. | High speed character matcher and method |
JPS6178222A (ja) * | 1984-09-26 | 1986-04-21 | Hitachi Ltd | デジタルパタ−ン検出回路 |
JP2538878B2 (ja) * | 1986-05-26 | 1996-10-02 | 株式会社東芝 | 情報入力装置および情報入力装置における文字記入領域制御方法 |
JPS63186179A (ja) * | 1987-01-28 | 1988-08-01 | Canon Inc | 通報装置 |
JPS63198179A (ja) * | 1987-02-13 | 1988-08-16 | Canon Inc | 情報認識装置 |
JP2762472B2 (ja) * | 1988-08-17 | 1998-06-04 | ソニー株式会社 | 文字認識方法および文字認識装置 |
JP3066530B2 (ja) * | 1989-02-20 | 2000-07-17 | 富士通株式会社 | オンライン手書文字認識装置 |
-
1992
- 1992-12-04 EP EP92830656A patent/EP0548030B1/de not_active Expired - Lifetime
- 1992-12-04 DE DE69227174T patent/DE69227174T2/de not_active Expired - Fee Related
- 1992-12-21 JP JP34077692A patent/JP3291338B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP0548030B1 (de) | 1998-09-30 |
JPH06215189A (ja) | 1994-08-05 |
EP0548030A2 (de) | 1993-06-23 |
EP0548030A3 (en) | 1994-05-11 |
DE69227174D1 (de) | 1998-11-05 |
JP3291338B2 (ja) | 2002-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2431451C3 (de) | Verfahren zur Normierung der Strichstärke von abgetasteten Schriftzeichen sowie Einrichtung zur Durchführung des Verfahrens | |
DE3850595T2 (de) | Dokumentverarbeitungssystem. | |
DE3440377C2 (de) | ||
DE2801536C2 (de) | Zeichenformkodiervorrichtung | |
DE69030310T2 (de) | Beschränkungsabhängig gesteuerte on-line Erkennung von handgeschriebenen Zeichen und Symbolen | |
DE3801380C2 (de) | ||
DE3633743C2 (de) | ||
DE69033042T2 (de) | Datenverarbeitung | |
DE69421117T2 (de) | Gerät zur Bildinformationsverarbeitung und -wiedergabe | |
DE3851867T2 (de) | Zeichenerkennungsgerät. | |
DE69526285T2 (de) | Zeichenerkennung | |
DE2432129C3 (de) | Verfahren zum maschinellen Lesen von Zeichen und Vorrichtung zur Durchführung des Verfahrens | |
DE2640537A1 (de) | Verfahren und vorrichtung zum unterscheiden zwischen n groesser als 2 alphabeten angehoerenden zeichen | |
DE4119091C2 (de) | Verfahren zum Erkennen von Zeichen, insbesondere Schriftzeichen und Einrichtung zur Durchführung des Verfahrens | |
DE2836725A1 (de) | Zeichenerkennungseinheit | |
DE69423607T2 (de) | Verfahren zum klassifizieren von bildern mit ausgabeabbildungen | |
DE2939919A1 (de) | Anordnung zum codieren von ideographischen zeichen | |
DE68925312T2 (de) | Verfahren zur Pixelfarbenwahrscheinlichkeitsbestimmung zur Verwendung in OCR-Logik | |
DE69425009T2 (de) | Zeichenerkennung | |
EP0107083B1 (de) | Belegverarbeitungseinrichtung mit Korrekturschaltung und Datensichtgerät | |
US5563959A (en) | Character recognition | |
DE69227174T2 (de) | Zeichenerkennung | |
DE2006672A1 (de) | Vorrichtung zur Sichtbarmachung von Daten | |
DE3941550A1 (de) | Schaltungsanordnung zum zerlegen einer auf einem computer-ausgabedisplay anzuzeigenden graphikfigur | |
DE4210109A1 (de) | Datensortiervorrichtung zum fruehen erkennen einer fertigen datensortierung sowie sortierverfahren |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |