DE3926327C2 - Verfahren und System zum Erkennen von Zeichen auf einem Medium - Google Patents

Verfahren und System zum Erkennen von Zeichen auf einem Medium

Info

Publication number
DE3926327C2
DE3926327C2 DE3926327A DE3926327A DE3926327C2 DE 3926327 C2 DE3926327 C2 DE 3926327C2 DE 3926327 A DE3926327 A DE 3926327A DE 3926327 A DE3926327 A DE 3926327A DE 3926327 C2 DE3926327 C2 DE 3926327C2
Authority
DE
Germany
Prior art keywords
character
block
text
line
characters
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE3926327A
Other languages
English (en)
Other versions
DE3926327A1 (de
Inventor
Philip Bernzott
John Dilworth
David George
Bryan Higgins
Jeremy Knight
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nuance Communications Inc
Original Assignee
Caere Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=22866815&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE3926327(C2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Caere Corp filed Critical Caere Corp
Publication of DE3926327A1 publication Critical patent/DE3926327A1/de
Application granted granted Critical
Publication of DE3926327C2 publication Critical patent/DE3926327C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/414Extracting the geometrical structure, e.g. layout tree; Block segmentation, e.g. bounding boxes for graphics or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/28Determining representative reference patterns, e.g. by averaging or distorting; Generating dictionaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/146Aligning or centring of the image pick-up or image-field
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Multimedia (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Character Input (AREA)
  • Character Discrimination (AREA)

Description

Die Erfindung bezieht sich auf das Gebiet der optischen Zeichen-Erkennungssysteme und insbesondere auf ein Verfahren und eine Anordnung zum Erkennen von Zeichen auf einem Medium nach den Oberbegriffen der Ansprüche 1 und 5.
Eine Anzahl optischer Zeichen-Erkennungssysteme (OCR-Sy­ steme) sind bekannt. In typischer Ausführung weisen derarti­ ge Systeme einen Scanner zum Abtasten einer Seite eines ge­ druckten Textes und zur Durchführung einer Zeichenerkennung an einem Bit-mapped Bild des Textes auf (vgl. R. ZIMMERMANN: "Automatische Erkennung von Schriftzeichen", VDI-Z 115 (1973) Nr. 11, August, Seiten 875-885). Die Zeichen können danach in einer Datei eines Computersystems zur Weiterverar­ beitung durch ein Textverarbeitungsprogramm oder ähnliches gespeichert werden.
Einige bekannte OCR-Systeme enthalten einen Handscanner zum Abtasten einer Seite. Bei derartigen Systemen streicht die Bedienungsperson bei der Durchführung der Abtastung mit dem Handgerät über den gedruckten Text auf der Seite, wobei normalerweise das Abtasten graphischer oder nicht-Text-ent­ haltender Abschnitte auf der Seite vermieden wird. Normaler­ weise wird die Seite in der Weise abgetastet, in der sie normalerweise gelesen wird (d. h. das Scannen erfolgt entlang der Spalten und spaltenweise von links nach rechts).
Andere bekannte Systeme enthalten eine Entscheidungsein­ richtung, die zum Feststellen und Angeben derjenigen Teile des Textes benutzt werden kann, welche von dem OCR-System zu verarbeiten sind. Einige dieser Systeme sind in der Lage, graphische Abschnitte der angezeigten Seitenzonen von Text­ abschnitten zu unterscheiden. Derartige Systeme bedingen je­ doch dennoch einen manuellen Eingriff zum Markieren des Tex­ tes in der Richtung oder Reihenfolge des normalen Lesens und zum Markieren von Graphikabschnitten.
Andere Systeme machen von einer Registrierungsmarke zum Anzeigen des Beginns von Textspalten Gebrauch. Diese Systeme erfordern ebenfalls noch manuelle Eingriffe zum Setzen von Registrierungsmarken.
K. Y. Wong, R. G. CASEY und F. M. WAHL beschreiben in dem Auf­ satz "Document Analysis System", IBM J. Res.Develop., Vol. 26, No. 6, Nov. 1982, Seiten 647-656, ein OCR System, das in der Lage ist, eine Seite mit gemischten Text- und nicht- Text-Informationen abzutasten und zu erkennen, sowie zwi­ schen Text- und nicht-Text-Bereichen zu unterscheiden.
Bekannte optische Zeichen-Erkennungssysteme können in zwei Kategorieren eingeteilt werden. Optische Zeichen-Erken­ nungssysteme der ersten Kategorie erkennen entweder eine einzelne Schriftart oder eine begrenzte Anzahl von Schrift­ arten, und ihre Eingabe ist gewöhnlich beschränkt auf eine Schriftart mit konstantem Zeichenabstand bei einer speziel­ len Punktgröße. Optische Zeichen-Erkennungssysteme der zwei­ ten Kategorie werden typischerweise als Allschriftsysteme (omnifont systems) bezeichnet. Derartige Systeme sind in der Lage, eine große Anzahl von Schriftarten in einem großen Be­ reich von Punktgrößen entweder konstanten oder proportiona­ len Abstandes zu erkennen. Generell sind optische Zeichen- Erkennungssysteme, die eine große Anzahl von Schriften er­ kennen können, nicht in der Lage, Dokumente mit hohen Ge­ schwindigkeiten zu verarbeiten, wie sie beispielsweise bei Systemen zur Erkennung einer begrenzten Anzahl spezieller Schriften realisierbar sind.
Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren und eine Anordnung zum Erkennen von Zeichen auf einem Medium mit erhöhter Genauigkeit bei der Zeichenerkennung zu schaf­ fen.
Diese Aufgabe wird erfindungsgemäß durch ein Verfahren mit den Merkmalen des Anspruchs 1 sowie mit der im Anspruch 5 angegebenen Anordnung gelöst. Vorteilhafte Weiterbildungen der Erfindung sind in den Unteransprüchen gekennzeichnet.
Die Erfindung vereinigt die bisher als gegensätzlich an­ gesehenen Eigenschaften der Erkennung irgendeiner Anzahl von Schriftarten und der raschen Dokumentenverarbeitung.
Das erfindungsgemäße optische Zeichen-Erkennungssystem weist eine Scannereinrichtung zum Abtasten eines Dokumentes und zum Erzeugen eines Bit-mapped Bildes des Dokuments auf. Die Scannereinrichtung ist mit einem Computersystem gekop­ pelt, das einen Speicher zur Speicherung des Bit-mapped Bil­ des und einen Prozessor zum Verarbeiten des Bit-mapped Bil­ des und zur Ausgabe von Daten aufweist, die die Zeichen auf der abgetasteten Seite darstellen.
Die Erfindung wird vorteilhaft mit Verfahrensschritten verwendet, die das Abtasten der Seite und die Erkennung und Ausgabe von Zeichen auf der Seite in einer Reihenfolge er­ möglicht, welche logisch die gleiche Reihenfolge ist, die eine die Seite lesende Person verfolgen würde. Dies ge­ schieht durch Parsing (automatische Zergliederung mittels Struktur-Analyse) der Seite in eine Vielzahl von Blöcken und Ausgabe der Blöcke an einen Zeichen-Erkennungsprozeß in ei­ ner Reihenfolge, die gewöhnlich die logische Lesefolge auf der Seite ist.
Sinnvollerweise wird ein Zeichen-Erkennungsverfahren aus einer Kombination eines Schablonen-Anpaßprozesses und eines Merkmalsanalyseprozesses eingesetzt. Der Merkmalsanalysepro­ zeß ermöglicht die Zeichenerkennung auf der Basis ihrer For­ men. Unter Verwendung des Merkmalsanalyseprozesses ist es möglich, Zeichen in einer beliebigen Anzahl unterschiedli­ cher Schriften zu erkennen. Durch Verwendung des Schablonen- Anpaßprozesses ist in Verbindung mit dem Merkmalsanalysepro­ zeß ein vernünftiger Dokumentendurchsatz möglich, und zwar ohne die Notwendigkeit einer Schablonenbibliothek.
T. BAYER, K.-H. BLÄSIUS beschreiben in ihrem Aufsatz "Regelgesteuerte Zeichenerkennung und Dokumentklassifikati­ on" Mustererkennung 1987, 9. DAGM-Symposium Braunschweig, Springer-Verlag, Seite 88, eine Kontextanalyse, die den Kon­ text von Einzelzeichen im Text analysiert, um Fehler in der Einzelzeichenklassifikation zu beheben. Ansatzpunkte sind hierbei geometrische Zusammenhänge in Layoutstrukturen, die etwa eine Korrektur von Groß- in Kleinbuchstaben erlauben oder unsichere Klassifikationsergebnisse zu sicheren Ent­ scheidungen umformen. Mit N-Grammen und Wörterbüchern lassen sich die Textinhalte auf orthographische Fehler oder Segmen­ tierfehler untersuchen und verbessern.
Erfindungsgemäß wird von einem Kontext-Analyseprozeß Ge­ brauch gemacht, der räumliche Informationen über die Text­ zeilen sowie genuine Attribute der Schriftzeichen verwendet.
Das Zeichen-Erkennungsverfahren wird durch eine iterati­ ve Auflösung von Mehrdeutigkeiten in der Form vervollstän­ digt, wodurch die Zahl der typographischen oder seman­ tischen (Schreib- oder Bedeutungs-)Fehler minimiert wird. Die restlichen Unstimmigkeiten werden als Identifizierungen auf geringem Zuverlässigkeitsniveau gekennzeichnet.
Angegeben werden außerdem einige Techniken zur Erzeugung einer Schablonenübereinstimmung, z. B. die Erzeugung von Darstellun­ gen von Zeichen mit Bits in einem Bit-mapped Bild des Zei­ chens, die für das zu erkennende Zeichen dunkel- oder ausge­ schaltet sein müssen, sowie zur Erzeugung von Darstellungen mit Bits, die ein- oder hellgeschaltet sein müssen. Diese Technik ermöglicht die Erkennung von Zeichen innerhalb gewis­ ser Toleranzen. Außerdem wird ein Verfah­ ren zur Zeichenerkennung unter Verwendung von Zeichenschablo­ nen (character templates) für den Fall beschrieben, daß Zeichen eng zusam­ mengerückt sind.
Außerdem wird die Verwendung mehrerer Routinen bei dem Merk­ malsanalyseprozeß beschrieben. Jede dieser Routinen dient der Erkennung einer Zeichenform. Angegeben werden Verfahren zur Beschreibung von Zeichen mit statistischer Information und zur Anpassung von Polygonen an verschiedene Erscheinungsformen des Zeichens. Auf der Basis dieser statistischen Information und der Polygone können Merkmalsanalyseprozesse die Formen der Zeichen erkennen.
Beschrieben werden außerdem Verfahren zur Unterscheidung von Text und Graphik auf einem Dokument. Während einer Dokumenten­ verarbeitung zum Zwecke der Zeichenerkennung werden Graphik enthaltende Zonen eines Dokuments identifiziert, die während des Erkennungsprozesses außer Betracht bleiben.
Angegeben werden auch Möglichkeiten zur Messung der relativen Beschaffenheit, Struktur bzw. Textur kleiner Zonen des Doku­ ments, um festzustellen, ob die Zone Text oder Graphik ent­ hält.
Im folgenden wird die Erfindung anhand von in der Zeichnung schematisch dargestellten Ausführungsbeispielen näher erläu­ tert. In der Zeichnung zeigen:
Fig. 1 ein Gesamtablaufdiagramm des optischen Zei­ chen-Erkennungsverfahrens;
Fig. 2(a) ein Ablaufdiagramm eines Gesamt-Parsingver­ fahrens bei dem optischen Zeichen-Erkennungs­ verfahren gemäß Fig. 1;
Fig. 2(b) ein Ablaufdiagramm eines Seiten-Parsingver­ fahrens;
Fig. 2(c) ein Ablaufdiagramm eines Block-Parsingverfah­ rens;
Fig. 2(d) ein Ablaufdiagramm eines Zeilen-Parsingver­ fahrens;
Fig. 3(a) einen Teil einer Seite, wie sie mit dem be­ schriebenen Zeichen-Erkennungsverfahren ver­ arbeitet werden kann;
Fig. 3(b) ein Bit-mapped Bild des Teils der Seite gemäß Fig. 3(a);
Fig. 4 ein Ablaufdiagramm eines Verfahrens zur Er­ zeugung eines Text-Map-Feldes;
Fig. 5 ein Ablaufdiagramm eines Verfahrens zur Ent­ zerrung einer Seite;
Fig. 6 ein Ablaufdiagramm eines Verfahrens zur Loka­ lisierung von Wegen auf einer abgetasteten Seite;
Fig. 7 ein Blockdiagramm, das zwei Datenstrukturen darstellt;
Fig. 8 ein Ablaufdiagramm eines Verfahrens zur Loka­ lisierung von Blöcken;
Fig. 9 eine erste Seitenabbildung, unterteilt in mehrere Blöcke;
Fig. 10(a) eine zweite Seitenabbildung, unterteilt in mehrere Blöcke;
Fig. 10(b) eine zweite Darstellung der zweiten Seitenab­ bildung, wie sie abgetastet werden kann;
Fig. 11(a) ein Gesamtablaufdiagramm eines Zeichen-Erken­ nungsverfahrens, das bei der Erfindung ver­ wendbar ist;
Fig. 11(b) ein Ablaufdiagramm eines Schablonenanpaßpro­ zesses;
Fig. 12(a) eine Darstellung eines Bit-mapped Bildes eines Zeichens;
Fig. 12(b) eine Darstellung einer zweiten Version des Bit-mapped Bildes eines Zeichens;
Fig. 13 ein Ablaufdiagramm eines Merkmalsanalysepro­ zesses;
Fig. 14(a) eine Darstellung eines ersten Zeichenfen­ sters;
Fig. 14(b) eine Darstellung eines zweiten Zeichenfen­ sters;
Fig. 14(c) ein Polygonanpaßverfahren; und
Fig. 15 ein Ablaufdiagramm eines Kontext-Analysepro­ zesses.
In der folgenden Beschreibung werden zahlreiche Einzelheiten, wie Pixeldichten, Bytegrößen usw. angegeben, um das Verständ­ nis für die Erfindung zu vertiefen. Es ist jedoch für den Fachmann klar, daß die Erfindung auch ohne diese besonderen Einzelheiten realisiert werden kann. In anderen Fällen werden bekannte Schaltungen, Strukturen und Techniken nicht im ein­ zelnen beschrieben, um die Erfindung nicht mit unnötigen Er­ läuterungen zu belasten.
Im folgenden wird auf Fig. 1 Bezug genommen. Dort ist ein Gesamtablaufdiagramm des erfindungsgemäßen Verfahrens gezeigt. Erfindungsgemäß wird zunächst eine Seite abgetastet, Block 101. Wie beschrieben werden wird, ist die Erfindung zum Tren­ nen und Übersetzen des Textes auf einer Seite nicht nur dann in der Lage, wenn die Seite ausschließlich Text enthält, son­ dern auch dann, wenn die Seite eine Kombination von Text- und sonstigen Zonen enthält. Außerdem braucht die Erfindung keine manuellen Eingriffe zur Anzeige der normalen Reihenfolge des Lesens des Textes.
Nach dem Abtasten der Seite wird die Seite geparst (syntaxana­ lisiert), Block 102. Das Parsing der Seite wird weiter unten genauer beschrieben und kann generell in die Funktionen des Seiten-Parsing, des Block-Parsing und des Zeilen-Parsing un­ terteilt werden. Nach dem Parsing der Seite werden die Formen der einzelnen Zeichen mit Hilfe eines Zeichen-Erkennungspro­ zesses, Block 103, festgestellt. Die Erfindung ist in der Lage, Zeichen einer beliebigen Anzahl von Schriftarten zu erkennen.
Ein als Kontextanalyse bezeichneter Vorgang dient zur Prüfung der relativen Größen und Positionen der während des Zeichen- Erkennungsprozesses festgestellten Formen, um den Text in Worte zu unterteilen und Unsicherheiten der Form zu klären, Block 104.
Schließlich werden die erkannten Zeichen für die Ausgabe for­ matiert, Block 105.
SCANNER
Das beschriebene Verfahren und die Einrichtung sind in der bevorzugten Ausführung so konzipiert, daß sie in Verbindung mit im Handel erhältlichen Mikroprozessoren mit 32-Bit-Adreß­ räumen arbeiten. Beispiele für solche Mikroprozesoren sind die unter den Warenzeichen Motorola 68020 und Intel 80386 erhält­ liche Mikroprozessoren.
Es ist für den Fachmann klar, daß die Erfindung mit einer beliebigen Anzahl durchaus unterschiedlicher Computersysteme mit einem Prozessor und einem Speicher realisiert werden kann.
Als Scanner kann einer der verschiedenen bekannten Scanner oder ein zukünftig noch zu entwickelnder Scanner eingesetzt werden. Die Erfindung ist konzipiert dafür, daß sie in Verbin­ dung mit einem Scanner arbeitet, der eine Seite gedruckter Information abzutasten vermag und ein Bit-mapped Bild der Seite erzeugt. Vorzugsweise können bei der Erfindung preisgün­ stige optische Scanner in Verbindung mit ebenfalls preisgün­ stigen Personal Computersystemen verwendet werden, um das optische Zeichen-Erkennungssystem kostengünstig und wirt­ schaftlich zu machen.
PARSING
Nach der Abtastung einer Seite wird ein Bit-mapped Bild der Seite im Speicher eines Computersystems oder in anderen zur Speicherung von Bit-mapped Bildern geeigneten Systemen gespei­ chert. Gemäß Fig. 2(a) beginnt der Parsing-Prozeß mit dem Seitenparsing, Block 201. Der Seiten-Parsingvorgang arbeitet an dem Bit-mapped Bild und teilt die Seite in eine Vielzahl von Blöcken. Beim Seiten-Parsingprozeß wird versucht, die nicht-leeren Teile der Seite in eine Vielzahl von Blöcken zu unterteilen und zwischen Text und nicht-Text oder Graphik zu unterscheiden. Mit dem Seiten-Parsing wird versucht, sicherzu­ stellen, daß ein einzelner Block entweder nur Text oder nur nicht-Text enthält. Nicht-Text-Blöcke werden von der Weiter­ verarbeitung ausgeschlossen.
Bei dem Seiten-Parsingprozeß, Block 201, wird die Struktur oder Textur des abgetasteten Bildes zum Trennen von Text und Graphik und zur Feststellung des Vorhandenseins von Spalten und Kopfzeilen analysiert. Auf der Basis eines normalisierten, zweidimensionalen Maßstabs der örtlichen Dichte von schwarz- weiß-Übergängen werden Bereiche auf der Seite entweder als Graphik, als Text oder als Linien charakterisiert. Die Be­ reiche werden dadurch in Blöcke gruppiert, daß Wege von weißen Räumen gefunden werden, die Bereiche ähnlicher Textur oder Beschaffenheit (z. B. mit ähnlicher Dichte von schwarz-weiß- Übergängen) umgeben. Wenn sie nicht durch Linien oder über­ große weiße Räume getrennt sind, werden benachbarte Blöcke mit ähnlichen Beschaffenheits- und Strukturcharakteristiken und Ausrichtung zusammengefaßt. Der Seiten-Parsingprozeß, Block 201, analysiert danach die relative Lage von Blöcken, um fest­ zustellen, welche Blöcke andere Blöcke nach Zeilenhöhe, Block­ breite und Vertikalposition auf der Seite überlappen. Der Seiten-Parsingprozeß kann danach eine vernünftige Interpreta­ tion des Seitenlayout konstruieren. Die endgültige Ausgabe des Seiten-Parsingprozeßblocks 201 ist ein geordneter Satz von Blockdeskriptoren, welche die normale Lesefolge nachzeichnen, die durch das ermittelte Seitenlayout impliziert wird.
Ein Block-Parsingprozeßblock 202 analysiert die schwarz-weiß- Übergänge zur Berechnung des Grades des Versatzes (skew) und zur Lokalisierung horizontaler Wege, welche einen vorgegebenen Textblock in einzelne Textzeilen unterteilen. Der Block-Par­ singprozeß, Block 202, bestimmt Vertikallinien und eliminiert die Linien von der weiteren Verarbeitung.
Der Zeilen-Parsingprozeß, Block 203, sucht jede Zeile von links nach rechts ab und lokalisiert vertikale Freiräume. Derartige vertikale Freiräume trennen typischerweise einzelne Worte und Zeichen voneinander. Die von Leerstellen bzw. Freiräumen ge­ trennten Abschnitte werden vom linken Ende jeder Zeile aus verarbeitet und für die Erkennungsroutinen in einen Puffer übertragen.
Ein Zeichen-Erkennungsalgorithmus, Block 103, verarbeitet die gepufferten Abschnitte und versucht, einzelne Zeichen zu er­ kennen. Wie genauer unter Bezugnahme auf den Zeichen-Erken­ nungsverarbeitungsabschnitt erläutert werden wird, werden unerkannte Zeilenabschnitte einer Anzahl von Verarbeitungs­ schritten unterworfen, um eine Zeichenerkennung zu erreichen. Ein "Delinierungs"-Verfahren lokalisiert und löscht Unter­ streichungen und horizontale Striche für die Zei­ chenerkennung. Ein "Entschnörkelungs"-Prozeß scheidet Zeichen aus, welche durch gewundene Freiräume getrennt sind. Ein "Ab­ schwächungs"-Prozeß löscht "Pfeffer und Salz"-Hintergrund­ strukturen. Ein "Ausdünnungs"-Prozeß wirkt einer übermäßigen Komprimierung der Zeichen entgegen und macht die Zeichen er­ kennbar. Ein "Flick"-Prozeß bessert leicht unterbrochene Zei­ chenformen aus. Zeilenabschnitte, die auch danach noch uniden­ tifiziert bleiben, werden in einem Zurückweisungs-Cachespei­ cher zur späteren Verarbeitung durch einen "Seitenanpaß"-Pro­ zeß und einen Kontext-Analyseprozeß, Block 104, gepuffert.
SEITEN-PARSING
Im folgenden wird auf Fig. 2(b) Bezug genommen, in der ein Ablaufdiagramm des Seiten-Parsingprozesses genauer dargestellt ist. Zweck des Seiten-Parsingprozesses ist die Annahme des Bit-mapped Seitenbildes als Eingabe und die Erzeugung einer geordneten Liste von Textblöcken als Ausgabe. Nach dem Abta­ sten einer Seite wird eine Bit-mapped Abbildung der Seite erzeugt. Aus dieser Bit-mapped Abbildung werden drei Felder erzeugt, Block 212.
Bei dem bevorzugten Ausführungsbeispiel wird das Seitenbild mit einer Auflösung von 300 Punkten pro Zoll abgetastet, und der Parsing-Prozeß erzeugt seine Felder durch Analysieren jeder achten Abtastzeile des Bildes bzw. der Abbildung der Seite. Es wurde experimentell festgestellt, daß die Abtastung der Seite an jeweils der achten Abtastzeile (alle 8/300 eines Zolls bei dem beschriebenen Ausführungsbeispiel) eine ausrei­ chend gute Auflösung zur Lokalisierung und Einordnung von besetzten Bereichen auf der Seite ergibt. Die Verwendung nur jeweils der achten Abtastzeile des Bildes reduziert die Pro­ zeßzeit und die Speicheranforderungen beträchtlich. Es ist jedoch für den Fachmann klar, daß andere Abtastzyklen im Rah­ men der Erfindung verwendet werden können.
Im folgenden wird auf Fig. 3(a) Bezug genommen, in der ein vergrößerter Bereich einer Seite 300 gezeigt ist. Der Bereich der Seite 300 stellt eine Zone einer Seite dar, die bei dem beschriebenen Ausführungsbeispiel in vierzig Zeilen abgetastet ist. Jedes der Quadrate, beispielsweise Quadrat 301, stellt eine Zone von acht Abtastzeilen Höhe und acht Bits Breite dar. Der dargestellte Bereich der Seite 300 ist fünf Quadrate hoch und vier Quadrate breit.
In Fig. 3(b) ist ein Bit-mapped Bild desselben Bereichs einer Seite gezeigt. Fig. 3(a) und 3(b) sind charakteristisch für ein bei optischen Zeichen-Erkennungssystemen auftretendes Problem. Bei derartigen Systemen kann ein Buchstabe, bei­ spielsweise der Buchstabe "O" 302 in Fig. 3(a) durch eine relativ grobe Annäherung des Buchstabens "O", z. B. durch die Darstellung 312 in Fig. 3(b) repräsentiert werden. Darüberhin­ aus können Text und Graphikelemente auf einer einzigen Seite vermischt sein. So ist beispielsweise das graphische Bild 303 mit dem Text in Fig. 3(a) vermischt. Die äquivalente Bit-map­ ped Zone ist bei 313 gezeigt. Es ist für den Fachmann klar, daß Bilder unter weiteren Problemen der Klarheit und der Schärfe als Folge der Transformation in eine digitale Bit-map­ ped Abbildung leiden können.
Ein durch den Seiten-Parsingprozeß des beschriebenen Ausfüh­ rungsbeispiels erzeugtes erstes Feld ist ein horizontales Po­ pulationszählfeld. Jedes Element in diesem Feld enthält einen Zählwert der Zahl von Eins("1")-Bits aus vier aufeinanderfol­ genden Bytes (32 Bits aus einer abgetasteten Scanzeile). Daher ist die durch jedes Element dieses Feldes dargestellte Zone 32 Bits breit und 8 Bits hoch. Bezugnehmend auf Fig. 3(b), haben die 32 Bits in der Abtastzeile 320 vierzehn 1-Bits. Daher wird der 8-Bit-hohe mal 32-Bit-breite Bereich in den Blöcken 331, 332, 333, 334 in dem horizontalen Populationszählfeld durch ein den Wert 14 enthaltendes Element dargestellt, dem Gesamt­ zählwert der 1-Bits in der Abtastzeile 320. Die Abtastzeile 321 hat null 1-Bits, Zeile 322 hat neun 1-Bits, Zeile 323 hat fünf 1-Bits und Zeile 324 hat sechsundzwanzig 1-Bits, und jede dieser 8-Bit hohen mal 32-Bit breiten Zonen werden im Horizon­ talpopulationszählfeld mit entsprechenden Werten dargestellt.
Ein zweites Feld, das bei dem beschriebenen Ausführungsbei­ spiel der Erfindung verwendet wird, ist ein Vertikalpopula­ tionszählfeld. Jedes Byte im Vertikalpopulationszählfeld ent­ hält die Gesamtzahl von Eins ("1")-Bits in vier Bytes, wobei ein Byte aus jeder der vier aufeinanderfolgend abgetasteten Scan-Zeilen resultiert. Beispielsweise kann eine Eingabe im Vertikalpopulationszählfeld Byte 340, 341, 342 und 343 dar­ stellen und einen Wert von 4 haben (Byte 340 hat zwei 1-Bits, Byte 341 hat null 1-Bits, Byte 342 hat zwei 1-Bits und Byte 343 hat null 1-Bits). Bei dem beschriebenen Ausführungsbei­ spiel enthält das Vertikalpopulationszählfeld eine Matrix, in der Zeilen der Matrix die Spalten des Bit-mapped Bildes und Matrixspalten Zeilen des Bit-mapped Bildes darstellen. Dies führt zu einer effizienten Verarbeitung bei der Implementie­ rung des bevorzugten Ausführungsbeispiels.
Ein drittes Feld bzw. eine dritte Matrix bei dem Seiten-Par­ singprozeß des beschriebenen Ausführungsbeispiels ist ein horizontales Phasenänderungsfeld. Jede Eingabe dieses Feldes stellt 32 Bits einer Abtastzeile dar, so daß das horizontale Phasenänderungsfeld die gleichen Abmessungen wie das horizon­ tale Populationszählfeld hat. Jedes Feldelement enthält die Zählung der horizontalen Phasenänderungen (Übergänge zwischen Durchläufen von Einsen und Durchläufen von Nullen) in den 32 Bits. Die durch jedes Element des horizontalen Phasenände­ rungsfeldes dargestellte Zone ist 32 Bits breit und 8 Bits hoch. So haben beispielsweise die 32 Bits in Zeile 320 sieben Übergänge von Einsen zu Nullen oder von Nullen zu Einsen, die 32 Bits in Zeile 321 haben keine Übergänge, die 32 Bits in Zeile 322 haben acht Übergänge, die 32 Bits in Zeile 323 haben zwei Übergänge und die 32 Bits in Zeile 324 haben zwei Über­ gänge.
Auf der Basis der horizontalen Populationszähl- und horizonta­ len Phasenänderungsfelder wird ein Text-map-Feld erzeugt, Block 213. Jedes Element des Text-map-Feldes stellt einen Bereich von 32 Bits Breite mal 8 Bits Höhe dar.
Im folgenden wird auf Fig. 4 Bezug genommen, in der ein Abl­ aufdiagramm zum Konstruieren des Text-map-Feldes dargestellt ist. Das Text-map-Feld wird durch einen Prozeß aufgebaut, der jede Spalte des Horizontalpopulationszählfeldes abwärts abta­ stet, um nach einem nicht-Null-Element zu suchen, Block 401. Ein nicht-Null-Element im horizontalen Populationszählfeld zeigt das Vorhandensein von Text, Graphik oder Linien im ent­ sprechenden Feld des Bit-mapped Bildes an. Nach Auffinden eines nicht-Null-Elements läuft der Prozeß in der Spalte des Horizontalpopulationszählfeldes abwärts und sucht nach einem Null-Element. Bei jedem verarbeiteten Element in einem Durch­ lauf von nicht-Null-Elementen werden die entsprechenden Hori­ zontalphasenänderungszählungen summiert. Der Prozeß zählt auch die Gesamtanzahl von Elementen in einem Durchlauf von nicht- Null-Elementen, Block 402.
Wenn die Zahl von Zeilen in einem Durchlauf größer oder gleich 2 und kleiner oder gleich 12 ist, Zweig 403, und die Summe der Phasenänderungen größer oder gleich 8 und kleiner oder gleich 22 ist, Zweig 404, hat die entsprechende Zone des Bit-mapped Bildes die Struktursignatur eines Textbereichs. Die Text-map- Feldelemente entsprechend jedem der Zeilenelemente im Durch­ lauf werden auf einen Code gesetzt, der angibt, daß eine Text­ zone vorliegt, Block 405. Bei dem beschriebenen Ausführungs­ beispiel werden diese Elemente auf einen Wert von TXTX ge­ setzt.
Wenn der Zeilenzählwert nicht größer als oder gleich 2 und kleiner als oder gleich 12 ist, Zweig 406, wird eine Prüfung durchge­ führt, um festzustellen, ob der Zeilenzählwert größer als oder gleich 24 ist, Zweig 407. Wenn der Zeilenzählwert größer gleich 24 ist, enthält die entsprechende Zone des Bit-mapped Bildes eine Vertikallinie. Die Text-map-Feldelemente ent­ sprechend den Horizontalpopulationszählelementen im Durchlauf werden auf einen Wert gesetzt, der eine Vertikallinie bezeich­ net, Block 408. Bei dem beschriebenen Ausführungsbeispiel werden diese Elemente auf einen Wert von TXVR gesetzt.
Wenn die Zeilenzählung kleiner als 2 oder zwischen 12 und 24 ist, Zweig 409, ist dies ein Zeichen dafür, daß Graphik vor­ handen ist. Die entsprechenden Text-map-Feldelemente werden auf einen Wert gesetzt, der das Vorhandensein von Graphik anzeigt, Block 410. Bei dem beschriebenen Ausführungsbeispiel werden diese Elemente auf einen Wert von TXGR gesetzt.
Wenn die Zeilenzählung zwischen 2 und 12 liegt, der Phasen­ änderungszählwert jedoch entweder kleiner als 8 oder größer als 22 ist, Zweig 411, wird ebenfalls das Vorhandensein von Graphik angezeigt. Die korrespondierenden Text-map-Feldelemen­ te werden auf den Code eingestellt, der angibt, daß die ent­ sprechenden Bits des Bit-mapped Seitenbildes Graphik enthal­ ten, Block 412.
Wenn das Ende des Horizontalpopulationszählfeldes noch nicht erreicht worden ist, Zweig 413, wird die spaltenweise Verar­ beitung fortgesetzt, wobei nach dem nächsten nicht-Null-Ele­ ment gesucht wird, Block 401. Anderenfalls wird der Prozeß beendet, Zweig 414.
Es wurde experimentell festgestellt, daß der obige Prozeß ein ziemlich genaues Bild darüber ergibt, ob die Zonen der Bit- mapped Abbildung Text, Graphik oder vertikale Linien enthal­ ten. Typischerweise treten die Zeichen in einem gewöhnlichen Text in einem weiten Höhenbereich auf, der normalerweise 2 bis 12 abgetastete Scannerzeilen einnimmt. Daher prüft der oben beschriebene Prozeß Durchlaufzeilenzählwerte von nicht-Null- Elementen im Bereich von 2 bis 12 Zeilen.
Es wurde außerdem experimentell festgestellt, daß die Gesamt­ anzahl von Phasenänderungen in einem vorgegebenen Durchlauf von nicht-Null-Elementen über einen Zeichengrößenbereich von angenähert 4 bis 24 Punkten im wesentlichen konstant bleibt, obwohl Zeichen mit größeren Höhen weniger Phasenänderungen pro Abtastung als Zeichen geringerer Höhe haben. Daher ist bei dem beschriebenen Ausführungsbeispiel ein Phasenänderungsgesamt­ zählwert bei einem Durchlauf von nicht-Null-Elementen im hori­ zontalen Populationszählfeld zwischen 8 und 22 ein Indikator für gedruckten Text.
Der Seiten-Parsing-Prozeß macht dann einen anderen Durchlauf und versucht, einen relativ großen Text zu lokalisieren, Block 214. Der Vorgang zum Lokalisieren eines großen Textes läuft im wesentlichen ebenso wie der zuvor beschriebene Vorgang des Aufbaus des Text-map-Feldes ab, ausgenommen, daß der Vorgang zum Lokalisieren eines großen Textes jede vierte Scanzeile und jedes vierte Element in dem Phasenänderungsfeld prüft. Daher sucht die Routine für großen Text in dem Bit-mapped Bild mit 1/4 der Auflösung des Prozesses zum Lokalisieren eines Textes normaler Größe und identifiziert Text bis zu einer vierfachen Größe des Normaltextes. Bei dem beschriebenen Ausführungsbei­ spiel ist der größte, mit dieser Routine auffindbare Text 48 Abtastzeilen hoch. Bei 300 Abtastzeilen pro Zoll entspricht dies einem Text einer Höhenabmessung von 3,25 cm oder etwa 92 Punkten. Text-Map-Feldzellen entsprechend den Zonen in der Bit-mapped Seitenabbildung, in denen ein großer Text mit dem zuvor beschriebenen Prozeß gefunden wurde, werden auf einen Wert eingestellt, der einen Großtextinhalt kennzeichnet. Bei dem beschriebenen Ausführungsbeispiel ist dieser Wert TXTH.
In dem Seiten-Parsing Prozeß wird versucht, Blöcke mit nur- Text von ganz weißen Blöcken, Graphik enthaltenden Blöcken oder Blöcken mit vertikalen Linien zu trennen. Als Teil dieses Prozesses wird bei dem beschriebenen Ausführungsbeispiel in einem Seiten-Parsing Prozeß versucht, den ungefähren Schräg­ fehler bzw. Versatz (skew) der Seite zu bestimmen und das Text-Map-Feld sowie das Vertikalpopulationszählfeld auf einen derartigen Schrägfehler einzustellen, Block 215.
Im folgenden wird auf Fig. 5 Bezug genommen, in der ein Ab­ laufdiagramm des bei dem beschriebenen Beispiel benutzten Verfahrens zur Entzerrung einer Seite dargestellt ist. Zu­ nächst werden Gesamtschrägfehler- und Abtastzählungsvariable auf Null initialisiert, Block 501.
Im Text-Map-Feld wird danach jede Spalte abwärts abgetastet, um nach zusammenhängenden Textzellen zu suchen, Block 502. Wenn zusammenhängende Textzellen lokalisiert sind, wird eine erste Variable, die benutzt wird, wenn Zellen links der derzeitigen Textzelle (LEFT) geprüft werden, auf -1 gesetzt. Eine zweite Variable, die benutzt wird, wenn Zellen rechts der derzeitigen Textzelle (RIGHT) geprüft werden, wird auf 1 gesetzt, Block 503.
Für jede Textzelle, die der ersten Textzelle im Durchlauf folgt, werden Zellen links und rechts der Textzelle im Text- Map-Feld geprüft. Wenn die Zelle links leer ist (d. h. die Zelle ist nicht als Text-, Graphik- oder Vertikallinien ent­ haltende Zelle angegeben, wobei die o. g. TXTX, TXVR, TXTH oder TXGR-Codes verwendet werden), so wird die Gesamtschrägfehler­ -Variable um den Istwert von LEFT inkrementiert, und die Ab­ tastzählvariable wird um 1 inkrementiert. Ist die Zelle be­ setzt (enthält sie TXTX, TXVR, TXTH oder TXGR), so wird LEFT auf 1 gesetzt und die Gesamtschrägfehler-Variable und die Abtastzählwert-Variable werden nicht modifiziert, Block 504. Wenn die Zelle im Text-Map-Feld rechts von der derzeitigen Zelle leer ist, so wird die Gesamtschrägfehler- bzw. Gesamt­ verzerrungsvariable um den Wert von RIGHT inkrementiert, und die Abtastzählwert-Variable wird um 1 inkrementiert. Wenn die Zelle besetzt ist, wird RIGHT of -1 gesetzt, und die Gesamt­ schrägfehler-Variable und Abtastzählwert-Variable werden nicht modifiziert, Block 505.
Wenn mehrere Zellen beim Durchlauf der Textzellen vorhanden sind, werden die Blöcke 504 und 505 für diese weiteren Zellen wiederholt, Zweig 506. Anderenfalls, wenn mehrere Zellen im Text-Map-Feld sind, Zweig 507, werden sie in einem anderen Durchlauf der Textzellen abgetastet, Zweig 508. Nach dem Prüfen der gesamten Textabbildung (Text- Map), Zweig 509, wird ein angenäherter Schrägfehler für die Seite berechnet, und das Text-Map-Feld und das vertikale Po­ pulationszählfeld werden verschoben, um die berechnete Verzer­ rung bzw. den berechneten Schrägfehler zu kompensieren, Block 510. Der angenäherte Schrägfehler wird dadurch berechnet, daß man die Gesamtschrägfehler-Variable durch die Abtastzählung teilt. Dieser Vorgang führt zu einer Annäherung des Schrägfeh­ lers für die Seite als Anzahl der Zeilen pro 4096 Spalten. Die Text-Map- und Vertikalpopulationszähl-Felder werden danach ausgerichtet.
Bei dem oben beschriebenen Verfahren der Schrägfehlerjustie­ rung wird unterstellt, daß der Text auf einer Seite generell in horizontalen Zeilen auf der Seite angeordnet ist. Das Text- Map-Feld, das erfindungsgemäß gewonnen wird, hat eine gute Verti­ kalauflösung (bis 1/38 eines Zolls). Wenn eine Seite einen Schrägfehler hat, so treten Leerzellen an Stellen auf, die eigentlich Textzellen einnehmen müßten. Das oben beschriebene Verfahren macht diese Annahmen nutzbar, um den angenäherten Schrägfehler zu bestimmen.
Nach der Einstellung einer angenäherten Schräglage werden horizontale und vertikale Verläufe weißer Stellen im Text lokalisiert, Block 216. Zweck der Lokalisierung dieser Leer­ stellenverläufe ist die Trennung von Textblöcken. Bei dem beschriebenen Ausführungsbeispiel wird das entzerrte Text-map- Feld nach horizontalen Leerstellenverläufen bzw. horizontalen weißen Zwischenräumen geprüft (Leerstellen oder weiße Räume können als Zellen im Text-map-Feld definiert werden, die nicht mit TXTX, TXVR, TXTH oder TXGR codiert sind). Das erfindungs­ gemäße Verfahren betrachtet eine Zone als horizontalen Weg, wenn ein weißer oder freier Raum existiert, der wenigstens 8 Pixel breit und 192 Pixel in Horizontalrichtung der Seite lang ist. In ähnlicher Weise werden vertikale Leerraumverläufe oder Wege unter Verwendung des Text-map-Feldes lokalisiert. Bei dem bevorzugten Ausführungsbeispiel der Erfindung wird eine Zone als vertikaler Weg angesehen, wenn er einen Weißraum- oder Leerraumbereich von wenigstens 16 Pixel Breite und 192 Pixeln Länge in der Vertikalrichtung der Seite hat. Die oben genann­ ten Längen- und Breitenabmessungen für horizontale und verti­ kale Wege wurden auf experimentellem Wege von der Anmelderin bestimmt, um horizontale und vertikale Wege durch gedruckten Text zu lokalisieren.
Im folgenden wird auf Fig. 6 Bezug genommen, in der ein Abl­ aufdiagramm eines Verfahrens zur Lokalisierung von Wegen durch den Text dargestellt ist. Als erster Schritt bei der Lokali­ sierung von Wegen wird ein Verfahren verwendet, durch das obere, untere, linke und rechte Ränder der Seite effektiv ignoriert werden, Block 601.
Bei dem bevorzugten Ausführungsbeispiel der Erfindung erfolgt eine Maskierung der Ränder durch Erzeugung einer Version des Vertikalpopulationszählfeldes, bei der jede Zelle des Verti­ kalpouplationszählfeldes eine 32 × 32 Pixel-Quadratzone des ursprünglichen Bit-mapped Bildes darstellt. Effektiv stellt jede Zelle in dieser Version des Vertikalpopulationszählfeldes vier aufeinanderfolgende Zellen in einer Spalte des ursprüng­ lichen Vertikalpopulationszählfeldes dar. Die komprimierte Version des Vertikalpopulationszählfeldes wird sodann "ver­ wischt".
Diese Technik wird bei der Erfindung benutzt, um ein Bild in einer Anzahl von Richtungen zu verschieben und eine logische ODER-Operation an dem ursprünglichen Bit-mapped Bild und dem verschobenen Bit-mapped Bild durchzuführen. Im Ergebnis expan­ diert diese Methode Text oder Graphik enthaltende Bereiche, während die dazwischenliegenden Räume und Grenzbereiche enger gemacht werden. Die restlichen weißen Randbereiche werden für das Weg-Auffindungsverfahren im Vertikalpopulationszählfeld als nicht-verfügbar markiert. Diese Methode wird unter Bezug­ nahme auf die Beschreibung der Zeichenerkennung weiter unten genauer beschrieben.
Danach wird ein Feld, genannt Weg-map-Feld, zur Speicherung der horizontalen und vertikalen Weginformationen erzeugt, Block 602. Das Weg-map-Feld hat dieselbe Auflösung wie das Text-map-Feld. Jede Spalte stellt 32 Bits der aufgenommenen Scanlinie dar und jede Zeile stellt eine Abtastung bei jeder achten Scanzeile des Bildes dar. In dem Weg-map-Feld wird die Existenz eines horizontalen Weges durch Setzen der Bits in einem Eintrag im Feld angezeigt. Das Vorhandensein eines ver­ tikalen Weges wird durch Setzen eines anderen Bits im Eintrag gekennzeichnet.
Bei dem beschriebenen Ausführungsbeispiel wird als erster Schritt bei dem Aufbau des Weg-map-Feldes für ein Setzen der am weitesten links und rechts gelegenen Spalten und der ober­ sten und untersten Zeilen des Weg-map-Feldes gesorgt, um das Vorhandensein von Wegen anzuzeigen. Dieser Schritt stellt sicher, daß ein Weg, der in den Rand einer Seite mündet, einen Block erzeugt. Bei vollständiger Besetzung umrandet das Weg- map-Feld sowohl Text- als auch Graphikblöcke mit horizontalen und vertikalen Wegen (Freiräumen).
Nach der Erzeugung der Weg-map und der Initialisierung der am weitesten links und rechts gelegenen Spalten und obersten und untersten Zeilen der Weg-map werden horizontale Wege erzeugt, Block 603. Jede Zeile des Text-map-Feldes wird nach aufeinanderfolgenden leeren Einträgen (d. h. Einträgen, die nicht auf TXTX, TXVR, TXTH oder TXGR gesetzt sind) abgetastet. Wenn eine Folge eine Länge von wenigstens einer vorgegebenen Anzahl von Bytes hat, werden die horizontalen Wegbits in den entsprechenden Einträgen im Weg-map-Feld gesetzt. Bei dem beschriebenen Ausfüh­ rungsbeispiel ist die vorgegebene Anzahl von Bytes 6. Jeder horizontale Weg, der unter Verwendung dieser Methode gefunden wird, wird sowohl um eine Spalte nach links von dem horizonta­ len Weg als auch um eine Spalte nach rechts von dem horizonta­ len Weg ausgedehnt. Dies stellt sicher, daß die horizontalen Wege an den Blockrändern in vertikale Wege selbst dann über­ gehen, wenn sie aus Graphiken oder Kopfzeilen innerhalb von 32 Pixeln links oder rechts vom Rand des Blocks bestehen.
Danach wird das Text-map-Feld abgetastet, um Vertikallinien aufzufinden (d. h. Einträge, welche auf TXVR gesetzt sind), Block 604. Die entsprechenden Eingaben im Weg-map-Feld haben ein gesetztes Bit, das anzeigt, daß es eine vertikale Linie an dieser Stelle in der Abbildung gibt. Dieses Bit wird bei einer späteren Verarbeitung geprüft, bei der relativ enge Wege aus dem Weg-map-Feld eliminiert werden.
Als nächstes werden vertikale Wege in dem Weg-map-Feld er­ zeugt, Block 605. Jede Zeile des Vertikalpopulationszählfeldes wird nach aufeinanderfolgenden leeren Einträgen (entries) abgeta­ stet. Wenn eine Folge wenigstens eine vorgegebene Anzahl von Einträgen lang ist, wird sie als möglicher Vertikalweg ange­ sehen. Bei dem beschriebenen Ausführungsbeispiel ist die vor­ gegebene Anzahl gleich 6. Wenn ein Ende eines Vertikalweges nicht mit einem Horizontalweg zusammenfällt, wird der Verti­ kalweg abgebrochen, bis er an beiden Enden mit einem Horizon­ talweg zusammenfällt. Vertikalwege erstrecken sich stets von einer Schnittstelle mit einem Horizontalweg zu einer Schnitt­ stelle mit einem anderen Horizontalweg.
Die Weg-map wird danach geprüft, und alle Vertikalwege, die nur einen Eintrag breit sind, werden entfernt, sofern der Eintrag nicht angibt, daß der Vertikalweg wegen einer entsprechenden Vertikallinie im Bild bzw. in der Abbildung gesetzt wurde. Die Weg-map wird dann wiederum abgetastet, und Abschnitte der horizontalen Wege werden gelöscht, soweit sie nicht in einem Vertikalweg beginnen und enden, Block 606.
Eine Block-Lokalisierungsroutine, Block 217, benutzt zuvor durch den Seiten-Parsing-Prozeß gebildete Datenstrukturen, beispielsweise das Text-map-Feld, und bildet zwei neue Da­ tenstrukturen: ein Block-map-Feld und eine Blockliste.
Im folgenden wird auf Fig. 7 Bezug genommen. Das Block-map- Feld 701 enthält ein Feld mit den gleichen Abmessungen, wie das Text-map-Feld. Jede 1-Byte-Zelle im Block-map-Feld, bei­ spielsweise die Zelle 702, enthält eine Blockzahl für diese Zelle. Zellen, die noch nicht als Teil eines Blockes bezeich­ net worden sind, werden bei dem beschriebenen Ausführungsbei­ spiel mit einer 0 gekennzeichnet. Dabei kann es ein Maximum von 255 Blöcken pro Seitenabbildung geben. Die Blockzahl, beispielsweise die Blockzahl 1 an der Zelle 702, ist ein Hin­ weis in eine Blockliste 703. Jeder Eintrag in der Blockliste enthält Informationen über jeden Block, z. B. Koordinaten des Blocks, Spalte 705, Zellenzählinformationen, Spalte 706, und Abstand zu anderen Blöcken, Spalte 707. Die Koordinateninfor­ mationen 705 enthalten Informationen über die obersten, unter­ sten, am weitesten links und am weitesten rechts gelegenen Pixel. Die Zellenzählinformation 706 enthält Informationen über die Anzahl von Textzellen, die Anzahl großer Textzellen und die Anzahl graphischer Zellen innerhalb der Grenzen des Blocks.
Gemäß Fig. 8, auf die jetzt Bezug genommen wird, enthält der Vorgang des Lokalisierens von Blöcken, d. h. der Vorgang 217 aus Fig. 2, die Schritte einer Block-Auffindungsroutine, wobei zunächst die Spalten der Weg-map abgetastet werden, Block 801. Die Block-Auffindungsroutine tastet jede Zelle der Weg-map nach Zellen ab, welche weder von horizontalen noch von vertikalen Wegen durchquert werden. Nach dem Auffinden einer Zelle, die weder von horizontalen noch von vertikalen Wegen durchquert wird, prüft die Block-Auffindungsroutine die entsprechende Zelle im Block-map-Feld. Wenn die entsprechende Zelle im Block-map-Feld unbesetzt ist, d. h. der derzeitige Wert eine 0 ist, so ruft die Block-Auffindunsroutine eine Block-Zerlegungsroutine auf, Block 802. Die Block-Zerlegungsroutine prüft das Weg-map-Feld der untersuchten Zelle zur Ermittlung vertikaler Wege auf den linken und rechten Seiten dieser Zelle. Die Block-Zerlegungs­ routine tastet danach Zeilen des Weg-map-Feldes ab. Für jede Zeile lokalisiert die Block-Zerlegungsroutine vertikale Wege auf der linken und rechten Seite jeder Zelle über der laufen­ den Zelle. Wenn die Block-Zerlegungsroutine eine Zelle lokali­ siert, deren linker oder rechter Rand entsprechend dem Verlauf der Vertikalwege von dem linken oder rechten Rand der laufen­ den Zelle um mehr als eine Zelle differiert, so erzeugt die Block-Zerlegungsroutine einen horizontalen Weg an dieser Zel­ le. Die Block-Zerlegungsroutine arbeitet sich in ähnlicher Weise in der Spalte der laufenden Zelle abwärts, um die unter­ ste Zeile des derzeitigen Blocks zu bestimmen. Dieser Vorgang erzeugt einen etwa rechteckigen Block, der mit der weiter unten beschriebenen erfindungsgemäßen Methode weiter verarbei­ tet wird.
Nachdem die Block-Zerlegungsroutine die linken, rechten, obe­ ren und unteren Ränder eines etwa rechteckigen Zellenblocks bestimmt hat, schließt sich eine Block-Statistikroutine an, Block 803, die zum Markieren anderer als zu dem gleichen Block gehöriger Zellen verwendet wird. Die Block-Statistikroutine markiert jede Zelle im Block-map-Feld, die von den linken, rechten, obersten und untersten Wegen des aktuellen Blocks als zum aktuellen Block gehörig begrenzt sind. Außerdem zählt die Block-Statistikroutine die Anzahl von Text- und Graphikzellen im aktuellen Block durch Prüfung des Text-map-Feldes. Die relative Anzahl von Textzellen gegenüber Graphikzellen dient zur Feststellung, ob der Block als Text- oder Graphikblock für die Weiterverarbeitung zu klassifizieren ist. Die Block-Sta­ tistikroutine sammelt außerdem Informationen über die mittlere Länge von Folgen belegter Zellen im Text-map-Feld für jede Spalte im Block. Diese Information dient zur Feststellung der angenäherten Höhe der Zeichen in den Textblöcken. Die Block-Statistikroutine bildet außerdem ein Histogramm der Anzahl der Folgen von belegten Zellen in den Spalten des Text-map- Feldes. Der Medianwert in diesem Histogramm ist eine Nähe­ rung für die Anzahl von Textzeilen in dem Block. Die Block-Sta­ tistikroutine berechnet auch die extrem linken, rechten, ober­ sten und untersten Koordinaten des Blocks. Wie oben gesagt, werden die oben angegebenen Koordinaten-, Zählwert- und Sta­ tistikinformationen in der Blockliste gespeichert, Block 703.
Wie oben gesagt, läßt die hier verwendete Blockliste nur 255 Einträge zu. Die Anzahl von Einträgen ist bei dem beschriebenen Ausführungsbeispiel beschränkt, um eine gewisse Verarbeitungs­ effizienz zu ermöglichen. Es ist jedoch für den Fachmann klar, daß eine andere Anzahl von Einträgen in der Blockliste benutzt werden kann, ohne vom Erfindungsgedanken abzuweichen. Bei dem beschriebenen Ausführungsbeispiel wird der Prozeß mit einer größeren Vertikalwegbreite zur Bestimmung der Blockgren­ zen wiederholt, wenn mehr als 255 Blöcke unter Verwendung des zuvor beschriebenen Prozesses ermittelt werden. Es ist außerd­ em klar, daß die Erfindung eine andere Breite für die horizon­ talen und vertikalen Wege vorsehen könnte.
Nach Beendigung der Verarbeitung eines ersten Blocks wird die Block-Auffindungsroutine, Block 801, fortgesetzt, wenn weitere Zellen zur Verarbeitung übrig bleiben, Zweig 804. Nach der Beendigung der Verarbeitung aller Zellen im Block-map-Feld, Zweig 806, ist der Vorgang der Blocklokalisierung beendet.
Danach werden die Blöcke gruppiert, Block 218. Die Blöcke werden entsprechend ihrer Relativanordnung, ihrer Inhalte (Graphik oder Text) und ihrer Textur bzw. Beschaffenheit (Schriftgröße und Zeilenabstand) geordnet. Die Blockgruppie­ rungsinformation wird in einer Gruppenliste aufgezeichnet. Jedem Block in der Blockliste wird eine Gruppennummer zugeord­ net. Die Gruppennummer dient als Index für die Gruppenliste.
Für jeden Block in der Blockliste wird das Block-map-Feld über, unter, links und rechts von dem Block abgetastet. Blöcke, die von unterschiedlicher Art oder Beschaffenheit bzw. Struktur sind, werden nicht zusammengruppiert. Außerdem werden solche Blöcke nicht zusammengefaßt, die mehr als einen vorge­ gebenen Vertikalabstand oder mehr als einen vorgegebenen Hori­ zontalabstand entfernt voneinander angeordnet sind.
Im folgenden wird auf Fig. 9 Bezug genommen, in der ein Bei­ spiel für die Blockgruppierung gezeigt ist. Beispielsweise sind die Blöcke 1, 6 und 11 als Gruppe 1, 901, zusammengefaßt. In dem speziellen Beispiel können diese Blöcke beispielsweise eine Überschrift für die Seite enthalten. Eine Überschrift ist häufig durch höhere Schrifttypen als der Rest des Textes auf der Seite unterschieden. Wegen der unterschiedlichen Schrift­ größe werden diese Blöcke zusammengruppiert und nicht den restlichen Blöcken auf der Seite zugeschlagen.
Blöcke 2, 3, 4 und 5 sind als Gruppe 2, 902, zusammengruppiert. Das erfindungsgemäße Verfahren prüft Blöcke, die einem aktuel­ len Block benachbart sind, um festzustellen, ob der Horizon­ talabstand H 903 größer als sein vorgegebener Wert ist. Bei dem beschriebenen Beispiel ist dieser vorgegebene Wert 6 Zel­ lenspalten. Da der Horizontalabstand H 903 zwischen Block 2 und Block 7 größer als der vorgegebene Horizontalabstands­ grenzwert ist, sind Blöcke 7 und 8 nicht mit Gruppe 1 zusam­ mengruppiert.
Blöcke 7 und 8 sind als Gruppe 3 zusammengefaßt, 904. Blöcke 9 und 10 sind separat von den Blöcken 7 und 8 gruppiert und als Gruppe 4, 906, bezeichnet, da der Vertikalabstand 905 zwischen Block 8 und Block 9 einen vorgegebenen Grenzwert übersteigt. Bei dem beschriebenen Beispiel ist die vorgegebene Grenze für den Vertikalabstand zwischen Blöcken 12 Zellenzeilen. Blöcke 12, 13, 14 und 15 sind als Gruppe 5, 907, zusammengruppiert. Block 16 ist separat als Gruppe 6, 909 gruppiert. Block 16 ist nicht mit Blöcken 12, 13, 14 und 15 gruppiert, da es einen Graphikblock 908 gibt.
Die Erfindung ermöglicht außerdem die Feststellung von Rändern von Spalten auf einer Seite durch Prüfen aufeinanderfolgender Blöcke in Seiten-Abwärtsrichtung, wodurch festgestellt wird, ob der linke Rand jedes Blocks angenähert mit dem darunterlie­ genden Block ausgerichtet ist und ob der Block vertikal inner­ halb eines vorgegebenen Abstands von dem Nachbarblock liegt. Wenn der Block nicht angenähert ausgerichtet mit dem darunter­ liegenden Block ist, oder der Block nicht den vorgegebenen Abstand von seinem Nachbarn hat, wird angenommen, daß die Blöcke nicht in einer Spalte liegen.
Nachdem die Blöcke gruppiert worden sind, wird das Block-map- Feld unter Verwendung der Gruppennummern anstatt der Block­ nummern in jedem Element des Block-map-Feldes wieder aufge­ baut. Dadurch reduzieren sich die nachfolgenden Verarbeitungs­ erfordernisse.
Nach der Beendigung der Blockgruppierung werden die Blöcke für die Ausgabe an die Zeilen-Parsingroutinen, Block 219, geord­ net. Der Zweck der Anordnung der Gruppen für die Ausgabe be­ steht darin, daß Gruppen an die Zeilen-Parsingroutinen in der logischen Ordnung ausgegeben werden, in der sie auch gelesen würden. Im folgenden wird auf Fig. 10(a) Bezug genommen, in der ein Blockdiagramm mit dem Seitenbild bzw. der Seitenabbil­ dung, bestehend aus 7 Textblöcken, gezeigt ist. Die Seitenab­ bildung enthält eine Kopf- oder Überschriftzone 1001 und 3 logische Textspalten.
Als erster Schritt bei der Anordnung von Gruppen für die Aus­ gabe werden die vertikal benachbarten Blockgruppen lokali­ siert. Unter Verwendung der die Lokalisierung von vertikal benachbarten Blöcken betreffenden Informationen wird ein Baum konstruiert, der die Blöcke verknüpft. Jeder Verzweigungspunkt im Baum stellt einen Text- oder Graphikblock dar und enthält Hinweise auf bis zu 8 Blöcke über ihm. Wenn mehr als ein Block über dem aktuellen Block ist, sind die Hinweise so ange­ ordnet, daß Blöcke von links nach rechts geordnet werden. Die Wurzel des Baums ist am Seitenende. Jedem Block ist ein Ver­ zweigungspunkt auf der Basis einer links-nach-rechts-Baum- Durchquerungsreihenfolge zugeordnet. Verzweigungspunkt 0 ist die Wurzel.
Wie in Fig. 10(a) dargestellt ist, bildet der Knoten 1 1011 eine erste Vertikalgruppe 1002. Knoten 2 1001, Knoten 3 1013, Knoten 4 1014 und Knoten 5 1015 können eine zweite Vertikal­ gruppe 1003 bilden, die im wesentlichen der ersten Verti­ kalgruppe benachbart ist. Knoten 6 1016 und Knoten 0 1010 können eine dritte Vertikalgruppe 1004 bilden, die der zweiten Vertikalgruppe im wesentlichen benachbart ist.
Um die Ausgabereihenfolge der Blöcke zu bestimmen, wird der Baum von links nach rechts durchlaufen, und jedem Zweig des Baums wird bis zu dessen Ende gefolgt, wobei jeder Nebenast von links nach rechts verfolgt wird. Generell wird ein Knoten am Ende eines Zweiges zuerst ausgegeben, und Knoten von jedem Zweig eines Unterbaums werden ausgegeben, bevor der Wurzel­ knoten für diesen Unterbaum ausgegeben wird.
So wird unter Bezugnahme auf Fig. 10(a) die normale Ausgabe­ folge für die Blöcke 0 bis 6 dadurch bestimmt, daß der Baum vom Block 0 (der Wurzel), 1010, aus zum ersten Knoten auf der linken Seite, Block 5, 1015, durchschritten wird. Vom Block 5 1015 abzweigende Knoten werden danach von links nach rechts durchschritten. Daher ist Block 1 1011 der nächstgeprüfte Knoten. Da keine Blöcke vom Block 1 1011 abzweigen, ist dieser Block als der erste Block bezeichnet, der vom Baum abgetrennt und zu den Zeilen-Parsingroutinen geschickt werden soll. Der nächste vom Block 5 1015 abzweigende Knoten ist Block 4 1014. Daher wird Block 4 1014 als nächster verarbeitet. Block 4 1014 hat Zweige. Daher wird er durchschritten und als nächstes wird Block 2 1001 geprüft, da er vom Block 3 1013 abzweigt. Wenn es keine anderen Blöcke gibt, die vom Block 2 1001 abzweigen, ist Block 2 1001 die nächste Block-Ausgabe an die Zeilen-Parsing­ routinen. Block 3 1013, der keine Zweige hat, ist der nächste, an die Zeilen-Parsingroutinen auszugebende Block, gefolgt vom Block 4, 1014. Da es keine weiteren Blöcke gibt, die vom Block 5 1015 abzweigen, ist dieser Block die nächste Blockausgabe an die Zeilen-Parsingroutinen. Der Wurzelknoten 1010 wird weiterhin von links nach rechts durchlaufen, und Block 6 1016 wird verarbeitet. Da auch hier keine Blöcke vom Block 6 1016 abzweigen, ist letz­ terer der nächste Block, der zu den Zeilen-Parsingroutinen geschickt wird. Schließlich gibt es keine weiteren von dem Wurzelknoten 1010 abzweigenden Blöcke, und der Wurzelknoten wird zu den Zeilen-Parsingroutinen übertragen.
Bei der Blockverarbeitung werden die als Graphikblöcke be­ zeichneten Blöcke zwar in den oben beschriebenen Durchlauf- und Sortierprozeß eingebunden, jedoch nicht zu den Zeilen-Par­ singroutinen übertragen.
Bei Verwendung des oben beschriebenen Verfahrens zur Blockaus­ gabe an den Zeilen-Parser sind gewisse Seitenlayouts besonders fehleranfällig. So können beispielsweise in dem Seitenlayout gemäß Fig. 10(a) die Blöcke 2 und 3 Kopfetiketten sein. In einem solchen Fall würde die logische Lesefolge der Seite von den aus dem oben beschriebenen Prozeß gewonnenen Resultaten abweichen. Daher wird die Ausgabereihenfolge von Blöcken bei dem beschriebenen Ausführungsbeispiel der Erfindung durch eine rekursiv aufrufende Routine umgeordnet. Die Routine wird für jeden Knoten mit mehr als einem Aufwärtszweig aufgerufen. Bei dem Beispiel gemäß Fig. 10(a) würde beispielsweise die Routine aufgerufen, wenn Block 5 1015 und der Wurzelblock 1010 verar­ beitet werden.
Die Rekursivroutine findet den oberen Block jedes Zweiges. Beginnend mit dem am weitesten links gelegenen Zweig prüft die Routine die Knoten an dem nächsten Zweig rechts. Wenn das obere Ende eines Knotens des rechts gelegenen Zweiges auf der Seitenabbildung höher als die obere Zeile eines Knotens des linken Zweiges ist (entweder überlappt der rechte Knoten den linken Knoten, oder das untere Ende des rechten Knotens liegt oberhalb des oberen Endes des linken Knotens), so wird der Unterbaum in dem rechten Zweig auf den linken Zweig ver­ pflanzt. Dieser Vorgang wird für jeden Knoten wiederholt, der die o. g. Kriterien erfüllt.
So liegen beispielsweise sowohl Knoten 2 1001 als auch Knoten 3 1013 über dem Knoten 1 1011, so daß Knoten 3 1013 für die Zwecke der Ausgabe an die Block-Parsingroutinen auf Knoten 1 1011 umgepflanzt wird. Der nach der Bearbeitung durch diese Rekursivroutine gewonnene Baum ist in Fig. 10(b) gezeigt. In Fig. 10(b) wurden die Blocknummern neu zugeordnet, und zwar in einer links nach rechts-Baum-Durchlaufreihenfolge. Die neuen Blocknummern zeigen die Reihenfolge der Ausgabe an die Seiten- Parsingroutinen. Die Blöcke werden an die Seiten-Parsing­ routinen ausgegeben, beginnend mit Block 1 1001, danach Block 2 1013, Block 3 1011, Block 4 1014, Block 5 1015, Block 6 1016 und schließlich der Wurzelknoten, Block 0 2020. Die logi­ sche Verknüpfung zwischen den Blöcken wurde am Zweig 1020 geändert.
Eine Anzahl abschließender Einstellungen werden als Teil des Seiten-Parsing-Prozesses durchgeführt. Diese Einstellungen umfassen Prozesse zum weiteren Verschmelzen benachbarter Blöcke, nachdem die Block-Ausgabereihenfolge bekannt ist, Vergrößern von Blöcken bis hinein in den den Block umgeben­ denen weißen Raum, Konstruieren eines Modells der Seitenabbil­ dung, das die Lage und Reihenfolge der Textblöcke zeigt, neues Schrägstellen der Block-map- und der Wege-map-Felder zur Um­ kehr der Verzerrungskorrektur des früheren Prozesses und den Aufbau eines Blockdeskriptorfeldes mit beschreibenden Informa­ tionen über jeden Block.
Wesentlich ist, daß das Modell der Seitenabbildung mit der Platzierung und Reihenfolge der Textblöcke auf einem Gerät, beispielsweise an einem Graphikterminal von dem Benutzer sichtbar gemacht werden kann. Der Benutzer kann dann die Aus­ gabereihenfolge der Blöcke wahlweise ändern. Dieses Verfahren ermöglicht dem Benutzer die Korrektur der Ausgabereihenfolge der Blöcke, soweit die Seiten-Parsingroutinen unrichtige An­ nahmen bezüglichen der logischen Lesefolge der Seite gemacht haben.
BLOCK-PARSING
Jeder von der Seiten-Parsingroutine erzeugte Block wird an die Block-Parsingroutine in der gewünschten Reihenfolge weiter­ geleitet. Die Block-Parsingroutine versucht, jeden Block in ein­ zelne Textzeilen zu zerlegen. Die Block-Parsing­ routinen verwenden von den Seiten-Parsingroutinen und dem Bit-mapped Bild des Eingangsblocks aufgebaute Datenstrukturen zum Isolieren einzelner Zeilen und zum Hinzufügen von Daten zu der Block-Beschreibungsinformation in der Blockliste. Die zur Blockliste hinzugefügten Daten enthalten Informationen, welche die äußerst linke Spalte im Block, die Breite des Blocks, die Höhe des Blocks, die Anzahl von Zeilen im Block und die Startzei­ lennummer identifizieren.
Nach Empfang eines Eingangsblocks berechnet die Block-Parsing­ routine den Schrägfehler des Blocks, Block 221 der Fig. 2(c). Der Schrägfehler des Blocks wird auf der Basis einer detail­ lierten Analyse der Phasenänderungszählungen in dem Horizon­ talphasenänderungsfeld berechnet. Als nächstes werden einzelne Zeilen isoliert, Block 222, und zwar durch Prüfen des Bit-map­ ped-Bildes für den Block in Verbindung mit der Phasenände­ rungszählungsanalyse, um die Lage des möglicherweise schrägge­ stellten horizontalen weißen Raums zu bestimmen, der die Zei­ len voneinander trennt.
Der Block-Parsing-Prozeß trennt und zerschneidet die Zeilen, Block 223, durch Lokalisierung von Horizontalwegen des gering­ sten Widerstandes, die der berechneten Schräglage am nächsten kommen. Der im wesentlichen horizontale Wege, der Textzeilen trennt, kann von Buchstaben unterbrochen sein, die Unter- oder Oberlängen haben. Beispielsweise haben die Kleinbuchstaben "g", "j", "p", "q" und "y" alle Unterlängen. Die Block-Par­ singroutine schneidet um solche Buchstaben herum, um sicherzu­ stellen, daß die Unterlängen derartiger Buchstaben in der richtigen Zeile zurückbleiben, wenn die Zeile an die Zeilen- Parsingroutinen weitergegeben wird.
Immer wenn die Block-Parsingroutine nicht in der Lage ist, ein Hindernis innerhalb gegebener Toleranzen zu vermeiden oder zu umfahren, mißt die Block-Parsingroutine die Abmessungen des Hindernisses, um festzustellen, ob das Hindernis eine Verti­ kallinie ist. Wenn das Hindernis eine Vertikallinie ist, wird es gelöscht. Wenn das Hindernis keine Vertikallinie ist, durchschneiden die Block-Parsingroutinen das Hindernis. Ein­ zelzeilen werden getrennt und für die Weiterverarbeitung durch die Zeilen-Parsingroutinen gepuffert, Block 224.
ZEILEN-PARSING
Jede Zeilenausgabe aus den Block-Parsingroutinen dient als Eingabe für die Zeilen-Parsingroutinen. Die Zeilen-Parsing­ routinen suchen eine Textzeile in Einzelbuchstaben zu zerle­ gen. Bezugnehmend auf Fig. 2(d) finden die Zeilen-Parsing­ routinen bei dem beschriebenen Ausführungsbeispiel zunächst alle Spalten, die einen weißen Raum von der Oberseite der Zeile zur Unterseite der Zeile haben, Block 231.
Die Spalten oder Segmente, die einen weißen Raum von der Zei­ lenoberseite zur Zeilenunterseite haben, werden danach ge­ trennt und gerahmt, Block 232. Um Segmente zu rahmen, bestimmt der Zeilen-Parsing-Prozeß die linken, rechten, oberen und unteren Grenzen der durch vertikalen weißen Raum begrenzten Pixelzonen. Die Grenzen werden derart berechnet, daß so wenig Leerraum wie möglich um die Pixelzone verbleibt.
Wenn die resultierende "gerahmte" Pixelzone größer als 64 Pixel (die größte Zeichenbreite, die bei dem beschriebenen Ausführungsbeispiel ohne Reduktion der Auflösung des Zeichens verarbeitet werden kann), oder wenn das Verhältnis der Breite zur Höhe des gerahmten Pixelbereichs größer als 3 : 2 ist, wird angenommen, daß die gerahmte Pixelzone mehr als einen Buchsta­ ben enthält.
In einem solchen Falle kann die gerahmte Pixelzone mit Über­ hängen versehene, gotische Zeichen enthalten. Derartige Zei­ chen überlappen einander, obwohl sie sich tatsächlich nicht berühren. In einem solchen Falle kann es vorkommen, daß ein vertikaler Freiraum zwischen den Zeichen nicht existiert. Ein Beispiel kann der Buchstabe "T" gefolgt von "o" sein. Wenn ein "T" entsprechend eng an ein "o" gestellt wird, so verschwindet ein vertikaler Freiraum zwischen diesen beiden Buchstaben.
Ein Auflösungsprozeß wird bei solchen relativ breiten Pixel­ rahmenzonen angewandt. Der Auflösungsprozeß berechnet den am weitesten links gelegenen freien Weg von der Zeilenober- zur -unterseite. Ein freier Weg wird als Liste von verbundenen vertikalen und horizontalen Segmenten definiert, welche einen freien Weg zwischen zwei Buchstaben verfolgen. Wenn der Auflö­ sungsprozeß durch Auffinden eines freien Weges erfolgreich ist, werden die linken, rechten, oberen und unteren Grenzen für die Pixelrahmenzone links des freien Weges neu berechnet. Wenn der resultierende Rahmen immer noch breiter als 64 Pixel ist oder ein Breiten- zu Höhenverhältnis von mehr als 3 : 2 hat, oder wenn kein freier Weg gefunden wurde, wird der Versuch unternommen, eine Unterstreichung festzustellen und zu entfer­ nen. Wenn dieser Vorgang erfolgreich ist, wird mit Hilfe des Zeilen-Parsing-Prozesses erneut versucht, den vertikalen weißen Raum zu finden.
Nach dem Auffinden eines Pixelrahmens, der nicht zu breit ist, wird dieses Rahmenfeld als isoliertes Zeichen angesehen, Block 232, und es wird ein Zeichenfenster für die Zeichen-Erken­ nungsroutinen geschaffen, Block 233. Bei dem beschriebenen Ausführungsbeispiel der Erfindung ist ein Zeichenfenster ein Pufferbereich, der bis zu 128 Zeilen mal 128 Spalten oder 64 Zeilen mal 192 Spalten enthalten kann. Wenn der Pixelrahmen zu groß ist, um in das Zeichenfenster zu passen, wird er so ska­ liert, daß er in das Fenster paßt. Der Pixelrahmen wird zei­ lenweise in das Fenster kopiert. Wenn die gerahmte Pixelzone als Ergebnis eines Auflösungsprozesses abgeleitet wurde, ist die rechte Grenze der Pixelzone als freier Weg beim Auflö­ sungsprozeß definiert. Anderenfalls besteht jede in das Fen­ ster kopierte Zeile aus Bits in entsprechenden Zeilen der Pixelrahmenzone zwischen vertikalen weißen Räumen (d. h. den als isoliert angenommenen Zeichen).
Ein errichtetes Fenster, das eine Spaltenbreite von mehr als 128 Pixeln hat, wird in einen Zurückweisungscache für spätere Weiterbearbeitung gelegt. Anderenfalls werden die Zeichen-Er­ kennungsroutinen aufgerufen, und das Fenster wird in diese Zeichen-Erkennungsroutinen eingegeben, Block 234. Wenn ein Zeichen von den Zeichen-Erkennungsroutinen erfolgreich verar­ beitet wurde, wird ein Code für seine ermittelte Form in eine als "Fahne" bezeichnete Pufferzone gegeben. Fenster, die von allen Zeichen-Erkennungsroutinen zurückgewiesen wurden, werden zum Zurückweisungscache für spätere Verarbeitung hinzugefügt.
ZEICHENERKENNUNG
Im folgenden wird auf Fig. 11 Bezug genommen. Danach enthält der Zeichen-Erkennungsprozeß die Schritte der Schablonenanpas­ sung, Block 1101, gefolgt von der Merkmalsanalyse, Block 1105, wenn das Zeichen in dem Schablonenanpassungschritt, Block 1101, nicht erkannt worden ist.
Der Schablonenanpassungsvorgang, Block 1101, versucht in Fenstern aus dem Zeilen-Parsing-Prozeß weitergeleitete Zeichen mit Scha­ blonen von zuvor bereits identifizierten Zeichen in Überein­ stimmung zu bringen. Im Merkmalsanalyseprozeß, Block 1105, wird versucht, Merkmale der durch Schablonenvergleich nicht identifizierbaren Zeichen zu erkennen. Auf der Basis des Er­ kennens solcher Merkmale werden die Zeichenformen identifi­ ziert.
Ein Gesichtspunkt der vorliegenden Erfindung besteht darin, daß mit Hilfe des Merkmalsanalysevorgangs erkannte Zeichen als Schablonen zur Erkennung später auftretender Zeichen ver­ wendet werden. Bei dem beschriebenen Ausführungsbeispiel wird ein Schablonen-Cachespeicher für jedes neue Dokument aufge­ baut. Der Schablonen-Cachespeicher enthält Zeichen, die inner­ halb des Merkmalsanalyseprozesses für das aktuelle Dokument erkannt worden sind. Zeichen in dem Schablonen-Cache werden im Schablonen-Anpaßprozeß benutzt. Durch Errichtung des Schablo­ nen-Cache auf der Basis von bereits im Dokument erkannten Zeichen mit Hilfe des Merkmalserkennungsprozesses macht es die Erfindung möglich, jede durch Merkmalsanalysenroutinen erkenn­ bare Schriftart selbsttätig zu erkennen. Durch Kombinieren von Elementen der Merkmalsanalyse und der Schablonenanpassung bietet die Erfindung die betrieblichen Vorteile eines Schablo­ nenanpaßsystems mit der Allschriftcharakteristik eines Merk­ malsanalysesystems.
SCHABLONENANPASSUNG
Der Schablonen-Cache enthält Informationen über jede verfügba­ re Schablone des aktuellen Dokuments. Für jede Schablone ent­ hält ein Kopffeld Identifizierungsinformationen für diese spezielle Schablone. Das Kopffeld enthält auch Offset-Zeiger bzw. Hinweise auf drei Pixelmuster, die von dem Schablonenan­ paßprozeß verwendet werden.
Das erste Pixelmuster ist das Originalmuster des Zeichens, wie es durch den Merkmalsanalyseprozeß erkannt worden ist. Bei dem beschriebenen Ausführungsbeispiel wird das Originalmuster von x Zeilen mal y Spalten als zweidimensionale Matrix gespei­ chert, wobei die Zeilen Null-unterlegt bis zu einer Wortgrenze sind.
Ein zweites Pixelmuster, bezeichnet als "muß-aus-sein"-Muster, wird aus dem Originalmuster abgeleitet. Das muß-aus-sein-Mu­ ster enthält x + 1 Zeilen und y + 1 Spalten, wobei die Zeilen ebenfalls bis zu einer Wortgrenze mit Nullen aufgefüllt sind.
Ein drittes Pixelmuster, genannt "muß-ein-sein"-Muster, wird aus dem Originalmuster abgeleitet und enthält x - 1 Zeilen mal y + 1 Spalten. Das tatsächliche Bild des muß-ein-sein-Musters besetzt nur x - 2 Zeilen mal y - 2 Spalten. Bei dem beschriebenen Ausführungsbeispiel ist jedoch ein Bereich von x - 1 Zeilen mal y + 1 Spalten aus Verarbeitungsgründen reserviert, um sicherzu­ stellen, daß die Matrix ebenso breit wie die muß-aus-sein-Ma­ trix ist.
Wie sich aus der folgenden Beschreibung der Schablonenanpaßme­ thoden, wie sie bei der Erfindung Verwendung finden, ergibt, werden Zeichen von dem Schablonen-Anpaßprozeß erkannt, wenn die Zeichen innerhalb gewisser vorgegebener Toleranzen der Schablonen liegen. Das Zulassen von Zeichen innerhalb vorgege­ bener Toleranzen ist wichtig, da zwei Bit-mapped-Bilder des­ selben Zeichens selten - wenn überhaupt - exakt übereinstim­ men. Eine Bilddigitalisierung ist empfindlich gegenüber Unter­ schieden in der Ausrichtung, und der Digitalisierungsprozeß selbst führt ein Randrauschen ein. Außerdem werden Zeichen oft unterbrochen oder sind auf andere Weise deformiert aufgrund der schlechten Bildqualität, wenn die Zeichen ursprünglich gedruckt wurden, wenn das abgetastete Substrat kopiert wurde oder wenn das Substrat für den Zeichenerkennungsprozeß optisch abgetastet wird. Daher ist ein einfacher Bit-für-Bit-Vergleich bei einem Erkennungsprozeß nicht angemessen. Die muß-ein-sein- und muß-aus-sein-Bildmuster werden bei der Erfindung verwen­ det, um eine gewisse Differenzgrenze zwischen den Zeichen zu ermöglichen.
Die muß-aus-sein-Matrix enthält ein Pixelbild, welches an­ zeigt, welche Pixel im Fenster aus (d. h. auf Null gesetzt) sein müssen, um das Fenster mit der Schablone in Übereinstim­ mung zu bringen. Es sei auf Fig. 12(a) Bezug genommen, in der ein Bit-mapped-Bild des Buchstabens e (1201) dargestellt ist. Die x's im Buchstaben e bezeichnen Pixel, welche im Original­ bild im Schablonen-Cachespeicher eingeschaltet sind.
Bei dem beschriebenen Beispiel zeigt das muß-aus-sein-Bild Pixel an, welche um ein oder mehr Pixel von einem Ein-Pixel des original Bit-mapped-Bildes beabstandet sind. Fig. 12(b) zeigt den Buchstaben e (1202), bei dem die muß-aus-sein-Pixel als Striche dargestellt sind. Bei dem beschriebenen Ausfüh­ rungsbeispiel werden die muß-aus-sein-Pixel durch "Verwischen" des Originalpixelbildes berechnet. Das Verwischen wird mit Hilfe logischer ODER-Verknüpfungen in jeder Zeile des Origi­ nalpixelbildes vorgenommen. Jede Zeile des Originalpixelbildes wird einer logischen ODER-Verknüpfung mit einer Kopie von sich selbst unterworfen, die um ein Bit nach links verschoben wur­ de. Das Ergebnis ist logisch ODER-verknüpft mit der ursprüng­ lichen Zeile, verschoben nach rechts um ein Bit. Das Resultat dieses Schrittes wird mit dem Resultat des gleichen Verfahrens an der unmittelbar vorhergehenden Zeile oder darüber logisch ODER-verknüpft. Das Resultat dieses Schritts wird logisch ODER-verknüpft mit der ähnlich verarbeiteten Zeile unmittelbar vor oder unterhalb der aktuellen Zeile. Das Ergebnis dieser Operation ist ein Bild des ursprünglichen Zeichens, bei dem jedes Pixel des ursprünglichen Bit-mapped-Bildes von 8 Ein-Pi­ xeln umgeben ist, von dem Pixel oberhalb, unterhalb, rechts, links und den 4 Pixeln, die um 45°, 135°, 225° und 315° vom ursprünglichen Pixel verdreht sind. Dadurch wird das ursprüng­ liche Zeichenbild mit einer Ein-Pixel-Schicht quasi umgürtet. Das Komplement des sich ergebenden Bildes wird als muß-aus- sein-Muster erhalten.
Das muß-ein-sein-Bild ist eine Zeichenabbildung mit Bits, die getastet sein müssen für eine Übereinstimmung. In Fig. 12(b) ist die Zeichenabbildung des Zeichens e 1202 mit Pluszeichen dargestellt, die bei einer Übereinstimmung eine 1 bedeutende Pixel zeigen. Zum Berechnen eines muß-ein-sein-Bildes wird jede Zeile des originalen Pixelbildes logisch UND-verknüpft mit einer um ein Bit nach links verschobenen Kopie der Zeile. Das Ergebnis wird mit einer Kopie der um ein Bit nach rechts verschobenen Zeile logisch UND-verknüpft. Deren Ergebnis wird logisch UND-verknüpft mit einem ähnlich behandelten Bild der Zeile unmittelbar über der aktuellen Zeile. Das Ergebnis der Operation wird dann logisch UND-verknüpft mit der ähnlich verarbeiteten Zeile unmittelbar unterhalb der aktuellen Zeile. Diese logische UND-Operation mit Zeilen oberhalb und unterhalb der aktuellen Zeile findet statt, nachdem die oberhalb und unterhalb der aktuellen Zeile gelegenen Zeilen zuvor wie in den ersten zwei Schritten dieses Verfahrens beschrieben mit ihren eigenen Bildern logisch UND-verknüpft worden sind. Durch dieses Verfahren wird eine Abbildung des Originalzeichens erzeugt, bei dem nur diejenigen Pixel eingeschaltet bleiben, die auf allen ihren acht Seiten umgeben sind. Dadurch entsteht im Ergebnis ein Bild, das um eine Pixelschicht dünner als das Originalbild ist.
Die Verwendung der muß-ein-sein- und muß-aus-sein-Matrix zum Vergleich der Eingangszeichen mit Schablonen ermöglicht Tole­ ranzen bei der Durchführung der Anpassung. Obwohl das be­ schriebene Ausführungsbeispiel eine Ein-Pixel-Toleranz beim Prüfen der Übereinstimmungen zuläßt, ist es für den Fachmann klar, daß andere Ausführungen zu anderen Toleranzen führen. Ein alternatives Ausführungsbeispiel, das weniger enge Tole­ ranzen ermöglicht, kann zu höheren Anpaßgeschwindigkeiten und daher zu entsprechend rascherer Verarbeitung führen. Ein sol­ ches Ausführungsbeispiel erhöht jedoch die Fehlerrate der Identifizierung von Zeichen aufgrund der weniger strengen Toleranzanforderungen.
Im folgenden wird auf Fig. 11(b) Bezug genommen. Bei jedem Empfang eines neuen Fensters mit nicht-identifizierter Pixel­ information aus der Zeilen-Parsingroutine werden muß-ein-sein- und muß-aus-sein-Bilder für das nicht-identifizierte Bild unter Verwendung des oben beschriebenen Verfahrens erzeugt, Block 1120. Das nicht-identifizierte Bild im Fenster wird dann mit den Zeichen im Schablonencache verglichen. Die Schablonen werden zu Vergleichszwecken in einer zuletzt angepaßten Rei­ henfolge geordnet. Bei jeder Übereinstimmung mit einer Scha­ blone wird ein im Schablonen-Kopfetikett gespeicherter Zähl­ wert inkrementiert.
Wenn eine Schablone als Ergebnis der Erkennung durch die Merk­ malsanalysenroutinen das erste Mal hergestellt wird, wird der Schablonenübereinstimmungszähler auf 0 gesetzt. Bei dem be­ schriebenen Beispiel werden neue Schablonen (d. h. Schablonen mit einem Übereinstimmungszählwert von 0) bei Beginn der Scha­ blonenschlange eingesetzt. Wenn ein nicht-identifiziertes Bild von den Schablonen-Anpaßroutinen verarbeitet wird und mit einer besonderen Schablone übereinstimmt, wird der zur beson­ deren Schablone gehörige Übereinstimmungszähler geprüft, um festzustellen, ob der Anpassungszählwert 0 ist. Wenn der Zähl­ wert 0 ist, prüft das beschriebene Ausführungsbeispiel der Erfindung das Bild im Zeichenfenster unter Verwendung der Merkmalsanalysenroutinen (weiter unten beschrieben), um eine Bestätigung dafür zu erhalten, daß das Bild im Zeichenfenster das gleiche Zeichen wie das von der Schablone identifizierte Zeichen ist. Wenn die Merkmalsanalysenroutinen die Schablone bestätigen und das Bild im Zeichenfenster das gleiche Zeichen ist, wird der Anpaßzählwert inkrementiert. Anderenfalls wird im Verfahren unterstellt, daß die Schablone zu unzuverlässigen Ergebnissen führt, und die Schablone wird aus der weiteren Verarbeitung eliminiert. Die Erkennung des Bildes im Zeichen­ fenster wird dann dadurch fortgesetzt, daß man das Bild im Zeichenfenster mit anderen Schablonen im Schablonencache in Übereinstimmung zu bringen sucht.
Der erste Schritt beim Anpassen eines Bildes in einem Fenster mit der Schablone besteht darin, daß man muß-ein-sein- und muß-aus-sein-Matritzen von dem nicht-identifizierten Bild kon­ struiert, Block 1120. Als nächstes wird eine Dimensionsprüfung durchgeführt, Block 1121. Bilder, die sich von einer Schablone bezüglich ihrer Höhe oder Breite um mehr als ein Pixel unter­ scheiden, können zu der Schablone nicht passen, Zweig 1122. Wenn die Dimensionsprüfung durchlaufen ist, Zweig 1123, wird die muß-ein-sein-Matrix für das nicht-identifizierte Bild im Fenster mit dem original Bit-mapped-Bild der Schablone vergli­ chen. Wenn alle Pixel in der muß-ein-sein-Matrix für das nicht-identifizierte Bild in der Originalschablone ein-geta­ stet sind, Zweig 1124, wird ein zweiter Test durchgeführt.
Der zweite Test bestimmt, ob alle Pixel in der muß-ein-sein- Matrix für die Schablone in dem nicht-identifizierten Bit- mapped-Bild im Fenster eingeschaltet sind. Wenn alle derarti­ gen Bits eingeschaltet sind, Zweig 1125, wird das Original Bit-mapped-Bild der Schablone mit der muß-aus-sein-Matrix für das Bild im Fenster verglichen. Alle in der muß-aus-sein-Ma­ trix für das Bild im Fenster angegebenen Pixel müssen in der ursprünglichen Schablone als Voraussetzung einer Anpassung oder Übereinstimmung ausgeschaltet sein. Wenn dieser Test durchgeführt ist, Zweig 1126, wird das Bit-mapped-Bild im Fenster mit der muß-aus-sein-Matrix für die Schablone vergli­ chen. Wenn alle von der muß-aus-sein-Matrix der Schablone angezeigten Pixel im Bit-mapped-Bild des Fensters ausgeschal­ tet sind, wird die Schablone als übereinstimmend oder angepaßt bewertet und der Zweig 1127 eingeschlagen.
Wie oben beschrieben, wird das Bild im Zeichenfenster auch mit den Merkmalsanalyseroutinen zur Bestätigung der Identifizie­ rung analysiert, wenn die Schablone eine Übereinstimmungszäh­ lung von 0 hat. Anderenfalls wird der Identifizierungscode für die erkannte Form in die Fahne für eine spätere Verarbeitung durch die Kontext-Analysenroutinen eingegeben.
Wenn einer der Zweige 1122, 1128, 1129, 1130 oder 1131 einge­ schlagen wird, weil der entsprechende oben beschriebene Test nicht passiert wurde, und wenn mehrere Schablonen im Schablo­ nenspeicher vorhanden sind, Zweig 1132, wird die gleiche Folge von Prüfungen oder Tests mit jeder nachfolgenden Schablone im Schablonencache solange wiederholt, bis eine Anpassung oder Übereinstimmung auftritt oder der Cache erschöpft ist.
Wenn es keine weiteren Schablonen im Schablonencache gibt, Zweig 1133, gibt es keine Übereinstimmung zwischen den aktuel­ len Schablonen und dem nicht-identifizierten Bild. Dies ist immer dann der Fall, wenn sich das nicht-identifizierte Bild nach Schriftart, Größe oder Ausrichtung von allen im Schablo­ nen-Cachespeicher enthaltenen Zeichen unterscheidet. Die feh­ lende Übereinstimmungsbedingung kann auch das Ergebnis von Zeichen sein, die trotz gleicher Schriftart und -größe nicht eng genug übereinstimmen, um innerhalb der "Randrausch"tole­ ranzen der Schablonenanpassungsroutinen zu liegen.
In jedem Falle werden die Merkmalsanalyseroutinen herangezo­ gen, die das Bild im Fenster als Eingabe benutzen, Block 1105, wenn das Bild zuvor nicht erkannt werden konnte, Zweig 1104 in Fig. 11(a).
MERKMALSANALYSE
Bei dem beschriebenen Ausführungsbeispiel wird eine Vielzahl von Routinen zum Analysieren der Merkmale der den Merkmalsana­ lyseprozeß durchlaufenden Bilder verwendet, wobei die Katego­ rie der Form eines nicht-identifizierten Bildes im Zeichenfen­ ster bestimmt wird. Unter den verschiedenen Routinen ist eine Routine für jede besondere Spezies im normalen Zeichensatz. Jede dieser einzelnen Routinen kann ein Bild in einem Zeichen­ fenster analysieren und als Ausgabe eine Anzeige dafür zur Verfügung stellen, ob das Bild zu der allgemeinen Formkatego­ rie zählt, die durch diese Routine zu unterscheiden ist. Die Zeichenerkennungsroutinen werden aktiviert, wenn eine der Routinen mit einer positiven Anzeige dafür antwortet, daß das Bild im Zeichenfenster die der speziellen Routine entsprechen­ de Form hat. Wenn keine der Merkmalsanalysenroutinen positiv antworten, bleibt die Form des Bildes im Zeichenfenster uni­ dentifiziert. In einem solchen Falle wird eine Weiterverarbei­ tung durchgeführt, um die Form des Bildes im Zeichenfenster zu identifizieren.
Jede der Routinen wird als "isit" bezeichnet. Der Name "isit" ist für die Beschreibung der Routinen des Ausführungsbeispiels zweckmäßig, da die Routinen bestimmen, ob ein Zeichen im Zei­ chenfenster ein spezielles Zeichen ist (z. B. "ist es" (isit) ein a). Bei dem beschriebenen Ausführungsbeispiel existieren isits für Buchstaben, Zahlen und spezielle Symbole, wie Kom­ mas, Anführungsstriche, Semikolons usw.. Es ist für den Fach­ mann klar, daß das Verfahren der Verwendung von isits zur Bestimmung der Zugehörigkeit eines Bildes in einem Zeichenfen­ ster zu einem speziellen Zeichen auf zahlreiche alphabetische Zeichengruppen anwendbar ist. Beispielsweise können isits für kyrillische Zeichensätze, die Zeichensätze in slawischen Spra­ chen, oder für andere Zeichensätze, z. B. die Zeichensätze für Hebräisch oder Arabisch, implementiert werden.
Bei dem beschriebenen Ausführungsbeispiel unterscheiden isits Zeichen aufgrund ihrer Form. Daher werden Zeichen, welche die gleiche Togographie haben, von einem einzigen isit erkannt. Der Kleinbuchstabe "p" und der Großbuchstabe "P" werden von demselben isit erkannt. Die Buchstaben "u" und "U", "s" und "S", "o" und "O" sowie "0" usw. sind weitere Beispiele für Zeichen, die mit der gleichen oder ähnlichen Topographie ver­ sehen sind und daher von denselben isits erkannt werden. Für jede Form oder Topographie wurden Formcharakteristiken gewählt und experimentell gemessen, so daß ein besonderes isit die Form seines Zeichens aus der Form anderer Zeichen über einen weiten Bereich von Schriftarten unterscheiden kann.
Bei dem beschriebenen Ausführungsbeispiel liefert ein isit als Ausgang entweder einen ASCII-Code für ein spezielles Zeichen oder einen Code, der anzeigt, daß das Zeichen als zugehörig zu einer speziellen Zeichenklasse erkannt worden ist, oder einen Zurückweisungscode, der anzeigt, daß das Zeichen nicht erkannt worden ist. Die Ausgabe des ASCII-Code für ein spezielles Zeichen zeigt an, daß die Zeichenidentifizierung durch die isit-Routine unzweideutig ist. Der zurückgeführte ASCII-Code ist der Standard-ASCII-Code für das spezielle Zeichen. Ein Code, der angibt, daß das Zeichen zu einer besonderen Zeichen­ klasse gehört, beschränkt jede nachfolgende Merkmalsanalyse auf einen speziellen Satz oder eine spezielle Gruppe von isits.
Im folgenden wird auf Fig. 13 Bezug genommen, in der ein Ab­ laufdiagramm des beschriebenen Merkmalsanalyseprozesses darge­ stellt ist. Für jedes dem Merkmalsanalyseprozeß als Eingabe zugeführte Bild werden statistische Daten aus einem Horizon­ talfenster und einem Vertikalfenster von den isits benutzt. Das Horizontalfenster ist das ursprüngliche Zeichenfenster mit der Bit-map-Abbildung des Zeichens. In Fig. 14(a) ist das Zeichen "b" beispielsweise im horizontalen Zeichenfenster 1401 gezeigt. Ein Vertikalfenster wird aus dem Horizontalfenster 1401 abgeleitet, Block 1301. Das Vertikalfenster kann als ein auf der Seite liegendes Bild des Horizontalfensters 1401 ange­ sehen werden, dessen Zeilen jeweils eine Positionsumkehr er­ fahren haben. So zeigt beispielsweise Fig. 14(b) ein Vertikal­ fenster für das Bild des Zeichens "b" im Vertikalfenster 1410.
Statistische Informationen werden durch Prüfen der Bit-map- Bilder im Horizontalfenster 1401 und im Vertikalfenster 1410 erzeugt. Die statistischen Daten enthalten Profildaten, Poly­ gondarstellungen des Zeichens, Phasenänderungsinformationen und Zählungen der Anzahl von Pixeln in jeder Zeile des Zei­ chens.
Die bei den beschriebenen erfindungsgemäßen Verfahren ange­ wandten Polygon-Anpaßalgorithmen dämpfen die Effekte des Rau­ schens in den zu identifizierenden Bildern und reduzieren beträchtlich das von den Merkmalsrichtungsroutinen zu verar­ beitende Datenvolumen. Es wurde außerdem bestimmt, daß Poly­ gondarstellungen von Zeichenbildern über einen weiten Bereich von Zeichengrößen konsistent sind, z. B. der Buchstabe "i" erzeugt im wesentlichen die gleichen Polygondarstellungen in einem weiten Bereich von Schrifttypen.
Für jede Ansicht eines Zeichenfensters werden Profildaten und vier Polygone abgeleitet. Die Ansichten eines Zeichens enthal­ ten die linken und rechten Seiten 1403, 1404, 1413 und 1414 der horizontalen und vertikalen Fenster. Die Profildaten ent­ halten ein Feld mit einem Element für jede Zeile des Fensters. Jedes Element hält einen Wert, gemessen in Spalten, der den Abstand des Rahmenrandes vom ersten "Ein-Pixel" in dieser Zeile darstellt. Es wird beispielsweise auf Fig. 14(a) Bezug genommen. Das erste Ein-Pixel in jeder Zeile ist bei der An­ sicht 1403 das erste Ein-Pixel im Anstrich des Buchstabens b. In der Ansicht 1404 ist das erste Ein-Pixel für die obere Hälfte des Buchstabens b ebenfalls das erste Ein-Pixel im Anstrich des Buchstabens b. Für die untere Hälfte der Ansicht 1404 ist das erste Ein-Pixel für jede Zeile das am äußeren Rand der Schleife 1405 gelegene Pixel des Buchstabens b.
Ein erstes Polygon wird für jede Ansicht gebildet. Das Polygon enthält mehrere Zeilensegmente, die einem Profil des Zeichens in Richtung der jeweiligen Ansicht angepaßt ist. Die Zeilen­ segmente des Polygons liegen innerhalb vorgegebener Toleranz­ werte für das Profil des Zeichens. Beispielsweise ist in Fig. 14(c) ein Profil 1420 des Buchstabens b der Ansicht 1404 in Fig. 14(a) gezeigt. Die Punkte 1421 bis 1429 sind die Polygon­ punkte welche dieses Profil beschreiben. Bei dem beschriebenen Beispiel gibt es maximal 16 Punkte im Polygon zur Beschreibung des speziellen Profils, und für jedes Segment werden Steigung und Unterschied der Steigung gegenüber einem früheren Segment berechnet und aufrechterhalten. Es ist für den Fachmann klar, daß eine große Anzahl von Punkten, verbunden mit einer ent­ sprechenden Zunahme an Bearbeitungs- und Speichermitteln zur Beschreibung eines Polygons verwendet werden kann.
Die Polygon-Anpaßalgorithmen bestimmen die Punkte, wie die Punkte 1421 bis 1429 auf dem Profilbild 1420. Der erste Schritt beim Polygon-Anpaßprozeß ist die Zuordnung von Poly­ gonpunkten 1421 und 1429 an jedem Ende des Polygons. Eine Rekursivroutine wird aufgerufen, in der die Endpunkte eines Liniensegments, beispielsweise die Punkte 1421 und 1429, das Profilbild 1420 und ein Toleranzwert als Eingaben verwendet werden. Der Toleranzwert bestimmt die "Enge" der Anpassung des Polygons an das Profilbild 1420.
Bei dem beschriebenen Ausführungsbeispiel wird die Toleranz (t) in 128steln eines Pixels gemessen und auf der Basis der langen und kurzen Abmessungen eines Fensters nach der folgen­ den Formel berechnet:
Toleranz (t) = (13/4)x + 64, wenn x < 28; und (t) = 5x, wenn x ≧ 28;
wobei x = (3* (Länge der langen Seite) + (Länge der kurzen Seite))/4.
Der Polygon-Anpaßalgorithmus zieht effektiv eine Linie zwi­ schen die Endpunkte 1421 und 1429 und lokalisiert die am wei­ testen oberhalb und unterhalb der Linie (Punkte 1422 und 1426) gelegenen Punkte. Wenn jeder Extrempunkt jenseits der zulässi­ gen Toleranz liegt, wird er in das Polygon einbezogen, wodurch das ursprüngliche Zeilensegment in Untersegmente unterbrochen wird. Der Algorithmus wird durch rekursives Anwenden des glei­ chen Verfahrens auf jedes Untersegment solange fortgesetzt, bis kein Datenpunkt weiter als die zulässige Toleranz von dem nächsten Polygonsegment entfernt liegt. Bei dem aktuellen Beispiel liegen beide Extrempunkte (1422 und 1426) außerhalb der zulässigen Toleranz, so daß das ursprüngliche Linienseg­ ment in drei Untersegmente 1421 bis 1427, 1422 bis 1426 und 1426 bis 1249 unterbrochen wird. Der Algorithmus wird durch Zeichnen des Liniensegmentes zwischen Punkten 1421 und 1422 fortgesetzt. Dieses Liniensegment hat keine Punkte außerhalb des Toleranzbereichs ober- und unterhalb, so daß es nicht weiter unterteilt ist. Der Algorithmus zeichnet dann die Linie zwischen den Punkten 1422 und 1426 und lokalisiert Punkte, die am weitesten oberhalb und unterhalb der Linie liegen. In die­ sem Falle wird der Punkt 1425 als der am weitesten über dem Toleranzwert gelegene Punkt bestimmt, während kein Punkt un­ terhalb liegt. Dies schafft zwei neue Untersegmente, nämlich 1422 bis 1425 und 1425 bis 1426. Diese werden rekursiv weiter­ entwickelt, bevor in dem Prozeß das letzte Untersegment ge­ prüft wird, das sich aus der ersten Iteration des Prozesses ergeben hat. Der Prozeß zieht eventuell eine Linie zwischen Punkt 1426 und 1429 und stellt fest, daß Punkt 1428 am weite­ sten oberhalb der Linie liegt und keine Punkte jenseits des Toleranzwerts unterhalb liegen. Die sich ergebenden Unterseg­ mente werden in ähnlicher Weise weiterentwickelt durch rekur­ sive Anwendung des gleichen Verfahrens.
Der Prozeß der iterativen Erzeugung von Untersegmenten durch Bestimmung von Punkten, welche maximal oberhalb und unterhalb der Toleranzgrenzen existierender Segmente liegen, wird solan­ ge fortgesetzt, bis kein Ursprungsdatenpunkt mehr weiter als der Toleranzwert von dem nächsten Polygonsegment des Profils 1420 entfernt liegt.
Ein zweites Polygon weist Liniensegmente auf, welche Punkte verbinden, die einer Darstellung einer Profilansicht eines als Schattenprofil bezeichneten Zeichens angepaßt sind. Das Schat­ tenprofil wird von einem Profil der Polygonansicht dadurch abgeleitet, daß das Polygon von der Bodenzeile zur Kopfzeile durchlaufen und der minimale X-Wert beim Durchlaufen des Poly­ gons vom aktuellen Außenpunkt auf dem Polygon subtrahiert wird. Derselbe Vorgang wird danach von der Kopfzeile zur Bo­ denzeile des Polygons wiederholt. Der Effekt ist, daß die restlichen nicht-Null-X-Punkte im Profil Zonen darstellen, welche effektiv abgeschaltet wären, wenn der Buchstabe von Licht auf beiden Seiten beleuchtet wäre. Das Schattenpolygon dient zur Bestimmung und Analyse von Öffnungen in das Innere eines Zeichens.
Ein drittes Polygon enthält Profilpunkte einer Ansicht eines Zeichens, welche durch Subtraktion des Schattenprofils vom ursprünglichen Profil gebildet werden. Dieses Polygon wird als gefülltes Polygon bezeichnet. Sowohl das Schattenpolygon als auch das gefüllte Polygon haben die gleiche Anzahl von Punkten und die gleichen Y-Koordinaten wie das Originalpolygon.
Schließlich wird ein viertes Polygon gebildet, das eine losere Anpassung an das Originalpolygon als das ursprüngliche Profil hat. Dies geschieht durch Entwicklung eines Polygons aus dem Ursprungspolygon unter Verwendung weniger Punkte (d. h. unter Verwendung eines weiteren Toleranzwertes).
Daten werden sowohl für das horizontale als auch das vertikale Fenster entwickelt, welche die Zahl von Phasenwechseln von weiß nach schwarz in jeder Zeile des entsprechenden Fensters zählen. Beispielsweise besteht im Horizontalfenster der Buch­ stabe "I" generell aus Zeilen mit einer horizontalen Phasenän­ derung von weiß nach schwarz und der Buchstabe "H" besteht aus Zeilen mit zwei Phasenänderungen von weiß nach schwarz. Die Phasenänderungsinformationen dienen zur Erzeugung von durch die isit-Routinen verwendeten Statistiken.
Eine erste Statistik wird entwickelt, welche den Prozentsatz von Zeilen mit einem besonderen Phasenänderungswert bezeich­ net. So kann beispielsweise für den Buchstaben "I" der Wert 1 (Auftreten einer Phasenänderung von weiß nach schwarz in der Zeile) nahezu bei 100% der Zeit auftreten. Bei dem Buchstaben "H" kann der Wert 1 über 5% der Zeit und der Wert 2 über etwa 85% der Zeit auftreten. Bei dem Buchstaben "d" können in dem Horizontalfenster 0-Phasenänderungszählungen des Werts 0 auf­ treten, was bedeutet, daß jede Zeile wenigstens ein Pixel eingeschaltet hat. Es können angenähert 55% der Zeilen eine Phasenänderung erfahren, und diese Zeilen enthalten die obere Hälfte des Buchstabens "d". Die restlichen ca. 45% der Zeilen haben zwei Phasenänderungen, und diese Zeilen umfassen die Schleife des Buchstabens "d". Es gibt keine Zeilen mit drei oder vier Phasenänderungen.
Bei dem beschriebenen Ausführungsbeispiel werden Zeilen mit mehr als vier Phasenänderungen wie Zeilen mit genau vier Pha­ senänderungen gezählt, und zwar zum Zwecke der Berechnung dieser Prozentwerte. Die Grenze von vier Phasenänderungen wurde von der Anmelderin aus experimentellen Daten und Beob­ achtungen entwickelt. Typischerweise treten mehr als vier Phasenänderungen bei starken Rauscheinflüssen im Bit-mapped- Bild auf.
Eine zweite Statistik wird entwickelt, die angibt, wo die Mitte einer besonderen Phasenänderungszählung im Zeichenbild auftritt. Bei dem Buchstaben "I" ist der "wo"-Wert für die Phasenänderungszählung von 1 nahe bei 50. Dies zeigt die Mit­ telstellung einer Linie mit einer Phasenänderungszählung von 1 ungefähr in der Zeichenmitte an. Bei dem Buchstaben "d" ist der wo-Wert für die Phasenänderungszählung des Werts von 1 etwa bei 20, was angibt, daß der Mittelwert der Zeilenzahlen mit einer einzigen Phasenänderung etwa bei 20% des Weges ab­ wärts des Zeichens liegt. Der wo-Wert für eine Phasenände­ rungszählung von 2 kann etwa 75 sein, was anzeigt, daß der Mittelwert der Zeilenzahlen mit zwei Phasenänderungen etwa drei Viertel des Weges abwärts des Buchstabens liegt. Dies liegt daran, daß die Schleife des Kleinbuchstabens "d" in der unteren Hälfte des Zeichens liegt.
Es wird auch ein Feld sowohl für das horizontale als auch das vertikale Fenster entwickelt, das ein Element für jede Zeile des Fensters mit einem Wert für die Anzahl von "Ein"-Pixeln in dieser Zeile enthält. Die Polygone werden auch an diese Felder angepaßt.
Die isits dienen zur individuellen Analyse des Zeichens, Block 1304, bis das Zeichen erkannt ist. Eine besondere isit-Routine kann von irgendeiner aus einer Anzahl von Methoden Gebrauch machen, um zu identifizieren, ob ein Zeichen gleich dem durch das besondere isit zu identifizierenden Zeichen ist. In eini­ gen Fällen, in denen sich der Stil eines Zeichens von Schrift­ art zu Schriftart beträchtlich ändert, können mehrere unter­ schiedliche Methoden zur Erkennung des Zeichens verwendet werden. Typischerweise analysieren die isit-Routinen die Form der einzelnen Zeichenansichten durch Verwendung der oben be­ schriebenen Polygone und durch Verwendung der oben angegebenen statistischen Informationen. Die Verwendung von Polygonen zur Approximation von Zeichen erlaubt es einer isit-Routine in der Regel, kleinere Störungen und Unregelmäßigkeiten des Zeichens zu ignorieren.
Eine erste Methode, die von isits zur Bestimmung eines Bildes des Zeichens benutzt wird, besteht in der Prüfung der stati­ stischen Informationen aus den Phasenänderungsdaten. So kann beispielsweise ein spezielles isit ein Zeichen zurückweisen, in welchem der Prozentsatz von 16771 00070 552 001000280000000200012000285911666000040 0002003926327 00004 16652Zeilen mit zwei Änderungen von weiß nach schwarz 10% übersteigt. Ein Beispiel eines solchen isit ist ein isit zur Erkennung des Zeichens "I". Generell macht es diese Methode der Untersuchung statistischer Informa­ tionen für die meisten isits möglich, 70 bis 85% aller ihnen als Eingaben zugeführten Bilder mit einem Minimum an Verarbei­ tungsmitteln zu eliminieren.
Ein anderes Verfahren, mit dem bestimmt werden kann, ob ein spezielles Zeichen ein von einem speziellen isit zu erkennen­ des Zeichen ist, ist die Prüfung von Spitzen in den Polygonen. So ist beispielsweise der Großbuchstabe "F" dadurch gekenn­ zeichnet, daß er zwei extreme Spitzen bei Betrachtung von seiner rechten Horizontalseite aus aufweist. isits können Zeichen sowohl aufgrund der Anzahl von Spitzen als auch deren Relativlage identifizieren. So muß beispielsweise ein isit zur Erkennung des Buchstabens "F" den Buchstaben "c" zurückweisen, da die Anzahl und relative Lage der Spitzen in einer seiner Ansichten oder in einer seiner Populationszählfelder nicht richtig ist.
Einige Zeichen sind gekennzeichnet durch einen "Balken" oder eine "Rampe" (das ist die linke Ansicht eines B, b, h, k, A, D, E usw.). Ein isit zur Erkennung solcher Zeichen kann ein Zeichen auf das längste Einzelsegment im Zeichen untersuchen und nach Charakteristiken, wie dem Prozentsatz der Länge des längsten Segments zur Länge des Zeichens als Ganzem und der Steigung des Segments suchen.
Eine andere Methode, die von isits zur Identifizierung von Zeichen benutzt wird, ist die Identifizierung von Schleifen in den Zeichen. Eine Schleife kann als Linie mit primär zwei Änderungen von weiß nach schwarz über jede Zeile der Schleife identifiziert werden. Die isits identifizieren die Steilheit der Kurve der Schleife, die relative Symmetrie der Kurve und Informationen über Ecken der Schleife. So kann beispielsweise die Zahl "8" häufig von dem Buchstaben "B" aufgrund der Unter­ schiede in den Ecken unterschieden werden.
Wie oben gesagt, schickt ein isit nach Beendigung einer Analy­ se entweder den ASCII-Code oder den Formcode für das spezielle Bild oder die Information unter Angabe des Zurückweisungsgrun­ des zurück. Wenn das Bild erkannt wurde, Zweig 1306, wird eine Schablone in der oben beschriebenen Weise in Verbindung mit der Schablonenanpassung, Block 1307, gebildet. Der Identifi­ zierungscode wird dann auf die Zeichenfahne bewegt.
Anderenfalls wird das nächste isit auf der Basis von Parame­ tern, wie die Häufigkeit des durch das isit darge­ stellten Zeichens und aufgrund von aus vorhergehenden isits gewonnenen Informationen über die Gründe für die Zurückweisung des Zei­ chens, Zweig 1310, ausgewählt. Wenn keine isits mehr vorhanden sind, Zweig 1311, wird das Bild im Zeichenfenster in den Zu­ rückweisungscache bewegt. Anderenfalls, Zweig 1312, wird das Zeichen vom nächsten isit analysiert, Block 1304.
SEITENANPASSUNG
In vielen Fällen kann ein Zeichen weder durch die Schablonen­ anpassung noch durch die Merkmalsanalysenroutinen erkannt werden, da das Zeichen an einem benachbarten Zeichen "klebt". Dies geschieht beispielsweise dann, wenn Zeichen aufgrund der Qualität des Druckprozesses zu eng zusammenhängen. Als typi­ sches Beispiel können zusammengeklebte Zeichen auftreten, wenn die Druckfarbe, Tusche oder Tinte in einem aus Proportional­ text zusammengesetzten Dokument zerfließt.
Es wird ein Verfahren, genannt "Seitenanpassung", zum Identifizieren derartiger zusammenfließender Zeichen beschrieben. Beim Analysieren eines Zeichenfensters unter Verwendung der Seitenanpassung werden Schablonen effektiv auf die Seiten des Zeichenfensters gelegt, um festzustellen, ob eine Übereinstim­ mung mit dieser Schablone auftreten würde, wenn alle Pixel im "Schatten" dieser Schablone ignoriert würden. Die Seitenanpas­ sungsmethoden machen von den gleichen Schablonenvergleichsal­ gorithmen Gebrauch, die oben unter Bezugnahme auf die Schablo­ nenanpassung diskutiert wurden; jedoch ignorieren die Seiten­ anpassungsmethoden die Bilder auf den rechten oder linken Seiten.
Wenn beispielsweise ein Zeichenfenster das Zeichen "ite" ent­ hält, wobei alle Buchstaben zusammengeklebt sind, sucht der Seitenanpaßprozeß Schablonen auf die linken und rechten Seiten des Zeichenfensters zu legen. Jede dieser Schablonen wird dabei mit der linken Seite des Zeichenfensters ausgerichtet, um eine Übereinstimmung auf der linken Seite zu suchen, wäh­ rend Pixel rechts von den Ein-Pixeln in der Schablone igno­ riert werden. Bei dem aktuellen Beispiel würde ein Auflegen einer Schablone mit dem Zeichen "i" auf die linke Seite des Zeichenfensters eine Übereinstimmung ergeben. Ist dies der Fall, so wird der ASCII-Code für ein "i" in der Fahne re­ gistriert, und der Seitenanpaßprozeß entfernt die den Buchsta­ ben "i" darstellenden Pixel aus dem Fenster. Das Verfahren wird danach fortgesetzt, indem eine Seitenanpassung an den restlichen Pixeln im Fenster versucht wird. In diesem Falle würde eine Übereinstimmung auftreten, wenn eine Schablone für das Zeichen "t" verwendet würde.
Die Seitenanpassungsmethode kann sowohl für die rechte als auch für die linke Seite eines Zeichenfensters benutzt werden und wird angewandt auf alle möglichen vertikalen Ausrichtun­ gen. Wenn die Seitenanpassung von der linken Seite des Zei­ chenfensters unerkannte Zeichen übrig läßt, wird die Seitenan­ passung von der rechten Seite aus versucht.
Da einige Buchstabenformen Untergruppen von anderen sind (z. B. r-n-m oder c-o-d), werden die Schablonen vor ihrer Verwendung bei der Seitenanpassung nach der Größe geordnet. Einige Scha­ blonen (z. B. ein Punkt) sind vom Seitenanpaßprozeß deshalb ausgeschlossen, da derartige Schablonen Übereinstimmungen mit praktisch allen Bildern ergeben.
Bei dem beschriebenen Beispiel wird die Seitenanpassung an Zeichenfenstern im Zurückweisungscache nach Beendigung der Verarbeitung aller Zeichen im Dokument versucht. Dies ermög­ licht die Erzeugung einer relativ großen Bibliothek von Scha­ blonen und erhöht die Chancen einer erfolgreichen Identifizie­ rung von Buchstaben mit Hilfe der Seitenanpaßmethode.
KONTEXTANALYSE
Mit dem Zeichenerkennungsverfahren werden Zeichen nach ihrer Form identifiziert. Die Form des Zeichens allein ist jedoch in einigen Fällen nicht eindeutig bestimmend für das Zeichen selbst. Beispielsweise läßt sich der Kleinbuchstabe "s" unter Umständen nicht von dem Großbuchstaben "S" unterscheiden. Als anderes Beispiel ist ein Apostroph aufgrund seiner Form allein nicht von einem Komma unterscheidbar. Die Kontextanalysenrou­ tine akzeptiert als Eingabe und verwendet als Ausgabe die Fahne der Zeichencodes, wie sie von den Zeichenerkennungsrou­ tinen erzeugt wird. Eine Kontextanalyse wird an einer Seiten­ zeile oder -linie gleichzeitig durchgeführt, und zwar in dem Versuch, Unsicherheiten zu klären. Im folgenden wird auf Fig. 15 Bezug genommen, in der das Verfahren nach einem bevorzugten Beispiel der Erfindung dargestellt ist.
Das beschriebene Beispiel der Erfindung enthält eine Datenbank mit charakteristischen Attributen der verschiedenen Zeichen. Diese Attribute können Informationen darüber beinhalten, ob das Zeichen typischerweise vollständig über der Grundlinie der Zeichenzeile liegt oder ob eine Unterlänge oder ein anderer Teil des Zeichens sich typischerweise unter die Grundlinie erstreckt. Die Datenbank enthält auch Informationen über die relative Größe der Zeichen, die normalerweise zweifelhaft ist, wenn nach der Form allein identifiziert wird. So kann die Datenbank beispielsweise Informationen zur Unterscheidung zwischen Groß- und Kleinbuchstaben "S" und "s" auf der Basis der erwarteten Relativgröße enthalten.
Jede Zeile der Seite wird aus der Fahne in einen Puffer zur Vorbereitung der Zeile für die Weiterverarbeitung kopiert, Block 1501. Während dieses Kopiervorgangs einer Zeile in den Puffer werden den Zeichen aus der Zeichenattribut-Datenbank Werte zugeordnet, wie Informationen darüber, ob die Zeichen über die Basislinie hinausgehen und ob die relative Größe des Zeichens einen Groß- oder Kleinbuchstaben charakterisiert. Der Abstand zwischen Worten wird ebenfalls an dieser Stelle da­ durch bestimmt, daß ein Histogramm der Abstände zwischen Buch­ staben konstruiert und analysiert wird. Wenn Mehrdeutigkeiten für ein Zeichen geklärt werden, macht die Erfindung von bei der Klärung dieser Mehrdeutigkeiten gewonnenen Informationen Gebrauch, um Mehrdeutigkeiten der benachbarten Zeichen zu lösen.
Die Basislinie wird auch bezüglich der Schräglage eingestellt. Bei dem beschriebenen Ausführungsbeispiel kann die Schräglage dadurch eingestellt werden, daß die erwartete Basislinie für jeden Einzelbuchstaben geprüft und die Basislinie für die Gesamtzeile aufgrund dieser Information eingestellt wird. Wenn die Werte für die Basislinie aber von Zeichen zu Zeichen oder von Wort zu Wort wesentlich voneinander abweichen, wird ein Zeichen nahe jedes Zeilenendes gesucht, das eine mit ausrei­ chender Zuverlässigkeit auf der Basislinie befindliche Posi­ tion hat (z. B. der Buchstabe "B" sitzt auf der Basislinie, während die Lage des Buchstabens "Q" nicht als ausreichend zuverlässig auf der Basislinie gelegen angesehen werden kann, da bei einigen Schrifttypen ein Fuß oder Abstrich über die Basislinie hinausgehen kann). Danach wird eine eingestellte Basislinie dadurch bestimmt, daß man eine den Boden dieser beiden Zeichen nahe jedes Zeilenendes verbindende Gerade zeichnet.
Die typischen Höhen von Klein- und Großbuchstaben in der Zeile werden durch Bildung von Histogramminformationen bestimmt, welche die Höhen von unzweifelhaft bestimmten Zeichen zeigen. Normalerweise zeigen derartige Histogramme zwei Spitzenni­ veaus, unter denen ein erstes Niveau den Kleinbuchstaben und ein zweites Niveau den Großbuchstaben entspricht.
Gewisse Zeichentypen, wie Unterstreichungen, werden zum Ende des Pufferbereichs bewegt. Dies ermöglicht es, daß diese Zei­ chen während des Hauptteils der Kontextanalyse effektiv igno­ riert werden. Solche Zeichen werden an ihren vorhergehenden Positionen in der Zeile kurz vor Beendigung des Zeichenanaly­ sevorgangs wiederhergestellt.
Schließlich wird eine Histogrammtypanalyse von der Breite des weißen Raums zwischen benachbarten Zeichen in der Zeile durch­ geführt. Bei dem beschriebenen Beispiel werden Punktzeichen in die Histogrammanalyse nicht einbezogen, wenn die Zeile nicht vollständig aus gepunkteten Linien besteht. Typischerweise hat das Histogramm zwei Spitzenniveaus. Das erste Spitzenniveau wird angenommen als Darstellung des Zeichenabstands zwischen Einzelbuchstaben innerhalb von Worten, und das zweite Spitzen­ niveau wird als Wortabstandsniveau angenommen. Wenn es keine zwei unterschiedlichen Spitzenniveaus gibt, wird der Wortab­ stand angenommen als ein Mittelpunkt zwischen Spitzenniveaus. Wenn es nicht wenigstens zwei Spitzen gibt, wird ein willkür­ licher Wortabstand auf der Basis mittlerer Höhen von Zeichen in der Zeile bestimmt.
Nach der Präparierung der Zeile für die Kontextanalyse, Block 1501, wird ein erster Durchlauf über jedes Zeichen in der Zeile durchgeführt, Block 1502, um Mehrdeutigkeiten zu klären. Dieser erste Durchlauf sucht nach solchen Charakteristiken, wie der relativen Höhe von Zeichen in jedem Wort, den Positio­ nen relativ zur Grundlinie usw.. In den Fällen, bei denen die Unterscheidung zwischen einer Zahl und einem Buchstaben unklar ist, wird das Zeichen relativ zu anderen Zeichen in der Nach­ barschaft analysiert, um zu bestimmen, ob dieses oder benach­ barte Zeichen numerisch oder alphabetisch sind. Die Bestimmung von Zeichenmehrdeutigkeiten erfolgt nach einem iterativen Prozeß, bei dem über Nachbarzeichen bekannte Informationen für die Analyse eines speziellen Zeichens herangezogen werden. Nach der Prüfung aller Zeichen in einem Wort werden Konsi­ stenzprüfungen durchgeführt. Wenn ein oder mehrere Zeichen mit inkonsistenten Eigenschaften ermittelt werden, werden alle Zeichen im Wort als möglicherweise falsch interpretiert ausge­ flaggt. Ein zweiter Durchlauf der Kontextanalysenroutine soll die Interpretation korrigieren.
Nach Beendigung des ersten Kontextanalysendurchlaufs für jede Zeile in der Fahne versucht die Kontextanalysenroutine, eine Schriftart-Identifizierungsnummer jedem Zeichen in der Fahne zuzu­ ordnen und die Zeichengrößen für jede Schriftart zu bestimmen, Block 1503. Die Schriftartidentifizierung wird über die Fahne fortgesetzt, indem alle Zeichen, die durch Schablonen identifiziert wurden, verfolgt werden. Alle diejenigen Zeichen, welche mit einer speziellen Schablone übereinstimmen, werden miteinander in einer Verknüpfungsliste verknüpft, wobei die Verknüpfungsliste eine auf eine besondere Schablone hinweisende Wurzel hat. Auf der Basis dieser verknüpften Zeichenlisten werden unter der Bedingung Worte zu Schriftarten zugeordnet, daß Worte mit von derselben Schablone identifizierten Zeichen dieselbe Schrift­ art haben. Dieser ist ein langer iterativer Prozeß. Nachher werden Histogramminformationen erstellt, welche die Höhe von Groß- und Kleinbuchstaben in jeder Schriftart detailliert beschreiben.
Danach wird ein zweiter Durchlauf über jede Zeile in der Fahne durchgeführt, Block 1504. Während des ersten Durchlaufs als unstimmig ausgeflaggte Worte werden erneut analysiert, um festzustellen, welche Buchstaben unrichtig sind. Der zweite Durchlauf prüft solche Kennzeichen, wie Grundliniengleich­ mäßigkeit, Zeichengrößengleichmäßigkeit, alphabetischen/nume­ rischen Kontext usw..
Schließlich wird ein Reihe von gemischten Säuberungsroutinen verwendet, Block 1505. Hierzu gehören die Prüfung der Zeichen­ setzung zur Gewährleistung einer vernünftigen Größe und Posi­ tion. Beispielsweise wird ein übergroßes Satzzeichen wahrscheinlich als unerkanntes Zeichen behandelt und als sol­ ches ausgeflaggt. Punkte und relativ breite Kommas oder Apo­ strophe, die über der Basislinie und unterhalb des oberen Endes des Kleinbuchstabens liegen, können kurze Gedankenstri­ che oder Punktfolgen sein. Diese Zeichen werden dem ASCII-Code für einen Gedanken- oder Bindestrich zugeordnet. Bei dem Ver­ such, in einem Bit-mapped-Bild, das einen nicht-gedruckten Text darstellt, etwas wie eine Unterschrift oder ein Logo zu erkennen, ist das Ergebnis typischerweise eine Folge mit uner­ kannten Zeichen und ein Satz anderer Zeichen, wie Satzzeichen und Gedankenstrichen. Derartige Folgen kollabieren in einem einzigen unerkannten Zeichen. Aufeinanderfolgende einzelne Angaben werden in doppelte Anführungszeichen zusammengefaßt.
Die Kontextanalysenroutine versucht auch, durch die Zeichener­ kennungsroutinen getrennte Zeichen zu verschmelzen. So können beispielsweise zwei Zeichen, die von den Zeichenerkennungsrou­ tinen als offene Klammern erkannt worden sind "(", gefolgt von einer geschlossenen Klammer")" tatsächlich den Buchstaben "O" darstellen. Die Kontextanalysenroutinen versuchen, derartig gesplittete Zeichen dadurch zu vereinigen, daß sie die Posi­ tionsnähe und die Zusammengehörigkeit spezieller Zeichenpaare erkennt.
Andere Zeichen, wie Unterstreichungen, werden analysiert, um festzustellen, ob sie innerhalb einer vorgegebenen Distanz von der Basislinie liegen. Wenn die Unterstreichung mehr als eine vorgegebene Distanz entfernt ist oder wenn ihre Ränder nicht mit den Wortgrenzen zusammenfallen, wird sie als Linie und nicht als Unterstreichung aufgefaßt. Andererseits werden die Zeichen oberhalb der Unterstreichung als unterstrichen ausge­ flaggt. Die vorgegebene Distanz wird auf der Basis des relati­ ven Kontextes der Zeile, einschließlich solcher Faktoren wie Größe der Buchstaben, bestimmt.
Die Kontextanalysenroutinen versuchen, nicht-identifizierte Zei­ chen durch Verschmelzen unterbrochener Zeichenteile, durch Wiedereinführen von Zeichen in die Zeichenerkennungsroutinen und die Anlegung weniger scharfer Beschränkungen für die Er­ kennung zu identifizieren.
Am Ausgang der Kontextanalysenroutinen erscheint die vollstän­ dige abgetastete Seite mit ASCII-Zeichendarstellungen für die Zeichen auf der Seite in der normalen Lesefolge der Zeichen.

Claims (8)

1. Verfahren zum Erkennen von Zeichen auf einem Medium
wobei das Medium abgetastet und ein Bit-mapped-Bild des Mediums erzeugt wird;
wobei das Bit-mapped-Bild einer Strukturanalyse (103, 203, 232) zum Isolieren einzelner Zeichen unterworfen wird und als Ausgabe der Strukturanalyse ein Bit-mapped-Bild der Zeichen erzeugt wird;
wobei die Zeichen vorläufig identifiziert werden (234); und
wobei jedes Zeichen auf der Basis des das Zeichen im Me­ dium umgebenden Kontextes analysiert wird (104);
dadurch gekennzeichnet,
  • a) daß eine Textzeile in dem Medium zum Bestimmen von räumlichen Informationen über die Textzeile analysiert wird;
  • b) daß Attributdaten für jedes vorläufig identifizierte Zeichen in der Textzeile gewonnen und diesem Zeichen zuge­ ordnet werden; und
  • c) daß Mehrdeutigkeiten bei einem vorläufig identifi­ zierten Zeichen mit Hilfe der räumlichen Informationen über die Textzeile und mit Hilfe der zugeordneten Attributdaten aufgelöst werden (1502).
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die räumlichen Informationen Informationen über den Schrägfehler der Textzeile, den Zeichenabstand und über Zei­ chenhöhen (1503) umfassen.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekenn­ zeichnet,
daß ein Histogramm der Abstände zwischen den Zeichen in der Textzeile erzeugt wird; und
daß die mittlere Höhe von unzweifelhaft identifizierten Zeichen in der Textzeile bestimmt wird (1503).
4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet,
daß eine Datenbank von charakteristischen Attributen be­ kannter Zeichen vorgesehen wird; und
daß auf die Datenbank zum Gewinnen von charakteristi­ schen Attributen des mehrdeutigen Zeichens zugegriffen wird.
5. Anordnung zum Erkennen von Zeichen auf einem Medium mit
einer Scannereinrichtung, die ausgangsseitig ein Bit- mapped-Bild des Mediums erzeugt;
einem mit der Scannereinrichtung gekoppelten Speicher zum Speichern des Bit-mapped-Bildes;
einer mit dem Speicher gekoppelten Prozessoreinrichtung zur Strukturanalyse des Bit-mapped-Bildes des Mediums und zur Ausgabe einer Bit-mapped-Darstellung der Zeichen;
einer Einrichtung zum vorläufigen Identifizieren der Zeichen und
einer Einrichtung zum Analysieren jedes Zeichens auf der Basis des das Zeichen im Medium umgebenden Kontextes, wobei die Einrichtung zum Analysieren gekennzeichnet ist durch:
eine erste Einrichtung zum Analysieren einer Textzeile zum Bestimmen von räumlichen Informationen über die Text­ zeile im Medium;
eine zweite Einrichtung zum Gewinnen und Zuordnen von Attributdaten für jedes vorläufig identifizierte Zeichen in der Textzeile; und
eine mit der ersten und der zweiten Einrichtung gekop­ pelte Einrichtung zum Auflösen von Mehrdeutigkeiten bei ei­ nem vorläufig identifizierten Zeichen mit Hilfe der räumli­ chen Informationen über die Textzeile und der zugeordneten Attributdaten.
6. Anordnung nach Anspruch 5, dadurch gekennzeichnet, daß die Einrichtung zum Analysieren einer Textzeile eine Einrichtung zum Beschreiben des Schrägfehlers der Textzeile, von Zeichenabstandsinformationen und von Zeichenhöhen auf­ weist.
7. Anordnung nach Anspruch 5 oder 6, wobei die Einrich­ tung zum Analysieren einer Textzeile eine Einrichtung zum Erzeugen eines Histogramms der Abstände zwischen den Zeichen in der Textzeile und eine Einrichtung zum Bestimmen der mittleren Höhe von unzweifelhaft identifizierten Zeichen in der Textzeile umfasst.
8. Anordnung nach einem der Ansprüche 5 bis 7, gekenn­ zeichnet durch
eine Datenbank-Einrichtung für charakteristische Attri­ bute von bekannten Zeichen; und durch
eine Einrichtung zum Zugreifen auf die Datenbank-Ein­ richtung zum Gewinnen von charakteristischen Attributen ei­ nes mehrdeutigen Zeichens.
DE3926327A 1988-08-10 1989-08-09 Verfahren und System zum Erkennen von Zeichen auf einem Medium Expired - Fee Related DE3926327C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/230,847 US5131053A (en) 1988-08-10 1988-08-10 Optical character recognition method and apparatus

