-
Gebiet der
Erfindung
-
Die
vorliegende Erfindung bezieht sich auf ein System und ein Verfahren
zum Identifizieren und Extrahieren von Zeichenfolgen von Schriftzeichen
aus Bilddaten und insbesondere sieht diese Offenbarung ein System
und ein Verfahren zum Identifizieren und Extrahieren von Zeichenfolgen
von Schriftzeichen vor, die in aufgenommenen Bilddaten einer komplexen,
natürlichen
Szene zu finden sind.
-
Hintergrund
der Erfindung
-
Aufgrund
der Vorherrschaft digitaler Bilder und der Einfachheit einer Digitalbildaufnahme
ist es erwünscht
und manchmal notwendig geworden, in der Lage zu sein, den Bildinhalt
von aufgenommenen Bilddaten zu analysieren und zu identifizieren.
Wenn beispielsweise ein Dokument abgetastet wird, werden die eingescannten
Dokumentendaten häufig
getrennt und extrahiert, um jeden Typ von Bilddaten in dem Dokument auf
eine unterschiedliche Weise zu verarbeiten. Unterschiedliche Typen
von Bilddaten, die häufig
innerhalb eines abgetasteten Dokuments enthalten sind, umfassen
alphanumerischen Text, natürliche
Bilder und grafische Bilder. Bilddaten, die einem Text innerhalb
abgetasteter Dokumentenbilddaten entsprechen, werden häufig unterschiedlich
zu natürlichen
oder grafischen Bilddaten verarbeitet und verbessert. Häufig wird
ein extrahierter Text nachfolgend durch eine optische Schriftzeichenerkennungssoftware
verarbeitet, um zu ermöglichen,
dass der Text von einem digitalen Bitmap-Format (Bitabbildung-Format)
in ein codiertes Format umgewandelt wird, um ein elektronisches
Editieren zu ermöglichen.
-
In
dem Fall von abgetasteten Dokumenten sind Textbilddaten einfach
zu identifizieren und aus einem digitalen Bitmap-Format des Dokumentenbilds zu extrahieren,
weil es einfach ist, die Qualität
des Abtastprozesses zu steuern, um die resultierende Text-Bitmap
offensichtlich unterschiedlich zu dem Hintergrund zu machen. Beispielsweise
tritt in dem Fall eines dunklen Texts an einem hellen Hintergrund
ein großer
Gradient auf, wenn von dem hellen Hintergrund zu dem dunklen Text übergegangen
wird, und tritt ein zweiter Gradient auf, wenn von dem dunklen Text
zu dem hellen Hintergrund übergegangen
wird. Filter, die entworfen sind, um Textdaten aus Bilddaten zu
extrahieren, sind auf dem Gebiet gut bekannt und basieren allgemein
auf einem Erfassen dieser großen
Gradienten, um die Textdaten zu identifizieren und zu extrahieren.
Eine andere bekannte Technik zum Identifizieren von Text in einem
abgetasteten Dokument wird als eine Schwellenwertbestimmung (Thresholding)
bezeichnet. Die Schwellenwertbestimmungstechnik nimmt an, dass ein
Text in einem Bild eine spezifische Intensität aufweist, während andere
Bilddatentypen dasselbe nicht tun. Die Dokumentenbilddaten werden
analysiert, um alle Pixelwerte zu identifizieren, die eine vorbestimmte
Intensität
innerhalb der digitalen Bitmap (Bitabbildung) des Dokumentenbilds
aufweisen. Es wird dann angenommen, dass diese Pixel ein Text sind.
Bei einer Variation dieses Ausführungsbeispiels
ist die Schwellenwertbestimmungstechnik adaptiv gemacht, derart,
dass dieselbe eine Hintergrundintensität in der Nähe des interessierenden Pixels
berücksichtigt.
-
Obwohl
diese Textextraktionstechniken für
gedruckten Text innerhalb eines abgetasteten Dokuments zuverlässig sind,
sind dieselben bei einem Identifizieren von Zeichenfolgen von Schriftzeichen
nicht zuverlässig,
die innerhalb der natürlichen
Umgebung auftreten. Genauer gesagt weist ein aufgenommenes Digitalbild eines
Hinweisschilds, das eine Zeichenfolge von Schriftzeichen umfasst,
die in der natürlichen
Umgebung auftritt, nicht die gleichen Differenziercharakteristika
wie ein getippter Text innerhalb eines abge tasteten Dokuments auf. 1A zeigt
ein Beispiel von Zeichenfolgen von Schriftzeichen, 11A und 11B,
die in einem abgetasteten Dokument 10 auftreten. Wie zu
sehen ist, ist der Text (11A und 11B) allgemein
von den natürlichen Bildern
(12A und 12B) getrennt, um eine Kantenerfassung
zu einem relativ einfachen Prozess zu machen. Zusätzlich weisen
die Zeichenfolgen von Schriftzeichen deutliche Kanten auf, die zugeordnete
große
Gradienten aufweisen, die eine Texterfassung erleichtern. 1B zeigt
ein Beispiel einer Zeichenfolge von Schriftzeichen 13,
die in einem aufgenommenen Bild 14 einer natürlichen
Umgebung auftritt. Im Gegensatz zu der Zeichenfolge von Schriftzeichen,
die in 1A gezeigt ist, liefern Kanten
der Zeichenfolge von Schriftzeichen 13 lediglich partielle
Informationen hinsichtlich des Schriftzeichens. Beispielsweise können erfasste
Kanten Schriftzeichenkanten entsprechen oder nicht. Zusätzlich zeigen
die Beabstandung, Beleuchtung, Hintergrund- und Vordergrundintensität und Bildverzerrung
alle nicht einheitliche, weniger vorhersagbare Schriftzeichen-Zeichenfolgencharakteristika,
derart, dass eine einfache Kantenerfassung oder eine Schwellenwertbestimmung nicht
verwendet werden kann, um diese Typen von Zeichenfolgen von Schriftzeichen,
die in der natürlichen Umgebung
auftreten, zu identifizieren und zu extrahieren.
-
Leider
sind bekannte Techniken zum Extrahieren einer Zeichenfolge von Schriftzeichen
aus aufgenommenen Bilddaten relativ unzuverlässig. Eine bekannte Technik
basiert beispielsweise auf Annahmen, die sich auf spezielle Charakteristika
der Zeichenfolge von Schriftzeichen beziehen, die in der natürlichen
Umgebung auftritt. Diese Technik ist mit zwei Hauptalgorithmen implementiert,
um einen Text aus Farbbildern zu finden; einem, der auf einem Segmentieren
des Bilds in verbundene Komponenten mit einer einheitlichen Farbe basiert,
und dem anderen, der auf einer Berechnung einer lokalen, räumlichen
Variation in dem Grauskalierungsbild des Farbbilds basiert. Die
Grundannahme dieser Technik besteht darin, dass der Schriftzeichen-Zeichenfolgentext eine
einheitliche Farbe ist und Textregionen eine hohe Grauskalierungsvariation
aufweisen sollten. Das Problem besteht darin, dass sich ein Text
häüfig nicht
gemäß diesen
Annahmen verhält
und folglich durch diese Technik eventuell nicht erfasst wird. Folglich
ist diese Technik nicht zuverlässig
bei einem Erfassen von Zeichenfolgen von Schriftzeichen in aufgenommenen
Bilddaten einer natürlichen
Umgebung.
-
Eine
zweite Technik führt
eine Texterfassung gemäß einem
hierarchischen Algorithmus durch. Anfänglich werden Kantenpixelinformationen
aus dem aufgenommenen Bild abhängig
von Bildgradienteninformationen erhalten. Die Kantenpixel werden
gruppiert, um Schriftzeichenlinien und Kurven eines Schriftzeichens
zu definieren, die wiederum zu Textzeichenfolgen vereinigt werden.
Das Problem bei dieser Technik besteht darin, dass derselben eine
Robustheit fehlt und dieselbe folglich unzuverlässige Extraktionsergebnisse
liefert. Insbesondere legt diese Technik einer Kantenerfassung einfach
Bildgradienteninformationen zu Grunde. Bei einem aufgenommenen Bild
jedoch, das eine nicht einheitliche Beleuchtung, ein Rauschen oder
eine Verzerrung aufweist, ist die Zuverlässigkeit dieses Typs einer
Kantenpixelerfassung erheblich reduziert oder unmöglich. Folglich
werden Schriftzeichenlinien und -kurven aufgrund fehlerhafter Pixelinformationen
eventuell nicht identifiziert. Zusätzlich ordnet diese Technik
spezielle Kurven und Linien innerhalb des Bilds einem gegebenen Schriftzeichen
einfach basierend auf der Konnektivität zugeordneter Kantenpixel
zu, wobei alle anderen Aspekte des Bilds ignoriert werden. In dem
Fall jedoch, in dem Schriftzeichenkanten scharfe Wendungen nehmen oder
nicht wie erwartet verbunden sind, kann eine Bestimmung, die nur
auf einer Konnektivität
basiert, Schriftzeichen in zwei Segmente „teilen". Schließlich identifiziert diese Technik
keine kleinen (und häufig
entscheidenden) Schriftzeichen-Zeichenfolgenpunkte, Akzentzeichen
und Interpunktion.
-
In
dem europäischen
Patent
EP 1147485 basiert
eine Texterfassung auf einer Kantenpixelextraktion und einer Verbundene-Komponente-Analyse.
Genau gesagt gruppiert die Verbundene-Komponente-Analyse alle Kantenpixel,
die innerhalb einer spezifischen Toleranz zusammenhängend sind,
dann werden die verbundenen Komponenten basierend auf Schwellenkriterien
gefiltert, wie beispielsweise Fläche,
Höhe, Breite
und Seitenverhältnis.
Schließlich
werden die gefilterten, verbundenen Komponenten gemäß der Position
derselben sortiert und die sortierte Liste wird überquert, um dieselben in Blöcken und/oder
Zeilen zu gruppieren.
-
Zusammenfassung
der Erfindung
-
Es
ist ein System und ein Verfahren zum Erfassen einer Zeichenfolge
von Schriftzeichen innerhalb aufgenommener Bilddaten beschrieben.
Schriftzeichenkanten werden innerhalb der Bilddaten erfasst, um
eine Kantendarstellung der Bilddaten zu erzeugen. Die Kantendarstellung
umfasst eine Mehrzahl von Kantenpixeln einer einzigen Breite, die
jeweils eine zugeordnete Größe und Richtung
aufweisen. Kantenpixeletiketten werden abhängig von der Etikettierung
benachbarter Kantenpixel zugewiesen. Bei einem Ausführungsbeispiel
basiert eine Kantenpixeletikettierung auf einer Kantenpixelverbundenheit.
Bei einem anderen Ausführungsbeispiel
basiert eine Kantenpixeletikettierung ferner auf einer Kantenpixelrichtung.
Schriftzeichenbegrenzungsbereichsdefinitionen werden unter Verwendung
der Kantendarstellungsinformationen und abhängig von ähnlichen Kantenpixeletiketten
erzeugt. Bei einem Ausführungsbeispiel
werden Schriftzeichendefinitionen durch ein Identifizieren und Verbinden
von Endpunktkantenpixeln in Bereichen hoher Schriftzeichenkrümmung erzeugt.
Die Schriftzeichengrenzdefinitionen werden unter Verwendung von
Richtungsinformationen gefiltert, um Schriftzeichenvordergrund-
und -hintergrundinformationen zu identifizieren. Bei einem Ausführungsbeispiel werden
Definitionen durch ein Analysieren einer Schriftzeichenbegren zungsbereichsdefinitionsgeometrie und/oder
einer Grauskalierungseinheitlichkeit weiter gefiltert. Gefilterte
Definitionen werden mit benachbarten Grenzdefinitionen kombiniert,
um eine Liniendefinition abhängig
von der relativen Position benachbarter Begrenzungsbereichsdefinitionen
zueinander zu bilden.
-
Kurze Beschreibung
der Zeichnungen
-
1A zeigt
ein Beispiel typischer Zeichenfolgen von Schriftzeichen und natürlicher
Bilder, die innerhalb eines abgetasteten Dokuments auftreten;
-
1B zeigt
ein Beispiel eines aufgenommenen Digitalbilds von Zeichenfolgen
von Schriftzeichen, die in einer natürlichen Umgebung auftreten;
-
2 zeigt
ein erstes Ausführungsbeispiel
eines Verfahrens zum Extrahieren von Zeichenfolgen von Schriftzeichen
aus aufgenommenen Bilddaten einer natürlichen Umgebung;
-
3A stellt
ein Verfahren zur Kantenerfassung gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung dar;
-
3B stellt
Kantenrichtungsdefinitionen gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung dar;
-
4A stellt
eine Kantenpixeletikettierung gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung dar;
-
4B stellt
das Konzept von N-fach verbundenen Pixeln dar, wobei N = 8;
-
5 zeigt
ein Beispiel einer Schriftzeichenkante und des entsprechenden Schriftzeichenkastens
derselben gemäß der vorliegenden
Erfindung; und
-
6A zeigt
eine in einem Raster bewegte Projektionslinie, die Kantenpixel eines
Schriftzeichenkastens schneidet;
-
6B zeigt
projizierte Gradientenvektoren für
ein Kantenpixelpaar, das in 6A gezeigt
ist;
-
7A stellt
ein Verfahren zum Filtern von Kandidatenschriftzeichenkästen gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung dar;
-
7B stellt
ein Verfahren zur Grauskalierungsanalyse gemäß einem Ausführungsbeispiel
der vorliegenden Erfindung dar.
-
8A zeigt
ein Beispiel einer Datenstruktur, die eine Linie von Begrenzungsbereichskästen und
die entsprechende Beziehung zu den Begrenzungsbereichskästen definiert;
-
8B zeigt
einen vordefinierten Suchbereich um Kandidatenkästen innerhalb des die gleiche
Linie enthaltenden Kastens;
-
9A stellt
ein Verfahren zur Binarisierung von Begrenzungsbereichskästen gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung dar;
-
9B zeigt
Schnittpunkte, die aus einem Rasterabtasten, das zum Durchführen einer
kantenmodulierten Binarisierung verwendet wird, eines Nachbarkastens
und eines Schriftzeichenkastens erhalten werden; und
-
10 stellt
ein System zum Extrahieren eines Texts aus einem aufgenommenen Digitalbild
gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung dar.
-
Detaillierte
Beschreibung der Erfindung
-
Im
Allgemeinen ist die vorliegende Erfindung ein System und ein Verfahren
zum Extrahieren einer Zeichenfolge von Schriftzeichen aus einem
aufgenommenen Digitalbild einer natürlichen Umgebung. Es ist zu
beachten, dass aufgenommene Bilddaten, wie dieselben in dieser Offenbarung
beschrieben sind, zumindest einen Abschnitt von Bilddaten umfassen,
die einer grafischen Darstellung zumindest einer Zeichenfolge von Schriftzeichen
entsprechen. Die aufgenommenen Bilddaten können ferner Bilddaten umfassen,
die anderen Objekten entsprechen, die in der Umgebung um die grafische
Darstellung der Zeichenfolge von Schriftzeichen herum natürlich auftreten
(z.B. unbelebte und belebte Objekte). Bilddaten, die Hinweisschildern
in der natürlichen
Umgebung entsprechen, umfassen häufig
eine grafische Darstellung eines einzigen Worts, eines Ausdrucks,
eines Satzes oder einer Zeichenfolge von Schriftzeichen in einer
Zeile, die durch den äußeren Umfang des
Schilds begrenzt sind. 1B zeigt ein Beispiel einer
Zeichenfolge von Schriftzeichen 13, die innerhalb eines
aufgenommenen Bilds 14 einer natürlichen Umgebung auftritt.
-
2 zeigt
ein erstes Ausführungsbeispiel
des Verfahrens der vorliegenden Erfindung zum Extrahieren von Zeichenfolgen
von Schriftzeichen aus aufgenommenen Digitalbilddaten einer natürlichen
Umgebung. Gemäß dem dargestellten
Verfahren werden Kanten zuerst erfasst (20), um eine Kantendarstellung
des Digitalbilds zu bestimmen. Es ist zu beachten, dass das Digitalbild
ein Farbdigitalbild oder ein Grauskalierungsdigitalbild sein kann.
Bei einem Ausführungsbeispiel
kann das Farbbild in ein Grauskalierungsbild umgewandelt werden
und das Grauskalierungsbild kann verwendet wer den, um die Kantendarstellung
des Bilds zu erhalten. In dem Fall eines Farbbilds, das eine Mehrzahl
von Pixeln umfasst, wobei jedes Pixel einen oder mehrere zugeordnete
digitale Komponentenwerte (z.B. RGB-Werte, CMYK-Werte etc.) aufweist,
kann eine Kantenerfassung an jeder Komponente des Farbbilds durchgeführt werden.
Falls das Bild beispielsweise in einem RGB-Farbraum dargestellt
ist, wird eventuell lediglich die rote Farbkomponente aller Pixel
in dem Bild analysiert, um eine Kantendarstellung des Digitalbilds
zu erhalten. Alternativ kann jede der Komponenten oder können Kombinationen
der Komponenten verwendet werden, um eine Kantendarstellung des
Digitalbilds zu erzeugen.
-
Bei
einem Ausführungsbeispiel
wird die Kantendarstellung durch ein Verarbeiten des Digitalbilds
unter Verwendung eines Algorithmus erhalten, der eine Kantenpixelabbildung
einer einzigen Breite für
erfasste Kanten in den aufgenommenen Bilddaten erzeugt, wo jedes
Kantenpixel in der Abbildung eine zugeordnete Größenkomponente und Richtungskomponente
aufweist. Es ist zu beachten, dass der Algorithmus ein Kantenpixel
einer einzigen Breite erzeugt, obwohl erfasste Kanten eine Mehrpixelbreite
aufweisen. Dieser Algorithmus kann unter Verwendung eines modifizierten
Canny-Algorithmus
implementiert sein, wie derselbe in „A Computational Approach
to Edge Detection" (J.
Canny, IEEE Tran. PAMI, Bd. 8, Nr. 6, 1986) beschrieben ist. Im
Allgemeinen nimmt der Canny-Algorithmus an, dass Schriftzeichen
einen genügend
deutlichen Kontrast zu einem Bildhintergrund aufweisen, derart,
dass Schriftzeichengrenzen durch diesen Algorithmus erfassbar sind. Es
ist zu beachten, dass andere Algorithmen, die ähnliche Ergebnisse liefern,
ebenfalls verwendet werden können.
-
3A zeigt
ein Ausführungsbeispiel
einer Kantenerfassung gemäß der vorliegenden
Erfindung. Zu Anfang wird das Digitalbild unter Verwendung eines
Filters vom Gaußschen
oder ähnlichen
Diffusionstyp gefiltert (30), um irgendein Rauschen zu
entfernen, das die Erfassung von Kanten innerhalb des Bilds stören kann.
Als Nächstes
werden die Bilddaten durch einen Kantenerfassungsalgorithmus (31)
verarbeitet, der eine Kantendarstellung eines einzigen Pixels Breite
des Digitalbilds erzeugt, einschließlich 1) einer Zwischenkantenabbildung
(31A), die die Größe jedes
Kantenpixels in der Darstellung darstellt, und 2) einer Kantenrichtungsabbildung,
die eine Richtung zu jedem Kantenpixel abhängig von der Beziehung desselben
zu einem vorhergehenden, benachbarten Kantenpixel liefert. 3B stellt
ein Ausführungsbeispiel
von Kantenrichtungsdefinitionen dar. Wie es gezeigt ist, kann dem
Kantenpixel ein Wert 1–8
zugewiesen werden, der die relative Richtung desselben zu einem
interessierenden Pixel I angibt, wobei das interessierende Pixel
das vorhergehende, benachbarte Kantenpixel ist. Die Zwischenkantenabbildung
wird durch ein Schwellenfilter gefiltert (32), um Kantenpixel
zu entfernen, die schwache Größen aufweisen,
um eine binäre
Kantenabbildung 33A zu erzeugen.
-
Unter
Rückzug
auf 2 werden, sobald eine Kantenerfassung (20)
durchgeführt
ist und eine Kantendarstellung erzeugt ist, Kantenpixeletiketten
abhängig
von Etiketten anderer benachbarter Kantenpixel zugewiesen (21).
-
Bei
einem Ausführungsbeispiel
wird eine Etikettierung durchgeführt,
wie es in 4A gezeigt ist. Anfänglich wird
eine Etikettierung gemäß einer
Pixelverbundenheit (40) durchgeführt. Genauer gesagt wird jedem Pixel
ein Etikettwert gegeben, derart, dass alle N-fach verbundenen Pixel
den gleichen Wert aufweisen. 4B zeigt
das Konzept von N-fach verbundenen Pixeln, wobei N = 8. Falls ein
Kantenpixel bei irgendeiner der Pixelpositionen P um das interessierende
Kantenpixel I herum resident ist, das einen Etikettwert L1 aufweist,
dann weist dieser Kantenpixelwert ebenfalls einen Etikettwert von
L1 auf, wie es gezeigt ist. Als Nächstes werden Kantenpixel ausgewertet,
um Endpunktkantenpixel (41) zu bestimmen und um dann Endpunktkantenpixel
mit anderen Kantenpixeln zu verbinden (42), um ordnungsgemäße Etiketten
zuzuweisen. Der Zweck des Findens von Endpunktkantenpixeln besteht
darin, Brüche
bei Schriftzeichenkanten innerhalb der Kantendarstellung zu identifizieren,
die während
der Kantenerfassung (d.h. Block 20, 2) fehlerhaft
erzeugt wurden. Abhängig
von dem Algorithmus, der verwendet wird, um Kanten zu erfassen,
können
genau gesagt Brüche
bei Ecken mit hoher Krümmung
in der resultierenden Kantendarstellung auftreten. Bei einem Ausführungsbeispiel
werden Endpunkte gemäß dem folgenden
Algorithmus erfasst:
Für
jedes Kantenpixel p in der Kantendarstellung, werte die 8 Nachbarn
(wie in 3B gezeigt ist) desselben aus,
setze ein 8-Element-Ganzzahlarray Nachbar (neighbor), derart, dass,
falls das benachbarte Pixel ein Kantenpixel ist, „Nachbar[k
- 1] = 1", sonst „Nachbar[k
- 1] = 0". Zusätzlich wird
eine ganzzahlige Variable ncount auf die Anzahl von Kantenpixeln
k in der Nachbarschaft gesetzt:
-
-
Eine
Endpunktverbindung (42) wird durchgeführt, derart, dass für jeden
Endpunkt die k-mal-k-Nachbarschaft desselben überprüft wird, um irgendwelche anderen
erfassten Endpunkte zu finden. Falls ein anderer Endpunkt in der
Nachbarschaft erfasst wird, dann wird ein Auswertungsprozess ausgeführt, um
zu überprüfen, ob
diese zwei Endpunkte verbunden werden können. Falls die zwei Endpunkte
verbunden sind, wird den Kantenpixeln, die den zwei Endpunkten zugeordnet
sind, allen das gleiche Etikett zugewiesen. Bei einem Ausführungsbeispiel
ist dieser Auswertungsprozess durch ein Suchen nach einem optimalen
Weg mit minimalem Abstand entworfen, der die zwei Endpunkte verbindet.
Um sich für
ein Verbinden zu qualifizieren, weist jedes Pixel an diesem optimalen
Weg einen Gradienten über
einer vorbestimmten Schwelle auf (eine Option dieser Schwellenauswahl
besteht darin, die gleiche Schwelle zu verwenden, die bei 32 von 3A verwendet wird).
-
Ein
Algorithmus, der zum Suchen nach optimalen Wegen eingesetzt werden
kann, ist wie folgt beschrieben: man nehme an, dass zwei Endpunkte
e1 und e2 bei (r1, c1) bzw. (r2, c2) positioniert sind, wobei r und
c die Zeilen- und Spaltenkoordinaten der Punkte mit Bezug auf das
Gesamtbildkoordinatensystem sind. Eine k-mal-k-Rechteck-Suchnachbarschaft
(SNE = search neighborhood) wird für das Endpunktpaar definiert, derart,
dass dasselbe bei ((r1 + r2)/2, (c1 + c2))/2) zentriert ist. Für jedes
8fach verbundene Punktpaar p und q, das innerhalb der SNE positioniert
ist, ist der Abstand (Distanz = dist) von p zu q definiert, derart,
dass dist(p,q) = 1, falls der Grauskalierungsgradient an dem Punkt
q über
einer vorbestimmten Schwelle liegt, sonst dist(p,q) = +∞. Es ist
zu beachten, dass der Grauskalierungsgradient des Bilds mit Sobel-Operator
berechnet werden kann, wie es in „Digital Image Processing" (R. Gonzalez und
R. Woods, Addison Wesley, 1992) beschrieben ist, oder als ein Nebenprodukt
eines Canny-Algorithmus erhalten werden kann, wie es oben in Verbindung
mit
3A beschrieben ist. Der kürzeste Abstand von jedem Punkt
innerhalb der SNE zu dem Endpunkt e1 kann unter Verwendung dieser
Abstandsdefinition und einer dynamischen Programmierung berechnet werden.
Genauer gesagt kann man, falls man den kürzesten Abstand von einem Punkt
p in der SNE als SD(p) bezeichnet, dann SD(p) erhalten als:
wobei NE(p) den Satz von
Punkten darstellt, die mit dem Punkt p 8fach verbunden sind. Folglich
definiert man SD(e1) = 0 als einen Startpunkt und die Funktion eines
kürzesten
Abstands wird für
jeden Punkt innerhalb der SNE unter Verwendung einer dynamischen
Programmierung berechnet. Für
Endpunktverbindungsauswertungszwecke verwendet man SD(e2). Das heißt, die
zwei Endpunkte e1 und e2 werden lediglich verbunden, wenn SD(e2)
kleiner als unendlich ist.
-
Mit
Bezug auf 2 werden Begrenzungsbereichsdefinitionen
erzeugt (22), sobald Pixelkantenetiketten zugewiesen sind. 5 stellt
ein Beispiel einer Schriftzeichenkante 53 und des entsprechenden
Begrenzungsbereichs derselben dar (auch als ein Schriftzeichenkasten
bezeichnet). Die Schriftzeichenkastendefinition liefert Informationen,
die sich sowohl auf das Schriftzeichen innerhalb des Kastens als
auch auf den Kasten selbst beziehen. Es ist zu beachten, dass bei
einem Ausführungsbeispiel
zu der gleichen Zeit, zu der Kantenpixel etikettiert werden, Definitionen
von Begrenzungsbereichen ebenfalls erzeugt werden. Bei einem Ausführungsbeispiel
werden Schriftzeichenkästen
gemäß einer
Datenstruktur definiert, die die Informationen umfasst, die sich
auf das Schriftzeichen und den Kasten beziehen. Ein Beispiel einer
Schriftzeichenkasten-Datenstruktur (BoxComp) ist unten gezeigt:
-
-
-
Die
BoxComp-Struktur enthält
die notwendigen Merkmalsfelder, um einen Schriftzeichenkasten darzustellen.
Bei dem oben gezeigten Beispiel entspricht rect dem Kasten- (oder
Begrenzungsbereichs-) Identifizierer; Zeile0 und Sp0 ist die Koordinate
der Mitte des Kastens (ein Koordinatensystem mit Bezug auf das gesamte
Bild angenommen); h0 ist die Höhe
des Kastens in einer Anzahl von Pixeln; TextFarbe gibt an, ob das Schriftzeichen
ein dunkles Schriftzeichen mit Bezug auf den Hintergrund (Textfarbe
= 0) oder ein helles Schriftzeichen mit Bezug auf den Hintergrund
(Textfarbe = 1) ist; KantenIndex stellt den Etikettwert dar, der
für die Kantenpixel
des Schriftzeichens verwendet wird; und Schwelle ist der vorgeschlagene
Wert, der verwendet wird, um den Schriftzeichenkasten in eine binäre Bitmap
umzuwandeln. Es ist zu beachten, dass nicht alle Felder, die in
dem Beispiel oben gezeigt sind, erforderlich sind und anstelle dessen
für eine
einfache Verwendung der Datenstruktur bei zukünftigen Verarbeitungsschritten
enthalten sein können.
Die Höhe
h0 wird beispielsweise ohne weiteres aus den Schriftzeichenkastenkoordinaten
bestimmt. Deshalb sollte eine tatsächliche Implementierung basierend
auf dem Kompromiss zwischen Geschwindigkeits- und Speicheranforderungen
bestimmt sein.
-
Sobald
alle Kanten etikettiert sind, wird daher ein einziger Schriftzeichenkasten
für jedes
unterschiedliche Etikett erzeugt, das den Kantenpixeln zugewiesen
ist, derart, dass es für
jedes unterschiedliche Kantenetikett (d.h. KantenIndex) eine entsprechende
Schriftzeichenkastendefinition gibt. Bei einem Ausführungsbeispiel
umfasst der erzeugte Schriftzeichenkasten ferner geometrische Koordinationsin formationen
des Kastens (rect, Sp0, Zeile0, h0), die aus Kantenpixelkoordinateninformationen
erhalten werden. Während
einer Endpunktverbindung werden Sätze von verbundenen Kantenpixeln
vereinigt und mit einem gemeinsamen Schriftzeichenkastenetikett
neu etikettiert.
-
Sobald
alle Schriftzeichenkästen
definiert sind, werden mit Bezug auf 2 die Kästen unter
Verwendung von Richtungsinformationen gefiltert (23), die
aus der Kantenpixeldarstellung erhalten werden, um Schriftzeichenvordergrund-
und -hintergrundinformationen zu identifizieren. Der Zweck des Filterns
von Schriftzeichenkästen
besteht darin, dass einige der Kästen
(hierin als negative Schriftzeichenkandidaten bezeichnet) eventuell
anderen Bilddaten als Zeichenfolgen von Schriftzeichen entsprechen
können,
die fälschlicherweise
als Schriftzeichenkästen
identifiziert wurden. Das Filtern der Kästen erfasst diese fehlerhaften
Kästen
von den echten Schriftzeichenkästen
(hierin als positive Schriftzeichenkandidaten bezeichnet). Zusätzlich können Richtungsinformationen
verwendet werden, um den Hintergrund und den Vordergrund eines Schriftzeichens
zu identifizieren, und können
daher verwendet werden, um den identifizierten Hintergrund und den Vordergrund
zu analysieren, um zu bestimmen, ob der Schriftzeichenkasten ein
positiver Schriftzeichenkandidat oder ein negativer Schriftzeichenkandidat
ist.
-
Bei
einem Ausführungsbeispiel
werden Schriftzeichenkästen
unter Verwendung von Richtungsinformationen durch ein Durchführen einer
topologischen Analyse der Kanten, die jedem Schriftzeichenkasten
entsprechen, gefiltert. Die topologische Analyse umfasst zwei Filterprozesse.
Bei dem ersten Prozess wird eine in einem Raster bewegte Projektionslinie
verwendet, um alle Kantenpixel innerhalb eines Schriftzeichenkastenkandidaten
Pixelzeile für
Pixelzeile zu schneiden (6A). Der
erste und der letzte Schnittpunkt entlang der Projektionslinie sind
als P1 und P2 bezeichnet (es ist zu beachten, dass nicht angenommen
wird, dass es lediglich zwei Schnittpunkte entlang der Linie gibt).
Die Richtungsinformationen jedes Kantenpixels in dem Paar werden
aus den vorhergehend bestimmten Kantendarstellungsinformationen
und insbesondere aus den Richtungsinformationen erhalten. Für jedes
Kantenpixel in dem Paar wird der Grauskalierungsgradientenvektor
zu der Projektionsrichtung projiziert.
-
6B stellt
einen Gradientenvektor für
jeden von P1 und P2 dar, die in 6A gezeigt
sind. Ein projizierter Gradientenvektor kennzeichnet die Intensitätsveränderung
an jedem geschnittenen Punkt und gibt somit an, ob der Vordergrund
dunkler oder heller als der Hintergrund ist. In 6B gibt
beispielsweise an dem Schnittpunkt P1 die Richtung des projizierten
Gradientenvektors einen dunkleren Vordergrund und einen helleren
Hintergrund an (der Gradient zeigt von einer niedrigeren Grauskalierung
zu einer höheren
Grauskalierung). Das gleiche Prinzip gilt für P2 (es ist zu beachten, dass
bei P2 die Beziehung zwischen Vordergrundfarbe und Gradientenprojektionsrichtung
entgegengesetzt zu der ist, die bei P1 verwendet wird). Es ist zu
beachten, dass in dem Fall, wenn der Grauskalierungsgradientenvektor
an dem Schnittpunkt senkrecht zu der Rasterabtastprojektionslinie
ist, der projizierte Gradientenvektor 0 beträgt und keine Angabe über eine
Vordergrundfarbe verfügbar
ist.
-
Basierend
auf den Gradientenprojektionsinformationen kann jeder Schnittpunkt
durch „+" (was einen dunklen
Vordergrund angibt), „–" (was einen hellen
Vordergrund angibt) oder „0" (keine Angabe) bezeichnet sein.
Es ist zu beachten, dass bei einer Implementierung die zuvor erwähnten Gradientenprojektionsinformationen
(einschließlich
der Größen- und
Richtungsinformationen) nicht erforderlich sind, weil die Richtung
des endgültigen
projizierten Gradientenvektors, nicht die Größe, für die Vordergrund/Hintergrund-Analyse
verwendet wird. Bei einem Ausführungsbeispiel
kann die Richtung des Gradienten in 8 diskrete Werte quantisiert
sein, wie es in 4B angegeben ist, was in der
Form einer Kantenrichtungsabbildung (Komponente 33B in 3A) dargestellt
ist, und eine Richtungsanalyse kann basierend auf der Kantenrichtungsabbildung
durchgeführt
werden.
-
Sobald
Richtungsinformationen für
den ersten und den letzten Schnittpunkt an der Abtastlinie erhalten sind,
wird ein Schnittpunktpaar P1 und P2 als ein „in Übereinstimmung gebrachtes" Paar definiert,
falls die Bezeichnungen derselben beide „+" oder beide „–" lauten. Der Projektionslinienprozess
wird in einer Rasterabtastweise über
den gesamten Kandidatenkasten in jeder der vertikalen und der horizontalen
Richtung ausgeführt.
Der Prozentsatz von Projektionslinien, die in Übereinstimmung gebrachte Paare
ergeben, wird als ein Projektionsmaß verwendet. Bei einem Ausführungsbeispiel
wird ein Kandidatenkasten, der ein Projektionsmaß von über 70% der Projektionslinien
aufweist, als ein positiver Kandidat betrachtet.
-
Der
zweite topologische Prozess ist ein Kantenrichtungskohärenzmaß und basiert
ebenfalls auf den Kantengradientenvektorrichtungen, die aus der
Kantenpixeldarstellung und den Ergebnissen aus der vorhergehenden
topologischen Analyse erhalten werden. Wie es oben angegeben ist,
kann die Vordergrund/Hintergrund-Farbe (hell oder dunkel) für einen
Kandidatenkasten aus der Kantenrichtungsabbildung des Kantenpixels
desselben gefolgert werden. Die Vordergrundfarbe, die aus unterschiedlichen
Kantenpixelpaaren gefolgert wird, ist eventuell für einen
Kandidatenkasten nicht die gleiche. Bei positiven Kandidatenkästen, die
Textregionen entsprechen, sollten die Vordergrund/Hintergrund-Farbbezeichnungen
(basierend auf einer Kantenrichtungsabbildung) sehr konsistent sein,
während
bei negativen Kandidatenkästen,
die Nicht-Text-Rauschen darstellen, die Vordergrund/Hintergrund-Farbbezeichnungen
dem zufälligen
Merkmal von Rauschsignalen ähneln.
Deshalb dient ein Kohärenzmaß an den
Vordergrund/Hintergrund-Farbbezeichnungsstatistiken der Kantenpixel
als ein gutes Filtermaß,
um negative Kandidatenkästen
von positiven zu trennen. Lediglich Kästen, bei denen die Mehrheit
der Kantenpixel derselben die gleichen Vordergrundfarbbezeichnungen
(„+" oder „–") aufweisen, überstehen
diesen Filterprozess. Zusätzlich
ergibt der Filterschritt das TextFarbe-Feld der Schriftzeichenkasten-Datenstruktur, das
später
bei einem Binarisieren von Schriftzeichenkästen verwendet wird.
-
Gemäß einem
anderen Ausführungsbeispiel
der vorliegenden Erfindung werden Kandidatenkästen gefiltert, wie es in 7A gezeigt
ist. Genauer gesagt wird anfänglich
eine geometrische Analyse 70 an jedem Kasten durchgeführt. Die
geometrische Analyse misst im Wesentlichen die Größe (in einer
Anzahl von Pixeln) und das Seitenverhältnis jedes Kandidatenkastens.
Lediglich diese Kästen,
die die geeignete Größe und das geeignete
Seitenverhältnis
aufweisen, werden dann während
einer weiteren Filteranalyse betrachtet. Der Rest der Kandidaten,
die die geometrische Analyse nicht bestehen, werden als negative
Kandidaten 72B gespeichert. Bei einem Ausführungsbeispiel
wird die geometrische Analyse vor der topologischen Analyse 71 durchgeführt. Die
topologische Analyse 71 wird an den Kandidaten durchgeführt, die
von der geometrischen Analyse 70 gefiltert sind, wie es
oben beschrieben ist. Die topologische Analyse verwendet Richtungsinformationen, die
während
einer Kantenerfassung erhalten werden, um einen möglichen
Vordergrund und Hintergrund von Schriftzeichenkästen zu identifizieren. Schriftzeichenkästen, die
die topologischen Analysekriterien nicht bestehen, werden als negative
Kandidaten betrachtet und werden bei den negativen Kandidaten gespeichert,
die während
der geometrischen Analyse bestimmt werden. Die Kandidaten, die die
topologischen Kriterien bestehen, werden dann während einer Grauskalierungsanalyse 72 betrachtet.
-
Im
Allgemeinen wird eine Grauskalierungsanalyse von Kandidatenkästen unter
Verwendung der Grauskalierungsversion des ursprünglichen Digitalbilds durchgeführt, um
die Grauskalierungsverteilung der Vordergrund- und Hintergrundpixel
jedes Kastens zu messen. Die Verteilung kann dann verwendet werden, um
einen Kontrast zwischen dem Vordergrund und dem Hintergrund zu zeigen.
Falls genügend
Kontrast existiert, dann wird der Kasten als ein positiver Kandidat
betrachtet. 7B zeigt ein Ausführungsbeispiel
einer Grauskalierungsanalyse gemäß der vorliegenden
Erfindung. Anfänglich
wird die Größe des Kastens
ausgewertet 73, um zu bestimmen, ob derselbe groß genug
ist, um die Grauskalierungsanalyse durchzuführen (bei einem Ausführungsbeispiel
wird die Höhe
des Kastens mit einer Schwelle verglichen). Falls der Kasten zu
klein ist (z.B. die Höhe
geringer als die Schwelle ist), wird derselbe umgangen, da eine
statistische Analyse an kleinen Populationen von Pixelwerten nicht
zuverlässig
durchgeführt
werden kann. Umgangene Kästen
werden als positive Kandidaten angenommen. Falls der Kasten eine
genügend
große
Population von Werten für
eine Verteilungsanalyse liefert, dann wird derselbe unter Verwendung
des Grauskalierungsbilds des ursprünglichen, aufgenommenen Bilds
binarisiert 74. Die Binarisierung des Kastens wird durch
ein Abbilden der Kandidatenkastenpixel zurück auf die entsprechenden Pixel
in der Grauskalierungsversion des ursprünglichen Bilds und ein anschließendes Verwenden
einer Binarisierungsfunktion, um das Grauskalierungsbild des Kandidatenkastens
in eine binäre
Bitmap des Kandidatenkastens umzuwandeln, durchgeführt. Sobald
der Kasten binarisiert ist, wird eine Verteilungsanalyse an der
binären
Bitmap des Kastens durchgeführt.
Die mittlere und die standardmäßige Grauskalierungsabweichung
der Vordergrund- und Hintergrundpixel eines gegebenen binarisierten
Kastens sind als gf, gb, σf bzw. σb definiert.
Der Kontrast, c, zwischen den Vordergrund- und Hintergrundpixeln
ist gemäß Gl. 2
definiert, die unten gezeigt ist:
-
-
Wie
es bei einem Block 76 (7B) gezeigt
ist, wird der Kasten, falls der Kontrast für den binarisierten Kasten über einem
annehmbaren Wert wiegt (d.h. hoch genug), dann als Pin positiver
Kandidat betrachtet. Falls nicht, wird derselbe als ein negativer
Kandidat betrachtet und wird bei dem Rest der negativen Kandidaten 72B (7A)
gesichert.
-
Unter
Rückbezug
auf 2 werden gefilterte Begrenzungsbereichsdefinitionen
mit anderen benachbarten Begrenzungsbereichsdefinitionen kombiniert/vereinigt
(24), um Textliniendefinitionen abhängig von der relativen Position
derselben zueinander zu bilden. Gemäß einem Ausführungsbeispiel
werden die Linien als horizontal betrachtet. Bei einem anderen Ausführungsbeispiel
der vorliegenden Erfindung ist die Liniendefinition durch eine Datenstruktur
implementiert, die die kombinierten Begrenzungsbereichsdefinitionen
für eine gegebene
Linie verfolgt. 8A zeigt ein Beispiel einer
Datenstruktur 80 und der Beziehung derselben zu kombinierten
Begrenzungsbereichsdefinitionen 81–84. Wie es gezeigt
ist, umfasst die Datenstruktur die folgenden Datenfelder: rect identifiziert
die Liniendefinition der kombinierten oder vereinigten Schriftzeichenkästen und
Tochter_Anz (child_num) ist die Anzahl von Schriftzeichenkästen, die
vereinigt wurden, um diese Liniendefinition zu erzeugen (auch als
Tochterkästen
bezeichnet). Bei einem Ausführungsbeispiel
arbeitet die Datenstruktur 80 als ein Behälter für alle Tochterkästen, die
in der Boxcomp-Datenstruktur
dargestellt sind. Mit anderen Worten werden die Tochterkästen unter
Verwendung einer Zweiwegelistendatenstruktur (die die BoxComp einbettet)
basierend auf der räumlichen
Beziehung derselben in der Textlinie verbunden, d.h. falls ein Kasten
A räumlich
links von dem Kasten B positioniert ist, dann wird der Kasten A
vor dem Kasten B in der Liste verbunden. Die räumliche Beziehung der Kästen kann
unter Verwendung des Mittelpunkts der eingrenzenden Rechtecke derselben
bestimmt werden. Gemäß diesem
Listenentwurf sind zwei Datenfelder: links_zgr (left_ptr) und rechts_zgr
(right_ptr) als die zwei Zeiger enthalten, die zu den Boxcomp-Datenstrukturen
der Schriftzeichenkästen
links bzw. rechts von der Linienstruktur führen. Diese zwei Zeiger können verwendet
werden, um bezüglich
der räumlichen Beziehungen
derselben schnell auf die Tochterkästen zuzugreifen.
-
Bei
einem Ausführungsbeispiel
werden Begrenzungsbereichsdefinitionen durch ein anfängliches
Zuweisen eines aktuellen positiven Kandidaten zu einer aktuellen
Liniendefinition und folglich ein Suchen nach positiven Kandidaten
innerhalb eines vordefinierten Nachbarbereichs um die aktuelle Liniendefinition
herum vereinigt. Falls herausgefunden wird, dass ein anderer positiver
Kandidat den Bereich überlappt,
wird derselbe in die aktuelle Linie vereinigt und dann wird der
Nachbarbereich um die neue Liniendefinition herum durchsucht. Wenn
keine weiteren positiven Kandidaten für eine gegebene Linie um irgendwelche
der Kandidaten herum, die der Linie zugeordnet sind, gefunden werden,
dann wird einem neuen Kandidaten eine neue Liniendefinition zugewiesen
und der Prozess wird wiederholt. Ein Ausführungsbeispiel eines Algorithmus
zum Implementieren eines Vereinigens positiver Kandidaten zu Linien
ist wie folgt beschrieben:
-
Eingabe: positive Kandidaten
-
Ausgabe: ein Array von
Liniendefinitionen
-
- (1) Wenn keine weiteren positiven Kandidaten,
dann gehe zu (6);
- (2) aktuellen positiven Kandidaten erlangen, eine aktuelle Liniendefinition
zuteilen und aktuellen Kandidaten zu der Liniendefinition hinzufügen;
- (3) in einer vordefinierten Nachbarschaft des Begrenzungsbereichs
der aktuellen Liniendefinition nachsehen, um zu sehen, ob irgendwelche
anderen positiven Kandidaten in dieser Nachbarschaft überlappen. Falls
keiner, gehe zu (1);
- (4) falls mit der aktuellen Liniendefinition vereinigen kann,
dann zu der aktuellen Liniendefinition hinzufügen;
- (5) gehe zu (3);
- (6) Ende.
-
Das
Vereinigungskriterium für
(4) des oben gezeigten Prozesses vergleicht den überlappenden Kandidaten mit
drei anderen zugeordneten Schriftzeichenkästen der Liniendefinition;
einem eingrenzenden Kasten, der der aktuellen, interessierenden
Linie zugeordnet ist, und sowohl dem linken als auch dem rechten Tochterkasten
der Liniendefinition. Um das Vereinigungskriterium einzuhalten,
muss der überlappende
Kandidatenkasten eine ähnliche
Höhe wie
entweder der rechte oder der linke Tochterkasten und/oder eine Höhe aufweisen,
die zwischen der Höhe
des linken und des rechten Tochterkastens liegt. Kandidatenkästen werden durch
ein Erzeugen von Verbindungen zwischen Kandidaten der gleichen Liniendefinition „hinzugefügt", wie es durch die
unidirektionalen Pfeile zwischen den Kästen 81–84 in 8A dargestellt
ist.
-
Bei
einem Ausführungsbeispiel
der vorliegenden Erfindung werden, nachdem Schriftzeichenkästen vereinigt
sind, um Liniendefinitionen zu bilden, vordefinierte Bereiche um
jeden Schriftzeichenkasten herum, der jeder Liniendefinition zugeordnet
ist, durchsucht, um „Anderes-Schriftzeichen"-Elemente zu lokalisieren, die der Zeichenfolge
von Schriftzeichen zugeordnet sind. Beispielsweise wurden Punkte
von Kleinbuchstaben „i" und „j", verschiedene Akzentzeichen
und Satzzeichen eventuell während
vorhergehender Verarbeitungsschritte als zu klein, um ein Schriftzeichen
zu sein, oder als ohne eine horizontale Ausrichtung eliminiert.
Diese „Anderes-Schriftzeichen"-Elemente werden
unter Verwendung der Liniendefinitionsinformationen und der negativen
Kandidatenschriftzeichenkästen
lokalisiert, die vorhergehend herausgefiltert und gespeichert wurden. Allgemein
werden die negativen Kandidatenkästen
im Hinblick auf die Beziehung derselben zu den Kandidatenkästen in
jeder Linie angesichts der Größe und Nähe derselben
zu den Schriftzeichenkästen
ausgewertet. Mit Bezug auf 8B, und
insbesondere bei jedem eine Linie enthaltenden Kasten 85,
werden vordefinierte Bereiche 87A und 87B um jeden
der Kandidatenkästen 86A–86D herum
nach negativen Kandidaten durchsucht, die spezielle Charakteristika
(z.B. eine Größe) aufweisen.
Bei einem Ausführungsbeispiel
werden diese „Anderes-Schriftzeichen"-Elemente lokalisiert
und gemäß dem folgenden
Prozess mit einer Liniendefinition vereinigt:
- (1)
Für jeden
L-Behälter
einen Punktsuchbereich definieren
- (2) in N-Behälter
nachsehen und sehen, ob irgendein Kasten im Wesentlichen mit dem
Punktsuchbereich überlappt;
- (3) für
jeden überlappten
Kasten nachsehen, ob derselbe in dem geeigneten Größenbereich
liegt, um als fehlende Punkte hinein zu passen. Falls dem so ist,
denselben zu dem L-Behälter
vereinigen.
-
Wobei
L-Behälter
einer Liniendefinition entspricht und N-Behälter
negativen Kandidatenkästen
entspricht.
-
Bei
einem anderen Ausführungsbeispiel
der Erfindung werden die „Anderes-Schriftzeichen"-Elemente einer Textliniendefinition
nicht aus den negativen Kandidatenkästen gesucht. Anstelle dessen
werden alle negativen Kandidatenkästen, die aus vorhergehenden
Filterprozeduren erhalten werden, ohne ein Speichern derselben ausgesondert,
um einen Speicherverbrauch zu reduzieren. In diesem Fall werden
die „Anderes-Schriftzeichen"-Elemente durch ein
Wiederholen des Schriftzeichenkastenerzeugungsverfahrens, das in 4A beschrieben
ist, lediglich in den vordefinierten Nachbarbereichen 87A und 87B lokalisiert.
Sobald diese Schriftzei chenkästen
erfolgreich erzeugt und dann ausgewertet sind, um die „anderen
Schriftzeichen" zu lokalisieren,
können
dieselben durch ein Vereinigen derselben mit der Liniendefinition,
wie es oben beschrieben ist, weiter verarbeitet werden.
-
Gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung wird, sobald alle positiven Kandidaten und
alle zugeordneten „Anderes-Schriftzeichen"-Elemente für jede Liniendefinition
identifiziert wurden, jeder zugeordnete, definierte Schriftzeichenkasten
für jeden
Liniendefinitionsbereich binarisiert. 9A zeigt
ein Ausführungsbeispiel
einer Binarisierung der Schriftzeichenkästen. Anfänglich wird der Schriftzeichenkasten ausgewertet,
um zu bestimmen, ob derselbe groß genug ist (90).
Genauer gesagt ist eine kantenmodulierte Binarisierung (91)
eine statistische Operation, die eine minimale Population erfordert,
um zuverlässige
Ergebnisse zu erhalten. Falls die Größe (d.h. Anzahl von Pixeln)
des Kastens nicht groß genug
ist, wird eine herkömmliche
Schwellenwertbestimmung an der Grauskalierungsversion des Schriftzeichenkastens
durchgeführt,
um einen binarisierten Schriftzeichenkasten zu erhalten. Bei einem
Ausführungsbeispiel
wird die Höhe des
Kastens (die aus der Schriftzeichenkastendefinition erhalten wird)
mit einem Schwellenwert verglichen. Falls die Höhe geringer als der Wert ist,
dann wird eine Schwellenwertbestimmung (92) durchgeführt. Falls nicht,
dann wird die kantenmodulierte Binarisierung (91) durchgeführt, um
den binarisierten Schriftzeichenkasten zu erhalten.
-
Eine
kantenmodulierte Binarisierung wird unter Verwendung der Schriftzeichenkastendefinition,
des ursprünglichen
Grauskalierungsbilds und der Kantendarstellung einschließlich der
Kantenabbildung (d.h. der Größeninformationen
der Kantendarstellung) und der Kantenrichtungsabbildung (d.h. Richtungsinformationen der
Kantendarstellung) durchgeführt.
Mit Bezug auf 9B wird anfänglich ein Nachbarkasten 94 mit
Bezug auf den Schriftzeichenkasten 93 definiert. Bei einem
Ausführungsbeispiel
wird der Nachbarkasten 94 durch ein Erweitern des Schriftzeichenkastens 93 um
1,1–1,2
Mal erhalten. Eine Rasterabtastprozedur wird eingesetzt, um den
Schriftzeichenkasten Linie um Linie innerhalb des Nachbarkastens
abzutasten. Wenn die Rasterabtastung die Kanten des Schriftzeichens
in dem Schriftzeichenkasten schneidet, werden Schnittpunkte von
links nach rechts als p1, p2,
p3, ..., pN etikettiert.
Zusätzlich
werden die Punkte, an denen die Rasterabtastung den Nachbarkasten
schneidet, als p0 und p(N+1) etikettiert.
Zusammen trennen diese N + 2 Schnittstellenpunkte die Linie von
Pixeln in N + 2 Segmente (p0, p1),
(p1, p2), ... (p(N), p(N+1)). Eine
Segmentschreibweise ist definiert als (p(k),
p(k+1)), um die Pixel, die zwischen Punkten
p(k) und p(k+1) an
der Rasterabtastlinie positioniert sind, darzustellen. Bei einem
Ausführungsbeispiel
weist der Binarisierungsprozess jedes Segment der Pixel in zwei
binäre Kategorien
eines Vordergrunds und eines Hintergrunds zu. Der Binarisierungsprozess
wird als eine „kantenmodulierte
Binarisierung" bezeichnet,
weil die Elemente, die durch diesen Prozess binarisiert werden,
Segmente von Pixeln sind. Dies steht im Kontrast zu typischen binären Algorithmen
des Stands der Technik, die einzelne Pixel binarisieren, nicht Segmente
von Pixeln. Mit anderen Worten nimmt man an, dass die Pixel in einem
Segment zu der gleichen Binarisierungskategorie gehören sollten:
entweder Vordergrund oder dem Hintergrund.
-
Um
den Schriftzeichenkasten zu binarisieren, werden die Gruppen von
Segmenten basierend auf den Gradientenvektorrichtungen anfänglich in
Vordergrund (F), Hintergrund (B) und unsichere (U) Segmente klassifiziert.
Wie es oben in Verbindung mit 6 beschrieben
ist, wird jedes Schnittpunktpaar (p(k),
p(k+1)) abhängig von den Richtungen des
projizierten Gradientenvektors der zwei Punkte entweder „in Übereinstimmung
gebracht" oder „nicht
in Übereinstimmung
gebracht". Falls
daher das Paar von Punkten (p(k), P(k+1)) vorhergehend „in Übereinstimmung gebracht" worden wäre, dann
können
die Segmente, die durch das „in Übereinstimmung gebrachte" Paar von Punkten
identifiziert sind, basierend auf dem vorhergehenden Schriftzeichenkasten-Textfarbe-Feld
(während
der topologischen Analyse 71, 7A, bestimmt)
als entweder ein Vordergrundsegment (F-Segment) oder ein Hintergrundsegment
(B-Segment) klassifiziert werden. In Fällen, in denen die Paare „nicht
in Übereinstimmung
gebracht" sind,
werden diese Segmente als unsicher (U) klassifiziert.
-
Bei
einem anderen Ausführungsbeispiel
werden die Nachbarkastenschnittpunkte durch ein Bestimmen des Laplace
an jedem dieser Punkte verarbeitet und basierend auf dem Vorzeichen
des Laplace werden die Nachbarschnittpunktpaare in „in Übereinstimmung
gebrachte" oder „nicht
in Übereinstimmung
gebrachte" Paare
klassifiziert. Diese Paare von Schnittpunkten können dann wie oben beschrieben
weiter in Vordergrund (F), Hintergrund (B) und unsicher (U) klassifiziert
werden.
-
Sobald
alle Segmente als (F), (B) oder (U) klassifiziert sind, werden die
Segmente statistisch ausgewertet, um dieselben durch ein Bestimmen
einer binären
Gruppierung für
die drei Klassifikationen (F), (B) und (U) der Segmente gemäß dem folgenden
Algorithmus als entweder (F) oder (B) neu zu klassifizieren:
- (1) Zwei Gaußsche Modelle werden an die
Grauskalierungsverteilung der Pixel in den (F)- bzw. (B)-Segmenten
angepasst, die wir als N (gf, σf)
und N (gb, σb) bezeichnen,
wobei gf (gb) und σf (gb) die mittlere und die Standardabweichung
der Gaußschen
Verteilung der Vordergrund- (Hintergrund-) Pixel darstellen.
- (2) Den gewichteten Abstand zwischen den zwei Gaußschen Modellen
messen: Falls
der Abstand unter einer Schwelle liegt, werden die Pixel aus der
(U)-Gruppe basierend auf dem Abstand derselben zu den (F)- und (B)-Modellen
entweder in die (F)- oder (B)-Gruppe klassifiziert und gehe zu (4);
- (3) Unter Verwendung von Pixeln in Vordergrundsegmenten (F)
und Hintergrundsegmenten (B) als die Initialisierungsdaten, einen
EM-Algorithmus ausführen,
um M Liniensegmente in zwei Gaußsche
Modelle zu gruppieren;
- (4) Ende.
-
Bei
(3) ist ein EM-Algorithmus in „Maximum
likelihood from incomplete data via the EM algorithm" (A. P. Dempster,
N. M. Laird und D. B. Rubin, Journal of Royal Statistical Society,
Ser. B, Bd. 39, Seiten 1–38, 1977)
beschrieben.
-
10 zeigt
ein Ausführungsbeispiel
eines Systems zum Extrahieren von Zeichenfolgen von Schriftzeichen
aus aufgenommenen Bilddaten gemäß der vorliegenden
Erfindung. Wie es gezeigt ist, werden aufgenommene Bilddaten durch
einen Konverter 100A in Grauskalierungsbilddaten umgewandelt.
Diese Daten werden zu einem Kantendetektor 100B geliefert.
Alternativ werden die aufgenommenen Bilddaten direkt zu dem Kantendetektor 100B geliefert.
Der Kantendetektor 100B erzeugt eine Kantendarstellung
der aufgenommenen Bilddaten einschließlich Größeninformationen in der Form
einer Kantenabbildung und Richtungsinformationen in der Form einer
Kantenrichtungsabbildung.
-
Die
Kantendarstellung wird durch einen Begrenzungsbereichsdefinitionserzeuger 101 verwendet,
um Definitionen für
jeden Begrenzungsbereich, der jedem Schriftzeichen zugeordnet ist
(d.h. Schriftzeichenkasten), zu identifizieren und zu erzeugen.
Der Definitionserzeuger 101 umfasst zumindest einen Kantenpixeletikettierer 101A zum
Etikettieren jedes Kantenpixels in der Kantenabbildung abhängig von
einer Nähe zu
benachbarten Pixeln und abhängig
von Richtungsinformationen des Kantenpixels. Zusätzlich umfasst der Definitionserzeuger 101 optional
einen Endpunktdetektor 101B und einen Endpunktverbinder 101C zum
Identifizieren unbeabsichtigter Bruchpunkte in Kanten und Vereinigen
von Kanten, die den identifizierten Bruchpunkten zugeordnet sind,
zu einer einzigen kontinuierlichen Kante (durch ein Neu-Etikettieren).
Die etikettierten Kanten werden verwendet, um die Begrenzungsbereichsdefinitionen
zu erzeugen (auch als Kandidatenkästen bezeichnet).
-
Ein
Kandidatenkastenfilter 102 umfasst zumindest einen topologischen
Analysator 102A, der Richtungsinformationen aus der Kantenerfassungsdarstellung
verwendet, um Punkte entlang Abtastlinien, die durch jeden Kandidatenkasten
projiziert werden, in Übereinstimmung
zu bringen, um einen Schriftzeichenvordergrund und -hintergrund
zu identifizieren. Zusätzlich
umfasst das Kandidatenkastenfilter 102 optional einen geometrischen
Analysator 102B und einen Grauskalierungsanalysator 102C.
Der geometrische Analysator 102B filtert Kandidatenkästen heraus,
falls ein Seitenverhältnis
derselben nicht innerhalb eines erwarteten Schwellenwerts liegt.
Falls das Seitenverhältnis
derart ist, dass es unwahrscheinlich ist, dass der Kasten ein Schriftzeichen
in einer Zeichenfolge von Schriftzeichen darstellt, dann wird derselbe
mit anderen Worten gefiltert. Der Grauskalierungsanalysator 102C führt eine
statistische Analyse an der Grauskalierungsversion des ursprünglichen
Digitalbilds durch, um die Grauskalierungsverteilung des Vordergrunds
und des Hintergrunds jedes Kastens zu messen. Die Verteilung wird
verwendet, um einen Kontrast zwischen dem Vordergrund und dem Hintergrund
zu zeigen. Falls genügend
Kontrast existiert, dann wird der Kasten als ein positiver Kandidat betrachtet.
Das Kandidatenkastenfilter 102 erzeugt sowohl positive
als auch negative Kandidatenkästen.
-
Sowohl
die positiven als auch die negativen Kandidatenkästen werden durch den Liniendefinitionserzeuger 103,
der ei nen Positivkandidatenvereiniger 103A und den „Anderes-Schriftzeichen"-Element-Detektor 103B umfasst,
zu Zeilendefinitionen vereinigt. Der Positivkandidatenvereiniger 103A sucht
innerhalb eines vorbestimmten Bereichs um jeden positiven Kandidaten
herum, um andere positive Kandidaten zu lokalisieren. Falls ein
positiver Kandidat innerhalb des Bereichs lokalisiert wird, werden
dieselben zu einer Liniendefinition vereinigt. Der „Anderes-Schriftzeichen"-Element-Detektor 103B verarbeitet
die negativen Kandidaten, um Schriftzeichenkästen zu identifizieren, die
innerhalb eines vordefinierten Bereichs um positive Kandidaten herum
positioniert sind, und anderen Schriftzeichenmarkierungen als Buchstaben
entsprechen, wie beispielsweise Satzzeichen. Die identifizierten „Anderes-Schriftzeichen"-Kandidaten werden
dann mit der entsprechenden Liniendefinition derselben vereinigt.
-
Somit
ist ein System und ein Verfahren zum Extrahieren von Zeichenfolgen
von Schriftzeichen aus aufgenommenen Bilddaten beschrieben.
-
In
der vorhergehenden Beschreibung sind spezifische Details dargelegt,
um ein gründliches
Verständnis
der vorliegenden Erfindung zu liefern. Es ist jedoch einem Fachmann
auf dem Gebiet ersichtlich, dass diese spezifischen Details nicht
eingesetzt werden müssen,
um die vorliegende Erfindung zu praktizieren. Zusätzlich ist
klar, dass die speziellen Ausführungsbeispiele,
die gezeigt und durch eine Darstellung beschrieben sind, in keiner
Weise als begrenzend betrachtet werden sollen.