DE3926327A1 - Verfahren und system zur erkennung von zeichen auf einem medium - Google Patents
Verfahren und system zur erkennung von zeichen auf einem mediumInfo
- Publication number
- DE3926327A1 DE3926327A1 DE3926327A DE3926327A DE3926327A1 DE 3926327 A1 DE3926327 A1 DE 3926327A1 DE 3926327 A DE3926327 A DE 3926327A DE 3926327 A DE3926327 A DE 3926327A DE 3926327 A1 DE3926327 A1 DE 3926327A1
- Authority
- DE
- Germany
- Prior art keywords
- bit
- character
- unknown character
- mapped
- unknown
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/40—Document-oriented image-based pattern recognition
- G06V30/41—Analysis of document content
- G06V30/414—Extracting the geometrical structure, e.g. layout tree; Block segmentation, e.g. bounding boxes for graphics or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/28—Determining representative reference patterns, e.g. by averaging or distorting; Generating dictionaries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/14—Image acquisition
- G06V30/146—Aligning or centring of the image pick-up or image-field
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
Description
Die Erfindung bezieht sich auf das Gebiet der optischen Zei
chen-Erkennungssysteme und insbesondere auf ein Verfahren und
eine Einrichtung zur optischen Erkennung der Zeichen eines
gedruckten Textes.
Eine Anzahl optischer Zeichen-Erkennungssysteme (OCR-Systeme)
sind bekannt. In typischer Ausführung weisen derartige Systeme
einen Scanner zum Abtasten einer Seite eines gedruckten Textes
und zur Durchführung einer Zeichenerkennung an einem Bit-map
ped Bild des Textes. Die Zeichen können danach in einer Datei
eines Computersystems zur Weiterverarbeitung durch einen Wort
prozessor oder ein sonstiges Textverarbeitungssystem gespei
chert 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 nor
malerweise das Abtasten graphischer oder nicht-Text-enthalten
der Abschnitte auf der Seite vermieden wird. Normalerweise
wird die Seite in der Weise abgetastet, in der sie normal
gelesen wird (d.h. das Scannen erfolgt in den Spalten abwärts
und spaltenweise von links nach rechts).
Andere bekannte Systeme enthalten eine Entscheidungseinrich
tung, die zum Feststellen und Angeben derjenigen Teile des
Textes benutzt werden kann, welche von dem OCR-System zu ver
arbeiten sind. Einige dieser Systeme sind in der Lage, gra
phische Abschnitte der angezeigten Seitenzonen vom Textab
schnitten zu unterscheiden. Derartige Systeme bedingen jedoch
einen manuellen Eingriff zum Markieren des Textes in der Rich
tung oder Reihenfolge des normalen Lesens und zum Markieren
von Graphikabschnitten.
Andere Systeme machen von einer Registrierungsmarke zum Anzei
gen des Beginns von Textspalten Gebrauch. Diese Systeme erfor
dern ebenfalls noch manuelle Eingriffe zum Addieren von Regi
strierungsmarken.
Der Erfindung liegt daher die Aufgabe zugrunde, ein Verfahren
und eine Einrichtung zur optischen Zeichenerkennung zur Verfü
gung zu stellen, die ein Abtasten einer Textseite ohne manuel
le Intervention erlaubt, ohne Spaltenmarkierungen oder ander
weitige Angaben zur normalen Reihenfolge des Lesens des Textes
erforderlich sind. Dabei soll auch die Möglichkeit geschaffen
werden, eine Seite mit gemischten Text- und nicht-Text-Infor
mationen abzutasten und zu erkennen sowie zwischen Text- und
nicht-Text-Bereich zum Zwecke der Weiterverarbeitung zu unter
scheiden.
Bekannte optische Zeichen-Erkennungssysteme können in zwei
Kategorieren unterschieden werden. Optische Zeichen-Erken
nungssysteme der ersten Kategorie erkennen entweder eine ein
zelne Schriftart oder eine begrenzte Anzahl von Schriftarten,
und ihre Eingabe ist gewöhnlich beschränkt auf eine gleichbe
abstandete Form bei der speziellen Punktgröße. Optische Zei
chen-Erkennungssysteme der zweiten Kategorie werden typischer
weise als Allschriftsysteme (omnifont systems) bezeichnet.
Derartige Systeme sind in der Lage, eine große Anzahl von
Typen in einem großen Bereich von Punktgrößen entweder ein
heitlichen oder proportionalen Abstandes zu erkennen. Generell
sind optische Zeichen-Erkennungssysteme, die eine große Anzahl
von Schriften erkennen können, nicht in der Lage, Dokumente
mit hohen Geschwindigkeiten zu verarbeiten, wie sie beispiels
weise bei Systemen zur Erkennung einer begrenzten Anzahl spe
zieller Schriften realisierbar sind.
Die Erfindung vereinigt die bisher als gegensätzlich angesehe
nen 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 Scan
nereinrichtung ist mit einem Computersystem gekoppelt, das
einen Speicher zur Speicherung des Bit-mapped Bildes und einen
Prozessor zum Verarbeiten des Bit-mapped Bildes und zur Ausga
be von Daten aufweist, die die Zeichen auf der abgetasteten
Seite darstellen.
Die Erfindung ermöglicht die Abtastung der Seite und die Er
kennung und Ausgabe von Zeichen auf der Seite in einer Reihen
folge, welche logisch die gleiche Reihenfolge ist, die eine
die Seite lesende Person verfolgen würde. Erfindungsgemäß
geschieht dies durch Parsing (automatische Syntax-Analyse) der
Seite in eine Vielzahl von Blöcken und Ausgabe der Blöcke an
einen Zeichen- Erkennungsprozeß in einer Reihenfolge, die
gewöhnlich die logische Lesefolge auf der Seite ist.
In Weiterbildung der Erfindung wird ein Zeichen-Erkennungsver
fahren aus einer Kombination eines Schablonen-Anpaßprozesses
und eines Merkmalsanalyseprozesses angegeben. Der Merkmalsan
alyseprozeß ermöglicht die Zeichenerkennung auf der Basis
ihrer Formen. Unter Verwendung des Merkmalsanalyseprozesses
ist es möglich, Zeichen in einer beliebigen Anzahl unter
schiedlicher Schriften zu erkennen. Durch Verwendung des Scha
blonen-Anpaßprozesses ist in Verbindung mit dem Merkmalsanaly
seprozeß ein vernünftiger Dokumentendurchsatz möglich, und
zwar ohne die Notwendigkeit einer Schablonenbibliothek.
In Weiterbildung der Erfindung wird außerdem von einem Kon
text-Analyseprozeß Gebrauch gemacht, der den Erkennungsprozeß
durch iterative Lösung von Mehrdeutigkeiten in der Form ver
vollständigt, 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. Die Erfindung beschreibt außerdem ein Verfah
ren zur Zeichenerkennung unter Verwendung von Zeichenschablo
nen (character templates) für den Fall, 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 nach der Erfindung;
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 erfindungsgemäß 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 Merkmalanalysepro
zesses;
Fig. 14(a) eine Darstellung eines ersten Zeichenfen
sters;
Fig. 14(b) eine Darstellung eines zweiten Zeichenfen
sters;
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.
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.
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 ausgeschieden.
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 Zeilen-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 verfolgen, die
durch das abgeleitete 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 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 zu den Erkennungsroutinen in einem 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 aus der Sicht der 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.
Im folgendem 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 aus 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über hin
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
rungsbeispiel 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 332 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 Ab
laufdiagramm 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 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 Ablauf 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 für 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.
Das Text-map-Feld wird danach jede Spalte abwärts gescannt, um
nach Durchläufen von Textzellen zu suchen, Block 502. Wenn ein
Durchlauf von Textzellen lokalisiert wird, 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, wird die Prozeßführung nach den Blöcken 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 in Zahl 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 gute Verti
kalauflösung (innerhalb 1/38 eines Zolls). Wenn eine Seite
einen Schrägfehler hat, so treten Leerzellen an Stellen, 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 Pixeln 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 Ab
laufdiagramm 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. Im dem Weg-map-Feld wird die
Existenz eines horizontalen Weges durch Setzen der Bits in
einer Eingabe im Feld angezeigt. Das Vorhandensein eines ver
tikalen Weges wird durch Setzen eines anderen Bits in der
Eingabe 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 für Durchläufe
leerer Eingaben (d.h. Eingaben, die nicht auf TXTX, TXVR, TXTH
oder TXGR gesetzt sind) abgetastet. Wenn ein Durchlauf eine
Länge von wenigstens einer vorgegebenen Anzahl von Bytes hat,
werden die horizontalen Wegbits in den entsprechenden Eingaben
in das 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 recht 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. Eingaben, 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 für Durchläufe bei leeren Einsprüngen (entries) abgeta
stet. Wenn ein Durchlauf wenigstens eine vorgegebene Anzahl
von entries lang ist, wird er 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 entry breit sind, werden entfernt, sofern der entry
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 Seiten-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 Entry 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 über horizontale noch vertikale
Durchlaufwege verfügen. Nach dem Auffinden einer Zelle, die
weder durchgehende horizontale noch vertikale Wege besitzt,
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-Aufteilungs
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 Blockzerlegungsroutine 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 Durchläufen von belegten 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 histogrammiert außerdem die Anzahl von
Durchläufen über belegte Zellen in den Spalten des Text-map-
Feldes. Der Mittelpunkt in diesem Histogramm ist eine Nähe
rung der 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
entries zu. Die Anzahl von entries 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 entries in der Blockliste benutzt
werden kann, ohne vom Erfindungsgedanken abzuweichen. Bei dem
beschriebenen Ausführungsbeispiel wird der Prozeß mit und
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, und zwar wegen
des Vorhandenseins eines Graphikblocks 908.
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 sind die Blöcke für
die Ausgabe zu den Zeilen-Parsingroutinen, Block 219, angeord
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öcken ü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, enthält der Knoten 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 enthalten, die im wesentlichen der ersten Verti
kalgruppe benachbart ist. Knoten 6 1016 und Knoten 0 1010
können eine dritte Vertikalgruppe 1004 enthalten, 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, 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 zu den Zeilen-Parsing
routinen. Block 3 1013, der keine Zweige hat, ist der nächste,
zu Zeilen-Parsingroutinen auszugebende Block, gefolgt vom
Block 4, 1014. Da es nicht mehr Blöcke gibt, die vom Block 5
1015 abzweigen, ist dieser Block die nächste Blockausgabe an
die Zeilen-Parsingroutinen. Der Wurzelknoten 1010 geht weiter
von links nach rechts, 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 wird.
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 linkem 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 Block 1011, Block 4 1014, Block 5 1015, Block
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 deskriptivere Informa
tion über jeden Block.
Wesentlich ist, daß das Modell der Seitenabbildung mit der
Plazierung und Reihenfolge der Textblöcke auf einem Gerät,
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.
Jeder von der Seiten-Parsingroutine erzeugte Block wird durch
die Block-Parsingroutine in der gewünschten Reihefolge durch
geschickt. Die Block-Parsingroutine sucht jeden Block in ein
zelne Textzeilen grammatisch 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 Addieren von Daten zu
der Block-Beschreibungsinformation in der Blockliste. Die zur
Blockliste addierten 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.
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
weitestesn 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
282, 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 addiert.
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 Schablonenanpassungvorgang, Block 1101, sucht in Fenstern
aus dem Zeilen-Parsing-Prozeß vorbeilaufende 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 Merkmalsanalysenvorgangs 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.
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 vom 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 in ersten
zwei Schritten entsprechend der vorstehenden Beschreibung 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-Felder 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 der beson
deren Schablone zugehö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-Felder 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 Schäblone
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).
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 26954 00070 552 001000280000000200012000285912684300040 0002003926327 00004 26835des 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;
(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.
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 ü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
ein-geschaltet 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 Kleinbuchstaben "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 Zeilen 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 Erscheinungsfrequenzen des durch das isit darge
stellten Zeichens und aus vorhergehenden isits gewonnenen
Informationen mit den Gründen 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.
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.
Die Erfindung gibt ein Verfahren, genannt "Seitenanpassung"
zum Identifizieren derartiger zusammenfließender Zeichen an.
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
den "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.
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 der
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. Da Mehrdeutigkeiten
für ein Zeichen geklärt werden, macht die Erfindung von vorher
bei der Klärung von 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 sucht die Kontextanalysenroutine eine
Schriftidentifizierungsnummer jedem Zeichen in der Fahne zuzu
ordnen und die Zeichengrößen für jede Schrift, 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 eine übergroße Satzzeichenmarke
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 suchen 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 (35)
1. System zum optischen Abtasten eines Mediums, das mit
unbekannten Zeichen versehen ist,
dadurch gekennzeichnet,
daß eine Scannereinrichtung, die ausgangsseitig ein Bit-map
ped-Bild des Mediums erzeugt, vorgesehen ist, daß ein Speicher
zur Speicherung des Bit-mapped-Bildes mit der Scannereinrich
tung gekoppelt ist und daß ferner mit dem Speicher eine Pro
zessoreinrichtung gekoppelt ist, die Parsingmittel zum Parsing
des Bit-mapped-Bildes des Mediums und zur Ausgabe einer Bit-
mapped-Darstellung des unbekannten Zeichens (102), Mittel zum
Identifizieren des unbekannten Zeichens (103) und Mittel zum
Analysieren des unbekannten Zeichens auf der Basis des Kontex
tes des Mediums (104) aufweist.
2. System nach Anspruch 1, dadurch gekennzeichnet, daß die
Parsingmittel (102) Mittel zum Parsing (Zerlegen) des Bit-map
ped-Bildes des Mediums in mehrere Blöcke, Mittel (2) zum
Parsing (Zerlegen) jedes der Blöcke in mehrere Zeilen und
Mittel (232) zum Parsing jeder der Zeilen in mehrere Buchsta
ben enthalten.
3. System nach Anspruch 2, dadurch gekennzeichnet, daß die
Parsingmittel Mittel zum Gruppieren (218) und Ausgeben (219)
der Blöcke in logischer Reihenfolge zum Lesen des in den ver
schiedenen Blöcken enthaltenen Textes aufweist.
4. System nach einem der Ansprüche 1 bis 3, dadurch gekenn
zeichnet, daß die Identifizierungsmittel Mittel zum Identifi
zieren des unbekannten Zeichens auf der Basis einer Formanaly
se des unbekannten Zeichens und Mittel zum Identifizieren
unter Verwendung von Schablonen bereits identifizierter Zei
chen enthalten.
5. System nach Anspruch 4, dadurch gekennzeichnet, daß die
das unbekannte Zeichen auf der Basis einer Formanalyse identi
fizierenden Mittel mehrere getrennte Mittel zum Identifizieren
von Zeichen aufweisen, von denen jedes eine getrennte Form
identifiziert.
6. System nach Anspruch 4, dadurch gekennzeichnet, daß die
das unbekannte Zeichen auf der Basis einer Formanalyse identi
fizierenden Mittel Mittel zur Erzeugung statistischer Informa
tion auf der Basis der Form des unbekannten Zeichens enthal
ten.
7. System nach Anspruch 4, dadurch gekennzeichnet, daß die
das unbekannte Zeichen auf der Basis einer Formanalyse identi
fizierenden Mittel Mittel zur Erzeugung einer Polygondarstel
lung eines Bildes des unbekannten Zeichens enthalten.
8. System nach einem der Ansprüche 4 bis 7, dadurch gekenn
zeichnet, daß die das unbekannte Zeichen unter Verwendung von
Schablonen identifizierenden Mittel Mittel zum Vergleichen der
Bit-mapped-Darstellung des unbekannten Zeichens mit Bit-map
ped-Bild-identifizierenden Bits, die in der Bit-mapped-Dar
stellung des unbekannten Zeichens "aus" sein müssen, um mit
einer der Schablonen der bekannten Zeichen übereinzustimmen,
und Mittel zum Vergleichen der Bit-mapped-Darstellung des
unbekannten Zeichens mit Bit-mapped-Bild-identifizierenden
Bits aufweisen, die in der Bit-mapped-Darstellung des unbe
kannten Zeichens "ein" sein müssen, um mit einer der Schablo
nen der unbekannten Zeichen übereinzustimmen.
9. Verfahren zur Erkennung von Zeichen auf einem Medium,
dadurch gekennzeichnet,
daß das Medium abgetastet und ein Bit-mapped-Bild des Mediums erzeugt wird;
daß das Bit-mapped-Bild einem Parsing-Verfahren zur Iso lation einzelner Zeichen unterworfen wird und als Ausgabe des Parsing-Verfahrens ein Bit-mapped-Bild eines unbekannten Zei chens erzeugt wird;
daß das unbekannte Zeichen identifiziert wird; und
daß das unbekannte Zeichen auf der Basis eines das Medium umgebenden Kontextes analysiert wird.
daß das Medium abgetastet und ein Bit-mapped-Bild des Mediums erzeugt wird;
daß das Bit-mapped-Bild einem Parsing-Verfahren zur Iso lation einzelner Zeichen unterworfen wird und als Ausgabe des Parsing-Verfahrens ein Bit-mapped-Bild eines unbekannten Zei chens erzeugt wird;
daß das unbekannte Zeichen identifiziert wird; und
daß das unbekannte Zeichen auf der Basis eines das Medium umgebenden Kontextes analysiert wird.
10. Verfahren nach Anspruch 9, dadurch gekennzeichnet, daß
das Parsing-Verfahren des Bit-mapped-Bildes in den folgenden
Schritten durchgeführt wird:
Parsing des Bit-mapped-Bildes unter Erzeugung mehrerer Blöcke;
Parsing jedes der Blöcke zur Erzeugung mehrerer Zeilen; und
Parsing jeder der Zeilen zur Erzeugung einer Vielzahl von Zeichen.
Parsing des Bit-mapped-Bildes unter Erzeugung mehrerer Blöcke;
Parsing jedes der Blöcke zur Erzeugung mehrerer Zeilen; und
Parsing jeder der Zeilen zur Erzeugung einer Vielzahl von Zeichen.
11. Verfahren nach Anspruch 10, dadurch gekennzeichnet, daß
das Parsing des Bit-mapped-Bildes zur Erzeugung mehrerer
Blöcke den Schritt der Trennung der im wesentlichen Textinfor
mationen enthaltenden Blöcke von den Graphikblöcken enthält.
12. Verfahren nach Anspruch 10 oder 11, dadurch gekennzeich
net, daß nach dem Parsing des Bit-mapped-Bildes zur Erzeugung
mehrerer Blöcke die Blöcke in einer logischen Reihenfolge zum
Lesen des in den verschiedenen Blöcken enthaltenen Textes
ausgegeben werden.
13. Verfahren nach einem der Ansprüche 9 bis 12, dadurch
gekennzeichnet, daß das unbekannte Zeichen dadurch identifi
ziert wird, daß das unbekannte Zeichen mit bekannte Zeichen
darstellenden Bit-mapped-Schablonen verglichen wird, daß fest
gestellt wird, ob das unbekannte Zeichen mit irgendeiner aus
mehreren Bit-mapped-Schablonen übereinstimmt oder mit keiner
dieser Schablonen übereinstimmt, und daß das unbekannte Zei
chen auf der Basis seiner Form zur Identifizierung analysiert
wird.
14. Verfahren nach Anspruch 13, dadurch gekennzeichnet, daß
beim Analysieren des unbekannten Zeichens auf der Basis seiner
Form zunächst statistische Informationen und Polygondarstel
lungen erzeugt werden, die für die Form des unbekannten Zei
chens deskriptiv sind, und daß die statistische Information und
die Polygondarstellungen zum Identifizieren des unbekannten
Zeichens analysiert werden.
15. Verfahren nach Anspruch 14, dadurch gekennzeichnet, daß
der Schritt des Analysierens der statistischen Information und
der Polygondarstellungen Analysen der statistischen Informa
tionen und der Polygondarstellungen in mehreren separaten
Prozessen umfaßt, von denen jeder dem Identifizieren einer
separaten Form dient.
16. Verfahren nach einem der Ansprüche 13 bis 15, dadurch
gekennzeichnet, daß der Schritt des Vergleichens des unbekann
ten Zeichens mit jeder Schablone aus einer Mehrzahl von Bit-
mapped-Schablonen die folgenden Schritte umfaßt:
Vergleichen des Bit-mapped-Bildes des unbekannten Zei chens mit Bit-mapped-Bild-Identifizierungsbits, die in dem Bit-mapped-Bild des unbekannten Zeichens "aus" sein müssen, um mit den Schablonen der bekannten Zeichen übereinzustimmen, und
Vergleichen des Bit-mapped-Bildes des unbekannten Zei chens mit Bit-mapped-Bild-Identifizierungsbits, die in dem Bit-mapped-Bild des unbekannten Zeichens "ein" sein müssen, um mit den Schablonen der bekannten Zeichen übereinzustimmen.
Vergleichen des Bit-mapped-Bildes des unbekannten Zei chens mit Bit-mapped-Bild-Identifizierungsbits, die in dem Bit-mapped-Bild des unbekannten Zeichens "aus" sein müssen, um mit den Schablonen der bekannten Zeichen übereinzustimmen, und
Vergleichen des Bit-mapped-Bildes des unbekannten Zei chens mit Bit-mapped-Bild-Identifizierungsbits, die in dem Bit-mapped-Bild des unbekannten Zeichens "ein" sein müssen, um mit den Schablonen der bekannten Zeichen übereinzustimmen.
17. Verfahren zum Identifizieren eines Bit-mapped-Bildes
eines unbekannten Zeichens, gekennzeichnet durch:
- (a) Vergleichen des Bit-mapped-Bildes eines unbekannten Zeichens mit jeder Schablone aus einer Anzahl von Schablonen in einem Schablonen-Cache;
- (b) Feststellen, ob das Bit-mapped-Bild eines unbekann ten Zeichens mit irgendeiner der Schablonen in dem Schablonen- Cache übereinstimmt; und wenn eine solche Übereinstimmung mit irgendeiner der Schablonen im Schablonen-Cache nicht festge stellt wird,
- (c) Analysieren des Bit-mapped-Bildes eines unbekannten Zeichens auf der Basis seiner Form zur Identifizierung des unbekannten Zeichens.
18. Verfahren nach Anspruch 17, dadurch gekennzeichnet, daß
der Schritt des Analysierens des Bit-mapped-Bildes eines unbe
kannten Zeichens auf der Basis seiner Form die folgenden
Schritte enthält:
Erzeugen von statistischen Informationen und Polygondar stellungen, die für die Form des unbekannten Zeichens deskrip tiv sind; und
Analysieren der statistischen Information und der Poly gondarstellungen zum Identifizieren des unbekannten Zeichens.
Erzeugen von statistischen Informationen und Polygondar stellungen, die für die Form des unbekannten Zeichens deskrip tiv sind; und
Analysieren der statistischen Information und der Poly gondarstellungen zum Identifizieren des unbekannten Zeichens.
19. Verfahren nach Anspruch 18, dadurch gekennzeichnet, daß
der Schritt des Analysierens der statistischen Informationen
und Polygondarstellungen das Analysieren der statistischen
Information und der Polygondarstellungen in mehreren separaten
Prozessen umfaßt, von denen jeder der Identifizierung einer
anderen Form dient.
20. Verfahren nach einem der Ansprüche 17 bis 19, dadurch
gekennzeichnet, daß der Schritt des Vergleichs des Bit-mapped-
Bildes eines unbekannten Zeichens mit jeder Schablone aus
mehreren Bit-mapped-Schablonen die folgenden Teilschritte
enthält:
Vergleichen des Bit-mapped-Bildes des unbekannten Zei chens mit Bit-mapped-Bild-identifizierenden Bits, das in dem Bit-mapped-Bild des unbekannten Zeichens "aus" sein muß, um mit den Schablonen von bekannten Zeichen übereinzustimmen, und
Vergleichen des bit-mapped-Bildes des unbekannten Zei chens mit Bit-mapped-Bild identifizierenden Bits, die in dem Bit-mapped-Bild des unbekannten Zeichens "ein" sein müssen, um mit einer der Schablonen der bekannten Zeichen übereinzustim men.
Vergleichen des Bit-mapped-Bildes des unbekannten Zei chens mit Bit-mapped-Bild-identifizierenden Bits, das in dem Bit-mapped-Bild des unbekannten Zeichens "aus" sein muß, um mit den Schablonen von bekannten Zeichen übereinzustimmen, und
Vergleichen des bit-mapped-Bildes des unbekannten Zei chens mit Bit-mapped-Bild identifizierenden Bits, die in dem Bit-mapped-Bild des unbekannten Zeichens "ein" sein müssen, um mit einer der Schablonen der bekannten Zeichen übereinzustim men.
21. Verfahren zur optischen Zeichenerkennung an textartigem
Material auf einem Medium, wobei das Medium wenigstens ein
Matrixelement enthält, dadurch gekennzeichnet, daß das Matrix
element im wesentlichen als Text- oder nicht-Text-Element
identifiziert wird und daß bei Identifizierung als Textelement
die Beziehung von "Ein"-Bits in dem Matrixelement zu "Aus"-
Bits in dem Matrixelement bestimmt wird.
22. Verfahren nach Anspruch 21, dadurch gekennzeichnet, daß
zur Bestimmung der Beziehung von "Ein"-Bits zu "Aus"-Bits im
Matrixelement die folgenden Schritte ausgeführt werden:
- (a) es wird bestimmt, ob die Zahl von "Ein"-Bits in einer ersten vorgegebenen Anzahl von Bytes des Matrixelements größer als oder gleich einer vorgegebenen Anzahl und kleiner als oder gleich einer dritten vorgegebenen Zahl ist; und
- (b) es wird bestimmt, ob die Zahl von Phasenänderungen von "Ein"-Bits zu "Aus"-Bits in der ersten vorgegebenen Anzahl von Bytes des Matrixelements größer als oder gleich einer vierten vorgegebenen Zahl und kleiner als oder gleich einer fünften vorgegebenen Zahl ist.
23. Verfahren nach Anspruch 22, dadurch gekennzeichnet, daß
die erste vorgegebene Zahl 4 ist, die zweite vorgegebene Zahl
2 ist, die dritte vorgegebene Zahl 12, die vierte vorgegebene
Zahl 8 und die fünfte vorgegebene Zahl 12 ist.
24. Verfahren zur optischen Erkennung von Zeichen auf einem
Medium, wobei die Form eines unbekannten Zeichens identifi
ziert wird, dadurch gekennzeichnet, daß die Form des unbekann
ten Zeichens in einem ersten Prozeß zum Identifizieren einer
ersten Zeichenform analysiert und danach unter Verwendung
eines zweiten Identifizierungsprozesses zum Identifizieren
einer zweiten Zeichenform analysiert wird.
25. Verfahren nach Anspruch 24, dadurch gekennzeichnet, daß
statistische Information und Polygondarstellungen des unbe
kannten Zeichens vor der Analyse der Form des unbekannten
Zeichens mit Hilfe des ersten Prozesses erzeugt werden und daß
die statistischen Informationen und Polygondarstellungen des
unbekannten Zeichens in dem ersten Prozeß und in dem zweiten
Prozeß zum Analysieren der Form des unbekannten Zeichens ver
wendet werden.
26. Verfahren nach Anspruch 25, dadurch gekennzeichnet, daß
durch den ersten Prozeß angezeigt wird, ob das unbekannte
Zeichen durch die erste Zeichenform identifiziert ist.
27. Verfahren nach Anspruch 25 oder 26, dadurch gekennzeich
net, daß der erste Prozeß Identifizierungsinformation für
einen zum Identifizieren des unbekannten Zeichens zu verwende
ten nächsten Prozeß liefert, wenn das unbekannte Zeichen nicht
als Zeichen der ersten Zeichenform identifiziert wurde.
28. Verfahren nach einem der Ansprüche 25 bis 27, dadurch
gekennzeichnet, daß eine Schablone des unbekannten Zeichens
nach dem Identifizieren der Form des unbekannten Zeichens
erzeugt wird.
29. Verfahren zum Erkennen eines ersten von zwei Zeichen
unter Verwendung eines Zeichen-Erkennungssystems, dadurch
gekennzeichnet, daß mehrere Schablonen bekannter Zeichen für
die Identifizierung unbekannter Zeichen gebildet werden, daß
ein Bit-mapped-Bild von zwei Zeichen in einem Puffer aufgenom
men wird und daß ein erster Anpaßprozeß zur Anpassung einer
ersten der Schablonen mit einem ersten Teil des Puffers vorge
nommen wird.
30. Verfahren nach Anspruch 29, dadurch gekennzeichnet, daß
der erste Teil des Puffers dadurch ausgewählt wird, daß die
erste Schablone mit einem linken Rand des Puffers ausgerichtet
wird.
31. Verfahren zur optischen Zeichenerkennung unter Verwendung
eines Merkmalsanalyseprozesses zum Identifizieren eines unbe
kannten Zeichens, dadurch gekennzeichnet, daß durch Identifi
zierung des unbekannten Zeichens mit dem Merkmalsanalyseprozeß
eine Schablonenbibliothek aufgebaut wird und daß eine Schablo
ne für das unbekannte Zeichen gebildet wird, nachdem das unbe
kannte Zeichen identifiziert worden ist.
32. Verfahren nach Anspruch 31, dadurch gekennzeichnet, daß
die Schablonenbibliothek für jedes neue Medium gebildet wird,
das dem optischen Zeichenerkennungssystem ausgesetzt ist.
33. Verfahren zur Erkennung von Zeichenabbildungen unter
Verwendung einer Vielzahl von Schablonen zum Identifizieren
von Zeichenformen, dadurch gekennzeichnet, daß eine erste
Bit-mapped-Darstellung eines unbekannten Zeichens auf der
Basis einer Bit-mapped-Abbildung des unbekannten Zeichens
erzeugt wird, wobei die erste Bit-mapped-Darstellung Bits aus
mehreren Schablonen identifiziert, die in einem ersten Binär
zustand für eine der Schablonen sein müssen, um mit dem unbe
kannten Zeichen übereinzustimmen, Vergleichen der ersten Bit-
mapped-Darstellung mit einer Bit-mapped-Abbildung einer er
sten Schablone aus mehreren Schablonen; und
Vergleichen der Bit-mapped-Abbildung des unbekannten Zeichens
mit Bit-mapped-Darstellung-identifizierenden Bits, die in dem
ersten Binärzustand in der Bit-mapped-Abbildung des unbekann
ten Zeichens sein müssen, damit die Bit-mapped-Abbildung des
unbekannten Zeichens mit der ersten aus der Mehrzahl von Scha
blonen übereinstimmt.
34. Verfahren nach Anspruch 33, dadurch gekennzeichnet, daß
der erste Binärzustand ein "Ein"-Zustand ist.
35. Verfahren nach Anspruch 33, dadurch gekennzeichnet, daß
der erste Binärzustand ein "Aus"-Zustand ist.
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 true DE3926327A1 (de) | 1990-02-15 |
DE3926327C2 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) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19508135A1 (de) * | 1995-03-08 | 1996-09-12 | Licentia Gmbh | Verfahren zur Verbesserung der Erkennung von Maschinenschriften mit fester Schriftteilung |
DE19507059B4 (de) * | 1995-03-01 | 2004-08-12 | 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 |
US7167825B1 (en) | 1999-03-10 | 2007-01-23 | Thomas Potter | Device and method for hiding information and device and method for extracting information |
Families Citing this family (179)
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 | ゼロックス コーポレーション | 画像縮小/拡大方法及び装置 |
EP0500375B1 (de) * | 1991-02-22 | 1998-07-08 | Canon Kabushiki Kaisha | System zur Bildbearbeitung |
US5258855A (en) * | 1991-03-20 | 1993-11-02 | System X, L. P. | Information processing methodology |
DE69228433T2 (de) * | 1991-03-29 | 1999-07-22 | Canon Kk | 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 | 株式会社リコー | 文書画像処理方法 |
WO1995001481A1 (en) * | 1993-06-29 | 1995-01-12 | 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 | 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 |
US6424830B1 (en) | 1994-07-26 | 2002-07-23 | Telxon Corporation | Portable data collection network with telephone and voice mail capability |
US5811784A (en) * | 1995-06-26 | 1998-09-22 | Telxon Corporation | Extended working range dataform reader |
US5815200A (en) * | 1994-07-26 | 1998-09-29 | Metanetics Corporation | Extended working range dataform reader with reduced power consumption |
US5763864A (en) * | 1994-07-26 | 1998-06-09 | Meta Holding Corporation | Dataform reader including dual laser and imaging reading assemblies |
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 |
CA2154952A1 (en) * | 1994-09-12 | 1996-03-13 | Robert M. Ayers | Method and apparatus for identifying words described in a page description language file |
EP0702322B1 (de) * | 1994-09-12 | 2002-02-13 | Adobe Systems Inc. | Verfahren und Gerät zur Identifikation von Wörtern, die in einem portablen elektronischen Dokument beschrieben sind |
US5987171A (en) * | 1994-11-10 | 1999-11-16 | Canon Kabushiki Kaisha | Page analysis system |
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 |
US5649024A (en) * | 1994-11-17 | 1997-07-15 | Xerox Corporation | Method for color highlighting of black and white fonts |
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 |
DE69600461T2 (de) | 1995-01-17 | 1999-03-11 | Eastman Kodak Co | System und Verfahren zur Bewertung der Abbildung eines Formulars |
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 |
US5818028A (en) * | 1995-06-26 | 1998-10-06 | Telxon 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 |
US5764799A (en) * | 1995-06-26 | 1998-06-09 | Research Foundation Of State Of State Of New York | OCR method and apparatus using image equivalents |
US5703349A (en) * | 1995-06-26 | 1997-12-30 | Metanetics Corporation | Portable data collection device with two dimensional imaging 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 & 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 |
US6577771B1 (en) * | 1996-01-29 | 2003-06-10 | Matsushita Electric Industrial Co., Ltd. | Method for supplementing digital image with picture element, and digital image encoder and decoder using the same |
EP0896704A1 (de) * | 1996-03-08 | 1999-02-17 | Motorola, Inc. | Verfahren und vorrichtung zur erkennung handgeschriebener zeichen |
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 |
US6055336A (en) * | 1996-11-18 | 2000-04-25 | Canon Kabushiki Kaisha | Image processing system which converts multi-value image data into binary image data |
US6512848B2 (en) * | 1996-11-18 | 2003-01-28 | Canon Kabushiki Kaisha | Page analysis system |
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 |
EP0910833A1 (de) * | 1997-05-05 | 1999-04-28 | Shell Oil Company | Visuelle erkennungsmethode |
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 |
US7966078B2 (en) | 1999-02-01 | 2011-06-21 | Steven Hoffberg | Network media 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 |
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 | Закрытое акционерное общество "Аби Программное обеспечение" | Способ ориентированного нахождения областей в исходном массиве данных и последовательного активирования и обработки в них преобразуемых компьютерных кодов, выполненных в виде символов |
AU3989800A (en) * | 1999-05-12 | 2000-12-05 | David Evgenievich Yang | Method using recognition integrity, recognition task-orientation and adaptability for the conversion of computer codes during the process for recognising their corresponding image fragments |
US6624909B1 (en) | 1999-05-27 | 2003-09-23 | International Business Machines Corporation | Image file format for storing graphical matter and related information |
CN1411586A (zh) * | 2000-03-06 | 2003-04-16 | 埃阿凯福斯公司 | 包括指定文档位置处字的多个译码的用于创建扫描文档搜索字索引的系统和方法 |
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 |
EP1362340A4 (de) * | 2001-01-09 | 2007-01-10 | Goldklang Meshilim Zisha | Verbesserte vorrichtungen und verfahren zum ersetzen dekorativer bilder durch text und/oder graphische muster |
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 |
MXPA04011507A (es) * | 2002-05-20 | 2005-09-30 | Tata Infotech Ltd | Identificador de estructura de documento. |
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 | "Аби Софтвер Лтд." | Способ распознавания графических объектов с использованием принципа целостности |
KR20060097129A (ko) * | 2003-11-18 | 2006-09-13 | 시에멘스 에이지 | 우편물을 전송하기 위한 방법 및 장치 |
US20070104370A1 (en) * | 2003-11-18 | 2007-05-10 | Siemens Aktiengesellschaft | System and method for smart polling |
US8442331B2 (en) | 2004-02-15 | 2013-05-14 | Google Inc. | Capturing text from rendered documents using supplemental information |
US7286718B2 (en) * | 2004-01-26 | 2007-10-23 | Sri International | Method and apparatus for determination of text orientation |
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ディスプレイソリューションズ株式会社 | 映像表示方法、映像表示装置及びプログラム |
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 |
US10635723B2 (en) | 2004-02-15 | 2020-04-28 | Google Llc | Search engines and systems with handheld document data capture devices |
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 |
US9143638B2 (en) | 2004-04-01 | 2015-09-22 | Google Inc. | Data capture from rendered documents using handheld device |
US8146156B2 (en) | 2004-04-01 | 2012-03-27 | Google Inc. | Archive of text captures from rendered documents |
US7990556B2 (en) | 2004-12-03 | 2011-08-02 | Google Inc. | Association of a portable scanner with input/output and storage devices |
US20060098900A1 (en) | 2004-09-27 | 2006-05-11 | King Martin T | Secure data gathering from rendered documents |
US8081849B2 (en) | 2004-12-03 | 2011-12-20 | Google Inc. | Portable scanning and memory device |
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 |
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 |
US9008447B2 (en) | 2004-04-01 | 2015-04-14 | Google Inc. | Method and system for character recognition |
US8713418B2 (en) | 2004-04-12 | 2014-04-29 | Google Inc. | Adding value to a rendered document |
US8874504B2 (en) | 2004-12-03 | 2014-10-28 | Google Inc. | Processing techniques for visual capture data from 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 |
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 |
US8565535B2 (en) * | 2007-08-20 | 2013-10-22 | Qualcomm Incorporated | Rejecting out-of-vocabulary words |
US9261979B2 (en) * | 2007-08-20 | 2016-02-16 | Qualcomm Incorporated | Gesture-based mobile interaction |
EP2263193A1 (de) * | 2008-03-12 | 2010-12-22 | Lumex As | Wortlängenindiziertes wörterbuch zur verwendung in einem system zur optischen zeichenerkennung (ocr) |
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 | 影像辨識與輸出方法以及其系統 |
DE202010018601U1 (de) | 2009-02-18 | 2018-04-30 | Google LLC (n.d.Ges.d. Staates Delaware) | Automatisches Erfassen von Informationen, wie etwa Erfassen von Informationen unter Verwendung einer dokumentenerkennenden Vorrichtung |
JP5343617B2 (ja) * | 2009-02-25 | 2013-11-13 | 富士通株式会社 | 文字認識プログラム、文字認識方法および文字認識装置 |
WO2010105245A2 (en) * | 2009-03-12 | 2010-09-16 | Exbiblio B.V. | Automatically providing content associated with captured information, such as information captured in real-time |
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 |
EP3841523A4 (de) | 2018-08-22 | 2021-10-13 | Leverton Holding LLC | Textzeilenbildtrennung mit verschiedenen schriftgrössen |
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 |
Family Cites Families (44)
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 |
NL131868C (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 |
EP0187724B1 (de) * | 1985-01-10 | 1992-09-30 | Nippon Telegraph And Telephone Corporation | 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 |
JPH07104909B2 (ja) * | 1987-03-04 | 1995-11-13 | シャープ株式会社 | 文字認識方法 |
JPH0634256B2 (ja) * | 1987-03-04 | 1994-05-02 | シャープ株式会社 | 接触文字切出し方法 |
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 |
-
1988
- 1988-08-10 US US07/230,847 patent/US5131053A/en not_active Expired - Lifetime
-
1989
- 1989-08-07 GB GB8918000A patent/GB2222475A/en not_active Withdrawn
- 1989-08-09 DE DE3926327A patent/DE3926327C2/de not_active Expired - Fee Related
-
1991
- 1991-11-27 US US07/799,549 patent/US5278918A/en not_active Expired - Lifetime
-
1992
- 1992-07-15 US US07/914,442 patent/US5381489A/en not_active Expired - Lifetime
- 1992-07-15 US US07/914,119 patent/US5278920A/en not_active Expired - Lifetime
- 1992-07-15 US US07/914,191 patent/US5436983A/en not_active Expired - Lifetime
-
1993
- 1993-08-31 US US08/114,608 patent/US6038342A/en not_active Expired - Lifetime
Non-Patent Citations (3)
Title |
---|
BAYER, T., BLASIUS, 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 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19507059B4 (de) * | 1995-03-01 | 2004-08-12 | 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 |
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 |
DE19508135A1 (de) * | 1995-03-08 | 1996-09-12 | Licentia Gmbh | Verfahren zur Verbesserung der Erkennung von Maschinenschriften mit fester Schriftteilung |
US7167825B1 (en) | 1999-03-10 | 2007-01-23 | Thomas Potter | Device and method for hiding information and device and method for extracting information |
Also Published As
Publication number | Publication date |
---|---|
US5436983A (en) | 1995-07-25 |
US6038342A (en) | 2000-03-14 |
US5131053A (en) | 1992-07-14 |
GB2222475A (en) | 1990-03-07 |
GB8918000D0 (en) | 1989-09-20 |
US5381489A (en) | 1995-01-10 |
DE3926327C2 (de) | 1999-03-18 |
US5278920A (en) | 1994-01-11 |
US5278918A (en) | 1994-01-11 |
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 | |
DE69724755T2 (de) | Auffinden von Titeln und Photos in abgetasteten Dokumentbildern | |
DE69432585T2 (de) | Verfahren und Gerät zur Auswahl von Text und/oder Non-Text-Blöcken in einem gespeicherten Dokument | |
DE4311172C2 (de) | Verfahren und Einrichtung zum Identifizieren eines Schrägenwinkels eines Vorlagenbildes | |
DE69724557T2 (de) | Dokumentenanalyse | |
DE60303202T2 (de) | System und verfahren zum identifizieren und extrahieren von zeichenketten aus erfassten bilddaten | |
DE3716787C2 (de) | ||
DE60129872T2 (de) | Verfahren zur Extrahierung von Titeln aus numerischen Bildern | |
DE60312572T2 (de) | Verfahren und Gerät zum Konvertieren digitaler Bilder von Handzeichnungen zur weiteren Verwendung in einem strukturierten Text/Graphik Editor. | |
DE19814075B4 (de) | Verfahren zum Abtasten und Erkennen mehrerer Fotografien und zum Beseitigen von Randfehlern | |
DE3722444C2 (de) | Verfahren und Vorrichtung zum Erzeugen von Entwurfsmusterdaten | |
DE3633743C2 (de) | ||
DE3632832A1 (de) | Zeichenerkennungssystem | |
DE69333694T2 (de) | Verfahren und Anordnung zur Bildverarbeitung | |
DE4427992C2 (de) | Verfahren zum Erzeugen einer Dokumenten-Darstellung aus einem Bitmap-Bild eines Dokuments | |
DE3425449A1 (de) | Verfahren und vorrichtung zur alphanumerischen handschriftenerkennung | |
DE4430369A1 (de) | Verfahren und Einrichtung zum Erzeugen eines Dokumenten-Layouts | |
DE19705757A1 (de) | Verfahren und Gerät für das Design eines hoch-zuverlässigen Mustererkennungs-Systems | |
DE19530829A1 (de) | Verfahren zum elektronischen Wiederauffinden von einem Dokument hinzugefügter Informationen | |
DE4119091C2 (de) | Verfahren zum Erkennen von Zeichen, insbesondere Schriftzeichen und Einrichtung zur Durchführung des Verfahrens | |
DE102008013789A1 (de) | Vorrichtung, Verfahren und Programm zum Eliminieren von Zeichenstörungen | |
DE112021000371T5 (de) | Digitale bildbearbeitung | |
DE3838729C2 (de) | Dokumentverarbeitungsgerät | |
DE2435982A1 (de) | Verfahren und vorrichtung zur verarbeitung von durch abtastung eines mehrfarbigen musters erhaltenen informationen |
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 |