Publications (2)

Publication Number Publication Date
DE3926327A1 DE3926327A1 (de) 1990-02-15
DE3926327C2 true DE3926327C2 (de) 1999-03-18

Family

ID=22866815

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3926327A Expired - Fee Related DE3926327C2 (de) 1988-08-10 1989-08-09 Verfahren und System zum Erkennen von Zeichen auf einem Medium

Country Status (3)

Country Link
US (6) US5131053A (de)
DE (1) DE3926327C2 (de)
GB (1) GB2222475A (de)

Families Citing this family (183)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5131053A (en) * 1988-08-10 1992-07-14 Caere Corporation Optical character recognition method and apparatus
EP0385009A1 (de) * 1989-03-03 1990-09-05 Hewlett-Packard Limited Gerät und Verfahren zur Anwendung bei der Bildverarbeitung
JP2809762B2 (ja) * 1989-11-14 1998-10-15 株式会社東芝 図形整形装置
JP2523222B2 (ja) * 1989-12-08 1996-08-07 ゼロックス コーポレーション 画像縮小/拡大方法及び装置
DE69226103T2 (de) * 1991-02-22 1998-11-19 Canon Kk System zur Bildbearbeitung
US5258855A (en) * 1991-03-20 1993-11-02 System X, L. P. Information processing methodology
EP0506483B1 (de) * 1991-03-29 1999-02-17 Canon Kabushiki Kaisha Anordnung zur Registrierung von Informationen und Verfahren zur Bildregistrierung
JPH0772906B2 (ja) * 1991-07-10 1995-08-02 富士ゼロックス株式会社 文書認識装置
CA2077970C (en) * 1991-11-19 1999-02-23 Daniel P. Huttenlocher Optical word recognition by examination of word shape
JPH05151254A (ja) * 1991-11-27 1993-06-18 Hitachi Ltd 文書処理方法およびシステム
US8352400B2 (en) 1991-12-23 2013-01-08 Hoffberg Steven M Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore
US5361204A (en) * 1992-03-19 1994-11-01 The Titan Corporation Searching for key bit-mapped image patterns
US5335290A (en) * 1992-04-06 1994-08-02 Ricoh Corporation Segmentation of text, picture and lines of a document image
US5452374A (en) * 1992-04-06 1995-09-19 Ricoh Corporation Skew detection and correction of a document image representation
US6323961B1 (en) 1992-11-06 2001-11-27 Michael I. Rackman Facsimile machine for printing documents with selectively aligned edges
GB2273383A (en) * 1992-12-10 1994-06-15 Ibm Character recognition
US6212299B1 (en) 1992-12-11 2001-04-03 Matsushita Electric Industrial Co., Ltd. Method and apparatus for recognizing a character
JPH06208654A (ja) * 1993-01-08 1994-07-26 Hitachi Software Eng Co Ltd ペン入力図形編集システム
US6002798A (en) * 1993-01-19 1999-12-14 Canon Kabushiki Kaisha Method and apparatus for creating, indexing and viewing abstracted documents
US5375176A (en) * 1993-04-19 1994-12-20 Xerox Corporation Method and apparatus for automatic character type classification of European script documents
JP3302147B2 (ja) * 1993-05-12 2002-07-15 株式会社リコー 文書画像処理方法
AU672482B2 (en) * 1993-06-29 1996-10-03 Keech Castings Australia Pty Limited Spool and wedge assembly and method of use thereof
IL106406A (en) * 1993-07-20 1997-03-18 Scitex Corp Ltd And Advanced V Automatic inspection of printing plates or cylinders
WO1995004428A1 (en) * 1993-08-02 1995-02-09 Solomon, Hadar Apparatus and method for creating and transmitting confidential documents
US5311607A (en) * 1993-08-25 1994-05-10 Crosby Peter A Facsimile machine for printing documents all with corresponding edges aligned but without requiring scanning
JP3050007B2 (ja) * 1993-08-26 2000-06-05 ミノルタ株式会社 画像読取装置およびこれを備えた画像形成装置
DE69423838T2 (de) * 1993-09-23 2000-08-03 Xerox Corp., Rochester Semantische Gleichereignisfilterung für Spracherkennung und Signalübersetzungsanwendungen
US6415048B1 (en) 1993-10-12 2002-07-02 Schneider Medical Technologies, Inc. Compositional analysis system
JP3693691B2 (ja) * 1993-12-30 2005-09-07 株式会社リコー 画像処理装置
GB2288476A (en) * 1994-04-05 1995-10-18 Ibm Authentication of printed documents.
DE69519323T2 (de) * 1994-04-15 2001-04-12 Canon Kk System zur Seitensegmentierung und Zeichenerkennung
US6268935B1 (en) * 1994-04-15 2001-07-31 Minolta Co., Ltd. Image processor
US5535313A (en) * 1994-07-18 1996-07-09 Motorola, Inc. Automated quality control in a document conversion system
JP3278297B2 (ja) * 1994-07-20 2002-04-30 富士通株式会社 データ圧縮方法及びデータ復元方法並びにデータ圧縮装置及びデータ復元装置
US5702059A (en) * 1994-07-26 1997-12-30 Meta Holding Corp. Extended working range dataform reader including fuzzy logic image control circuitry
US5811784A (en) * 1995-06-26 1998-09-22 Telxon Corporation Extended working range dataform reader
US5763864A (en) * 1994-07-26 1998-06-09 Meta Holding Corporation Dataform reader including dual laser and imaging reading assemblies
US5815200A (en) * 1994-07-26 1998-09-29 Metanetics Corporation Extended working range dataform reader with reduced power consumption
US6424830B1 (en) 1994-07-26 2002-07-23 Telxon Corporation Portable data collection network with telephone and voice mail capability
US5625711A (en) * 1994-08-31 1997-04-29 Adobe Systems Incorporated Method and apparatus for producing a hybrid data structure for displaying a raster image
US5729637A (en) 1994-08-31 1998-03-17 Adobe Systems, Inc. Method and apparatus for producing a hybrid data structure for displaying a raster image
DE69525401T2 (de) * 1994-09-12 2002-11-21 Adobe Systems, Inc. Verfahren und Gerät zur Identifikation von Wörtern, die in einem portablen elektronischen Dokument beschrieben sind
CA2154952A1 (en) * 1994-09-12 1996-03-13 Robert M. Ayers Method and apparatus for identifying words described in a page description language file
US5987171A (en) * 1994-11-10 1999-11-16 Canon Kabushiki Kaisha Page analysis system
US5649024A (en) * 1994-11-17 1997-07-15 Xerox Corporation Method for color highlighting of black and white fonts
US5689342A (en) * 1994-11-17 1997-11-18 Canon Kabushiki Kaisha Image processing method and apparatus which orders text areas which have been extracted from an image
US5608874A (en) * 1994-12-02 1997-03-04 Autoentry Online, Inc. System and method for automatic data file format translation and transmission having advanced features
US5668891A (en) * 1995-01-06 1997-09-16 Xerox Corporation Methods for determining font attributes of characters
EP0723247B1 (de) 1995-01-17 1998-07-29 Eastman Kodak Company System und Verfahren zur Bewertung der Abbildung eines Formulars
DE19507059B9 (de) * 1995-03-01 2005-02-17 Wevelsiep, Klaus, Prof. Dipl.-Ing. Dr. Verfahren zur omnidirektionalen Erfassung von OCR-Klarschrift auf Etiketten oder ähnlichen Datenträgern durch zufallsgesteuerte Suche und Dekodierung mit einem neuronalen Netzwerk
DE19508135C2 (de) * 1995-03-08 1996-12-19 Licentia Gmbh Verfahren zur Verbesserung der Erkennung von Maschinenschriften mit fester Schriftteilung
US6005680A (en) 1995-04-04 1999-12-21 Canon Information Systems, Inc. Method for capturing a document image, a scanner using the method and a document image management system using the scanner
US5764799A (en) * 1995-06-26 1998-06-09 Research Foundation Of State Of State Of New York OCR method and apparatus using image equivalents
US5818028A (en) * 1995-06-26 1998-10-06 Telxon Corporation Portable data collection device with two dimensional imaging assembly
US5703349A (en) * 1995-06-26 1997-12-30 Metanetics Corporation Portable data collection device with two dimensional imaging assembly
US5783811A (en) * 1995-06-26 1998-07-21 Metanetics Corporation Portable data collection device with LED targeting and illumination assembly
US6336094B1 (en) * 1995-06-30 2002-01-01 Price Waterhouse World Firm Services Bv. Inc. Method for electronically recognizing and parsing information contained in a financial statement
JPH0981763A (ja) * 1995-07-07 1997-03-28 Oki Data:Kk 文字・イメージ混在データの圧縮方法及び装置
JP3006466B2 (ja) * 1995-09-28 2000-02-07 日本電気株式会社 文字入力装置
EP0772145A3 (de) 1995-11-06 1999-02-24 JOHNSON &amp; QUIN, INC. System und Verfahren zur Qualitätsbestimmung von Drucksachen
US5727220A (en) * 1995-11-29 1998-03-10 International Business Machines Corporation Method and system for caching and referencing cached document pages utilizing a presentation data stream
US5828771A (en) * 1995-12-15 1998-10-27 Xerox Corporation Method and article of manufacture for determining whether a scanned image is an original image or fax image
US5714745A (en) * 1995-12-20 1998-02-03 Metanetics Corporation Portable data collection device with color imaging assembly
JP3502392B2 (ja) * 1996-01-29 2004-03-02 松下電器産業株式会社 デジタル画像画素補填方法、及びそれを用いたデジタル画像符号化装置、画像復号化装置
CA2247359A1 (en) * 1996-03-08 1997-09-12 Farzad Ehsani Method and device for handwritten character recognition
US5793033A (en) * 1996-03-29 1998-08-11 Metanetics Corporation Portable data collection device with viewing assembly
US5875038A (en) * 1996-05-28 1999-02-23 Gerber Scientific, Inc. Facsimile queuing and transmission system
US6496600B1 (en) * 1996-06-17 2002-12-17 Canon Kabushiki Kaisha Font type identification
US6054990A (en) * 1996-07-05 2000-04-25 Tran; Bao Q. Computer system with handwriting annotation
US6202060B1 (en) 1996-10-29 2001-03-13 Bao Q. Tran Data management system
US5926566A (en) * 1996-11-15 1999-07-20 Synaptics, Inc. Incremental ideographic character input method
US6512848B2 (en) * 1996-11-18 2003-01-28 Canon Kabushiki Kaisha Page analysis system
US6055336A (en) * 1996-11-18 2000-04-25 Canon Kabushiki Kaisha Image processing system which converts multi-value image data into binary image data
US5893127A (en) * 1996-11-18 1999-04-06 Canon Information Systems, Inc. Generator for document with HTML tagged table having data elements which preserve layout relationships of information in bitmap image of original document
JP3427692B2 (ja) * 1996-11-20 2003-07-22 松下電器産業株式会社 文字認識方法および文字認識装置
US5856832A (en) * 1997-01-13 1999-01-05 Hewlett-Packard Company System and method for parsing multiple sets of data
US6179208B1 (en) 1997-01-31 2001-01-30 Metanetics Corporation Portable data collection device with variable focusing module for optic assembly
JP2000517452A (ja) * 1997-05-05 2000-12-26 シェル オイル カンパニー 視認の方法
US6000612A (en) * 1997-10-10 1999-12-14 Metanetics Corporation Portable data collection device having optical character recognition
US6028970A (en) * 1997-10-14 2000-02-22 At&T Corp Method and apparatus for enhancing optical character recognition
US6173073B1 (en) 1998-01-05 2001-01-09 Canon Kabushiki Kaisha System for analyzing table images
US6327388B1 (en) * 1998-08-14 2001-12-04 Matsushita Electric Industrial Co., Ltd. Identification of logos from document images
US7039856B2 (en) * 1998-09-30 2006-05-02 Ricoh Co., Ltd. Automatic document classification using text and images
US6363381B1 (en) * 1998-11-03 2002-03-26 Ricoh Co., Ltd. Compressed document matching
US6711292B2 (en) 1998-12-30 2004-03-23 Canon Kabushiki Kaisha Block selection of table features
US6614930B1 (en) * 1999-01-28 2003-09-02 Koninklijke Philips Electronics N.V. Video stream classifiable symbol isolation method and system
US7904187B2 (en) 1999-02-01 2011-03-08 Hoffberg Steven M Internet appliance system and method
JP3196755B2 (ja) * 1999-02-23 2001-08-06 日本電気株式会社 文字の傾き検出補正方法ならびに装置
AUPP898499A0 (en) * 1999-03-02 1999-03-25 University Of Queensland, The Method for image texture analysis
DE19910621C2 (de) 1999-03-10 2001-01-25 Thomas Poetter Vorrichtung und Verfahren zum Verbergen von Informationen und Vorrichtung und Verfahren zum Extrahieren von Informationen
US7596606B2 (en) * 1999-03-11 2009-09-29 Codignotto John D Message publishing system for publishing messages from identified, authorized senders
JP3150130B2 (ja) * 1999-03-26 2001-03-26 新潟日本電気株式会社 画像形成装置及びプログラムを記憶した記憶媒体
RU2166207C2 (ru) * 1999-04-08 2001-04-27 Закрытое акционерное общество "Аби Программное обеспечение" Способ использования вспомогательных массивов данных в процессе преобразования и/или верификации компьютерных кодов, выполненных в виде символов, и соответствующих им фрагментов изображения
US6658151B2 (en) * 1999-04-08 2003-12-02 Ricoh Co., Ltd. Extracting information from symbolically compressed document images
US6473524B1 (en) 1999-04-14 2002-10-29 Videk, Inc. Optical object recognition method and system
RU2166206C2 (ru) * 1999-04-20 2001-04-27 Закрытое акционерное общество "Аби Программное обеспечение" Способ ориентированного нахождения областей в исходном массиве данных и последовательного активирования и обработки в них преобразуемых компьютерных кодов, выполненных в виде символов
WO2000070498A1 (fr) * 1999-05-12 2000-11-23 David Evgenievich Yang Procede d'utilisation de l'integrite de la reconnaissance, de l'orientation taches de la reconnaissance et de l'adaptabilite afin de convertir des codes informatiques lors du processus de reconnaissance de fragments d'images qui leur correspondent
US6624909B1 (en) 1999-05-27 2003-09-23 International Business Machines Corporation Image file format for storing graphical matter and related information
US7240062B2 (en) * 2000-03-06 2007-07-03 Iarchives, Inc. System and method for creating a searchable word index of a scanned document including multiple interpretations of a word at a given document location
US20020006214A1 (en) * 2000-03-21 2002-01-17 Karlsson Sven Olof Secure signature checking system
US6587103B1 (en) * 2000-03-29 2003-07-01 Autodesk, Inc. Method and apparatus for determining coincident lines
US8682077B1 (en) 2000-11-28 2014-03-25 Hand Held Products, Inc. Method for omnidirectional processing of 2D images including recognizable characters
US6985627B2 (en) * 2000-12-06 2006-01-10 Xerox Corporation LED bar array high addressable imaging in 2-dimensions
US7311256B2 (en) * 2000-12-19 2007-12-25 Zih Corp. Barcode optical character recognition
US6832726B2 (en) 2000-12-19 2004-12-21 Zih Corp. Barcode optical character recognition
US6947179B2 (en) * 2000-12-28 2005-09-20 Pitney Bowes Inc. Method for determining the information capacity of a paper channel and for designing or selecting a set of bitmaps representative of symbols to be printed on said channel
JP2004527933A (ja) * 2001-01-09 2004-09-09 メシュリム、ジッシャ、ゴルドクラング 装飾画像をテキスト及び/もしくは絵模様で代替する改善された装置及び方法
US20020181779A1 (en) * 2001-06-04 2002-12-05 Hansen Von L. Character and style recognition of scanned text
US20030084031A1 (en) * 2001-10-31 2003-05-01 Tarquini Richard P. System and method for searching a signature set for a target signature
US6999635B1 (en) * 2002-05-01 2006-02-14 Unisys Corporation Method of reducing background noise by tracking character skew
NZ536775A (en) * 2002-05-20 2007-11-30 Tata Infotech Ltd Document structure identifier
RU2234126C2 (ru) * 2002-09-09 2004-08-10 Аби Софтвер Лтд. Способ распознавания текста с применением настраиваемого классификатора
RU2251151C2 (ru) * 2002-12-17 2005-04-27 Аби Софтвер Лтд. Способ анализа растрового изображения
US8606015B2 (en) 2002-12-17 2013-12-10 Abbyy Development Llc Multilevel image analysis
US7310769B1 (en) 2003-03-12 2007-12-18 Adobe Systems Incorporated Text encoding using dummy font
US7922623B2 (en) * 2003-03-25 2011-04-12 Spri Products, Inc. Adjustable exercise device and a device for adjusting an exercise device
RU2259592C2 (ru) * 2003-06-24 2005-08-27 "Аби Софтвер Лтд." Способ распознавания графических объектов с использованием принципа целостности
US20070104370A1 (en) * 2003-11-18 2007-05-10 Siemens Aktiengesellschaft System and method for smart polling
KR20060097129A (ko) * 2003-11-18 2006-09-13 시에멘스 에이지 우편물을 전송하기 위한 방법 및 장치
US7286718B2 (en) * 2004-01-26 2007-10-23 Sri International Method and apparatus for determination of text orientation
US8442331B2 (en) 2004-02-15 2013-05-14 Google Inc. Capturing text from rendered documents using supplemental information
US7707039B2 (en) 2004-02-15 2010-04-27 Exbiblio B.V. Automatic modification of web pages
JP3996580B2 (ja) * 2004-01-29 2007-10-24 Necディスプレイソリューションズ株式会社 映像表示方法、映像表示装置及びプログラム
US10635723B2 (en) 2004-02-15 2020-04-28 Google Llc Search engines and systems with handheld document data capture devices
US7812860B2 (en) 2004-04-01 2010-10-12 Exbiblio B.V. Handheld device for capturing text from both a document printed on paper and a document displayed on a dynamic display device
US7466875B1 (en) 2004-03-01 2008-12-16 Amazon Technologies, Inc. Method and system for determining the legibility of text in an image
CA2460888A1 (en) * 2004-03-12 2005-09-12 Harpe And Associates Ltd. Method for image alignment and identification
US20050210047A1 (en) * 2004-03-18 2005-09-22 Zenodata Corporation Posting data to a database from non-standard documents using document mapping to standard document types
US9008447B2 (en) 2004-04-01 2015-04-14 Google Inc. Method and system for character recognition
US9116890B2 (en) 2004-04-01 2015-08-25 Google Inc. Triggering actions in response to optically or acoustically capturing keywords from a rendered document
US20060081714A1 (en) 2004-08-23 2006-04-20 King Martin T Portable scanning device
US9143638B2 (en) 2004-04-01 2015-09-22 Google Inc. Data capture from rendered documents using handheld device
US8081849B2 (en) 2004-12-03 2011-12-20 Google Inc. Portable scanning and memory device
US20060098900A1 (en) 2004-09-27 2006-05-11 King Martin T Secure data gathering from rendered documents
US7990556B2 (en) 2004-12-03 2011-08-02 Google Inc. Association of a portable scanner with input/output and storage devices
US8146156B2 (en) 2004-04-01 2012-03-27 Google Inc. Archive of text captures from rendered documents
US7894670B2 (en) 2004-04-01 2011-02-22 Exbiblio B.V. Triggering actions in response to optically or acoustically capturing keywords from a rendered document
US8713418B2 (en) 2004-04-12 2014-04-29 Google Inc. Adding value to a rendered document
US8620083B2 (en) 2004-12-03 2013-12-31 Google Inc. Method and system for character recognition
US8489624B2 (en) 2004-05-17 2013-07-16 Google, Inc. Processing techniques for text capture from a rendered document
US8874504B2 (en) 2004-12-03 2014-10-28 Google Inc. Processing techniques for visual capture data from a rendered document
US8346620B2 (en) 2004-07-19 2013-01-01 Google Inc. Automatic modification of web pages
US7675641B2 (en) * 2004-10-28 2010-03-09 Lexmark International, Inc. Method and device for converting scanned text to audio data via connection lines and lookup tables
US7555713B2 (en) * 2005-02-22 2009-06-30 George Liang Yang Writing and reading aid system
US7596270B2 (en) * 2005-09-23 2009-09-29 Dynacomware Taiwan Inc. Method of shuffling text in an Asian document image
US8787660B1 (en) * 2005-11-23 2014-07-22 Matrox Electronic Systems, Ltd. System and method for performing automatic font definition
US7684619B2 (en) * 2006-01-09 2010-03-23 Apple Inc. Text flow in and around irregular containers
EP2067119A2 (de) 2006-09-08 2009-06-10 Exbiblio B.V. Optische scanner, zum beispiel tragbare optische scanner
US7831098B2 (en) * 2006-11-07 2010-11-09 Recognition Robotics System and method for visual searching of objects using lines
CN107102723B (zh) * 2007-08-20 2019-12-06 高通股份有限公司 用于基于手势的移动交互的方法、装置、设备和非暂时性计算机可读介质
US9261979B2 (en) * 2007-08-20 2016-02-16 Qualcomm Incorporated Gesture-based mobile interaction
US20110103713A1 (en) * 2008-03-12 2011-05-05 Hans Christian Meyer Word length indexed dictionary for use in an optical character recognition (ocr) system
US8620080B2 (en) * 2008-09-26 2013-12-31 Sharp Laboratories Of America, Inc. Methods and systems for locating text in a digital image
KR101522985B1 (ko) * 2008-10-31 2015-05-27 삼성전자주식회사 영상처리 장치 및 방법
TWI410879B (zh) * 2009-01-23 2013-10-01 Ind Tech Res Inst 影像辨識與輸出方法以及其系統
EP2399385B1 (de) 2009-02-18 2019-11-06 Google LLC Automatische informationserfassung wie etwa informationserfassung anhand einer dokumentbewussten vorrichtung
JP5343617B2 (ja) * 2009-02-25 2013-11-13 富士通株式会社 文字認識プログラム、文字認識方法および文字認識装置
WO2010105246A2 (en) * 2009-03-12 2010-09-16 Exbiblio B.V. Accessing resources based on capturing information from a rendered document
US8447066B2 (en) 2009-03-12 2013-05-21 Google Inc. Performing actions based on capturing information from rendered documents, such as documents under copyright
US9081799B2 (en) 2009-12-04 2015-07-14 Google Inc. Using gestalt information to identify locations in printed information
US9323784B2 (en) 2009-12-09 2016-04-26 Google Inc. Image search using text-based elements within the contents of images
US9152617B2 (en) * 2010-03-11 2015-10-06 A2iA S.A. System and method for processing objects
CN102455997A (zh) * 2010-10-27 2012-05-16 鸿富锦精密工业(深圳)有限公司 元件名称提取系统及方法
KR101102896B1 (ko) * 2011-03-04 2012-01-09 (주)올라웍스 복수의 사용자가 동시에 콜렉션을 수행할 수 있도록 지원하기 위한 방법, 서버 및 컴퓨터 판독 가능한 기록 매체
JP5508359B2 (ja) * 2011-08-03 2014-05-28 シャープ株式会社 文字認識装置、文字認識方法及びプログラム
US9047528B1 (en) * 2013-02-19 2015-06-02 Amazon Technologies, Inc. Identifying characters in grid-based text
US9311338B2 (en) * 2013-08-26 2016-04-12 Adobe Systems Incorporated Method and apparatus for analyzing and associating behaviors to image content
US9288362B2 (en) 2014-02-03 2016-03-15 King Fahd University Of Petroleum And Minerals Technique for skew detection of printed arabic documents
US9965679B2 (en) 2014-11-05 2018-05-08 Accenture Global Services Limited Capturing specific information based on field information associated with a document class
US9886436B2 (en) 2014-11-06 2018-02-06 Accenture Global Services Limited Conversion of documents of different types to a uniform and an editable or a searchable format
US20160343086A1 (en) * 2015-05-19 2016-11-24 Xerox Corporation System and method for facilitating interpretation of financial statements in 10k reports by linking numbers to their context
US10115016B2 (en) 2017-01-05 2018-10-30 GM Global Technology Operations LLC System and method to identify a vehicle and generate reservation
US10229601B2 (en) 2017-01-30 2019-03-12 GM Global Technology Operations LLC System and method to exhibit vehicle information
CN108537225A (zh) * 2017-03-01 2018-09-14 重庆邮电大学 一种用于自动识别验证码中空心字符的方法
US10169650B1 (en) * 2017-06-30 2019-01-01 Konica Minolta Laboratory U.S.A., Inc. Identification of emphasized text in electronic documents
US10679101B2 (en) * 2017-10-25 2020-06-09 Hand Held Products, Inc. Optical character recognition systems and methods
US11201974B2 (en) 2018-02-26 2021-12-14 HLFIP Holding, Inc. Systems and methods for processing requests to send private postal mail to an inmate
US11151371B2 (en) 2018-08-22 2021-10-19 Leverton Holding, Llc Text line image splitting with different font sizes
JP7095541B2 (ja) * 2018-10-09 2022-07-05 富士通株式会社 階層構造認識プログラム、階層構造認識方法及び階層構造認識装置
JP7172649B2 (ja) * 2019-01-25 2022-11-16 セイコーエプソン株式会社 画像処理装置および画像処理プログラム
CN113269181A (zh) * 2020-02-14 2021-08-17 富士通株式会社 信息处理装置、信息处理方法及计算机可读记录介质
US11501551B2 (en) * 2020-06-08 2022-11-15 Optum Services (Ireland) Limited Document processing optimization
US11977367B2 (en) 2021-05-12 2024-05-07 United Microelectronics Corp. Command script editing method, command script editor and graphic user interface

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3713100B2 (en) * 1953-02-10 1991-05-07 Method and apparatus for identifying letters,characters,symbols,and the like
US3713099A (en) * 1959-08-04 1973-01-23 Character Recognition Corp Method and apparatus for identifying letters, characters, symbols and the like
NL265283A (de) * 1960-05-31
US3641495A (en) * 1966-08-31 1972-02-08 Nippon Electric Co Character recognition system having a rejected character recognition capability
JPS5137494B1 (de) * 1968-01-18 1976-10-15
US3618081A (en) * 1969-06-12 1971-11-02 Edwards Co Condition detection and alarm system
US3717848A (en) * 1970-06-02 1973-02-20 Recognition Equipment Inc Stored reference code character reader method and system
US3873972A (en) * 1971-11-01 1975-03-25 Theodore H Levine Analytic character recognition system
FR2201788A5 (de) * 1972-10-03 1974-04-26 Ibm
JPS5517988B2 (de) * 1974-06-05 1980-05-15
US3930231A (en) * 1974-06-10 1975-12-30 Xicon Data Entry Corp Method and system for optical character recognition
US4177448A (en) * 1978-06-26 1979-12-04 International Business Machines Corporation Character recognition system and method multi-bit curve vector processing
DE3113555A1 (de) * 1981-04-03 1982-10-21 Siemens AG, 1000 Berlin und 8000 München Verfahren zum automatischen erkennen von weissbloecken sowie text-, graphik- und/oder graubildbereichen auf druckvorlagen
JPS58103075A (ja) * 1981-12-16 1983-06-18 Toshiba Corp 文字読取装置
US4499596A (en) * 1982-06-28 1985-02-12 International Business Machines Corporation Adaptive facsimile compression using a dynamic extendable decision network
US4783829A (en) * 1983-02-23 1988-11-08 Hitachi, Ltd. Pattern recognition apparatus
US4611346A (en) * 1983-09-29 1986-09-09 International Business Machines Corporation Method and apparatus for character recognition accommodating diacritical marks
JPS60114975A (ja) * 1983-11-25 1985-06-21 Sumitomo Electric Ind Ltd 光学的読取装置
GB2153619B (en) * 1983-12-26 1988-01-20 Canon Kk Image processing apparatus
US4589142A (en) * 1983-12-28 1986-05-13 International Business Machines Corp. (Ibm) Method and apparatus for character recognition based upon the frequency of occurrence of said characters
US4610025A (en) * 1984-06-22 1986-09-02 Champollion Incorporated Cryptographic analysis system
US4672678A (en) * 1984-06-25 1987-06-09 Fujitsu Limited Pattern recognition apparatus
US4741046A (en) * 1984-07-27 1988-04-26 Konishiroku Photo Industry Co., Ltd. Method of discriminating pictures
US4907285A (en) * 1984-08-24 1990-03-06 Hitachi, Ltd. Image understanding system
DE3686821T2 (de) * 1985-01-10 1993-04-01 Nippon Telegraph & Telephone Halbtonbildverarbeitungseinrichtung.
US4742556A (en) * 1985-09-16 1988-05-03 Davis Jr Ray E Character recognition method
JPS6274181A (ja) * 1985-09-27 1987-04-04 Sony Corp 文字認識装置
US5133023A (en) * 1985-10-15 1992-07-21 The Palantir Corporation Means for resolving ambiguities in text based upon character context
JPS62137974A (ja) * 1985-12-12 1987-06-20 Ricoh Co Ltd 画像処理方式
US4837842A (en) * 1986-09-19 1989-06-06 Holt Arthur W Character and pattern recognition machine and method
FR2608295B1 (fr) * 1986-12-12 1989-03-31 France Etat Procede et dispositif de reconnaissance de caracteres
US4944022A (en) * 1986-12-19 1990-07-24 Ricoh Company, Ltd. Method of creating dictionary for character recognition
JPH0634256B2 (ja) * 1987-03-04 1994-05-02 シャープ株式会社 接触文字切出し方法
JPH07104909B2 (ja) * 1987-03-04 1995-11-13 シャープ株式会社 文字認識方法
US4802230A (en) * 1987-03-13 1989-01-31 Gtx Corporation Method and apparatus for generating size and orientation invariant shape features
US5014327A (en) * 1987-06-15 1991-05-07 Digital Equipment Corporation Parallel associative memory having improved selection and decision mechanisms for recognizing and sorting relevant patterns
JP2702928B2 (ja) * 1987-06-19 1998-01-26 株式会社日立製作所 画像入力装置
US4887304A (en) * 1987-09-30 1989-12-12 Raytheon Company Library image optimization
US4850026A (en) * 1987-10-13 1989-07-18 Telecommunications Laboratories Dir. Gen'l Of Telecom. Ministry Of Communications Chinese multifont recognition system based on accumulable stroke features
DE3870571D1 (de) * 1987-10-16 1992-06-04 Computer Ges Konstanz Verfahren zur automatischen zeichenerkennung.
US5062141A (en) * 1988-06-02 1991-10-29 Ricoh Company, Ltd. Method of segmenting characters in lines which may be skewed, for allowing improved optical character recognition
US5038381A (en) * 1988-07-11 1991-08-06 New Dest Corporation Image/text filtering system and method
US5131053A (en) * 1988-08-10 1992-07-14 Caere Corporation Optical character recognition method and apparatus
US5524453A (en) * 1994-08-01 1996-06-11 James; Timothy W. Thermal energy storage apparatus for chilled water air-conditioning systems

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
BAYER, T., BLÄSIUS, K.-H.: "Regelgesteuerte Zeichenerkennung und Dokumentklassifikation" Mustererkennung 1987, 9. DAGM-Symposium Braun- schweig, Springer-Verlag, S. 88 *
WONG, K.Y., CASEY, R.G., WAHL, F.M.: "Document Analysis System" IBM J.Res.Develop., Vol. 26, No. 6, Nov. 1987, S. 647-656 *
ZIMMERMANN, R.: "Automatische Erkennung von Schriftzeichen" VDI-Z 115 (1973) Nr. 11, August, S. 875-885 *

