-
Es
wird die Priorität
der provisorischen Anmeldung mit der Seriennummer 60/045,542 beansprucht,
eingereicht am 5. Mai 1997, mit dem Titel „Optical Scanner/Image Reader
for Reading Images and Decoding Optical Information or Code, Including One
and Two Dimensional Symbologies at Variable Depth of Field, Including
Memory and Image Processing for the High Speed Application".
-
Gebiet der Erfindung
-
Die
vorliegende Erfindung betrifft im Allgemeinen ein Abtast- oder Bildgebungssystem
zum Lesen und/oder Analysieren optisch codierter Informationen oder
Bilder und insbesondere ein chipintegriertes („on-chip") System mit der Intelligenz bzw. dem Vermögen zum
Aufnehmen, Analysieren und/oder Verarbeiten von Bildern innerhalb
eines Ausschnitts ("Frames").
-
Hintergrund der Erfindung
-
In
vielen Industriezweigen, u. a. der Montage-, der Nahrungsmittel-
und der Lebensmittelverarbeitungs-Industrie, der Transport- und
der Multimediaindustrie, wird ein Kennzeichnungssystem benutzt, bei
welchem die Produkte mit einem optischen Code (z. B. mit einem Balkencodesymbol,
welches aus einer Reihe von Linien und Freiräumen variierender Breite besteht,
oder mit anderen Arten von Symbolen, welche aus einer Reihe von
kontrastierenden Markierungen bestehen, im Allgemeinen als zweidimensionale
Symbolik bekannt) gekennzeichnet werden. Es ist eine Anzahl verschiedener
Lesegeräte
für optischen
Code und Laserabtastsysteme entwickelt worden, um das optische Muster
für die
Inventur, die Produktverfolgung, die Ausgabe oder den Verkauf zu einer
Darstellung aus mehreren Ziffern zu decodieren. Einige der optischen
Lesevorrichtungen werden auch benutzt, um Bilder aufzunehmen und
Echtzeitbilder anzuzeigen, zu speichern oder einem anderen System
zu übermitteln.
-
Optische
Lesegeräte
oder Scanner sind in einer Vielfalt von Konfigurationen erhältlich,
von welchen einige zu einer festen Scannerstation zusammengebaut
sind und andere tragbar sind. Die Tragbarkeit einer optischen Lesevorrichtung
bietet zahlreiche Vorteile, u. a. die Möglichkeit, Produkte auf Regalen
in ein Bestandsverzeichnis aufzunehmen und tragbare Gegenstände zu verfolgen,
z. B. Akten oder kleine Geräte.
Eine Anzahl dieser tragbaren Lesevorrichtungen beinhalten Laserdioden,
welche es dem Benutzer ermöglichen,
die Symbolik in verschiedenen Abständen von der Fläche, auf
welche der optische Code aufgedruckt ist, abzutasten. Ein Nachteil bekannter
Laserscanner ist es, dass die Herstellung teuer ist und dass sie
nicht die Möglichkeit
bieten, das Bild des vom Sensor anvisierten Bereichs wiederzugeben,
dies schränkt
daher den Verwendungsbereich der Lesegeräte für optischen Code ein. Außerdem benötigen Laserscanner
typischerweise eine Raster-Abtasttechnik, um einen zweidimensionalen optischen
Code zu lesen und zu decodieren.
-
Die
US-Patentschrift 5,625,483 offenbart eine
integrierte Laser-Abtastvorrichtung, welche ein Substrat eines Halbleiter-
und/oder elektrooptischen Materials aufweist, eine Laserlichtquelle,
welche auf dem Substrat angeordnet ist, und einen Scanner, welcher
in dem Weg des Laserstrahls auf dem Substrat angeordnet ist, zum
wiederholten und zyklischen Bewegen des Laserstrahls, um einen Abtaststrahl
zum wiederholten Abtasten/Absuchen (Scannen) eines Ziels nach Reflexion
von dort zu bilden. Insbesondere weist der Scanner eine Schicht
eines reflektierenden Materials auf, welches an einer beweglichen
Struktur an dem Substrat angeordnet ist, wobei die Ebene einer solchen
Schicht in einem spitzen Winkel zu dem Laserstrahl angeordnet ist,
so dass der Strahl entlang einem Strahlenweg in Richtung von Markierungen
geführt
wird, welche sich in Nachbarschaft einer Bezugsebene befinden, die
in dem Strahlengang liegt, um räumlich
benachbarte Teile der Bezugsebene entlang einer relativ langgestreckten
Abtastlinie abzutasten.
-
Die
US-Patentschrift 4,930,848 offenbart
in ähnlicher
Weise einen Hand-Laserscanner. Der Scanner weist ein selbständiges Laserscannermodul auf,
welches in einem Gehäuse
untergebracht ist, das ein Fenster aufweist, und welches einen Mechanismus
aufweist, um einen Laserstrahl innerhalb des Gehäuses abzulenken, um ein Abtastmuster
zu erzeugen. Der Strahlablenkungsmechanismus umfasst ein sich hin-
und herbewegendes (oszillierendes) reflektierendes Element.
-
Bei
einer anderen Art einer Lesevorrichtung für optischen Code, im Allgemeinen
als Scanner oder Abbildungseinrichtung bekannt, welche in ein tragbares
System integriert werden kann, werden Leuchtdioden (LEDs) als Lichtquelle
und ladungsgekoppelte Bauelemente (Charge Coupled Devices, CCD)
oder Komplementär-Metalloxid-Silicium(CMOS)-Sensoren
als Detektoren verwendet. Diese Klasse von Scannern oder Abbildungseinrichtungen
ist im Allgemeinen als „CCD-Scanner" oder „CCD-Bildgeber" bekannt. CCD-Scanner
nehmen ein Bild des optischen Codes auf und speichern das Bild in
einem Bildspeicher, welcher dann elektronisch abgetastet oder unter
Verwendung von Software verarbeitet wird, um das aufgenommene Bild
zu einem Ausgabesignal umzuwandeln.
-
Eine
Art eines solchen CCD-Scanners ist in früheren Patenten des Erfinders
der vorliegenden Erfindung, Alexander Roustaei, offenbart. Zu diesen gehören die
US-Patentschriften 5,291,009 ;
5,349,172 ;
5,354,977 ;
5,532,467 und
5,627,358 . Während CCD-Scanner den Vorteil
aufweisen, preisgünstiger
in der Herstellung zu sein, waren die Scanner vor Roustaei darauf
beschränkt,
den optischen Code abzutasten, indem sie entweder mit der Fläche, auf
welche der optische Code aufgedruckt war, in Kontakt kamen, oder
einen Abstand von nicht mehr als Eineinhalb Inch von dem optischen
Code einhielten, was eine weitere Einschränkung darin erzeugt, dass sie
keinen optischen Code lesen konnten, der größer war als das Fenster oder
die Gehäusebreite der
Lesevorrichtung.
-
Der
CCD-Scanner, der in der
US-Patentschrift
5,291,009 offenbart ist, und seine Nachfolger führten die
Möglichkeit
ein, Symboliken, welche breiter sind als die physische Breite und
Höhe des
Scannergehäuses,
in Entfernungen von bis zu zwanzig Inch von dem Scanner oder der
Abbildungseinrichtung zu lesen. Dies führte zu einer Vielseitigkeit
der CCD-Scanner,
welche vorher auf den Kontakt- und Nahbereich beschränkt waren,
und ermöglichte
nun, dass CCD-Abtastgeräte
oder Bildgeber in feste Scannersysteme eingebaut wurden, wie sie
an den Kassen des Einzelhandels verwendet werden.
-
Beträchtliche
Aufmerksamkeit wurde auf das Abtasten zweidimensionaler Symboliken
gerichtet, welche etwa die hundertfache Menge an Informationen in
demselben Raum wie eine eindimensionale Symbolik speichern können. In
zweidimensionalen Symboliken sind entweder Reihen von Linien und Freiräumen aufeinander
gestapelt, oder sie bilden eine Matrix von schwarzen und weißen quadratischen,
rechteckigen oder sechseckigen Zellen. Die Symboliken oder die optischen
Codes werden gelesen, indem ein Laser über jede Reihe geführt wird,
im Fall einer gestapelten Symbolik hintereinander in einem Zickzackmuster.
Ein Nachteil dieser Technik ist es, dass sie das Risiko des Verlustes
der vertikalen Synchronie einführt
aufgrund der Zeit, welche benötigt
wird, um den gesamten optischen Code abzutasten. Sie weist auch
den Nachteil auf, dass ein Laser zur Beleuchtung und ein bewegliches
Teil zur Erzeugung des Zickzackmusters benötigt wird, um die gesamte Symbolik
abzutasten, was den Scanner teurer und aufgrund der mechanischen
Teile weniger zuverlässig
macht.
-
Die
US-Patentschrift 5,414,251 offenbart
einen Scanner zum Lesen zweidimensionaler Codes. Der Scanner weist
ein lichtempfindliches Feld- und Mustererkennungsmittel zum Verarbeiten
ausgewählter
Bilder auf dem Feld auf. Bilder, bei denen erkannt wird, dass sie
decodierbare optische Informationen enthalten, werden durch eine
Anzeigevorrichtung angezeigt und hervorgehoben.
-
Die
US-Patentschrift 5,561,283 offenbart
ein Laser-Abtastsystem, welches einen sich hin- und herbewegenden
Spiegel aufweist, der benutzt wird, um einen Lichtstrahl in einem
linearen Raster-Abtastmuster über
ein Ziel-Balkencodesymbol zu lenken. Es wird ein Signalverarbeitungs-Schaltungssystem bereitgestellt,
um zu ermitteln, ob das Balkencodesymbol eindimensional oder zweidimensional ist.
-
Die
Internationale Patentanmeldung
WO 97/15024 offenbart
eine Datenform-Lesevorrichtung zum Lesen von Datenformen, z. B.
1D- und 2D-Balkencodes
und Matrixcodes.
-
In
allen Arten optischer Codes, also eindimensionalen, zweidimensionalen
und sogar dreidimensionalen (mehrfarbigen überlagerten Symboliken), muss
die Leistungsfähigkeit
des optischen Systems optimiert werden, um für die bestmögliche Auflösung, das bestmögliche Signal-Rausch-Verhältnis, den
bestmöglichen
Kontrast und die bestmögliche Reaktion
zu sorgen. Diese und andere Parameter sind steuerbar durch Auswahl
und Einstellung der optischen Komponenten, z. B. des Linsensystems,
der Wellenlänge
des Beleuchtungslichts, der optischen und elektronischen Filterung
und der Empfindlichkeit des Detektors.
-
Ein
weiterer Nachteil des Abtastens zweidimensionaler Symboliken ist
es, dass eine größere Zeitmenge
und Bildverarbeitungsleistung benötigt wird, um das Bild aufzunehmen
und zu verarbeiten, also ein größerer Mikrocomputerspeicher
und ein Prozessor mit schnellerer Impulsperiode.
-
Ein
weiterer Nachteil bekannter Vorrichtungen zum Abtasten von Symboliken
ist es, dass die Hochgeschwindigkeits-Verarbeitungschips, welche sie
benötigen,
teuer sind, Wärme
erzeugen und Platz benötigen.
-
Dementsprechend
besteht ein Bedarf für
ein System zum Abtasten von Symboliken, welches die notwendigen
Komponenten auf einem einzigen Chip oder auf einer verringerten
Anzahl von Chips integriert, und es ist eine Aufgabe der Erfindung,
ein solches bereitzustellen. Es ist auch eine Aufgabe der vorliegenden
Erfindung, die integrierte Speichermenge zu verringern und ein System
bereitzustellen, welches eine verringerte Energiemenge benötigt und
ein geringeres Maß an
Wärme erzeugt.
-
Eine
weitere Aufgabe der vorliegenden Erfindung ist es, eine Abtast-
oder Abbildungsvorrichtung bereitzustellen, welche ein Bildverarbeitungssystem hoher
Qualität
und hoher Geschwindigkeit verwendet, das Bildaufnahme-, Bildverarbeitungs-
und Decodierfunktionen hinsichtlich der Zielsymbolik oder des optischen
Codes umfasst.
-
Eine
weitere Aufgabe der Erfindung ist es, Scanner oder Abbildungseinrichtung,
welche eine variable Schärfentiefe
aufweisen, mit Mitteln zu versehen, um einem Bediener zu helfen,
einen Ausschnitt für
die Symbolik, also den Zielbereich, zu bestimmen, so dass sie im
geeigneten Sichtfeld eingefangen wird.
-
Eine
weitere Aufgabe der Erfindung ist es, eine Bildgebungsvorrichtung
bereitzustellen, welche mehrere Symboliken innerhalb eines optisch
abgetasteten Bildfelds abtasten kann und das Bildfeld dann mit Hochgeschwindigkeit
in einzelne Symbolikfelder trennen oder segmentieren kann.
-
Kurzdarstellung der Erfindung
-
Diese
und andere Aufgaben und Vorteile werden in einer oder mehreren Ausführungsformen der
vorliegenden Erfindung erfüllt
bzw. erzielt, indem ein vorzugsweise integriertes System zum Abtasten von
Zielbildern und Verarbeiten derselben bereitgestellt wird, vorzugsweise
in Echtzeit, beginnend während
des Abtastverfahrens. In einer Ausführungsform wird ein optischer
Abtastkopf bereitgestellt, welcher eine oder mehrere Leuchtdioden
(LEDs) aufweist, die auf jeder Seite einer Leiterplatte befestigt
sind, um in verschiedenen Winkeln Licht zu emittieren. Es wird ein
divergierender Lichtstrahl erzeugt.
-
Es
wird ein CCD zur Abtastung mit Zeilensprung (progressive scanning
CCD) bereitgestellt, in welcher Daten eine Zeile nach der anderen
gelesen werden können
und in den Speicher oder das Register ausgegeben werden können, wodurch
gleichzeitig Binär-
und Grauskaladaten bereitgestellt werden. Gleichzeitig identifiziert
die Bildverarbeitungsvorrichtung vorzugsweise den interessierenden
Bereich und die Art und Natur des optischen Codes oder der Informationen,
die innerhalb des Ausschnitts vorliegen.
-
Gemäß eines
Aspekts der vorliegenden Erfindung wird eine optische Lesevorrichtung
zum Lesen von Bildinformationen aus optischen Codes, eindimensionalen
Symboliken oder zweidimensionalen Symboliken bereitgestellt, wobei
die Bildinformationen in einem Zielbildfeld enthalten sind, wobei
die optische Lesevorrichtung die Merkmale umfasst, die in Patentanspruch
1 definiert sind.
-
Die
vorliegende Erfindung stellt einen optischen Scanner oder eine Abbildungseinrichtung nicht
nur zum Lesen der optisch codierten Informationen oder Symbole bereit,
sondern welcher auch die Fähigkeit
aufweist, Bilder aufzunehmen, welche in dem Speicher der Vorrichtung
gespeichert werden sollen oder über
ein Datenaustauschmittel bzw. Kommunikationsmittel zu einer anderen
Empfangseinheit übermittelt
werden sollen.
-
Gemäß der vorliegenden
Erfindung werden einzelne Felder decodiert und digital auf das Bildfeld zurückgelenkt.
Dies erhöht
die Geschwindigkeit des Lesens von Symboliken. Ein Beispiel, wo
ein schneller Durchsatz benötigt
wird, ist jenes der Verarbeitung von sich bewegenden Paketen mit
daran befestigten oder darauf gedruckten Symboliken, welche Informationen
enthalten, was als Hochgeschwindigkeits-Sortierung bezeichnet wird, welche eine
Geschwindigkeit von 200 Fuß oder
mehr je Minute aufweisen kann.
-
Ein
weiterer Vorteil der vorliegenden Erfindung ist es, dass sich das
Bild, welches Informationen enthält,
in variablen Entfernungen von der Lesevorrichtung befinden kann,
welche eine LED-Lichtquelle, Umgebungs- oder Blitzlicht in Verbindung
mit spezialisierten intelligenten Sensoren verwendet, und welche
chipintegrierte Signalverarbeitungsmittel aufweist, um ein Rohbild
oder decodierte Informationen bereitzustellen, die in einem Ausschnitt
enthalten sind, und Echtzeit-Bildverarbeitungsfähigkeiten aufweist.
-
Ein
weiterer Vorteil der vorliegenden Erfindung ist es, eine optische
Lesevorrichtung bereitzustellen, welche ein- und/oder zweidimensionale Symbole,
optische Codes und Bilder mit einem einzigen Schnappschuss aufnehmen
und decodieren kann.
-
Ein
weiterer Vorteil der vorliegenden Erfindung ist es, eine optische
Lesevorrichtung bereitzustellen, um optische Codes zu decodieren,
welche einen weiten Bereich von Merkmalsgrößen aufweisen.
-
Ein
weiterer Vorteil der vorliegenden Erfindung ist es, eine optische
Lesevorrichtung bereitzustellen, welche optische Codes in allen
Richtungen Lesen kann.
-
Ein
weiterer Vorteil der vorliegenden Erfindung ist es, dass sie alle
obigen Vorteile in einer optischen Lesevorrichtung bereitstellt
und einen Mikrocomputer und Bildverarbeitungs-Software in einer ASIC oder FPGA aufweist.
-
Ein
weiterer Vorteil der vorliegenden Erfindung ist es, dass sie alle
obigen Vorteile in einer optischen Lesevorrichtung bereitstellt
und einen Mikrocomputer, welcher einen Mikroprozessor, Speicher und
Speicherpuffer aufweist, ADC und Bildverarbeitungs-Software in einer
ASIC oder FPGA, alles auf demselben Chip, aufweist.
-
Ein
weiterer Vorteil der vorliegenden Erfindung ist es, dass sie alle
obigen Vorteile in einer optischen Lesevorrichtung bereitstellt
und dabei effizient den Speicher des Mikrocomputers und andere integrierte
Teilsysteme nutzt, ohne dessen Zentralprozessor zu belasten, wobei
die Leistung wirksam erhalten wird.
-
Ein
weiterer Vorteil der vorliegenden Erfindung ist es, dass sie alle
obigen Vorteile in einer optischen Lesevorrichtung bereitstellt
und dabei die Verarbeitungsgeschwindigkeit und die Bildverarbeitungsqualität erhöht und die
Möglichkeit
bietet, für eine
höhere
Durchsatzgeschwindigkeit mehrere Bilder aus demselben Bildfeld zu
segmentieren.
-
Ein
weiterer Vorteil der vorliegenden Erfindung ist es, dass sie alle
obigen Vorteile in einer optischen Lesevorrichtung in Form einer
Maschine oder eines fertigen Produktes bereitstellt, wobei die meisten
oder alle der elektronischen Funktionen in demselben Stück Silicium
integriert sind.
-
Diese
und andere Merkmale und Vorteile der vorliegenden Erfindung sind
aus der Durchsicht der folgenden detaillierten Beschreibung der
Erfindung zusammen mit den begleitenden Figuren zu erkennen, in
welchen sich durchgehend gleiche Bezugsziffern auf gleiche Teile
beziehen.
-
Kurze Beschreibung der Zeichnungen
-
1(a) ist ein Diagramm, welches eine optische Lesevorrichtung
veranschaulicht;
-
1(b) veranschaulicht ein Zielobjekt, welches gemäß der vorliegenden
Erfindung abgetastet werden soll;
-
1(c) veranschaulicht Bilddaten, welche dem Zielobjekt
entsprechen, gemäß der vorliegenden
Erfindung;
-
2(a) ist ein Diagramm einer Ausführungsform
gemäß der vorliegenden
Erfindung;
-
2(b) veranschaulicht ein Beispiel einer Floating-Threshold-Kurve,
welche in einer Ausführungsform
der vorliegenden Erfindung verwendet wird;
-
2(c) veranschaulicht ein Beispiel vertikaler und
horizontaler Schwellenwerte, wie sie in Verbindung mit der Abbildung
der Fläche
einer Floating-Threshold-Kurve verwendet werden, wie sie in 2(b) als Ausführungsform
gemäß der vorliegenden
Erfindung veranschaulicht ist;
-
3(a) ist ein Diagramm einer Vorrichtung gemäß der vorliegenden
Erfindung;
-
3(b) veranschaulicht Taktsignale, wie sie in einer
Ausführungsform
der vorliegenden Erfindung verwendet werden;
-
4 veranschaulicht
ein Laserlicht-Beleuchtungsmuster und eine Laserlicht-Beleuchtungsvorrichtung,
bei welchen ein holographischer Diffusor verwendet wird;
-
5 veranschaulicht
einen Ausschnittsanordnungsmechanismus, bei welchem ein Strahlenteiler
und ein Spiegel oder ein lichtbrechendes optisches Element verwendet
wird, welches zwei Strahlen erzeugt;
-
6 ist
ein Diagramm, welches eine alternative Vorrichtung zur Ausschnittsbestimmung
für ein Zielobjekt
veranschaulicht;
-
7(a) veranschaulicht eine Ausführungsform einer Bildgebungsvorrichtung
gemäß der vorliegenden
Erfindung;
-
7(b) veranschaulicht ein erzeugtes Muster einer
Ausschnittsanordnungsvorrichtung gemäß der vorliegenden Erfindung;
-
8(a) ist ein Diagramm, welches eine Vorrichtung
gemäß der vorliegenden
Erfindung veranschaulicht;
-
8(b) veranschaulicht eine Ausführungsform, welche ein System
auf einem Chip gemäß der vorliegenden
Erfindung zeigt;
-
8(c) veranschaulicht ein Ablaufdiagramm gemäß der vorliegenden
Erfindung;
-
8(d) ist ein Blockdiagramm, welches eine Ausführungsform
gemäß der vorliegenden
Erfindung veranschaulicht;
-
8(e) ist ein Blockdiagramm, welches einige der
Schritte in einer Grauskala-Bildverarbeitungstechnik gemäß der vorliegenden
Erfindung veranschaulicht; und
-
8(f) veranschaulicht die Bildpunktprojektion bezüglich der
Abtastlinie gemäß der vorliegenden
Erfindung.
-
Detaillierte Beschreibung
der vorliegenden Erfindung
-
Mit
Bezug auf die Figuren stellt die vorliegende Erfindung einen optischen
Scanner oder Abbildungseinrichtung 15 zum Lesen optisch
codierter Informationen und Symbole bereit, welcher auch ein Bildaufnahmemerkmal
und einen Bildspeicher 21 zum Speichern der Bilder aufweist.
-
In
der vorliegenden Beschreibung werden die Begriffe „optischer
Scanner", „Abbildungseinrichtung" und „Lesevorrichtung" untereinander austauschbar
für die
Technologie des auf einem einzigen Chip integrierten Scanners verwendet,
welche in der vorliegenden Beschreibung beschrieben wird.
-
Der
optische Scanner oder Abbildungseinrichtung 15 der vorliegenden
Erfindung weist vorzugsweise ein Übertragungs- bzw. Sendesystem zum Übertragen
von Bildern über
eine Datenaustausch-Schnittstelle bzw. eine Kommunikations-Schnittstelle, wie
in 8(b) dargestellt, zu einer anderen
Empfangseinheit, z. B. einen Hauptrechner (Host) 811, auf.
Die Datenaustausch-Schnittstelle 84 kann für irgendeine
Form der Übertragung
von Daten sorgen, z. B. über
Kabel, Infrarot-Sender/Empfänger, RF-Sender/Empfänger oder
irgendein anderes drahtgebundenes oder drahtloses Übertragungssystem.
-
1(b) veranschaulicht ein Zielobjekt 510, welches
gemäß der vorliegenden
Erfindung abgetastet werden soll. Das Zielobjekt beinhaltet ein
eindimensionales Bild 28, ein zweidimensionales Bild 27 und
einen Text 29. Dies sind Beispiele für die Art der abzutastenden
Informationen. 1(c) veranschaulicht auch ein
Bild oder einen Ausschnitt 210, welcher digitale Daten
darstellt, die dem abgetasteten Zielobjekt 510 entsprechen.
Wie in 1(c) dargestellt, beinhaltet
das Bild oder der Ausschnitt vorzugsweise Daten, die mehreren Bildpunkten 214 entsprechen, obwohl
es sich versteht, dass jede Form von Daten verwendet werden kann,
die dem abgetasteten Zielobjekt 510 entsprechen. Es versteht
sich auch, dass in dieser Anmeldung die Begriffe „Bild" und „Ausschnitt" verwendet werden,
um eine Region zu bezeichnen, die abgetastet wird.
-
Im
Betrieb kann das Zielobjekt 510 in irgendeiner Entfernung
von der optischen Lesevorrichtung 15 angeordnet werden,
solange es sich innerhalb der Schärfentiefe der Bildgebungsvorrichtung 15 befindet.
-
Es
kann jede Form der Lichtquelle benutzt werden, welche für eine ausreichende
Beleuchtung sorgt. Zum Beispiel kann eine LED-Lichtquelle 72, Umgebungslicht
oder ein Blitzlicht 720 benutzt werden. Wie in 8(b) dargestellt, können diese in Verbindung mit
spezialisierten intelligenten Sensoren 20 benutzt werden,
welche einen chipintegrierten Sensor 20 und Signalverarbeitungsmittel
aufweisen, um dem Hauptrechner 811 ein Rohbild oder decodierte Informationen
bereitzustellen, welche den Informationen entsprechen, die in dem
Ausschnitt oder Bild 210 enthalten sind. Der optische Scanner 15 weist
vorzugsweise Möglichkeiten
für Echtzeit-Bildverarbeitungstechniken
auf, wobei er eines oder eine Kombination der Verfahren oder Vorrichtungen
anwendet, die im Folgenden noch detaillierter erörtert werden und für verbesserte
Abtastfähigkeiten
sorgen.
-
Hardware-Bildverarbeitung
-
In
der vorliegenden Erfindung können
verschiedene Formen der Bildverarbeitung auf Hardware-Basis angewendet
werden. In einer solchen Form der Bildverarbeitung auf Hardware-Basis
werden aktive Bildpunktsensoren verwendet, wie in der US-Patentanmeldung 08/690,752
beschrieben, welche am 26. Mai 1998 als
US-Patentschrift 5,756,981 veröffentlicht
wurde. Eine andere Form der Bildverarbeitung auf Hardware-Basis
ist eine Ladungsmodulationsvorrichtung (Charge Modulation Device,
CMD) gemäß der vorliegenden
Erfindung. Eine bevorzugte CMD stellt mindestens zwei Betriebsmodi
bereit, darunter einen Sprungzugriffsmodus (skip access mode) und/oder
einen Blockzugriffsmodus (block access mode) zur Verwendung bei
der Echtzeit-Ausschnittsbestimmung und der Fokussierung mit dem
optischen Scanner
15. Es versteht sich, dass in dieser Ausführungsform
der optische Scanner
15 als eine digitale Bildgebungsvorrichtung
oder eine digitale Kamera dient. Diese Betriebsmodi werden besonders
nützlich,
wenn der Sensor
20 in Systemen verwendet wird, welche optische
Informationen (z. B. ein- oder zweidimensionale Symboliken) lesen
oder Bilder verarbeiten, also die eingefangenen Bildern nach Ergebnissen
untersuchen, da solche Anwendungen typischerweise ein breites Gesichtsfeld
erfordern sowie die Fähigkeit,
genaue Beobachtungen spezieller Bereiche vorzunehmen. Vorzugsweise
paketiert der CMD-Sensor
20 eine große Zahl an Bildpunkten (mehr
als 600 × 500)
und stellt drei Abtastmodi bereit, darunter einen Vollauslesemodus,
einen Blockzugriffsmodus und einen Sprungzugriffsmodus. Der Vollauslesemodus
liefert hochaufgelöste
Bilder aus dem Sensor
20 in einem einzigen Auslesezyklus. Der
Blockzugriffsmodus liefert eine Auslesung irgendeines beliebigen
interessierenden Fensters, welches die Suche nach dem interessierenden
Bereich erleichtert (ein sehr wichtiges Merkmal in schnellen Bildverarbeitungstechniken).
Im Sprungzugriffsmodus wird in der horizontalen und in der vertikalen
Richtung jeder „n-te" Bildpunkt gelesen.
Sowohl Block- als auch Sprungzugriffsmodus ermöglichen die Echtzeit-Bildverarbeitung
und Überprüfung bzw. Überwachung
eines Teilbildes und eines ganzen Bildes. Elektronische Zoom- und
Schwenkmerkmale mit moderater und angemessener Auflösung sind
mit den CMD-Sensoren ebenfalls zugänglich, ohne irgendwelche mechanischen
Teile erforderlich zu machen.
-
1(a) veranschaulicht ein System, welches einen
Klebstofflogikchip (glue logic chip) oder ein programmierbares Gate
Array 10 aufweist, welches auch als ASIC 10 oder
FPGA 10 bezeichnet wird. Die ASIC oder das FPGA 10 beinhaltet
vorzugsweise eine Bildverarbeitungs-Software, welche in einem Permanentspeicher
darin gespeichert ist. Die ASIC oder das FPGA 10 weist
zum Beispiel vorzugsweise einen Puffer 212 oder eine andere
Art des Speichers und/oder einen RAM-Arbeitsspeicher auf, welcher
für Speicherung
sorgt. Es kann ein Speicher relativ kleiner Größe (um 40 K) verwendet werden, obwohl
ebenso auch jede andere Größe verwendet werden
kann. Wenn ein Zielobjekt 510 von dem Sensor 20 gelesen
wird, werden die Bilddaten 210, welche dem Zielobjekt 510 entsprechen,
vorzugsweise in Echtzeit von dem Sensor ausgegeben. Die ausgegebenen
Daten zeigen vorzugsweise Bereiche des Bildes 210 an, die
geeignete Daten enthalten können,
welche zum Beispiel zwischen eindimensionalen Symboliken (Folgen
von Balken und Freiräumen), Text
(einheitliche Form und reines Grau) und Störungen/Rauschen (abhängig von
anderen spezifischen Merkmalen, d. h. abrupter Übergang oder andere spezielle
Merkmale) unterscheiden. Vorzugsweise sobald das Auslesen der Bilddaten
durch den Sensor 20 beendet ist oder kurz danach, gibt
die ASIC 10 die Indikatordaten 25 aus. Die Indikatordaten 25 beinhalten
Daten, welche die Art des optischen Codes (zum Beispiel ein- oder
zweidimensionale Symbolik) anzeigen, und andere Daten, welche den
Ort der Symbolik innerhalb der Bildausschnittsdaten 210 anzeigen. Wenn
ein Teil der Daten gelesen ist (vorzugsweise ungefähr 20 bis
30% obwohl auch andere Anteile gewählt werden können), kann
die ASIC 10 (in der Hardware implementierte Software-Logik) parallel zu der
Datenübertragung
des Sensors 20 eine Grauskala-Bildverarbeitung beginnen
(bezeichnet als „Echtzeit-Bildverarbeitung"). Dies kann entweder
zu irgendeinem Zeitpunkt während
des Datenübertragung
vom Sensor 20 oder danach geschehen. Dieses Verfahren wird
unten im Grauskala-Bildverarbeitungs-Abschnitt
der vorliegenden Beschreibung noch detaillierter beschrieben.
-
Während der
Bildverarbeitung, oder wenn die Daten aus dem Sensor 20 ausgelesen
werden, tastet die ASIC 10, bei welcher die Bildverarbeitungs-Software
vorzugsweise in ihrem Hardware-Speicher codiert ist, die Daten nach
speziellen Merkmalen irgendeiner Symbolik ab, oder sucht in dem
optischen Code, den eine Bildaufnahmevorrichtung lesen sollte, durch
die Einstellungsparameter. (Wenn zum Beispiel eine Anzahl von Balken
und Freiräumen
zusammen beobachtet werden, bestimmt sie, dass es sich bei der in
dem Bereich 210 vorliegenden Symbolik um eine eindimensionale oder
eine PDF-Symbolik handeln kann, oder wenn sie ein(e) organisierte(s)
und gleich bleibende(s) Form/Muster sieht, kann sie leicht erkennen,
dass es sich bei dem aktuell Ausgelesenen um Text handelt.) Bevor
die Datenübertragung
von dem CCD 20 beendet ist, hat die ASIC 10 vorzugsweise
die Art der Symbolik oder des optischen Codes innerhalb der Bilddaten 210 und
deren genaue Position bereits erkannt und kann die geeignete Decodierroutine
für die Decodierung
des optischen Codes aufrufen. Dieses Verfahren erhöht merklich
die Reaktionszeit des optischen Scanners 15. Außerdem komprimiert
die ASIC 10 (oder der Prozessor 11) vorzugsweise
auch die Bilddatenausgabe aus dem Sensor 20. Diese Daten können als
Bilddatei oder Datenbank gespeichert werden, z. B. im Speicher 212,
oder alternativ im integrierten Speicher in der ASIC 10.
Die Datenbank kann an einer Speicherstelle gespeichert werden, die im
Diagramm der 2(a) durch den Kasten 30 gekennzeichnet
ist. Bei der Datenbank handelt es sich vorzugsweise um eine komprimierte
Darstellung der Bilddaten 210, welche eine kleinere Größe aufweist als
das Bild 210. In einem Beispiel ist die Datenbank um das
5- bis 20-fache kleiner als die entsprechenden Bilddaten 210.
Die Datenbank wird von der Bildverarbeitungs-Software verwendet, um den interessierenden
Bereich in dem Bild zu lokalisieren, ohne die Bilddaten 210 Bildpunkt
für Bildpunkt
oder Bit für Bit
zu analysieren. Die Datenbank wird vorzugsweise erzeugt, wenn die
Daten aus dem Sensor 20 ausgelesen werden. Sobald der letzte
Bildpunkt aus dem Sensor ausgelesen ist (oder kurz danach), ist
auch die Datenbank fertig gestellt. Durch Verwendung der Datenbank
kann die Bildverarbeitungs-Software leicht die Art der optischen
Informationen erkennen, welche durch die Bilddaten 210 dargestellt
werden, und sie kann dann anfordern, dass der geeignete Teil der
Verarbeitungs-Software abläuft,
z. B. eine geeignete Teilroutine. In einer Ausführungsform weist die Bildverarbeitungs-Software
getrennte Teilroutinen oder Objekte auf, welche zur Verarbeitung
von Text, eindimensionalen Symboliken bzw. zweidimensionalen Symboliken
gehören.
-
In
einer bevorzugten Ausführungsform
der Erfindung handelt es sich bei der Abbildungseinrichtung um ein
Handgerät.
Ein (nicht dargestellter) Auslöser
kann gedrückt
werden, um die Abbildungsvorrichtung zu aktivieren, das Zielobjekt 510 abzutasten und
die hierin beschriebene Verarbeitung zu beginnen. Sobald der Auslöser aktiviert
ist, wird wahlweise die Beleuchtungsvorrichtung 72 und/oder 720 aktiviert,
wodurch das Bild 210 beleuchtet wird. Der Sensor 20 liest
das Zielobjekt 510 ein und gibt entsprechende Daten an
die ASIC oder das FPGA 10 aus. Das Bild 210 und
die Indikatordaten 25 liefern Informationen bezüglich des
Bildinhalts, der Art und des Ortes des Bildes und andere nützliche
Informationen für
die Bildverarbeitung, um über
die zu unternehmenden Schritte zu entscheiden. Alternativ können auch
oder alternativ die komprimierten Bilddaten verwendet werden, um
solche Informationen zu liefern. In einem Beispiel, wenn es sich
bei dem Bildinhalt um eine zweidimensionale DataMatrix®-Symbolik
handelt, ist der Kennzeichner so angeordnet, dass die Bildverarbeitungs-Software
versteht, dass es sich bei der in diesem Fall zu verwendenden Decodier-Software
um ein DataMatrix®-Decodiermodul handelt, und
dass sich die Symbolik an einem Ort mit den Koordinaten X und Y
befindet. Nachdem die Decodier-Software aufgerufen ist, werden die
decodierten Daten über
die Datenaustausch-Schnittstelle 84 an den Hauptrechner 811 ausgegeben.
-
In
einem Beispiel beträgt
die Gesamt-Bildverarbeitungszeit, um den optischen Code zu identifizieren
und zu lokalisieren, für
eine CCD-Auslesezeit von ungefähr
30 ms für
ein CCD von (ungefähr)
500 × 700
Bildpunkten etwa 33 ms, was bedeutet, dass nahezu unmittelbar nach
dem Auslesen des CCD die geeignete Decodier-Softwareroutine aufgerufen
werden konnte, um den optischen Code in dem Ausschnitt zu decodieren.
Die gemessenen Decodierzeiten für
verschiedene Symboliken hängen
von deren Decodierroutinen und Decodierstrukturen ab. In einem anderen
Beispiel zeigten Experimente, dass in Abhängigkeit von der Komplexität der Decodier-Software
etwa 5 ms für
eine eindimensionale Symbolik und zwischen 20 und 80 ms für eine zweidimensionale
Symbolik benötigt
würden.
-
8(a) zeigt ein Ablaufdiagramm, welches Verarbeitungsschritte
gemäß diesen
Techniken veranschaulicht. Wie in 8(a) veranschaulicht,
gehen Daten aus dem CCD-Sensor 20 vorzugsweise zur SH(Sample-and-Hold,
Abtast-Halte)-Schaltung 139 und zur ADC(Analog-to-Digital-Converter,
Analog-Digital-Umwandler)-Schaltung 130 und
dann zur ASIC 10, parallel geschaltet zu ihren Komponenten,
dem Grauskalaprozessor 80 und den Serien bzw. Reihen von
Binärprozessor 120 und
dem Lauflängencode-Prozessor 213.
Der RLC(Run-Length-Code, Lauflängencode)-Prozessor 213 erzeugt
die Indikatordaten 25, welche entweder (wie dargestellt)
in der ASIC 10 gespeichert werden oder zur Speicherung und
zukünftigen
Verwendung in den Speicher 60 kopiert werden können. Der
Grauskalaprozessor 80 gibt relevante Grauskala-Bilddaten 210 an
einen Speicher 60, z. B. einen SDRAM, aus.
-
Ein
anderes System für
eine hohe Integration ist in
8(b) veranschaulicht.
Dieses bevorzugte System kann den CCD-Sensor
20, eine Logikverarbeitungseinheit
83 (welche
Funktionen durchführt, die
von der SH
139, ADC
130 und ASIC
10 durchgeführt werden),
einen Speicher
60, eine Datenaustausch-Schnittstelle
84 umfassen,
alle vorzugsweise in einem einzigen Computerchip
70 integriert,
was hier als „System
On A Chip" (SOC,
Chipintegriertes System)
70 bezeichnet wird. Dieses System
liest Daten direkt aus dem Sensor
20 aus. In einer Ausführungsform
ist der Sensor
20 auf dem Chip
70 integriert,
solange die benutzte Sensortechnologie mit der Integration auf einem
Chip vereinbar ist, z. B. bei einem CMOS-Sensor. Alternativ ist
er vom Chip getrennt, wenn die Sensortechnologie nicht auf einem Chip
integriert werden kann. Die Daten aus dem Sensor werden vorzugsweise
in Echtzeit unter Benutzung der Logikverarbeitungseinheit
83 verarbeitet, ohne
zuerst in den Speicher
60 geschrieben zu werden, obwohl
in einer alternativen Ausführungsform ein
Teil der Daten aus dem Sensor
20 in den Speicher
60 geschrieben
wird, bevor er in der Logik
83 verarbeitet wird. Die ASIC
10 kann
gegebenenfalls Bildverarbeitungs-Softwarecode ausführen. Es
kann irgendein Sensor
20 verwendet werden, z. B. ein CCD-,
CMD- oder CMOS-Sensor
20. Bei dem Speicher
60 kann
es sich um irgendeine Form von Speicher handeln, die für die Integration in
einem Chip geeignet ist, z. B. um einen Datenspeicher und/oder Pufferspeicher.
Beim Betrieb dieses Systems werden die Daten direkt aus dem Sensor
20 ausgelesen,
was die Verarbeitungsgeschwindigkeit deutlich erhöht. Nachdem
alle Daten zum Speicher
60 übertragen sind, kann die Software
daran arbeiten, Daten sowohl aus den Grauskala-Bilddaten
210 als
auch aus dem Lauflängencode
(RLC) im RLC-Speicher
211 zu extrahieren, in einer Ausführungsform
unter Verwendung der Datenbankdaten
30 und der Indikatordaten
25,
bevor die Decoder-Software
88 aufgerufen wird, wie in der
Patentanmeldung 08/690,752, eingereicht am 1. August 1996, der Patentanmeldung 08/596,728,
eingereicht am 8. Dezember 1995, der Patentanmeldung 08/363,985,
eingereicht am 27. Dezember 1994, der Patentanmeldung 08/059,322, eingereicht
am 7. Mai 1993, der Patentanmeldung 07/965,991, eingereicht am 23.
Oktober 1992, nun erteilt als Patentschrift
5,354,977 , der Patentanmeldung 07/956,646,
eingereicht am 2. Oktober 1992, nun erteilt als Patentschrift
5,349,172 , der Patentanmeldung
08/410,509, eingereicht am 24. Mai 1995, der Patentschrift
5,291,009 , der Patentanmeldung 08/137,426,
eingereicht am 18. Oktober 1993, der Patentanmeldung 08/444,387,
eingereicht am 19. Mai 1995, und der Patentanmeldung 08/329,257, eingereicht
am 26. Oktober 1994, beschrieben. Ein Unterschied zwischen diesen
Patenten und Patentanmeldungen und der vorliegenden Erfindung ist
es, dass in der Bildverarbeitung der vorliegenden Erfindung nicht
ausschließlich
Binärdaten
verwendet werden. Stattdessen berücksichtigt die vorliegende
Erfindung auch Daten, die aus dem „Doppelkegel" ("double taper") und der Datenbank
30 extrahiert werden,
um den interessierenden Bereich zu lokalisieren, und sie verwendet
auch die Grauskalawerte, um die Decodierbarkeit des Symbols zu verbessern, das
in dem Ausschnitt gefunden wird, wie in
8(c) (speziell
für eindimensionale
und gestapelte Symbolik) dargestellt, wobei die Subpixel-Interpolationstechnik
angewendet wird, wie im Bildverarbeitungsabschnitt beschrieben wird.
-
2(a) und 3(a) veranschaulichen
eine Ausführungsform
einer Hardware-Implementierung einer Binärverarbeitungseinheit 120 und
einer RLC-Umsetzungseinheit 213. Es ist anzumerken, dass
die Binärverarbeitungseinheit 120 auf
einer einzigen Einheit integriert sein kann, wie im SOC 70, oder
aus einer größeren Anzahl
von Komponenten aufgebaut sein kann. 3(a) zeigt
ein beispielhaftes Schaltungsdiagramm der Binärverarbeitungseinheit 120 und
einer RLC-Umsetzungseinheit 213. 3(b) veranschaulicht
ein Taktgebungsdiagramm, welches 3(a) entspricht.
-
Die
Binärverarbeitungseinheit 120 empfängt Daten
aus bzw. von dem Sensor (d. h. dem CCD) 20. Mit Bezug auf 8(d) wird einer Abtast-Halte-Schaltung 139 ein
analoges Signal aus dem Sensor 20 (Vout 125)
bereitgestellt. In einer alternativen Ausführungsform wird eine Schmitt-Vergleichseinheit bereitgestellt,
um den RLC (Run Length Code) als DMA(Direct-Memory-Access, Direktspeicherzugriffs)-Sequenz
in den Speicher bereitzustellen, wie in 8(d) dargestellt.
Im Betrieb überträgt der Zähler 135 Zahlen,
welche für
X Zahlen von Bildpunkten 0 oder 1 stehen, an der DMA-Sequenz, statt „0" oder „1" für jeden
Bildpunkt in den Speicher 60 (welcher in einer Ausführungsform
ein Teil des FPGA oder der ASIC 10 ist). Die Funktionen
des Schwellenwerts 214 und des RLC 213 werden
vorzugsweise in Echtzeit ausgeführt,
wenn die Bildpunkte gelesen werden (die Zeitverzögerung überschreitet nicht 30 Nanosekunden).
In dem Beispiel, in dem eine Fuzzy-Logic-Software verwendet wird, wird
ein RLC verwendet, um DataMatrix-Code zu lesen. Dieses Verfahren
beansprucht 125 ms. Wenn wir das Fuzzy-Logic-Verfahren verändern, um
eine Bildpunkt-für-Bildpunkt-Auslesung
aus den bekannten Offset-Adressen
anzuwenden, verringert dies die Zeit in diesem Beispiel auf etwa
40 ms. Es sei angemerkt, dass „ms" für Millisekunden
steht. Dieses Beispiel basiert auf einer Vorrichtung, bei welcher
ein SH-2-Mikrocontroller von Hitachi mit einer Taktfrequenz von
etwa 27 MHz verwendet wird, und beinhaltet keine Optimierung durch
ein Modul, weder funktionell noch zeitlich. Diagramme, welche diesem
Beispiel entsprechen, sind in 2(a), 3(a) und 3(b) dargestellt,
welche unten noch detaillierter beschrieben werden. 2(a) veranschaulicht eine Hardware-Implementierung
einer Binärverarbeitungseinheit 120 und
einer RLC-Umsetzungseinheit 213. Ein Beispiel eines Schaltungsdiagramms
einer Binärverarbeitungseinheit 120,
welche Daten ausgibt, die mit der Bezugsziffer 81b gekennzeichnet
sind, und einer RLC-Umsetzungseinheit 213,
welche Daten ausgibt, die mit der Bezugsziffer 81a gekennzeichnet
sind, ist in 3(a) dargestellt. 3(b) veranschaulicht ein Taktgebungsdiagramm für 3(a).
-
Es
ist ein Vorteil der vorliegenden Erfindung, gleichzeitig Grauskaladaten 210 bereitzustellen,
den Schwellenwert zu ermitteln, z. B. durch Verwendung der Schmitt-Vergleichseinheit 82,
und den RLC 81 des in dieser Beschreibung erörterten
Ausführungsbeispiels
bereitzustellen. In einem Beispiel fand ich heraus, dass in der
veranschaulichten Ausführungsform
der vorliegenden Erfindung die Grauskaladaten, die Schwellenwertermittlung
und die RLC-Berechnung alle in 33,3 Millisekunden während der DMA-Zeit
erhalten werden konnten.
-
Wie
er in der vorliegenden Beschreibung verwendet wird, ist ein Grauskalawert
der digitale Wert des Analogwerts eines Bildpunktes, welcher für einen
8-Bit-ADC 130 zwischen 0 und 255 liegen kann. Die Grauskaladaten
wurden in diesem Beispiel erhalten, nachdem die analoge Vout 125 des Sensors 20 von
der DSH 139 abgetastet und gehalten wurde. Das analoge
Signal wurde zu Grauskaladaten umgewandelt, indem es durch den ADC 130 lief.
Die Ausgabe 50 wird dann an die ASIC oder das FPGA 10 angeschlossen,
um während
der DMA-Sequenz zum Speicher 60 übertragen zu werden.
-
Wie
er ebenso in der vorliegenden Beschreibung verwendet wird, ist ein
Binärwert
eine digitale Darstellung des Grauskalawerts eines Bildpunktes, welche „0" oder „1" sein kann, wenn
sie mit einem Schwellenwert verglichen wird. Aus den Grauskala-Bilddaten 210 wird
ein Binärbild 219 erhalten, nachdem
die Schwellenwerteinheit 214 den Schwellenwert berechnet
hat. Ein Lauflängencode
(RLC), wie er in dieser Beschreibung verwendet wird, ist eine Darstellung
einer Folge mehrerer Bildpunkte mit einem Wert von „0" oder „1". In der hierin beschriebenen
Erfindung werden Speicherplatz und Verarbeitungszeit verringert,
indem man den Ablauf des RLC mit dem Auslesen von Bildpunktwerten
und der DMA-Verarbeitung überlappen
lässt.
-
Diese
Ergebnisse werden zum Beispiel in der Ausführungsform erzielt, die in 2(a) veranschaulicht ist. Die analogen Bildpunktwerte
werden aus dem Sensor 20 ausgelesen und werden nach dem
Durchlauf durch die DSH 139 und den ADC 130 im
Speicher 60 gespeichert. Zur selben Zeit empfängt die
Binärverarbeitungseinheit 120 während des DMA
die Daten und berechnet den Schwellenwert der Netzpunkte (eine nichteinheitliche
Verteilung der Beleuchtung aus dem Zielobjekt 510 bewirkt
eine ungleichmäßige Kontrast-
und Lichtverteilung in den Bilddaten 210). Deswegen benötigt der
herkömmliche
echte Floating-Threshold-Binäralgorithmus,
beschrieben in der CIP-Patentanmeldung
08/690,752, eingereicht am 1. August 1996, eine lange Zeit. Um diese
schlechte Lichtverteilung zu überwinden,
insbesondere in dem optischen Handscanner 15, ist es ein
Vorteil der vorliegenden Erfindung, eine Technik der Fläche einer
Floating-Threshold-Kurve anzuwenden, wie sie in Computer Graphics,
Bd. 25, Nr. 4 (Juli 1991), ACM SIGGRAPH, Zeitschriftenvorsitz Thomas
W. Sederberg, beschrieben ist. Wie in 2(b) veranschaulicht,
umfassen die Grauskala-Bilddaten 210 Informationen,
welche „n" Linien entsprechen, vertikal 351 und
horizontal 352 (d. h. 20 Linien, dargestellt durch 10 Zeilen
und 10 Spalten). Zwischen zwei Linien liegt immer derselbe Freiraum.
Jeder Schnittpunkt einer vertikalen und horizontalen Linie 353 wird
verwendet, um die Fläche 354 der
Floating-Threshold-Kurve abzubilden. Eine verformbare Fläche ist
aus einer Gruppe verbundener quadratischer Elemente hergestellt.
Die quadratischen Elemente wurden so gewählt, dass ein großer Bereich einer
topologischen Form modelliert werden konnte. In diesen Umwandlungen
werden die Punkte des Schwellenwertparameters auf Ecken in der verformten
dreidimensionalen Fläche
abgebildet. Die Schwellenwerteinheit 214 verwendet die
Grauskalawerte auf der Linie, um die Grauabschnittkurve zu erhalten,
und dann betrachtet sie die Spitzen-Verbindungskurve und die Tal-Verbindungskurve
des Grauabschnitts. Die Mittelwertkurve der Spitzen-Verbindungskurve
und der Tal-Verbindungskurve ist die Schwellenwertkurve für diese
gegebene Linie. Wie in 2(c) veranschaulicht,
ist der Mittelwert des vertikalen 355 und horizontalen 356 Schwellenwertes
auf dem Schnittpunkt der Schwellenwertparameter zur Abbildung der
Fläche
der Schwellenwertkurve. Unter Anwendung des oben beschriebenen Verfahrens
berechnet die Schwellenwerteinheit 214 den Schwellenwert
der Netzpunkte für
die Bilddaten 210 und speichert sie auf der Speicherstelle 219 im
Speicher 60.
-
Nachdem
der Schwellenwert für
verschiedene Teile der Bilddaten 210 berechnet ist, erzeugt
die Binärverarbeitungseinheit 120 das
Binärbild 219 durch
eine Schwellenwertoperation an den Grauskala-Bilddaten 210.
Zur selben Zeit erzeugt die RLC-Umsetzungseinheit 213 den
RLC, der im Speicher 211 zu speichern ist.
-
3(a) zeigt ein Schaltungsdiagramm oder eine
alternative Ausführungsform
zum Erhalt des RLC in Echtzeit. Die Schmitt-Vergleichseinheit 82 empfängt an ihrem
negativen Eingang das Signal von der DSH 139 und an ihrem
positiven Eingang die Vref 141,
welche einen Teil des Signals darstellt, welches den Beleuchtungswert
des Zielobjekts 510 darstellt, eingefangen durch den Beleuchtungssensor 138.
Vref 141 steht für die Zielobjektbeleuchtung,
welche von der Entfernung des Bildgebers 15 vom Zielobjekt 510 abhängt. Jeder
Bildpunktwert wird mit dem Schwellenwert verglichen und führt zu einer „0" oder „1" verglichen mit einem
variablen Schwellenwert, bei welchem es sich um die mittlere Zielobjektbeleuchtung handelt.
Der Zähler 135 zählt (er
inkrementiert seinen Wert in jedem CCD-Bildpunkttakt 137) jede Gesamt-Bildpunktzahl,
welche für
die ASIC 10 an der DMA-Sequenz „0" oder „1" darstellt, statt „0" oder „1" für
jeden Bildpunkt, und überträgt sie zu
dem Signalspeicher 136. 3(b) ist
die Zeitdiagrammdarstellung des in 3(a) dargestellten
Schaltungssystems.
-
Die
vorliegende Erfindung liefert gleichzeitig die Grauskaladaten 210,
um unter Verwendung der Schmitt-Vergleichseinheit 82 den
Schwellenwert zu ermitteln und den RLC 81 bereitzustellen.
In einem Beispiel bestätigte
die während
des Experiments gemessene Zeit, dass die Grauskaladaten, die Schwellenwertermittlung
und die RLC-Berechnung alle während
der DMA-Zeit in 33,3 Millisekunden erhalten werden konnten.
-
Ein
Grauskalawert ist der digitale Wert des Analogwerts eines Bildpunktes,
welcher für
einen 8-Bit-ADC 130 zwischen 0 und 255 liegen kann. Die Grauskaladaten
werden erhalten, nachdem die analoge Vout 125 des
Sensors 20 von der DSH 139 abgetastet und gehalten
wird (Doppel-Abtast-Halteeinheit). Das analoge Signal wird zu Grauskaladaten umgewandelt,
indem es durch den ADC 130 läuft. Die Ausgabe 50 wird
dann an die ASIC oder das FPGA 10 angeschlossen, um während der
DMA-Sequenz zum Speicher 60 übertragen zu werden.
-
Ein
Binärwert
ist eine digitale Darstellung des Grauskalawerts eines Bildpunktes,
welcher „0" oder „1" sein kann, wenn
er mit einem Schwellenwert verglichen wird. Ein Binärbild 219 kann
aus den Grauskala-Bilddaten 210 erhalten werden, nachdem
die Schwellenwerteinheit 214 den Schwellenwert berechnet
hat.
-
Ein
Lauflängencode
(RLC) kann eine Darstellung einer Folge mehrerer (X) Bildpunkte
mit einem Wert von „0" oder „1" sein. Es ist leicht
zu verstehen, dass der Speicherplatz und die Verarbeitungszeit bedeutend
optimiert werden können,
wenn der RLC in derselben Zeit stattfinden kann, in der die Bildpunkt werte
gelesen werden und der DMA stattfindet. 2(a) zeigt
eine Alternative für
die Binärverarbeitungs-
und RLC-Umsetzungseinheiten für
einen optischen Hochgeschwindigkeits-Scanner 15. Die analogen Pixelwerte
werden aus dem Sensor 20 ausgelesen und werden im Speicher 60 gespeichert, nachdem
sie durch die DSH 139, den ADC 130 gelaufen sind.
In derselben Zeit empfängt
die Binärverarbeitungseinheit 120 während des
DMA die Daten und berechnet den Schwellenwert der Netzpunkte (eine
nichteinheitliche Verteilung der Beleuchtung aus dem Zielobjekt 510,
bewirkt eine ungleichmäßige Kontrast-
und Lichtverteilung in den Bilddaten 210. Deswegen benötigt der
herkömmliche
echte Floating-Threshold-Binäralgorithmus,
beschrieben in der CIP-Patentanmeldung 08/690,752, eingereicht am
1. August 1996, eine lange Zeit. Um diese schlechte Lichtverteilung
zu überwinden,
insbesondere in einem optischen Handscanner oder einer Abbildungsvorrichtung,
ist es ein Vorteil der vorliegenden Erfindung, eine Technik der
Fläche
einer Floating-Threshold-Kurve anzuwenden, wie sie auf dem Fachgebiet bekannt
ist. Die Grauskala-Bilddaten 210 umfassen Daten, welche „n" Abtastlinien vertikal 351 „m" Abtastlinien horizontal 352 entsprechen
(zum Beispiel 20 Linien, dargestellt durch 10 Zeilen und 10 Spalten).
Zwischen zwei Linien liegt immer derselbe Freiraum. Jeder Schnittpunkt
einer vertikalen und horizontalen Linie 353 wird verwendet,
um die Fläche 354 der
Floating-Threshold-Kurve abzubilden. Eine verformbare Fläche ist
aus einer Gruppe verbundener quadratischer Elemente hergestellt.
Die quadratischen Elemente wurden so gewählt, dass ein großer Bereich
einer topologischen Form modelliert werden konnte. In diesen Umwandlungen
werden die Punkte des Schwellenwertparameters auf Ecken in der verformten
dreidimensionalen Fläche
abgebildet. Die Schwellenwerteinheit 214 verwendet die
Grauskalawerte auf der Linie, um die Grauschnittkurve zu erhalten,
und dann betrachtet sie die Spitzen- und die Talkurve des Grauschnitts.
Die Mittelkurve der Spitzenkurve und der Talkurve ist die Schwellenwertkurve
für diese
gegebene Linie. Der Mittelwert des vertikalen 355 und horizontalen 356 Schwellenwertes
auf dem Schnittpunkt ist der Schwellenwertparameter zur Abbildung
der Fläche
der Schwellenwertkurve. Unter Anwendung des oben beschriebenen Verfahrens
berechnet die Schwellenwerteinheit 214 den Schwellenwert
der Netzpunkte für
die Bilddaten 210 und speichert ihn auf der Speicherstelle 219 im
Speicher 60.).
-
Nachdem
der Schwellenwert für
verschiedene Teile der Bilddaten 210 berechnet ist, erzeugt
die Binärverarbeitungseinheit 120 das
Binärbild 219 durch
eine Schwellenwertoperation an den Grauskala-Bilddaten 210.
Zur selben Zeit erzeugt die RLC-Umsetzungseinheit 213 den
RLC, der im Speicher 211 zu speichern ist.
-
3(a) zeigt eine Alternative zum Erhalten des
RLC in Echtzeit. Die Schmitt-Vergleichseinheit 82 empfängt an ihrem
negativen Eingang das Signal von der DSH 139 und an ihrem
positiven Eingang die Vref 141,
welche einen Teil des Signals darstellt, welches den Beleuchtungswert
des Zielobjekts 510 darstellt, eingefangen durch den Beleuchtungssensor 138.
Vref 141 steht für die Zielobjektbeleuchtung,
welche von der Entfernung des optischen Scanners 15 vom
Zielobjekt 510 abhängt.
Jeder Bildpunktwert wird mit dem Schwellenwert verglichen und führt zu einer „0" oder „1" verglichen mit einem
variablen Schwellenwert, bei welchem es sich um die mittlere Zielobjektbeleuchtung
handelt. Der Zähler 135 zählt (er
inkrementiert seinen Wert in jedem CCD-Bildpunkttakt 137)
jede Gesamt-Bildpunktzahl, welche für jeden Bildpunkt „0" oder „1" darstellt, und überträgt sie zu
dem Signalspeicher 136. 3(b) ist
die Zeitdiagrammdarstellung des in 3(a) definierten Schaltungssystems.
-
Grauskala-Bildverarbeitung
-
Die
Darstellung der Schärfentiefe
(Depth of Field, DOF) eines optischen Scanners 15 ist definiert durch
ein fokussiertes Bild in den Entfernungen, für die für eine minimale Element breite
(Minimum Element Width, MEW) für
einen gegebenen Punkt, der verwendet wird, um die Symbolik zu drucken,
ein Minimum von weniger als einem (1) bis drei (3) Bildpunkten erhalten
wird wobei der Unterschied zwischen einem weißen und einem schwarzen auf
einer Grauskala mindestens 50 Punkte beträgt. Die Subpixel-Interpolationstechnik
ermöglicht
die Decodierung einer MEW bis herunter zu weniger als einem (1) Bildpunkt
statt 2 oder 3 Bildpunkten, was für eine Wahrnehmung „erweiterter
DOF" sorgt. Dieses
Verfahren wird unten beschrieben, um ausrichtungsunabhängige Lesefähigkeiten
für die
Bildaufnahmevorrichtung zu erhalten.
-
Ein
Beispiel für
eine Betriebsweise der vorliegenden Erfindung ist in 8(e) und 8(f) veranschaulicht.
Wie es dort veranschaulicht ist, sucht das System, wenn ein Teil
der Daten aus dem CCD 20 ausgelesen ist, nach einer Serie
von zusammenhängenden
Balken und Freiräumen,
wie es in Schritt 220 dargestellt ist. Das System identifiziert
dann in den Bilddaten 210 Text und/oder andere Arten von
Daten, wie es in Schritt 221 dargestellt ist. Das System
ermittelt dann in Schritt 230 einen interessierenden Bereich,
welcher bedeutsame Daten enthält.
In Schritt 240 ermittelt das System den Winkel der Symbolik unter
Anwendung einer Schachbrettmuster-Technik oder einer Kettencode-Technik,
wie zum Beispiel durch Herausfinden der Neigung oder Ausrichtung der
Symbolik 27, 28, 29 innerhalb des Zielobjekts 510.
Das System wendet dann in Schritt 250 eine Subpixel-Interpolationstechnik
an, um den optischen Code 381 oder Symbolik-Code 381 zu
rekonstruieren. In einem beispielhaften Schritt 260 wird
dann eine Decodierroutine ausgeführt.
-
Es
ist wichtig anzumerken, dass zu jeder Zeit Daten innerhalb der Schachbrettmuster-Fenster 380 konserviert
werden, um dafür
benutzt zu werden, andere zweidimensionale Symboliken oder Text
zu identifizieren, wenn erforderlich.
-
Bei
der Interpolationstechnik wird die Projektion eines in einem Winkel
angeordneten Balkens 381 oder Freiraums durch Bewegen einer
Zahl von x Bildpunkten nach oben oder unten angewendet, um den Modulwert
zu ermitteln, der der minimalen Elementbreite (MEW) entspricht,
und um die Faltungsverzerrung auszugleichen, wie sie unter der Bezugsziffer 382 dargestellt
ist. Dieses Verfahren ermöglicht es,
für den
Decodieralgorithmus die MEW der Bildpunkte auf weniger als 1,0 Bildpunkte
zu verringern, im Gegensatz zu normalerweise erforderlichen 2 bis 3
Bildpunkten.
-
Beleuchtung
-
Ein
beispielhafter optischer Scanner 15 beinhaltet eine Zielbeleuchtungsvorrichtung 72,
welche innerhalb des sichtbaren Spektrums arbeitet. In einer bevorzugten
Ausführungsform
weist die Beleuchtungsvorrichtung mehrere LEDs (Leuchtdioden) auf. Jede
LED weist vorzugsweise eine Spitzen-Lichtstärke von z. B. 6,5 Lumen/Steradiant
(für eine HLMT-CL00)
bei einem Gesamt-Bildfeldwinkel von 8 Grad auf, obwohl jedes geeignete
Maß an
Beleuchtung ausgewählt
werden kann. In der bevorzugten Ausführungsform sind drei LEDs auf
beiden Seiten des Linsentubus angeordnet und sind eine auf der anderen
ausgerichtet, so dass die Gesamthöhe ungefähr 15 mm beträgt. Jede
Gruppe von LEDs ist mit einem holographischen optischen Element
angeordnet, welches dazu dient, den Strahl zu homogenisieren und
einen Zielbereich zu beleuchten, welcher dem breiten Gesichtsfeld
entspricht.
-
4 zeigt
ein alternatives Beleuchtungssystem, um das Zielobjekt 510 zu
beleuchten. Es kann jede geeignete Lichtquelle 410 verwendet
werden, z. B. ein Blitzlicht (Strobe), Halogenlicht (mit Kollektor/Diffusor
auf der Rückseite)
oder eine Batterie von LEDs, die um das Linsensystem herum befestigt sind
(mit oder ohne Kollektor/Diffusor auf der Rückseite oder Diffusor auf der
Vorderseite), welche wegen des MTBF der LEDs besser geeignet ist.
Ein Laserdiodenspot 400 kann, kombiniert mit einem holographischen
Diffusor, ebenfalls verwendet werden, um den Zielbereich zu beleuchten,
welcher als Gesichtsfeld bezeichnet wird. Kurz ausgedrückt empfängt der
holographische Diffusor 420 das Laserlicht und projiziert
es gemäß den vorgegebenen
Winkeln des holographischen Musters sowohl in X- als auch in Y-Richtung
in Richtung auf das Zielobjekt, wie in 4 dargestellt.
-
Ausschnittsanordnungsvorrichtung
-
6 veranschaulicht
ein Beispiel einer alternativen Vorrichtung, um einen Ausschnitt
das Zielobjekt zu bestimmen. Bei der Ausschnittsanordnungsvorrichtung
kann es sich um irgendeine Binäroptik
mit Muster oder Gradierung handeln. Der Strahl erster Ordnung kann
beibehalten werden, um die Mitte des Zielobjekts anzuzeigen, wodurch
das Muster 61 erzeugt wird, welches vier Ecken und die
Mitte des anvisierten Bereichs anzeigt, wie in 6 dargestellt.
Jeder Teilstrahl gelangt durch ein Binärmuster, welches für ein „L"-förmiges Bild
sorgt, um jede Ecke des Gesichtsfeldes zu lokalisieren, und der
Strahl erster Ordnung lokalisiert die Mitte des Zielobjekts. Eine
Laserdiode 450 versorgt die Binäroptik 460 mit Licht.
Es kann ein Spiegel 470 verwendet werden, um das Licht
zu lenken, oder alternativ wird kein Spiegel verwendet. Das Linsensystem 480 wird
bereitgestellt, wie es benötigt
wird.
-
In
einem alternativen Beispiel, dargestellt in 5, verwendet
der Ausschnittsanordnungsmechanismus 500 einen Strahlenteiler 550 und
einen Spiegel 520 oder ein lichtbrechendes optisches Element,
welches zwei Strahlen erzeugt. Jeder Strahl erzeugt eine Linie,
nachdem er durch den holographischen Diffusor 530 gelangt
ist, mit einem Lichtfeld von 1° × 30° entlang
der X- und/oder Y-Achse, wodurch entweder eine horizontale Linie 501 oder
eine kreuzende Linie 502 durch das Gesichtsfeld erzeugt wird,
welche deutlich das Gesichtsfeld des Zoomobjektivs anzeigen. Die
Brechungsoptik ist zusammen mit einer Gruppe von Rastern oder Blockierelementen
angeordnet, welche dazu dienen, eine Gruppe von zwei Strahlen derart
zu unterdrücken,
dass sich dem Bediener nur eine Gruppe von zwei Strahlen zeigt.
-
Ein
weiteres Beispiel ist in 7(a) veranschaulicht.
Wir könnten
auch die beiden parallelen schmalen Lichtlamellen bzw. Lichtwände (sheets
of light) in verschiedenen Kombinationen parallel auf der X- oder
Y-Achse und mit zentriert, links oder rechts angeordneten Schnittlinien
kreuzen, wenn sie in Richtung auf das Zielobjekt projiziert werden,
veranschaulicht durch die Muster 73a und 73b in 7(b).
-
Somit
wird ersichtlich, dass ein optischer Scanner bzw. ein Bildlesegerät zum Lesen
von Bildern und Decodieren von optischen Informationen oder optischem
Code, z. B. ein- und zweidimensionalen Symboliken, mit einer variablen
Schärfentiefe
bereitgestellt wird, welcher einen Speicher und Bildverarbeitungsmöglichkeiten
für Hochgeschwindigkeitsanwendungen
aufweist. Der Fachmann wird erkennen, dass die vorliegende Erfindung
in anderen als den bevorzugten Ausführungsformen ausgeführt werden
kann, welche in dieser Beschreibung zu Zwecken der Veranschaulichung
und nicht der Beschränkung
angeführt
wurden, die vorliegende Erfindung wird also nur durch die folgenden
Patentansprüche beschränkt. Es
sei angemerkt, dass mit Äquivalenten der
speziellen Ausführungsformen,
die in dieser Beschreibung erörtert
wurden, die Erfindung ebenfalls ausgeführt werden kann.