-
Die vorliegende Erfindung bezieht sich auf eine Vorrichtung
und ein Verfahren zur optischen Zeichenerkennung und
insbesondere, jedoch nicht ausschließlich, auf die optische Abtastung
und Erkennung alphanumerischer Zeichen wie z. B. der
Schriftarten E13B, OCRA, OCRB und Farington 7B.
-
Die Zeichensätze E13B, OCRA, OCRB und Farington 7B haben in
den Vereinigten Staaten und anderswo breite Anwendung bei
Dokumenten über Finanzgeschäfte erlangt. Im allgemeinen sind
die Zeichen auf Dokumenten wie Bankwechseln, Schecks und
anderen Finanzurkunden aufgezeichnet. Schriften des Typs E13B
sind gewöhnlich in MICR-Form (Zeichenaufzeichnung mit
magnetischer Tinte) geschrieben, um mittels eines magnetischen
Scanners abgetastet zu werden.
-
Manchmal wird eine Vidiconkamera verwendet, um das Dokument
abzutasten und sein Bild für Archiv- und Beweiszwecke
aufzuzeichnen, während in einer gesonderten Operation ein
magnetisches Abtastersystem benutzt wird, um die mit magnetischer
Tinte geschriebenen Zeichen (z. B. E13B-Zeichen) zu lesen. Die
Notwendigkeit zweier getrennter Abtastersysteme zur
Durchführung zweier gesonderter Operationen ist ein teures,
zeitraubendes Problem. Ferner ist die Hardware zur Verarbeitung von
Zeichensätzen des Typs E13B, OCRA, OCRB und Farrington 7B
häufig kompliziert und teuer und benötigt unangemessen viel
Zeit bei der Durchführung der Zeichenerkennung. Auch
binärisiert diese Hardware das gesamte Bild, wodurch Rauschen in
das binarisierte Bild eingeführt und Verluste von Bilddaten
verursacht werden, was den Erkennungsprozeß noch schwieriger
macht.
-
Die US-Patente 4 466 121 und 4 850 026 offenbaren
Vorrichtungen zur optischen Zeichenerkennung, in denen ein binäres
Muster aus Graustufenwerten erzeugt wird, die einer aus einer
Vielzahl von Zeichenkonfigurationen bestehenden Lesezeile
entsprechen, woraufhin einzelne Abschnitte des Binärmusters
mit dem Inhalt eines Speichers verglichen werden, um so die
Zeichenidentifizierung durchzuführen. Eine derartige
Vorrichtung hat jedoch den Nachteil, daß ihr Betrieb leicht durch
Rauschsignale gestört wird, die bei ihrem Betrieb entstehen.
Diese Vorrichtung kann auch nicht ohne weiteres zur
Identifizierung einer Vielzahl von Teilen verwendet werden und ist in
nachteiliger Weise hinsichtlich ihrer Bildverarbeitungszeit
eingeschränkt.
-
Die US-A-4 742 556 offenbart ein Verfahren zur
Zeichenerkennung, das ein manuelles Eingreifen mittels eines
benutzerbetätigten Steuerknüppels erfordert, im Bemühen, das Zeichen
für den nachfolgenden Erkennungsprozeß in einem Suchfenster zu
lokalisieren. Der Erkennungsprozeß läuft ohne Rücksicht
darauf, ob das lokalisierte Zeichen in Wirklichkeit Rauschen
darstellt. Ferner offenbart die US-A-4 466 121 ein Verfahren
und eine Vorrichtung zur Zeichensegmentierung und
anschließende Erkennung, wobei im Bemühen, das Zeichen für den
nachfolgenden Erkennungsprozeß in passender Weise zu lokalisieren,
Graustufenwerte pro Spalte von Bildelementen summiert werden.
-
Somit sucht die vorliegende Erfindung, für eine Vorrichtung
und ein Verfahren zur Bildabtastung und Zeichenerkennung zu
sorgen, mit denen die oben erwähnte Notwendigkeit zweier
Systeme mit zwei Betriebsarten vermieden wird und außerdem
Rauscherscheinungen und Bildverarbeitungszeit beträchtlich
vermindert werden.
-
Gemäß einem Aspekt der vorliegenden Erfindung wird eine
Vorrichtung zur optischen Zeichenerkennung vorgesehen,
enthaltend eine Abtasteinrichtung zum optischen Abtasten eines auf
einem Dokument geschriebenen alphanumerischen Zeichens, wobei
das Zeichen und das Dokument unterschiedliche Opazitäten
haben, und zum Erzeugen einer Vielzahl von
Pixel-Graustufen
werten entsprechend diesen Opazitäten, eine
Speichereinrichtung, die angeordnet ist zur Speicherung der Graustufenwerte
gemeinsam mit einem Programm und einer Vielzahl vorbestimmter
Binärmuster, von denen eines das Zeichen darstellt, und eine
mit der Abtasteinrichtung und mit der Speichereinrichtung
gekoppelte Verarbeitungseinrichtung, die unter Steuerung durch
das Programm arbeitet und dazu ausgelegt ist, ein Fenster zu
erzeugen, das einen Bereich einer Matrix von Werten umgibt,
die das Zeichen darstellen, und die Summe von Graustufenwerten
innerhalb des Fensters zu bestimmen und das Fenster relativ zu
dem Bereich und in Richtungen in Ansprache auf Änderungen der
Summe der Graustufenwerte zu bewegen, um die Summe maximal zu
machen und so das Zeichen zentral innerhalb des Fensters zu
plazieren, wobei die Verarbeitungseinrichtung ferner die
Matrix von Werten in Binärdaten umwandelt und aus der Vielzahl
vorbestimmter Binärmuster ein Muster auswählt, welches auf die
umgewandelten Binärdaten paßt, wobei das passende Muster zur
Identifizierung des Zeichens dient.
-
Gemäß einem weiteren Aspekt der vorliegenden Erfindung wird
zur optischen Identifizierung eines Zeichens auf einem
Dokument ein Verfahren vorgesehen, enthaltend: optisches Abtasten
des alphanumerischen Zeichens, um eine Vielzahl von Pixel-
Graustufenwerten zu erzeugen; Speichern der Graustufenwerte
gemeinsam mit einem Programm und der Vielzahl vorbestimmter
Binärmuster, von denen eines das Zeichen darstellt, und
Verarbeiten der gespeicherten Daten unter Steuerung durch das
gespeicherte Programm, um ein Fenster zu erzeugen, das einen
Bereich einer Matrix von das Zeichen darstellenden Werten
umgibt, und Bestimmen der Summe von Graustufenwerten innerhalb
des Fensters und Bewegen des Fensters relativ zu dem Bereich
und in Richtungen in Ansprache auf Änderungen der Summe der
Graustufenwerte, um die Summe maximal zu machen und so das
Zeichen zentral innerhalb des Fensters zu plazieren, und
Umwandeln der Matrix von Werten in Binärdaten und Auswählen
eines auf die umgewandelten Binärdaten passenden Musters aus
der Vielzahl vorbestimmter Binärmuster, wobei das passende
Muster zur Identifizierung des Zeichens dient.
-
Die Erfindung lokalisiert in vorteilhafter Weise Zeichen und
sondert sie aus dem Graufstufenbild und binärisiert die
lokalisierten Zeichen zur anschließenden Erkennung, anstatt das
gesamte Bild zur Erkennung von Zeichen zu binärisieren, wie es
beim Stand der Technik erfolgt. Während also die Binärisierung
des gesamten Bildes gemäß dem Stand der Technik ein
ungebührliches Maß an Fehlern (Rauschen) in die abgetasteten Daten
einführt, reduzieren die Vorrichtung und das Verfahren der
vorliegenden Erfindung solche Fehler durch Verwendung von
Graustufenwerten beim Prozeß der Zeichensegmentierung und
gestatten eine beträchtliche Reduzierung der
Bildverarbeitungszeit. Ferner ist das System in vorteilhafter Weise fähig,
verschiedene Schriftarten zu erkennen (d. h. verschiedene
Zeichen in verschiedenen Auflösungen), lediglich durch
Speicherung binärer Muster oder Schablonentabellen für die
jeweilige Schriftart.
-
Beim Lokalisieren eines Zeichens (d. h. der das Zeichen
darstellenden Graustufen-Pixelwerte) zur Verarbeitung, kann
die Vorrichtung ein Fenster über ausgewählte Pixelwerte des
Zeichens derart positionieren (und hiermit das Zeichen
abstecken), daß die Summe der ausgewählten Pixelwerte innerhalb
des Fensters ein Maximum ist. Die Vorrichtung bestimmt dann
das arithmetische Mittel der dunklen Pixel innerhalb des
Fensters, indem sie das arithmetische Mittel vorgewählter
Exemplare der ausgewählten Pixelwerte bestimmt. Die
vorgewählten Exemplare stellen Pixelwerte oberhalb einer vorbestimmten
Schwelle dar, die vorbestimmte Schwelle stellt einen Wert dar,
der größer ist als der Hintergrundwert des Zeichens, welcher
durch Vorabtastung des Zeichens bestimmt wird. Die Vorrichtung
kann dann die ausgewählten Pixelwerte in binäre Daten in Bezug
auf den genannten Mittelwert umwandeln (d. h. Umwandlung in
Eins oder Null, abhängig davon, ob der Betrag jedes
ausgewählten Pixelwertes kleiner ist als der genannte Mittelwert oder
größer als oder gleich dem Mittelwert ist). Die binären Daten
können dann mit jedem der vorbestimmten Binärmuster logisch
verglichen werden, bis ein darauf passendes Muster gefunden
ist, welches das Zeichen am besten identifiziert. So
repräsentieren die vorbestimmten Binärmuster binäre Schablonen, wobei
jedes Muster (Schablone) drei Bitkonfigurationen (Ebenen) hat,
nämlich eine erste Bitkonfiguration, welche das eigentliche
Bitmuster des Zeichens darstellt, eine zweite
Bitkonfiguration, welche die Signifikanz der Bits des eigentlichen
Bitmusters darstellt, und eine dritte Bitkonfiguration, welche
gewichtete Werte für die Bits des eigentlichen Bitmusters
darstellt. Der Grad der logischen Vergleichbarkeit der
umgewandelten Binärdaten mit jeder der drei Bitkonfigurationen
eines jeden der vorbestimmten Bitmuster wird in Form von
Nichtübereinstimmungs-Wörtern ausgedrückt, aus denen
Nichtübereinstimmungs-Zählwerte errechnet werden. Die
Nichtübereinstimmungs-Zählwerte können dann mit mindestens einem
vorbestimmten Schwellenwert verglichen werden, und der niedrigste
Nichtübereinstimmungszählwert, der unterhalb des
Schwellenwertes liegt (kleiner ist als dieser), wird als repräsentativ für
das Zeichen ausgewählt.
-
Die Erfindung wird nachstehend, lediglich in Form von
Beispielen, anhand der beigefügten Zeichnungen beschrieben, in denen:
-
Fig. 1 ein Blockdiagramm einer die vorliegende Erfindung
verkörpernden Vorrichtung zeigt;
-
Fig. 2 das Erscheinungsbild eines Zeichens zeigt, das mit
der Vorrichtung nach Fig. 1 abtastbar und identifizierbar ist;
-
Fig. 3 einen Teil eines Dokumentes zeigt, auf dem
verschiedene Zeichen geschrieben sind;
-
Fig. 4 ein abgetastetes Zeichen zeigt, das eine Matrix aus
Pixeln verschiedener Opazitäten (Graustufenwerte) hat;
-
Fig. 5 ein zum Abstecken eines Zeichens verwendetes
Fenster zeigt;
-
Fig. 6 das Fenster nach Fig. 5 in seiner Anwendung beim
Abstecken des Zeichens nach Fig. 4 zeigt;
-
Fig. 7 ein Blockdiagramm ist, das die Ergebnisse
verschiedener logischer Operationen an Binärdaten zeigt, die das
abgetastete Zeichen darstellen;
-
Fig. 8 ein Blockdiagramm einer Matrix zeigt, die
verschiedene Teile des Bildes eines abgesteckten Zeichens darstellt,
und
-
Fig. 9 eine graphisch/tabellarische Darstellung einer
Schablone und zugehöriger Binärwerte ist, wie sie vom System
nach Fig. 1 verwendet werden.
-
Die Fig. 1 zeigt ein System (Vorrichtung) 11, das die
vorliegende Erfindung verkörpert. Das System enthält einen optischen
Leser oder Abtaster 13 zum Abtasten eines Dokumentes 19 und
ein Computersystem 21 zum Verarbeiten von Daten, die vom
Abtaster 13 her empfangen werden. Der Abtaster kann eine
Kamera mit einem CCD (ladungsgekoppeltes Bauelement) 15 und
eine Steuereinrichtung 17 sein. Das Dokument 19 kann ein
Bankwechsel oder Scheck sein, auf dem Ziffernzeichen oder
andere alphanumerische Symbolen 20 geschrieben sind. Das
Computersystem 21 enthält einen Mikroprozessor 23, ein ROM
(Nur-Lese-Speicher) 25 mit einem Aufstartprogramm und ein RAM
(Direktzugriffsspeicher) 27 mit einem gespeicherten Programm,
um Daten aus der Abtasteinrichtung und aus dem Mikroprozessor
zu speichern und um vordefinierte Daten zu speichern.
-
Der Abtastvorgang beginnt an der unteren rechten Ecke 33 des
Dokumentes 19 und endet an der oberen linken Ecke 35. Der
Abtaster 13 tastet das Dokument 19 in Vertikalrichtung von
unten nach oben ab, wie mit dem Pfeil 37 gezeigt, zuerst
entlang der am weitesten rechts liegenden virtuellen
Abtastzeile 39, dann wieder von unten nach oben entlang der
zweitrechtesten virtuellen Abtastzeile 41, usw., bis die obere
linke Ecke des Dokumentes erreicht ist. Die virtuellen
Abtastzeilen laufen einander parallel. Das Dokument 19 wird
kontinuierlich von links nach rechts bewegt, wie mit dem Pfeil
43 gezeigt, während der Abtaster entlang aufeinanderfolgenden
Abtastzeilen abtastet, wobei die Breite jeder Abtastzeile dem
Durchmesser eines Pixels (ungefähr 0,0127 cm) entspricht.
-
Ein Beispiel einer Lesezeile eines Dokumentes ist in Fig. 3
gezeigt. Wenn ein Dokument abgetastet wird, werden die
Pixelwerte, die vom Abtaster zur Darstellung des Dokumentes mit den
darauf befindlichen Zeichen erzeugt werden, im Speicher 27
gespeichert (Fig. 1). Die Zeichen werden jeweils als eine
Datenaufstellung (Matrix) gespeichert, die z. B. typischerweise
einhundert Reihen entsprechend der Höhe der Lesezeile und
zwölfhundert Spalten entsprechend der Länge des Dokumentes
hat; zwölfhundert ist die typische Anzahl von Spalten in einem
6 Zoll (15,24 cm) messenden Dokument mit 200 Pixeln pro Zoll
(2,54 cm). Innerhalb der Datenmatrix wird ein Zeichen (wenn
eines in der unten beschriebenen Weise lokalisiert und
segmentiert ist) durch eine Matrix von Reihen (z. B.
einundzwanzig, entsprechend der Höhe des Zeichens) und Spalten (z. B.
vierzehn, entsprechend der Breite des Zeichens) dargestellt.
Das in Fig. 2 gezeigte Zeichen "drei" beispielsweise kann in
Pixelmatrixform dargestellt werden, wie es in Fig. 4
abgebildet ist. Jedes Pixel 49 stellt einen Teil des Dokumentes dar
und hat einen Opazitätsindex oder Graustufenwert im Bereich 0-
255. Die dunklen Pixel haben im allgemeinen einen höheren
Graustufenwert (nahekommend dem Wert 255), und die hellen
Pixel haben im allgemeinen einen geringeren Graustufenwert
(nahekommend dem Wert 0). Da Zeichen normalerweise in einer
dunklen Farbe im Vergleich zum allgemein hellfarbigen
Hintergrund des Dokumentes gedruckt sind, ist der
Opazitätsunterschied zwischen den Zeichen und seinem Hintergrund leicht
feststellbar.
-
Wie oben angedeutet, werden diese Graustufen-Datenwerte vom
Abtaster beim Abtasten des Dokumentes erzeugt. Die erzeugten
Daten werden dann im Speicher 27 (Fig. 1) gespeichert, um vom
System 21 verarbeitet zu werden. Unter Steuerung durch das
gespeicherte Programm prüft das System die gespeicherten
Datenwerte und schreitet zur Lokalisierung eines ersten und
dann nachfolgender Zeichen eines ersten Feldes, dann anderer
Zeichen nachfolgender Felder. Nach Lokalisierung eines
Zeichens schreitet das System zum Abstecken oder Eingrenzen des
Zeichens (d. h. zum Sondern oder Segmentieren des Zeichens von
anderen Zeichen). Beginnend mit den gespeicherten Graustufen-
Datenwerten, die erhalten wurden durch Abtasten des Dokumentes
von unten nach oben entlang der rechtesten Abtastzeile 39
(Fig. 1 und 2) und dann von unten nach oben entlang der
zweitrechtesten Abtastzeile 41, usw., lokalisiert das System
jedes der Zeichen und steckt es ab (Segmentierung), wie weiter
unten beschrieben. Es tut dies, indem es zuerst die
gespeicherten Daten vertikal von unten nach oben entlang der
Abtastzeile absucht nach einem Anstieg im Graustufenwert, der einen
Übergang von einem hellen Pixel zu einem dunklen Pixel
darstellt. Wenn zwischen zwei Graustufenwerten benachbarter Pixel
in der Abtastrichtung 37 ein Anstieg von z. B. mehr als vierzig
gefunden wird (der jeweilige Wert wie z. B. vierzig ist
abhängig von der Schriftart), dann wird dies als Auffinden eines
dunklen Pixels angesehen. Die Zone (des Dokumentes), die dem
dunklen Pixel naheliegt, wird angesehen als eine Zone, wo
wahrscheinlich ein Zeichen zu finden ist. Wenn ein dunkles
Pixel gefunden ist, prüft das System die Zeichenzone (d. h. es
prüft die gespeicherten Daten in der Nähe des dunklen
Pixelwertes), um festzustellen, ob das dunkle Pixel Teil eines
Zeichens ist. Die Prüfung auf Vorhandensein eines Zeichens
erfolgt durch Einrichten eines Segmentierungsfensters
genügender Größe, um das Zeichen auf dem Dokument wirksam
abzustecken, wobei die Position des dunklen Pixels der Mitte des
Fensters entspricht. Wie in Fig. 5 gezeigt, hat ein
Segmentierungsfenster im dargestellten Fall linke und rechte Ränder
(Spalten) 55, 57 und obere und untere Ränder (Reihen) 59, 61.
Angrenzend an den linken und rechten Rand ist jeweils eine
Spalte 63 (links+1) bzw. eine Spalte 65 (rechts-1), und
angrenzend an den oberen und den unteren Rand ist jeweils eine
Reihe 67 (oben+1) bzw. eine Reihe 69 (unten-1).
-
Wie weiter unten anhand der Fig. 5 und 6 erläutert wird,
gilt ein Zeichen als abgesteckt und im Zentrum des Fensters
positioniert, wenn die Summe (Sw) aller Pixel-Graustufenwerte
im Fenster maximal ist. Um festzustellen, ob sich die Summe
(Sw) erhöht, wenn das Fenster bewegt wird, werden die Summen
der Pixelwerte in jeder der linken und rechten Spalten 55, 57
und in jeder der daran angrenzenden Spalten 63, 65 berechnet.
In ähnlicher Weise werden die Summen der Pixelwerte in jeder
der oberen und unteren Reihen 59, 61 und in jeder der an sie
angrenzenden Reihen 67, 69 berechnet. Wenn z. B. gefunden
wird, daß die Summe in der Spalte 63 größer ist als die Summe
in der Spalte 57 und daß sich die Summe (Sw) erhöhen würde,
wenn das Fenster 53 um ein Pixel nach links zur Einbeziehung
der Spalte 63 und Ausschließung der Spalte 57 bewegt würde,
dann wird das Fenster nach links bewegt. In ähnlicher Weise
wird, wenn durch Bewegung des Fensters um ein Pixel nach oben
zur Einbeziehung der Reihe 67 und Ausschließung der Reihe 61
die Summe (Sw) im Fenster größer würde, das Fenster nach oben
bewegt. So kann aus der Summe (kumulativer Zählwert) der
Pixelwerte der neben dem Fenster liegenden (angrenzenden)
Reihen und Spalten relativ zur Summe der Pixelwerte der
zugeordneten Reihen und Spalten an den Rändern des Fensters
festgestellt werden, in welcher Richtung das Fenster bewegt
werden kann, um die Summe (Sw) der Pixelwerte innerhalb des
Fensters zu erhöhen. Wie in Fig. 6 gezeigt, wird entsprechend
den nachstehenden Zählwerten
-
Zählwert für die Spalte rechts-1 = 0
-
Zählwert für die rechte Spalte = 0
-
Zählwert für die linke Spalte = 100
-
Zählwert für die Spalte links+1 = 100
-
Zählwert für die Reihe unten-1 = 0
-
Zählwert für die unterste Reihe = 0
-
Zählwert für die oberste Reihe = 170
-
Zählwert für die Reihe oben+1 = 170
-
der Fensterzählwert um 100 erhöht, wenn eine Bewegung nach
links erfolgt, und um 170 erhöht, wenn eine Bewegung nach oben
erfolgt. Deswegen wird das Fenster nach links und nach oben
bewegt. Das Fenster wird also in derjenigen Richtung bewegt,
bei welcher Sw höher wird, und dieser Vorgang wird wiederholt,
bis keine Bewegung des Fenster in irgendeiner der vier
Richtungen (links, rechts, aufwärts, abwärts) den Wert Sw erhöht.
Dies wird angesehen als der Zustand, daß das Fenster ein
Zeichen abgesteckt (eingegrenzt/segmentiert) hat und das
Zeichen dabei in der Mitte des Fensters positioniert ist. So
wird mittels des Fensters eine das Zeichen am besten
darstellende Matrix von Pixelwerten ausgewählt (abgesteckt).
-
Als Prüfung für die Feststellung, ob im Fenster genug
Information (Graustufenwerte dunkler Pixel) für die Darstellung des
abgesteckten Zeichens vorhanden ist, wird die Gesamtanzahl von
Pixeln im Fenster ermittelt, die einen vorbestimmten
Bestätigungs-Schwellenwert überschreiten (z. B. einen Graustufen-
Schwellenwert von 100). Wenn die Gesamtanzahl z. B. größer als
sechzig ist (für die Schriftart E13B), dann wird das Auffinden
eines Zeichens im Fenster bestätigt. Andernfalls wird das im
Fenster abgesteckte Objekt als Rauschen interpretiert, und das
System schreitet zum Auffinden des nächsten Zeichens.
-
Nach dem Segmentieren wird das segmentierte (abgesteckte)
Zeichen in Vorbereitung der Identifizierung (Erkennung)
skaliert. Beim Erkennungsprozeß werden 16-Bit-Wörter verwendet
(d. h. die Breite einer Schablone beträgt 16 Pixel). Da viele
Zeichen breiter als 16 Pixel sind (auch E13B-Zeichen, die 19
Pixel breit sind), werden sie nach dem Segmentieren auf 16
Bits konvertiert. Dies geschieht durch Eliminierung
vorbestimmter Spalten, so werden z. B. für die Schriftart E13B die
Spalten 4, 9 und 14 eliminiert. (OCRA- und OCRB-Schriftarten
sind 16 Pixel breit, wenn sie mit zweihundert Pixel pro Zoll
(2,54 cm) abgetastet sind, bei ihnen brauchen also keine
Spalten eliminiert zu werden.)
-
Vorstehend wurde beschrieben, wie ein Zeichen in Vorbereitung
der Verarbeitung lokalisiert wird, d. h. wie es auf einem
Dokument effektiv ausgemacht und für die spätere Verarbeitung
abgesteckt (segmentiert) wird. Nachstehend wird beschrieben,
wie das abgesteckte Zeichen in Binärform umgewandelt und dann
mit einer Schablone (vorbestimmtes Binärmuster) zum Zwecke der
Identifizierung (Klassifizierung/Erkennung) des Zeichens
gepaart wird.
-
Beim Umwandlungsvorgang werden die gespeicherten Pixel-
Graustufenwerte für jede Reihe des abgesteckten Zeichens in
Binärform umgewandelt. Zuerst wird ein Referenzschwellenwert
als arithmetisches Mittel der dunklen Pixel des abgesteckten
Zeichens berechnet (wie oben beschrieben). Dann werden die
Pixel-Graustufenwerte in Binärform bezüglich der
Referenzschwelle umgewandelt. Wenn beispielsweise die berechnete
Referenzschwelle einhundert ist, dann wird unter Verwendung
der nachstehenden Binäräquivalenz-Skala
-
Pixel-Graustufenwert Binäres Äquivalent
-
≥ 100 1 (schwarz)
-
< 100 0 (weiß)
-
eine Reihe mit den Graustufenwerten 80, 120, 130, 90, 85, 70,
110, 135 in eine Binärinformation mit dem Bitmuster 01100011
umgewandelt, wie im 8-Bit-Wort 71 der Fig. 7 gezeigt.
-
Diese Binärdaten (die eine Reihe oder Schnitte des
abgesteckten Zeichens darstellen) und weitere Reihen umgewandelter
Binärdaten, die insgesamt das Zeichen darstellen, werden dann
mit einer Vielzahl von Schablonen verglichen, deren jede einem
Zeichen entspricht. Jede Schablone stellt ein vorbestimmtes
Muster von Binärdaten dar und besteht aus drei verschiedenen
Ebenen (Bitkonfigurationen). Die in Fig. 7 gezeigten drei 8-
Bit-Wörter 73, 75, 77 stellen eine 8-Bit-Reihe in jeder der
drei Ebenen dar. Die erste Ebene (Bitmusterebene, entsprechend
dem Musterwort 73) stellt das eigentliche Schwarz/Weiß-
Bitmuster (0/1-Bitmuster) des Zeichens dar. Die zweite Ebene
(Bitsignifikanzebene, entsprechend dem Bitsignifikanzwort 75)
macht diejenigen Bitpositionen des Zeichens kenntlich, die
signifikant sind, und diejenigen, die nicht signifikant sind.
Bits mit dem Wert 1 identifizieren signifikante Bitpositionen,
wo das Bitmuster des Zeichens der Erwartung nach, ungeachtet
kleiner Änderungen in Größe und Form des Zeichens, unverändert
bleibt. Bits mit dem Wert 0 identifizieren nicht-signifikante
Bitpositionen, wo das Bitmuster bei verschiedenen Größen oder
Formen des Zeichens nicht dasselbe sein muß. Die dritte Ebene
(Bitgewichtungsebene, entsprechend dem Gewichtungswort 77)
macht kenntlich, welche Bits kritisch für die Unterscheidung
zwischen ähnlichen (im wesentlichen gleichen) Zeichen sind und
deswegen größeres Gewicht als andere Bits haben. In dieser
dritten Ebene sind 1-Bits als Bits mit Gewicht bestimmt, und
0-Bits sind als Bits ohne Gewicht bestimmt. Beispielsweise
wären 1-Bits in der obersten Reihe der dritten Ebene der
Schablone für die Zeichen "0" und "U" nützlich zum
Unterscheiden zwischen diesen beiden Zeichen, und 1-Bits in der
untersten Reihe der dritten Ebene der Schablonen für die Zeichen
"Q" und "0" wären nützlich zum Unterscheiden zwischen dem Q
und dem O.
-
Wie in Fig. 7 gezeigt, werden an den Binärdaten 71
verschiedene logische Operationen vom Prozessor 23 (Fig. 1)
durchgeführt, um das Zeichen zu identifizieren. Die logischen
Operationen werden in Wirklichkeit als 16-Bit-Operationen
durchgeführt. Aus Einfachheitsgründen sind jedoch 8-Bit-Operationen
gezeigt. Als erstes erfahren die Binärdaten eine Exklusiv-
ODER-Verknüpfung mit dem entsprechenden Wort 73 der
Bitmusterebene, um ein Muster 74 der Nichtübereinstimmung zwischen den
Binärdaten 71 und dem vorbestimmten korrekten Muster 73 zu
erzeugen. Dieses Nichtübereinstimmungs-Muster 74 erfährt dann
eine logische UND-Verknüpfung mit dem entsprechenden Wort 75
der Bitsignifikanzebene, um ein Nichtübereinstimmungswort 76
zu erzeugen, das den Grad der Nichtübereinstimmung unabhängig
von der Zeichengröße und -form darstellt. Das
Nichtübereinstimmungswort 76 wird dann gewichtet, d. h. es erfährt eine
logische UND-Verknüpfung mit dem entsprechenden Wort 77 in der
Bitgewichtungsebene, um einen gewichteten
Nichtübereinstimmungs-Indikator 78 zu erzeugen. (Würde das Gewichtungswort 77
keine 1-Bits enthalten, wäre keine Gewichtung oder UND-
Verknüpfung durchgeführt worden (um Verarbeitungszeit
einzusparen, da das Resultat gleich 0 wäre), und das System
wäre zur Verarbeitung der nächsten Reihe von Binärdaten
geschritten.)
-
Nach der Gewichtungsoperation wird ein Nichtübereinstimmungs-
Zählwert (MCR) für die Reihe der Binärdaten 71 berechnet.
Diese Berechnung wird vom Prozessor 23 (Fig. 1) wie folgt
durchgeführt:
-
MCR = MCw + (WOC · WF) (1)
-
wobei
-
MCw einen Nichtübereinstimmung-Zählwert für das
Nichtübereinstimmungswort darstellt (d. h. die
Anzahl von Einsen, die im
Nichtübereinstimmungswort 76 gefunden werden),
-
WOC einen Nichtübereinstimmungs-Indikator oder
Gewichtungs-Ausgangszählwert darstellt (d. h. die
Anzahl von Einsen, die im Nichtübereinstimmungs-
Indikatorwort 78 gefunden werden), und
-
WF einen vorbestimmten Gewichtungsfaktor darstellt
(z. B. die ganze Zahl 2 für Zeichen der E13B-
Schriftart).
-
So läßt sich für das in den Wörtern 76 und 78 der Fig. 7
gezeigte Muster von Nichtübereinstimmungsbits erkennen, daß
MCw = 2, WOC = 1 und WF = 2 ist. Daher wäre der für die Reihe
der Binärdaten 71 berechnete Nichtübereinstimmungs-Zählwert
(MCR) gleich vier (d. h. 2+(1·2) entsprechend der obigen
Gleichung 1).
-
Nach Berechnung des Nichtübereinstimmungs-Zählwertes für eine
Reihe fährt das System fort, um in der oben beschriebenen
Weise die Nichtübereinstimmungs-Zählwerte für alle übrigen
Reihen des Zeichens zu berechnen. Die Nichtübereinstimmungs-
Zählwerte für alle Reihen des Zeichens werden dann summiert,
um einen Schablonen-Nichtübereinstimmungszählwert zu erzeugen
(d. h. einen Nichtübereinstimmungszählwert für die auf das
abgesteckte Zeichen angewandte Schablone). In einer ähnlichen
Weise wird für die anderen Schablonen des Zeichensatzes der
gerade verarbeiteten Schriftart jeweils ein
Nichtübereinstimmungszählwert bezüglich des abgesteckten Zeichens erzeugt.
Sowie die verschiedenen Schablonen verarbeitet sind, werden
die beiden niedrigsten
Schablonen-Nichtübereinstimmungszählwerte und die Nummern der betreffenden Schablonen im Speicher
gespeichert. Das Kriterium für die Identifizierung eines
Zeichens ist folgendes: falls die Schablone mit dem
niedrigsten Zählwert unterhalb eines Schwellenwertes liegt (eine
Zurückweisungsschwelle von 40 für E13B-Schriftarten) und um
ein vorbestimmtes Maß (eine Differenzschwelle von 5 für E13B-
Schriftarten) niedriger liegt als die zweitniedrigst liegende
Schablone, dann identifiziert sie das Zeichen.
-
Die Schablonenerkennung, wie sie vorstehend beschrieben wurde,
kann in insgesamt neun Positionen durchgeführt werden, wie in
Fig. 8 gezeigt. Dies geschieht, damit Zeichen identifiziert
werden, die unter Umständen, infolge von Faktoren wie Rauschen
im Bild, nicht perfekt abgesteckt sind. Bei dem in Fig. 8
gezeigten Beispiel haben die Schablone und das Eingangsmuster
(Binärdatenmuster) eine Größe von 23 Reihen (Höhe) mal 16
Spalten (Breite). Die drei Ebenen der Schablone (Musterebene,
Bitsignifikanzebene und Gewichtungsebene) werden alle um
dasselbe Maß und in derselben Richtung verschoben (bewegt). In
der nachstehenden Beschreibung von Verschiebungspositionen
bezieht sich der Begriff Schablonenreihe gleichermaßen auf die
Bitreihe der Musters, die Bitreihe der Signifikanz und die
Bitreihe der Gewichtung.
-
In der mittleren Position 87 ist die Schablone 96 direkt über
dem Eingangsmuster 98 angeordnet. Bei dieser Paarung werden
nur die Reihen 2 bis 22 benutzt. So wird die Schablonenreihe 2
mit der Musterreihe 2 verglichen, und die Schablonenreihe 3
wird mit der Musterreihe 3 verglichen, usw.. Bei den mittleren
Horizontalpositionen 81, 87, 93 werden alle Spalten (1 bis 16)
benutzt. Bei der oberen Mittelposition 81 werden die Reihen 1
bis 22 der Schablone mit den Reihen 2 bis 23 des
Eingangsmusters verglichen. Dies ist dasselbe wie eine Verschiebung
des Schablonenmusters um eine Reihe vertikal nach oben 7 In
diesem Fall wird die Schablonenreihe 1 mit der Reihe 2 des
Eingangsmusters verglichen, die Schablonenreihe 2 wird mit der
Reihe 3 des Eingangsmusters verglichen, usw.. Alle Spalten der
Schablone und des Eingangsmusters werden in dieser Situation
(horizontale Mitte) verglichen. In ähnlicher Weise ist in der
unteren Mittelposition 93 die Schablone um eine Reihe nach
unten verschoben, so daß die Schablonenreihen 2 bis 23 mit den
Reihen 1 bis 22 des Eingangsmusters gepaart sind.
-
Die horizontal verschobenen Positionen entsprechen einer
Verschiebung der Schablone 96 nach links oder rechts über das
Eingangsmuster 98. In der mittleren Linksposition 85 werden
die Spalten 1 bis 15 der Schablone und die Spalten 2 bis 16
des Eingangsmusters verwendet. (Da es sich um eine mittlere
Position in Vertikalrichtung handelt, werden sowohl für das
Eingangsmuster als auch für die Schablone die Reihen 2 bis 22
verwendet.) So wird das Bit 1 des Schablonenwortes mit dem Bit
2 des Musterwortes verglichen, das Bis 3 des Schablonenwortes
wird mit dem Bit 4 des Musterwortes verglichen, usw..
-
Ist beispielsweise das Wort der Musterebene der Schablone:
-
0011111100001111
-
und ist das Musterwort des eingegebenen Zeichens:
-
0010111100011110
-
und wird die Schablone um 1 Bit(Spalte) nach links verschoben:
-
0111111000011110
-
dann wäre das Ergebnis der Exklusiv-ODER-Verknüpfung:
-
0101000100000000
-
Es sei bemerkt, daß wenn eine Linksverschiebung durchgeführt
wird, das am weitesten rechts stehende Bit (Bit niedrigsten
Stellenwertes, LSB) gleich 0 ist. Somit ist auch das LSB des
Bitsignifikanzwortes gleich 0 (weil alle drei Ebenen in
derselben Richtung und um dasselbe Maß verschoben werden), und
somit ist das LSB des Nichtübereinstimmungswortes 76 (nach der
UND-Verknüpfung mit dem Bitsignifikanzwort) immer gleich 0. In
ähnlicher Weise läßt eine Rechtsverschiebung das am weitesten
links stehende Bit (Bit höchsten Stellenwertes, MSB) zu 0
werden, und somit ist das MSB des Nichtübereinstimmungswortes
76 (nach der UND-Verknüpfung) immer gleich 0.
-
Eine Horizontalverschiebung nach rechts (Position 89) ist
ähnlich wie die Verschiebung nach links, nur in der
entgegengesetzten Richtung. Das Bit 2 des Schablonenwortes richtet
sich dann aus (wird verglichen) mit dem Bit 1 des Musterwortes
der Eingabe.
-
Die Eckenpositionen (Positionen 95, 91, 83, 79) stellen eine
Kombination einer Vertikalverschiebung um eine Reihe und einer
Horizontalverschiebung um eine Spalte dar. In der oberen
Linksposition 79 beispielsweise ist die Schablonenreihe 1 um
eine Bitposition nach links verschoben und wird mit dem
Musterwort 2 verglichen, und die Schablonenreihe 2 ist um eine
Bitposition nach links verschoben und wird mit dem Musterwort
3 verglichen, usw.
-
Um ein Zeichen unter Anwendung dieser Methode zu erkennen,
bedarf es neun Durchläufe pro Schablone mal der Anzahl von
Schablonen im Zeichensatz. Beispielsweise würde ein
alphanumerischer Zeichensatz mit 49 Zeichen die Durchführung von
insgesamt 441 (9*49) Paarungen erfordern. Dies kann zu
zeitaufwendig sein. Um eine schnellere Zeichenidentifizierung zu
fördern, wird zunächst nur die mittige Position jeder
Schablone mit dem Eingabemuster verglichen. Die niedrigsten beiden
Nichtübereinstimmungs-Zählwerte und die ihnen zugeordneten
Schablonennummern werden im Speicher 27 gespeichert, wenn die
verschiedenen Schablonen verarbeitet sind. Am Ende dieses
ersten Durchlaufs werden die anderen acht Positionen nur
dieser beiden Schablonen verarbeitet, um die bestmögliche
(d. h. geringste) Gesamt-Nichtübereinstimmung mit dem
Eingabemuster zu finden. Somit brauchen gewöhnlich nur 65 (1*49+2*8)
Paarungen vorgenommen zu werden (d. h. etwa 15% der ansonsten
erforderlichen 441 Paarungen).
-
Nachstehend wird eine Beschreibung der Kriterien für die
Annahme oder Zurückweisung eines Zeichens gegeben.
-
Der niedrigste Schablonen-Nichtübereinstimmungszählwert wird
verglichen mit einer vorbestimmten Zurückweisungs-Schwelle für
das Zeichen, welches die Schablone darstellt. Wenn der
Schablonen-Nichtübereinstimmungszählwert für dieses Zeichen
unterhalb der besagten Schwelle ist und die Differenz der
Schablonen-Nichtübereinstimmungszählwerte für die niedrigsten
beiden Schablonen (zweitgeringste Nichtübereinstimmung minus
geringste Nichtübereinstimmung) größer ist als ein
vorbestimmtes Maß (z. B. 10), dann identifiziert die Schablone mit der
geringsten Schablonen-Nichtübereinstimmung das abgesteckte
Zeichen. Die Prüfung, ob die Nichtübereinstimmungszählwerte zu
dicht beieinander liegen, erfolgt zu dem Zweck einer
Unterscheidung zwischen Zeichen, die einander sehr ähnlich sind
(z. B. Q und O). Wenn die Nichtübereinstimmungen ähnlich sind,
wird das Zeichen zurückgewiesen, anstatt eine
Falschidentifizierung (Lesefehler) zu riskieren. Wenn keine Schablonen-
Nichtübereinstimmung unterhalb der oben beschriebenen
Zurückweisungs-Schwelle liegt oder die beiden
Schablonen-Nichtübereinstimmungszählwerte zu nahe beieinander liegen, wird eine
Nachverarbeitung (weiter unten beschrieben) durchgeführt. Wenn
nach der Nachverarbeitung das abgesteckte Zeichen immer noch
zurückgewiesen wird, wird sein Bild verbessert und in
Binärform umgewandelt (wie unten beschrieben). Der Erkennungsprozeß
(oben beschrieben) wird dann erneut durchgeführt. Ist das
Zeichen identifiziert (genügt es den obigen Kriterien), dann
schreitet das System zur Verarbeitung (Lokalisierung und
Absteckung) des nächsten Zeichens, wie sie oben beschrieben
wurde.
-
Wenn man nur die mittigen Positionen untersucht, kann die
Möglichkeit übersehen werden, daß ein anderes Zeichen als die
beiden nächstkommenden Zeichen einen näherkommenden Zählwert
in einer anderen als der mittleren Position hat und die
richtige Wahl wäre. Die Nachverarbeitungsoperation kann eine
solche Situation in Ordnung bringen. Wenn die zwei gewählten
niedrigsten Nichtübereinstimmungszählwerte beide oberhalb der
vorbestimmten Zurückweisungs-Schwelle für das besagte eine
Zeichen liegen oder wenn die Distanz zwischen ihnen
(zweitniedrigste Nichtübereinstimmung - niedrigste
Nichtübereinstimmung) zu klein ist, kann eine Anzahl anderer Schablonen in
den anderen acht Positionen ausprobiert werden, um zu
versuchen, eine bessere Übereinstimmung zu finden. Die Wahl,
welche Schablonen zu verarbeiten sind, wird z. B. darauf
gestützt, mit welchen Schablonen das Zeichen die
nächstkommende Ähnlichkeit hat. Beispielsweise haben die zwei gewählten
nächstkommenden Zeichen (diejenigen mit den niedrigsten
Nichtübereinstimmungs-Zählwerten), die Buchstaben D und 0,
beide Nichtübereinstimmungszählwerte oberhalb ihrer jeweiligen
Zurückweisungsschwelle. Bei der Nachbearbeitungsoperation wird
eine vorbestimmte Gruppe von Zeichen verarbeitet, die ähnlich
mit D und 0 sind. Hierzu könnten die Zeichen 0 (Null), Q, C
und U gehören. Die Nichtübereinstimmungszählwerte der beiden
nächstkommenden Zeichen nach dieser Operation werden geprüft
(dasjenige mit dem niedrigsten Nichtübereinstimmungszählwert
wird zuerst geprüft), um festzustellen, ob sie das
Zurückweisungskriterium und das Kriterium ihrer gegenseitigen Distanz
erfüllen. Wenn mindestens ein Zeichen die Kriterien erfüllt,
wird als Ergebnis dieses Zeichen rückgemeldet, und es geht
weiter mit der Verarbeitung (Lokalisierung und Absteckung) des
nächsten Zeichens im Bild.
-
Wenn keines der obigen Zeichen die Zurückweisungskriterien
erfüllt oder wenn die Distanz zwischen den Zeichen zu klein
ist, wird das abgesteckte Zeichen zurückgewiesen. In diesem
Fall wird sein Bild verbessert (wie unten beschrieben), das
Zeichen wird neu binärisiert, und der oben beschriebene
Erkennungsprozeß wird ein zweites Mal wiederholt. Wenn das Zeichen
erkannt wird, wird es rückgemeldet. Andernfalls wird als
Ergebnis ein Zeichenzurückweisungscode rückgemeldet, und es
geht weiter mit der Verarbeitung (Lokalisierung und
Absteckung) des nächsten Zeichens aus dem Dokument.
-
Zusätzlich zu der oben beschriebenen Zurückweisungsschwelle
kann bei dem oben beschriebenen Zeichenidentifizierungsprozeß
auch eine Ausstiegsschwelle (z. B. der Wert 10) verwendet
werden. Um die Verarbeitungsgeschwindigkeit zu steigern,
werden aufeinanderfolgende
Schablonen-Nichtübereinstimmungszählwerte mit dem Ausstiegsschwellenwert verglichen, und die
erste Schablone, bei welcher der
Schablonen-Nichtübereinstimmungszählwert unter dem Ausstiegsschwellenwert liegt,
identifiziert das Zeichen. In diesem Fall werden die übrigen
Schablonen nicht verarbeitet (was die Verarbeitungsgeschwindigkeit
steigert).
-
Ferner kann zur Beschleunigung des
Zeichenidentifizierungsprozesses folgendermaßen vorgegangen werden: Wenn während der
Verarbeitung der einzelnen Reihen einer Schablone gefunden
wird, daß der Nichtübereinstimmungszählwert der
augenblicklichen Schablone (d. h. der gerade in Verarbeitung befindlichen
Schablone) größer ist als der bis dahin erhaltene
zweitniedrigste Zählwert, kann die Verarbeitung der augenblicklichen
Schablone unterbrochen werden, weil diese augenblickliche
Schablone im besagten Fall kein Konkurrent mehr für die
Bewerbung um einen der beiden Plätze mit den niedrigsten
Schablonen-Nichtübereinstimmungszählwerten ist. Um die
Erkennungsgeschwindigkeit weiter zu steigern, können die Schablonen in
derjenigen Reihenfolge vorsortiert werden, in der sie am
wahrscheinlichsten auftreten (z. B. Ziffern vor Vokalen gefolgt
von Konsonanten in einer alphanumerischen Schrift). Falls die
Nichtübereinstimmung unterhalb der Ausstiegsschwelle liegt
(wie oben erwähnt), braucht der Rest der Schablonen nicht mehr
geprüft zu werden. So sollten diejenigen Zeichen, die am
häufigsten erscheinen, zuerst geprüft werden. Außerdem kann
man zur Förderung einer schnelleren Zeichenidentifizierung nur
die mittlere Position mit den Schablonen prüfen, und erst
danach, falls der niedrigste
Schablonen-Nichtübereinstimmungszählwert oberhalb der Ausstiegsschwelle liegt, könnten die
übrigen acht Positionen für jede der beiden Schablonen
verarbeitet werden, die der Ausstiegsschwelle am nächsten kommen,
und die Schablone mit dem niedrigsten
Schablonen-Nichtübereinstimmungszählwert kann dann als diejenige ausgewählt werden,
die repräsentativ für das Zeichen ist. Ferner können zur
Beschleunigung der Identifizierung die übrigen acht Positionen
(Fig. 8) in der Reihenfolge 79, 81, 83, 85, 89, 91, 93, 95
verarbeitet werden. Dies ist die Reihenfolge der
Wahrscheinlichkeiten für die Positionierung des Zeichens.
-
Nach Identifizierung des abgesteckten Zeichens schreitet das
System zur Verarbeitung des nächsten Zeichens (d. h. zur
Verarbeitung der nächsten Gruppe gespeicherter Pixelwerte, welche
die dem abgesteckten Zeichen benachbarte Zone des Dokumentes
darstellen), indem das Segmentierungsfenster über eine
vorgewählte Anzahl von Pixeln (z. B. drei Pixel) von dem zuvor
abgesteckten Zeichen nach links bewegt wird. Das Zeichen in
dieser Nachbarzone wird dann abgesteckt (segmentiert) und
identifiziert, wie weiter oben beschrieben. Alle übrigen
Zeichen (übrige gespeicherte Pixeldaten) werden in dieser
Weise verarbeitet, bis das Ende des Feldes detektiert wird
(d. h. keine weiteren Zeichen mehr lokalisiert worden sind oder
ein Feld-Ende-Zeichen lokalisiert worden ist).
-
Falls während des Prozesses der Zeichenidentifizierung ein
Zeichen zurückgewiesen wird, wird sein Bild verbessert, um die
Identifizierung zu erleichtern. Das Bild kann z. B. dadurch
verbessert werden, daß ein Zeichenbild mit konstanten
Strichstärken erzeugt wird (d. h. mit einer konstanten Anzahl dunkler
Pixel quer über die Breite jedes vertikalen Striches oder
horizontalen Striches des Zeichens). Dies geschieht in
nachstehender Weise. Zuerst werden die Pixel-Graustufenwerte
(z. B. 6-Bit-, 8-Bit- oder 16-Bit-Werte), die das Zeichen
darstellen, auf einen kleineren Wertebereich konvertiert (z. B.
3-Bit-Graustufenwerte zur schnelleren Verarbeitung), dann
werden die einzelnen Pixel des Zeichenbildes geprüft und nur
diejenigen Pixel, welche die dunkelsten zwei oder drei Pixel
des Striches sind, werden schwarz gemacht, die anderen werden
weiß gemacht. Dies führt zu einem binären Bild mit konstanten
Strichbreiten, wie es z. B. im US-Patent Nr. 4 625 330
beschrieben ist.
-
Als Hilfe zur Verbesserung der Zeichenidentifizierung können
die Ränder jedes Zeichens in der nachstehend beschriebenen
Weise bearbeitet werden. Wie oben erwähnt, entspricht jede
Schablone, die beim Zeichenidentifizierungsprozeß verwendet
wird, einem Zeichen des gewählten Zeichensatzes (z. B. des
E13B-Zeichensatzes), und wie in den Fig. 2 und 4 gezeigt,
ist jedes Zeichen vierzehn Pixel breit und einundzwanzig Pixel
hoch. Links und rechts am Zeichen wird jeweils eine
Zusatzspalte angefügt, und oben und unten am Zeichen wird jeweils
eine Zusatzreihe angefügt. Dies führt zu einer Zeichengröße
von 16 mal 23. So wie jedes Zeichen ist auch jede Schablone
sechzehn Pixel breit und dreiundzwanzig Pixel hoch. Jede
Schablone hat an jeder Seite (rechte Seite und linke Seite)
des vierzehnspaltigen Zeichens eine Zusatzspalte und eine
Zusatzreihe am oberen Ende und eine Zusatzreihe am unteren
Ende des einundzwanzigreihigen Zeichens. Jede Zusatzreihe
besteht aus sechzehn weißen Pixeln, und jede Zusatzspalte
besteht aus dreiundzwanzig weißen Pixeln. Die Zusatzreihen und
-spalten dienen zur Umrahmung der 14-mal-21-Zeichenzone mit
einem Rand aus weißen Pixeln zur besseren Identifizierung der
Randbereiche gewisser Zeichen, wie weiter unten erläutert.
Wenn z. B. das Zeichen "E" mit einer 14-mal-21-Schablone für
"F" gepaart wird und die Schablone um eine Pixelposition nach
oben verschoben wird, dann sind die Pixelwerte am unteren Ende
des "E" verloren, da sie nicht bei der Erzeugung des
Schablo
nen-Nichtübereinstimmungszählwertes verwendet werden können.
Dies könnte dazu führen, daß das E fälschlich als F
identifiziert wird, weil der Nichtübereinstimmungszählwert niedrig
ist. Mit der 16-mal-23-Schablone wird das untere Ende des E
nicht verloren und trägt wesentlich zum
Nichtübereinstimmungszählwert beim Vergleich mit der untersten weißen Reihe der F-
Schablone bei, so daß eine fälschliche Identifizierung des E
als F vermieden wird. Eine ähnliche Erläuterung gilt bezüglich
der rechten und linken Spaltenpositionen der 16-mal-23-
Schablone; hier dienen diese Spalten dazu, die Gefahr einer
Falschidentifizierung infolge Verwechslung zwischen Zeichen
"B" und "3" zu reduzieren.
-
Wie in Fig. 9 gezeigt, kann jede 16-mal-23-Schablone durch
neunundsechzig 16-Bit-Wörter des RAM 27 dargestellt werden
(entsprechend einer Abtastung von zweihundert Pixel pro Zoll
2,54 cm). Von den neunundsechzig Wörtern stellen
dreiundzwanzig die Bitmusterwörter der ersten Ebene dar, dreiundzwanzig
stellen die Bitsignifikanzwörter der zweiten Ebene dar und
dreiundzwanzig stellen die Bitgewichtungswörter der dritten
Ebene dar. Jede Gruppe von dreiundzwanzig Wörtern entspricht
der Höhe des Zeichens, und jedes 16-Bit-Wort entspricht der
Breite des Zeichens. (In der Fig. 7 sind aus
Einfachheitsgründen acht Bits statt sechzehn Bits zur Veranschaulichung der
logischen Operationen verwendet.)
-
Nachstehend gezeigt ist eine Auflistung des Pseudo-Codes des
gespeicherten Programms, welches das System befähigt, die
logischen und sonstigen oben beschriebenen
Verarbeitungsoperationen durchzuführen:
PSEUDO-CODE
-
PROZEDUR: HAUPTGRUPPE
-
erkennt eine Codezeile aus einem Dokumentenbild
während (NICHT
ENDE DES DOKUMENTES)
{
wenn (FINDE ERSTES ZEICHEN ein Zeichen findet)
dann
ERKENNE FELD
sonst
ENDE DES DOKUMENTES
}
-
PROZEDUR: FINDE ERSTES ZEICHEN
führe aus
{
DURCHSUCHE BILD NACH ÜBERGANG VON WEISS NACH SCHWARZ
bis (ZEICHEN GEFUNDEN oder ENDE DES DOKUMENTES)
-
PROZEDUR: ERKENNE FELD
führe aus
{
ERKENNE ZEICHEN
bewege zur nächsten Position
während (ZEICHEN GEFUNDEN)
-
PROZEDUR: ERKENNE ZEICHEN
{
BINÄRISIERE ZEICHENBILD
SCHABLONENERKENNUNG DES ZEICHENS
wenn (ZURÜCKGEWIESEN)
dann
VERBESSERT BINÄRISIERE ZEICHENBILD
SCHABLONENERKENNUNG DES ZEICHENS
-
Es sei auch erwähnt, daß, zusätzlich zu den Zeichen des oben
diskutierten Typs E13B, OCRA, und OCRB, die verschiedenen vom
System durchgeführten Berechnungen leicht modifiziert werden
können, um das System zu befähigen, Bilder jeder beliebigen
Auflösung mit Zeichen verschiedener Größen zu lesen.