Also Published As

Publication number Publication date
DE3926327A1 (de) 1990-02-15
US5381489A (en) 1995-01-10
GB8918000D0 (en) 1989-09-20
US5131053A (en) 1992-07-14
US5278918A (en) 1994-01-11
US6038342A (en) 2000-03-14
US5278920A (en) 1994-01-11
US5436983A (en) 1995-07-25
GB2222475A (en) 1990-03-07

Similar Documents

Publication Publication Date Title
DE3926327C2 (de) Verfahren und System zum Erkennen von Zeichen auf einem Medium
DE69723220T2 (de) Gerät und Verfahren zur Extrahierung von Tabellengeraden innerhalb normaler Dokumentbilder
DE4311172C2 (de) Verfahren und Einrichtung zum Identifizieren eines Schrägenwinkels eines Vorlagenbildes
DE69230632T2 (de) Optische Worterkennung durch Wortgestaltuntersuchung
DE69610243T2 (de) Verfahren zum Trainieren einer Erkennungsanlage mit Zeichenmustern
DE69432585T2 (de) Verfahren und Gerät zur Auswahl von Text und/oder Non-Text-Blöcken in einem gespeicherten Dokument
DE69724755T2 (de) Auffinden von Titeln und Photos in abgetasteten Dokumentbildern
DE69226846T2 (de) Verfahren zur Bestimmung von Wortgrenzen im Text
DE69033042T2 (de) Datenverarbeitung
DE69525401T2 (de) Verfahren und Gerät zur Identifikation von Wörtern, die in einem portablen elektronischen Dokument beschrieben sind
DE69516751T2 (de) Bildvorverarbeitung für Zeichenerkennungsanlage
DE60129872T2 (de) Verfahren zur Extrahierung von Titeln aus numerischen Bildern
DE3650554T2 (de) Speicherungs- und Wiederauffindungsverfahren für Bilddaten
DE69519323T2 (de) System zur Seitensegmentierung und Zeichenerkennung
DE69230633T2 (de) Verfahren zur Ermittlung von Wortformen zum folgenden Vergleich
DE60303202T2 (de) System und verfahren zum identifizieren und extrahieren von zeichenketten aus erfassten bilddaten
DE69724557T2 (de) Dokumentenanalyse
DE69329380T2 (de) Verfahren zum Segmentieren von Bildern und Klassifizieren von Bildelementen zur Dokumentverarbeitung
DE69332459T2 (de) Verfahren und Vorrichtung zur Zeichenerkennung
DE69523970T2 (de) Dokumentspeicher- und Wiederauffindungssystem
DE69033079T2 (de) Aufbereitung von Text in einem Bild
DE69226609T2 (de) Verfahren und Gerät zur Dokumentbildverarbeitung
DE69722971T2 (de) Automatisches sprachenerkennungssystem für die mehrsprachige optische zeichenerkennung
DE69517564T2 (de) Verfahren und Gerät zur Erzeugung einer hybriden Datenstruktur zur Anzeige eines Rasterbildes
DE69605255T2 (de) Vorrichtung und Verfahren für die Extraktion von Artikeln eines Dokuments

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8125 Change of the main classification

Ipc: G06K 9/60

D2 Grant after examination
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: SCANSOFT, INC. (N.D.GES.D. STAATES DELAWARE), PEAB

8339 Ceased/non-payment of the annual fee