-
Die vorliegende Erfindung betrifft
ein Verfahren zum automatischen Regeln der Charakteristika eines
optischen Codelesesystems.
-
Der Ausdruck „optischer Code" wird im folgenden
verwendet, um jegliche graphische Darstellung zu bezeichnen, die
zum Speichern codierter Daten dient. Ein spezielles Beispiel eines
optischen Codes umfaßt
lineare oder zweidimensionale Codes, wobei die Daten mit passenden
Kombinationen von Elementen mit einer vorbestimmten Form codiert werden,
beispielsweise Quadrate, Rechtecke oder Sechsecke, die eine dunkle
Farbe (üblicherweise Schwarz)
aufweisen, und von hellen Elementen (Leerräume, üblicherweise Weiß) getrennt
werden, beispielsweise Strichcodes, Balkencodes (einschließlich PDF417),
Maxicode, Datamatrix, QR-Code, Farbencodes, usw. Der Ausdruck „optischer
Code" umfaßt
ferner in seiner allgemeineren Bedeutung andere graphische Formen
mit dem Ziel, Information zu codieren, einschließlich nichtcodierter Schriftzeichen
(Buchstaben, Zahlen, usw.) und spezieller Muster (beispielsweise
Briefmarken, Logos, Signaturen, etc.). Information kann auch in
mehr als zwei Farben, beispielsweise in Grautönen, codiert sein.
-
Die optischen Codes können gelesen
werden, indem zweidimensionale Bilder in demjenigen Bereich ermittelt
werden, in welchem der Code zu erwarten ist, und der Code innerhalb
des Bildes lokalisiert wird. Im allgemeinen ist mit der Lokalisierung des
Codes eine Folge von Schritten verknüpft, um anfänglich in dem vorab gespeicherten
Bild den oder die Bereiche zu unterscheiden, in denen zumindest ein
Code vorliegt; daraufhin folgt das Lokalisieren spezieller Wiedererkennungsmuster,
die für
jeden Code typisch sind; das Ermitteln von Daten, die den aktuellen
Codetyp betreffen; und schließlich
das genaue Abgrenzen des Codes. Daraufhin wird das abgegrenzte Bild
des Codes verarbeitet, um die Merkmale zu extrahieren, die zum Decodieren
notwendig sind, und schließlich
wird der Code decodiert, um die benötigten Daten zu extrahieren.
Insbesondere kann das Decodieren erfolgreich abschlossen werden, wenn
die Daten extrahiert sind und als fehlerfrei erkannt wurden, oder
es kann negativ abgeschlossen werden, wenn es dem verarbeitenden
System nicht gelingt, jegliche Daten zu extrahieren, oder wenn die Wahrscheinlichkeit
unzureichend ist, daß die
extrahierten Daten fehlerfrei sind, oder wenn die extrahierten Daten
nicht den benötigten
Daten entsprechen.
-
Die Wahrscheinlichkeit des erfolgreichen
Lesens hängt
von einer Vielzahl von Faktoren ab, von denen einige außerhalb
des Lesesystems liegen (beispielsweise die Qualität des zu
lesenden optischen Codes), während
sich andere aus den optoelektrischen/mechanischen Parametern des
Lesesystems ergeben. Tatsächlich
hat jedes Lesesystem, wie jedes andere physikalische System, veränderliche Merkmale,
die von dem individuellen Erzeugnis, von dem Typ der Installation
und von der Zeit abhängen. Insbesondere
hängen
die Merkmale des Lesesystems von individuellen Komponenten ab, die
Merkmale aufweisen, welche innerhalb einer spezifischen Toleranz
(Streuung) veränderlich
sind. Ferner können
die Merkmale vieler Komponenten zusammen mit deren externen Bedingungen
veränderlich
sein (zum Beispiel die Temperatur) und sind der Alterung unterworfen.
-
Zur Beseitigung dieser Probleme sind
Verfahren zur Kalibrierung bekannt, die sowohl während der Produktion als auch
der Installation verwendet werden; ferner sind Verfahren zum Regeln
bekannt, die automatisch oder von einem Bediener gesteuert werden
und während
des Betriebs des betreffenden Systems angewendet werden.
-
In einem optischen Codelesesystem
für Objekte,
die sich in ununterbrochener Bewegung befinden, ist es insbesondere
schwierig, diese Merkmale einzustellen, weil es nicht möglich ist,
die Erfassung auf ein Referenzbild zu richten, und weil die Merkmale
der zu erfassenden Bilder sich sehr schnell ändern.
-
Zum besseren Verständnis der
bestehenden Probleme wird auf 1 Bezug
genommen, die ein typisches optisches Codelesesystem zeigt, das
allgemein mit 1 angegeben ist, welches ein Förderband 2 umfaßt, auf
dem ein Objekt 3 liegt, das einen optischen Code 4,
in diesem Fall einen Barcode, trägt. Dem
Förderband 2 ist
ein optischer Codie rer 5 zum Messen der Geschwindigkeit
des Objekts 3 zugeordnet; zusätzlich sind an einer Seite
des Förderbandes 2 ein
Anwesenheitssensor 6 und ein Höhensensor 7 vorgesehen. Über dem
Förderband 2 ist
eine Bilderfassungseinheit angeordnet, die einen empfindlichen Bereich 11 aufweist
und ein Beleuchtungselement 12 trägt; wobei die Bilderfassungseinheit 10 ferner
mit einer Verarbeitungseinheit 13 verbunden ist, die hier durch
einen Personalcomputer dargestellt ist, der wahlweise auch in die
Bilderfassungseinheit 10 integriert sein kann.
-
Für
den korrekten Betrieb eines Systems des Typs, der in 1 gezeigt ist, ist es wesentlich,
daß die
Einstellungen vieler Parameter der Bilderfassungseinheit 10,
des Beleuchtungselements 12 und der Verarbeitungseinheit 13 korrekt
sind. Insbesondere umfassen wesentliche Merkmale eines optischen
Codelesesystems die Bildfokussierung und die Helligkeit; weitere
wichtige Merkmale sind die sichtbaren Abmessungen des zu lesenden
Objektes und feststehende Verformungen des optischen Codes, die
durch das Drucken und/oder perspektivische Phänomene verursacht werden. Diese
Merkmale können
direkt oder durch Messen einiger physikalischer Größen ermittelt
werden. Beispielsweise kann die Bildfokussierung ermittelt werden,
indem Energie eines analogen oder digitalen Signals gemessen wird,
das von der Bilderfassungseinheit 10 zur Verfügung gestellt
wird, da unscharfe Bilder bekanntermaßen, geringe Helligkeitsgradienten
und daher eine geringe Energie aufweisen.
-
Die Merkmale des Lesesystems und
daher auch die entsprechenden Meßwerte hängen von den Werten einer Vielzahl
von Parametern des Lesesystems ab; beispielsweise sind unter den
Parametern, die geregelt werden können, die Folgenden wichtig: die
Position der automatischen Fokussiereinheit; die Empfindlichkeit
der Bilderfassungseinheit 10 (d. h. der Vergrößerungsfaktor
(gain) der Schaltkreise in der Einheit 10, welche die innerhalb
des empfindlichen Bereichs 11 erzeugten elektrischen Signale
erfassen und eine anfängliche
Verarbeitung durchführen);
die Leistung, die von der Beleuchtungseinheit 11 abgestrahlt
wird (d. h. die an dem Beleuchtungselement 12 anliegende
Versorgungsspannung); die Abtastgeschwindigkeit des zu untersuchenden
Objektes (von außerhalb
eingestellt, allerdings abhängig
von der Bewegungsgeschwindigkeit des Transportbandes 2);
und Schwellwerte, die in dem Decodierungsprozeß notwendig sind, um beispielsweise zu
entscheiden, ob ein spezielles Spannungsniveau einem „Weiß" oder
einem „Schwarz"
entspricht. Zusätzlich
hängt der
optimale Wert einiger dieser Parameter (beispielsweise die Position
der automatischen Fokussiereinheit, die abgestrahlte Leistung und
die Empfindlichkeit der Videokamera) von der Höhe des Objektes bezüglich der
Bilderfassungseinheit 10 ab.
-
In einem Lesesystem, in dem die sequentiell erfaßten Bilder
gering voneinander abweichen (beispielsweise bei Videobildaufnahmen),
wurde das Problem der Optimierung dieser Parameter bereits auf verschiedenen
Wegen gelöst.
Beispielsweise haben alle kommerziell erhältlichen Videokameras eine automatische
Verstärkungssteuerung,
welche es diesen erlaubt, sich an verschiedene Belichtungsbedingungen
anzupassen: die Analyse des letzten erfaßten Bildes erlaubt es der
Videokamera, ihre Empfindlichkeit für die Erfassung der folgenden
Bilder zu adaptieren, von denen angenommen wird, daß diese nicht
wesentlich von dem vorliegenden Bild abweichen. In gleicher Weise
haben alle modernen kommerziell erhältlichen Videokameras eine
automatische Fokussiereinheit, welche die letzten erfaßten Bilder
analysiert (beispielsweise anhand der Farbkonvergenz).
-
In der Praxis werden Rückkopplungsmechanismen
verwendet, um die bestmögliche
Bildqualität schnell
zu erhalten.
-
Jedoch wirken die oben genannten
Rückkopplungsmechanismen
nicht, wenn die Veränderungsgeschwindigkeit
der Bildmerkmale im Vergleich zu der Erfassungsgeschwindigkeit schnell
wird, das heißt,
wenn sich die sequentiell erfaßten
Bilder vollständig
voneinander unterscheiden. In diesen Fällen ist es notwendig, die
Merkmale des nächsten
vor der Videokamera erscheinenden Bildes vorauszusagen und alle
Erfassungsparameter a priori zu optimieren.
-
Die Verwendung zusätzlicher
Sensoren, die beispielsweise Daten vorab bereitstellen, die sich
auf den Abstand zwischen dem Objekt und der Videokamera oder dessen
durchschnittlichen Helligkeitswert beziehen, kann die Vorhersagemöglichkeiten
verbessern; allerdings ist dies oft nicht ausreichend.
-
Beispielsweise kann die Beleuchtungsveränderung,
die durch die Lampenalterung hervorgerufen wird, nicht gemessen
werden (und daher nicht kompensiert werden), indem einfach der durchschnittliche
Helligkeitswert ausgewertet wird, der für die zu erfassen den Objekte
gemessen wird: eine übermäßige lange
Sequenz dunkler Objekte könnte
die Annahme hervorrufen, daß die
Beleuchtungseinheit plötzlich
gealtert ist.
-
In gleicher Weise könnte die
optimale Fokussierungsposition aufgrund von Fluktuationen der elektromechanischen
Merkmale, der automatischen Fokussier/Positioniereinheit oder der
Abstandssensoren über
die Zeit veränderlich
sein.
-
Die Druckschrift US-A-5,569,901 offenbart ein
Verfahren und eine Vorrichtung zum adaptiven Erzeugen eines Lichtstrahlmusters
und anderer Parameter gemäß eines
oder mehrerer Rückkopplungssignale.
Das System kann in einem Lernmodus, in einem adaptierten Modus und
in einem Echtzeit adaptierenden Modus betrieben werden. Während des Lernmodus
erzeugt das System eine Vielzahl von Abtastungen eines Symbols,
wobei eine Vielzahl von Einstellungen von Betriebsparametern verwendet werden.
Bei jeder Abtastung werden lesbaren Daten gesammelt und analysiert,
um auszuwerten, ob der Parametersatz akzeptabel ist. Der nicht akzeptable Parametersatz
wird verworfen. Ein optimaler Parametersatz wird daraufhin unter
den akzeptablen Sätzen
ausgewählt
und gespeichert, und der Lernmodus wird beendet. In dem adaptieren
Modus wird das System gemäß dem Parametersatz
betrieben, der im Lernmodus erhalten wurde. Dieser Betriebsmodus wird
verlassen, wenn das Decodieren von Symbolen wegen Veränderungen
in der Umgebung fehlschlägt. Während des
in Echtzeit adaptieren Modus versucht das Abtastsystem kontinuierlich,
die Betriebsparameter des Abtastsystems zu justieren, um die Symbollesbarkeit
zu maximieren, wobei Fuzzy Logic verwendet wird, und das System
tastet sukzessiv ab und versucht einige Male versucht, ein Symbol
zu decodieren. Wenn die Erfolgsrate unter einem voreingestellten
Schwellwert liegt, wird das Lichtstrahlmuster modifiziert, wohingegen
das System anzeigt, daß erfolgreich
decodiert wurde, wenn die Erfolgsrate über einem voreingestellten
Schwellenwert liegt.
-
Die Druckschrift
US 5,396,053 offenbart ein Verfahren
zur automatischen Justierung von Parametern eines Strichcodescanners
des Lichtstrahltyps, basierend auf einem Steuersignal, das mit der Lesbarkeit
des Codes verknüpft
ist. In einem Lesemodus werden die Daten ausgegeben, wenn das Signal
einer Abtastung einen zulässigen
Strichcode decodiert, und falls nicht, wird ein Justiermodus aufgenommen.
In dem Justiermodus, der auch während der
Herstellung des Scanners verwendet wird, werden die abgetasteten
Daten analysiert und die Parameter werden justiert, wenn das Signal
der Abtastung ein Code oder ein Teil eines Codes ist; und die Parameter
werden zurückgestellt,
wenn die neuen Parameter keine besser lesbare Abtastung erzeugt
haben, während
der Justiermodus verlassen wird, wenn die neuen Parameter eine besser
lesbare Abtastung erzeugt haben. Der Scanner kann sich auch selbst justieren,
bis er den höchsten
Anteil erfolgreicher Abtastungen erreicht. Um die Lesefähigkeit
zu verbessern, kann ein iterativer Justierprozeß verwendet werden, indem der
Scanner verschiedene Digitalisier-Schwellwerte für den nächsten Abtastvorgang versucht,
wenn der Scanner beim Decodieren einer Abtastung fehlschlägt, wobei
der neue Schwellwert auf Daten basiert, die von der nicht erfolgreichen
Abtastung stammen.
-
Ziel der Erfindung ist es daher,
eine automatische Regelung vorzusehen, die die Nachteile der bekannten
Lösungen
behebt und insbesondere im Fall einer hohen Veränderungsgeschwindigkeit der Merkmale
sukzessiver Bilder anwendbar ist. Gemäß der Erfindung wird ein Verfahren
zum Betreiben eines optischen Codelesesystems gemäß Anspruch
1 vorgesehen.
-
Die Merkmale werden vorzugsweise
mehrere Male ermittelt, um ein gemitteltes statistisches Datum für eine große Anzahl
von Ablesungen zu erhalten, und um jegliche wesentlichen Unterschiede
zwischen sukzessiven Bildern zu messen; ferner wird das Regeln kontinuierlich
durchgeführt,
um die Veränderungen
der Lesesystemmerkmale zu überwachen,
deren Ursachen umgebungsbedingt sein können oder in Veränderungen
der internen Komponenten liegen.
-
Die geregelten Merkmale umfassen
Bildhelligkeit und die Fokussierqualität, und die gesteuerten Parameter
werden ausgewählt
aus der Fokussierposition, der Bilderfassungsempfindlichkeit, der
Beleuchtungsstärke
aus Entscheidungsschwellwerten, die beim Lesen verwendet werden,
und aus der Bildabtastgeschwindigkeit.
-
Wenn die Beziehung zwischen jedem
gesteuerten Parameter und den entsprechenden Merkmalen nicht bekannt
ist, verändert
das vorliegende Verfahren die Werte der vorliegenden Parameter um zumindest
eine kleine positive Verschiebung und um eine kleine negative Verschiebung
bezüglich
des vorliegenden Wertes und erfaßt den Wert des entsprechenden
Merkmals in beiden Fällen,
um auszuwerten, welche der zwei Verschiebung die bessere Bildqualität bietet.
Der neue Wert des gesteuerten Parameters wird der Mittenwert für die darauffolgenden Ablesungen.
Durch die Wiederholung dieses Prozesses tendiert der Mittenwert
des gesteuerten Parameters schnell in die optimale Lage, und jegliche
Veränderungen
dieser Lage werden über
die Zeit überwacht.
-
Weitere Merkmale der Erfindung sind
aus der Beschreibung einer bevorzugten Ausführung ersichtlich, die lediglich
als nicht beschränkendes
Beispiel vorgesehen ist, und in den angefügten Zeichnungen dargestellt
ist, wobei die Figuren im einzelnen zeigen:
-
1 zeigt
ein optisches Codelesesystem des bekannten Typs;
-
2 zeigt
ein Flußdiagramm
des vorliegenden Verfahrens;
-
3 zeigt
ein detailliertes Flußdiagramm eines
Blocks von 2;
-
4 bis 6 stellen die Funktionen
dar, die einige in dem System von 1 zu
steuernden Parametern mit den jeweiligen Steuergrößen korrelieren;
-
7 und 8 zeigen Tabellen, die für das vorliegende
Verfahren nützlich
sind; und
-
9 zeigt
ein detailliertes Flußdiagramm eines
weiteren Blocks von 2.
-
Das vorliegende Verfahren erlaubt
zum einen, die Parameter des optischen Codelesesystems anfänglich einzustellen,
wobei ein anfänglicher Selbstlernprozeß verwendet
wird, wenn das Lesesystem es zuläßt, während einer
bestimmten anfänglichen
Lernperiode zu warten (während
derer nicht angenommen werden kann, daß das Lesesystem korrekt funktioniert),
und erlaubt zum anderen, die bestehende Regelung kontinuierlich
zu verändern, um
die Werte der Parameter an die Veränderungen über die Zeit, die in den Umgebungsbedingungen und
in den internen Komponenten auftreten, anzupassen (Selbstjustierung).
-
Insbesondere gibt es in der Ausführung von 2 gemäß dem vorliegenden Verfahren
anfänglich
einen optionalen Schritt des anfänglichen
Setzens von Parametern (Block 20). Dieser Schritt, der manuell
durchgeführt
wird, wird einmal durchgeführt, nachdem
das Lesesystem zusammengebaut wurde (oder nach Wartungsunterbrechungen,
während
derer Komponenten ersetzt wurden), jedoch kann er, wie bereits bemerkt,
ausgelassen werden.
-
Daraufhin wird ein Bild erfaßt, das
den zu untersuchenden optischen Code enthält, Block 30. Die Bilderfassung,
die für
den Leseprozeß wesentlich
ist, ist zudem für
das Selbstlernen, wenn das Lesesystem den Betrieb aufnimmt, und
für die
Selbstjustierung während
des Standardbetriebs wesentlich. Bilderfassung ist kennzeichnend
für alle
optische Codelesesysteme und kann gemäß jedem bekannten Verfahren
ausgeführt
werden, indem Linear- oder Matrixsensoren des CCD- oder CMOS-Typs
verwendet werden, und liefert analoge oder digitale elektrische Signale,
die mit dem Helligkeitsniveau aller Punkte (Pixel), die das Bild
formen, korreliert sind.
-
Daraufhin wird das erfaßte Bild
in Block 40 analysiert. Diese Analyse, die im weiteren
anhand 3 beschrieben
wird, hat das Ziel, das Bild nach vorliegenden optischen Codes)
zu durchsuchen; ein Decodieren und Wiedererkennen zu versuchen;
und, wenn das Ergebnis positiv ist, einige Bildgrößen, die zum
Regeln der gesteuerten Parameter notwendig sind, zu erfassen und
geeignet zu speichern.
-
Schließlich wird verifiziert, ob
es notwendig ist, den Arbeitspunkt des Lesesystems (der durch einen
Satz aktueller Werte der gesteuerten Parameter vorgesehen wird)
zu modifizieren, um anfängliches Selbstlernen
zu gestatten oder um dynamische Veränderungen des Lesesystems zu überwachen,
Block 50. Der Schritt der Verifikation des Arbeitspunktes wird
im weiteren anhand der 4-9 beschrieben, wobei auf
diesen Schritt die Erfassung eines neuen Bildes folgt, indem zu
Block 20 zurückgesprungen wird.
-
Der Schritt des Analysierens des
erfaßten Bildes
(Block 40 in 2)
wird nun anhand von 3 beschrieben.
Im Detail durchsucht die Verarbeitungseinheit 13 anfänglich das
erfaßte
und gespeicherte Bild nach Bereichen, die eventuell einen optischen
Code enthalten, Block 70. Dieser Schritt wird in bekannter
Weise ausgeführt,
beispielsweise durch Suchen nach den Bereichen mit dem größten Kontrast
innerhalb des Bildes, da die Codes durch eine Vielzahl von Elementen
oder Strukturen mit verschiedenen Farben (beispielsweise weiß und schwarz)
ausgebildet sind, deren spezifische Änderungen das eigentliche Ziel
haben, Daten zu codieren.
-
Daraufhin überprüft das Lesesystem, ob zumindest
ein Codebereich identifiziert wurde, Block 75; falls nicht
(keine Ausgabe), wird der Analyseschritt 40 beendet; falls
doch (Ausgabe), wird der erste (oder einzige) identifizierte Codebereich
ausgewählt,
Block 80, und ein Leseversuch wird gestartet, Block 85.
Der Leseversuch wird in bekannter Weise entsprechend des zu lesenden
Codetyps ausgeführt; im
speziellen basiert das Lesen auf der Wiedererkennung von Zeichen
in einer ausreichend zuverlässigen Weise,
wenn der zu lesende Code Zeichen umfaßt; falls ein Strichcode oder
ein zweidimensionaler Code betroffen ist, umfaßt das Lesen das Decodieren
des Codes in einer ausreichend genauen Weise. Beispielsweise im
Falle eines Strichcodes wird gemäß eines üblicherweise
verwendeten Verfahrens überprüft, ob eine
Folge von Elementen (Strichen) mit wechselnden Farben vorliegt,
es wird überprüft, ob die
Anzahl der Elemente mindestens einen vorab festgelegten Wert hat,
die Breite jedes Elementes wird gemessen, es wird optional überprüft, ob die Breiten
oder zumindest einige dieser vorab bestimmte Bedingungen erfüllen (beispielsweise
ob diese zueinander korreliert sind oder eine vorab bestimmte Folge
darstellen), die Zahlenfolge, die der detektierten Veränderung
von Elementen entspricht, wird ermittelt, und es wird überprüft, ob die
erhaltene Zahlenfolge einem zulässigen
Code entspricht.
-
Daraufhin wird überprüft, ob das Lesen erfolgreich
war, Block 90. Dieser Schritt ist sehr wichtig, da ein
positives Ergebnis des Codelesens zeigt, daß der in Betrachtung gezogene
Bereich eine ausreichende Qualität
für das
Erfassen der aktuellen Werte der Meßgrößen aufweist (die gemäß der Erfindung statistische
Daten definieren, welche zur Justierung der Parameterwerte verwendet
werden). Tatsächlich werden
gemäß der Erfindung
nur die Bildbereiche verwendet, die ein gutes Lesen des optischen
Codes erlauben, um die Parameterwerte zu verändern; andererseits gewährleisten
die Bereiche, in denen das Lesen nicht möglich oder nicht ausreichend
verläßlich war,
nicht, daß die
ermittelbaren statistischen Daten korrekt sind, und daher werden
diese Bereiche zurückgewiesen.
Wenn folglich kein Lesen stattfindet (NEIN Ausgabe von Block 90),
wird überprüft, ob andere
Codebereiche während
des Schritts des Durchsuchens 70 des gleichen Bildes ermittelt
wurden, Block 95; falls es keine weiteren Bereiche gibt,
also eine NEIN Ausgabe von Block 95, wird der Bildanalyseschritt 40 beendet;
anderenfalls (es existieren andere Bereiche innerhalb des gleichen
Bildes, in denen das Vorliegen eines optischen Codes möglich ist, Ausgabe
von Block 95), wird ein folgender Codebereich ausgewählt, Block 100,
und ein Leseversuch wird gestartet, wobei zu Block 85 zurückgesprungen wird.
-
Wenn das Lesen erfolgreich war (JA
Ausgabe von Block 90) wird ein Teil des vorab identifizierten Codebereichs
ausgewählt,
d. h. speziell der Bereich, von dem angenom men wird, daß er die
beste Qualität
besitzt; insbesondere der mittlere Teil des decodierten optischen
Codes wird vorteilhafter Weise ausgewählt, um Kanteneffekte auszuschließen (Block 105 der
Fensterextraktion).
-
Daraufhin wird das so ausgewählte Fenster verarbeitet,
um statistische Daten zu erhalten, d. h. den Wert der Meßgrößen, Block 110.
Insbesondere werden in diesem Schritt die Werte jeder Meßgröße gemessen
oder berechnet, einschließlich
beispielsweise der maximale Helligkeitswert (d. h. der Weißpegel in
einem zweifarbigen Code, der als Graupegel gemessen wurde), der
minimale Helligkeitswert (Schwarzpegel), der Durchschnittswert,
die durchschnittliche Signalenergie, jegliche Abweichung der Proportionen
der Codeelemente von vorbestimmten Werten und jegliche Anzeichen
der Deformation der Codeform. Insbesondere auf einer Helligkeitsskala zwischen
0 und 255 mit binären
Niveaus bei angemessenen Helligkeitsbedingungen liegt das Weißniveau
bei einem binären
Wert in der Nähe
von 200 und das Schwarzniveau befindet sich in der Nähe von 10.
Zusätzlich
kann die Signalenergie als Quadrat der Amplitude der Ableitung des
Helligkeitssignals berechnet werden.
-
Die so berechneten statistischen
Daten werden dann in passenden Tabellen gespeichert, jeweils eine
für jede
Größe, Block 115.
Diese statistischen Daten werden vorteilhafter Weise getrennt voneinander
gespeichert, in Abhängigkeit
von dem Abstand zwischen dem betrachteten Objekt und der Bilderfassungseinheit 10 (er
ergibt sich aus der Höhe
des Objekts, dessen Bild ermittelt wurde), weil die optimalen Werte
der Parameter von diesem Abstand abhängen; zusätzlich speichern die Tabellen
vorzugsweise die Anzahl der Abtastwerte, die bis zu diesem Zeitpunkt erfaßt wurden,
den gesamten Summenwert und den Durchschnittswert, der als Gesamtsummenwert
geteilt durch die Abtastanzahl berechnet wurde. In der Praxis wird
bei jeder neuen Erfassung die Anzahl der Abtastungen für jede gemessene
Größe und gemäß dem aktuellen
Höhenwert
des zu untersuchenden Objektes um Eins erhöht, der Gesamtsummenwert wird
aktualisiert, der neue ermittelte Wert wird zu dem vorangegangenen
Gesamtwert addiert und der Durchschnittswert wird aktualisiert.
-
Abhängig von der betreffenden Meßgröße, dem
zugeordneten Parameter und dem zu optimierenden Merkmal werden zwei
unterschiedliche Typen von Tabellen aufgestellt, wie es im weiteren
im Detail in bezug auf die 7 und 8 beschrieben wird.
-
Nachdem die statistischen Datentabellen
aktualisiert wurden, Block 115, wird überprüft, ob ein weiterer Codebereich
in dem gleichen Bild existiert, wie es bereits mit Bezug auf Block 95 beschrieben wurde,
und falls nicht, wird der Bildanalyseschritt 40 beendet.
-
Bevor der Schritt 50 zur Überprüfung des
Arbeitspunkts im Detail beschrieben wird, wird der Mechanismus zur
Justierung der Parameter auf der Basis der erfaßten statistischen Daten erklärt, um die Merkmale
des Lesesystems gemäß des vorliegenden
Verfahrens zu optimieren. Tatsächlich
haben einige Merkmale (beispielsweise die Bildhelligkeit, die anhand
der minimalen und maximalen Helligkeitswerte gemessen wird) eine
monotone Abhängigkeit (die
genau oder zumindest angenähert
bekannt ist) von dem (den) entsprechenden gesteuerten Parameter(n)
(Verstärkungsfaktor
der Bilderfassungseinheit 10 und die Leistung des Beleuchtungselements 12), wie
in 4 gezeigt ist, die
das Verhältnis
zwischen der Helligkeit L und dem Verstärkungsfaktor G darstellt. Es
ist in diesem Fall daher einfach, auf Basis des Meßgrößenwertes
(minimaler und maximaler Helligkeitswert) die durchzuführende Korrektur
des gesteuerten Parameterwertes zu identifizieren, um das Lesen
zu optimieren. Wenn beispielsweise nach einer vorbestimmten Anzahl
von Erfassungen alle Codebereiche, die für eine spezielle Höhe erfaßt wurden,
dunkel sind (maximaler digitalisierter Helligkeitswert ist geringer
als ein vorbestimmter Wert, beispielsweise 180), ist es notwendig,
den Verstärkungsfaktor
und/oder die Beleuchtungsleistung zu erhöhen (beispielsweise die Spannung,
die an dem Beleuchtungselement 12 anliegt).
-
Andererseits haben andere Merkmale,
beispielsweise die Fokussierungsqualität, die als Energie eines elektrischen
Signals gemessen wird, das von der Bilderfassungseinheit 10 vorgesehen
wird, eine komplexere Abhängigkeit
von den entsprechenden gesteuerten Parametern (Position der automatischen
Fokussierungseinheit), wie in 5 dargestellt
ist, welche die Funktion zeigt, welche die Durchschnittsenergie
E mit der Position P der automatischen Fokussierungseinheit verknüpft. In
diesem Fall ist es nicht möglich,
direkt ein spezielles Gesetz zu verwenden (auch wenn dieses angenähert ist),
das die Meßgröße mit dem
zu steuernden Parameter zur Optimierung des Lesens verknüpft. Tatsächlich ergibt sich
im Falle einer Funktion des Typs, wie er in 5 gezeigt wird, in der die Kurve ein
absolutes Maximum besitzt, das folgende Problem:
-
- – der
absolute Wert des Maximums A ist von Bild zu Bild unterschiedlich
und es ist daher nicht möglich,
zu ermitteln, ob das gerade erfaßte Bild das beste ist oder
nicht;
- – es
ist nicht möglich,
zu ermitteln, ob der Arbeitspunkt links oder rechts von dem Maximum
liegt (Punkt B oder C in 5,
mit der gleichen Ordinate); daher ist es noch nicht einmal möglich, zu
ermitteln, in welche Richtung die Fokussierungsposition verändert werden
muß, um
das Lesen zu verbessern.
-
Daher wird gemäß des vorliegenden Verfahrens
im Falle von Meßgrößen, die
nicht in linearem Zusammenhang mit den entsprechenden gesteuerten
Parametern stehen, eine spezifische Anzahl von Erfassungen mit leicht
veränderten
Werten der gesteuerten Parameter mit einer positiven und einer negativen
Abweichung durchgeführt,
vorzugsweise mit dem gleichen Wert bezüglich der aktuellen Einstellung,
um den Kurvenpunkt zu identifizieren, an dem sich das Lesesystem
befindet, und daher zu ermitteln, ob eine Korrektur notwendig ist,
und wahlweise die Richtung der aktuell durchzuführenden Korrektur zu ermitteln.
Wenn sich beispielsweise das System mit Bezug auf 6, die der 5 gleicht,
an dem Punkt C befindet, der einer Position P1 und einer Durchschnittsenergie
E1 für
eine spezielle Anzahl von Erfassungen entspricht, wird der Positionswert anfänglich verändert, beispielsweise
um eine Verschiebung von +J, um zu der Position P2 überzugehen,
wodurch sich nach einer spezifischen Anzahl von Erfassungen ein
Durchschnittsenergiewert E2 ergibt; wird jedoch der anfängliche
Wert um einen Versatz –J
verändert,
so daß die
Position P3 erreicht wird, ergibt sich ein Durchschnittsenergiewert
E3. Da in diesem Fall die optimalen Lesebedingungen einem maximalen
Energieniveau entsprechen, ist ersichtlich, daß die zweite Einstellung (–J) das
beste Ergebnis liefert und daher der Mittenwert des gesteuerten Parameters
dauerhaft auf P3 festgesetzt wird.
-
Insbesondere muß der absolute Wert des Versatzes
J groß genug
sein, um die Veränderungen der
Bildqualität
auszuwerten, jedoch klein genug, so daß das Lesen optischer Codes
nicht verhindert wird. Der Versatzwert wird vorzugsweise innerhalb
eines Intervalls zwischen einem minimalen Wert und einem maximalen
Wert ausgewählt,
um eine Auswertung der Veränderung
des ermittelten Merkmals zu gestatten und den optischen Code zu
lesen, da die Messungen zur Selbstjustierung während des normalen Betriebs
des Lesesystems stattfinden und es notwendig ist, die Funktion des
Lesesystems auch für Verschiebungen,
die von der optimalen Bedingung wegführen, zu gewährleisten,
da die Versatzrichtung zur Optimierung des Betriebs nicht bekannt
ist.
-
Zusätzlich können die Veränderungen
der gesteuerten Parameterwerte gemäß der vorbestimmten Verschiebungen
bei jeder Erfassung stattfinden, oder sich nach jeder vorbestimmten
Anzahl von Erfassungen wiederholen.
-
Daraufhin wird im Falle einer Meßgröße und eines
gesteuerten Parameters, die monoton voneinander abhängen, während des
Datenspeicherschritts 115 vorzugsweise eine Tabelle des
in 7 gezeigten Typs
verwendet, in der zum besseren Verständnis die Spalte der Gesamtsummenwerte
nicht gezeigt ist; im Falle eines Meßwertes und eines gesteuerten
Parameters, die nicht monoton voneinander abhängig sind, wird hingegen eine
Tabelle des Typs verwendet, wie er in 8 gezeigt
ist, die für
jede Objekthöhe
die Anzahl der Abtastungen N(–J)
und N(+J) und die berechnete Durchschnittsenergie E(–J) und
E(+J) für
beide Verschiebungen +J und –J
angibt.
-
In Hinblick auf das Obige wird nun
der Schritt des Überprüfens und
des optionalen Veränderns
des Arbeitspunktes (Block 50 in 2) anhand 9 für einen
einzigen gesteuerten Parameter beschrieben. Der Schritt 50 wird
jedoch nach jedem Bildanalyseschritt 40 für jeden
gesteuerten Parameter des Lesesystems wiederholt.
-
Anfänglich, Block 150,
wird verifiziert, ob sich das Lesesystem in einem Zustand des anfänglichen Selbstlernens
befindet (für
die betrachtete Betriebsbedingung wurde mit der aktuellen Entfernung
zwischen betrachtetem Objekt und der Bilderfassungseinheit 10 bis
jetzt keine anfängliche
Einstellung gefunden, die ein Lesen gestattet) oder in einem Feinregel-Zustand.
In dem ersten Fall (JA Ausgabe von Block 150), wird überprüft, ob bei
der aktuellen Betriebsbedingung zumindest eine fehlerfreie Codelesung
durchgeführt
wurde, Block 151. Falls nicht (NEIN Ausgabe von Block 151),
werden die gesteuerten Parameter auf bisher noch nicht verwendete Werte
gesetzt, Block 155. Dieser Schritt, der während des
Selbstlernschrittes für
jedes erfaßte
Bild, das nicht zur Decodierung eines optischen Codes führt, durchgeführt wird,
ist dazu eingerichtet, alle möglichen
Werte der gesteuerten Parameter gemäß einem vorbestimmten Schema
zu durchlaufen, bis eine Einstellung gefunden wurde, die eine Codelesung
bei der spezifischen Betriebsbedingung ermöglicht. Dadurch findet das
Lesesystem, wenn ein Code erfolgreich gelesen wurde, eine Folge
von zulässigen Werten
für die
gesteuerten Parameter, die daraufhin auf der Basis statistischer
Daten verfeinert werden können,
wie im weiteren detailliert beschrieben ist.
-
Insbesondere versucht das Lesesystem
bei der anfänglichen
Einstellung der Fokussierposition bei einer gegebenen Höhe der Objekte,
welche einen zu lesenden Code tragen, in sukzessiven Erfassungen
alle möglichen
Fokussierpositionen einzustellen, wobei mit einer anfänglichen
Einstellung begonnen wird (beispielsweise mit der zufälligen Einstellung, mit
der die automatische Fokussiereinheit positioniert ist). Wenn beispielsweise
die intrinsische Feldtiefe des in der Bilderfassungseinheit 10 integrierten
optischen Systems bekannt ist, wird der positive Wert bei jeder
Iteration oder nach einer vorbestimmten Anzahl von Iterationen mit
einem negativen Ergebnis um einen Betrag erhöht, der der Hälfte der
intrinsischen Feldtiefe entspricht. In der Praxis wird ein erstes
Lesen eines ersten Objektes oder einer ersten Objektgruppe versucht,
die sich entlang der Einheit 10 in einer ersten Höhe (beispielsweise
10 cm) bewegen, wobei ein erster Fokussierpositionswert verwendet wird;
falls das Ergebnis des ersten Versuchs negativ ist, wird ein zweiter
Leseversuch bezüglich
eines zweiten Objektes oder einer zweiten Objektgruppe durchgeführt, die
in der gleichen ersten Höhe
angeordnet sind, wobei ein zweiter Fokussierpositionswert verwendet
wird, usw. Die anderen gesteuerten Parameter werden analog eingestellt
und deren ursprüngliche
Werte können
gleichzeitig mit dem Fokussierpositionswert oder am Ende der gesamten Einstellfolge
der Fokussierposition verändert
werden, falls die Folge nicht dazu geführt hat, Folgen von Werten
zu identifizieren, die das Lesen eines Codes erlaubt.
-
Wenn die aktuellen Einstellungen
das Lesen eines Codes erlauben (JA Ausgabe von Block 151), wird
der Selbstlernschritt für
die angenommene Höhe unterbrochen
(Block 152), und ein Feinregelschritt beginnt, der von
dem „NEIN
Ausgabe"-Signal von Block 150 gesteuert wird. Dadurch kann
ein erster Näherungswert
für jeden
Parameter mit jeder Höhe verknüpft werden,
wobei der beschriebene Prozeß für alle möglichen
Objekthöhen
wiederholt wird, auch wenn keine anfängliche manuelle Einstellung
vorliegt.
-
Nach dem Einstellen der Parameterwerte während des
Selbstlernschrittes wird der Schritt 50 des Überprüfens des
Arbeitspunktes beendet, und ein weiteres Bild wird untersucht, wobei
zu Block 30 in 2 übergegangen
wird.
-
Wenn andererseits das Durchprüfen der
betreffenden Betriebsbedingungen abgeschlossen wurde (NEIN Ausgabe
von Block 150), wird verifiziert, ob bei der spezifischen
Betriebsbedingung ausreichend statistische Daten für den betroffenen
Parameter erfaßt
wurden, Block 165. Beispielsweise kann die Anzahl von Erfassungen,
die als statistisch ausreichend gelten, 500 bis 1000 umfassen, um
die starken Schwankungen des Bildes zu berücksichtigen und um fehlerhafte
Veränderungen
der Parameter zu vermeiden. Wenn das Ergebnis negativ ist (unzureichende
Anzahl von Erfassungen, NEIN Ausgabe von Block 165), wird
die Einstellung nicht verändert
und der Schritt 50 des Überprüfens des
Arbeitspunktes fertiggestellt; wenn das Ergebnis allerdings positiv
ist (JA Ausgabe von Block 165), wird überprüft, ob der betreffende Parameter
mit einer entsprechenden Meßgröße über eine
monotone Funktion zusammenhängt,
oder ob der Zusammenhang eine komplexere Funktion darstellt (Block 170).
-
Im ersten Fall (JA Ausgabe von Block 170) wird überprüft, ob sich
das statistische Datum (Durchschnittswert), das in der Tabelle von 7 gespeichert ist, für die mit
den gesteuerten Parametern zusammenhängende Größe (N) innerhalb eines „optimalen
Intervalls" befindet, welches in 4 als Δ dargestellt
ist, in dem ein zufriedenstellender Betrieb stattfindet, wobei die
aktuellen Betriebsbedingungen berücksichtigt werden, Block 173.
Wenn der gespeicherte Durchschnittswert innerhalb des optimalen
Intervalls ist, JA Ausgabe von Block 173, wird der Schritt 50 des Überprüfens des
Arbeitspunktes ohne eine Veränderung
fertiggestellt; anderenfalls, NEIN Ausgabe, wird der entsprechende
gesteuerte Parameter modifiziert, Block 175.
-
Gemäß einer bevorzugten einfacheren
Ausführung
folgt auf die JA Ausgabe von Block 170 direkt Block 175,
und der gesteuerte Parameter wird mittels der Kurve von 4 dauerhaft neu eingestellt.
-
Wenn verschiedene Parameter eine
einzelne Meßgröße in einer
nicht dargestellten Art und Weise beeinflussen (und daher ein entsprechendes Merkmal
des Lesesystems, beispielsweise Verstärkungsfaktor und Beleuchtungsleistung,
soweit die Helligkeit betroffen ist), ist es nicht möglich, sowohl den
Parameter zu berücksichtigen
als auch zu versuchen, zuerst den von dessen Veränderungsgrenzen am weitesten
entfernt gelegenen Parameter zu verändern. Wenn beispielsweise
für die
vorab genannten Parameter die Beleuchtungsleistung bereits nahe dem
Maximalwert liegt, wohingegen die Verstärkung noch bei einem niedrigen
Wert liegt, ist es möglich, anfänglich nur
den Verstärkungsfaktor
zu erhöhen. Alternativ
ist es ebenfalls möglich,
spezielle Kriterien anzuwenden, um zu entscheiden, welche Parameter bis
zu welchem Ausmaß verändert werden;
beispielsweise ist es möglich,
abwechselnd zwei Parameter zu verändern oder beide Parameter
gleichzeitig mit einem Wert zu verändern, der kleiner ist, als
es für
die Veränderung
eines einzelnen Parameters notwendig wäre.
-
Nachdem der neue Wert des gesteuerten Parameters
eingestellt wurde, wird das vorab gespeicherte statistische Datum
und die entsprechende Anzahl der Erfassungen (Abtastungen) für die betrachteten
Arbeitsbedingungen zurückgesetzt;
der neue Wert des gesteuerten Parameters wird dann mit einem Arbeitsintervall
verglichen (welches als Standardintervall definiert ist, innerhalb
dessen der Parameter veränderlich
ist, Block 180); falls der Wert sich innerhalb dieses Intervalls
befindet (JA Ausgabe), wird der Schritt des Überprüfens des Arbeitspunktes fertiggestellt,
anderenfalls (NEIN Ausgabe) wird ein Alarm gestartet, Block 185,
da offensichtlich ist, daß zumindest
eine Komponente des Lesesystems beginnt, unbefriedigend zu arbeiten
(beispielsweise ist das Beleuchtungselement 12 verschlissen);
jedoch fährt
das Lesesystem in einem Normalmodus fort, der so gut wie möglich arbeitet,
und kehrt zur Erfassung eines neuen Bildes zurück.
-
Wenn der gesteuerte Parameter nicht
monoton ist, NEIN Ausgabe von Block 170, wird eine vorbestimmte
Abweichung bereitgestellt, wie vorab in bezug auf 6 beschrieben. Im Detail wird anfänglich verifiziert,
ob die geplante vorbestimmte Abweichung bereits durchgeführt wurde
(ob der Durchschnittswert der Meßgröße für beide Abweichungen +J und –J des gesteuerten
Parameters vorliegt, Block 190), anderenfalls wird der
Wert des gesteuerten Parameters gemäß der noch nicht in Betracht
gezogenen Abweichung aktualisiert, Block 200, und der Schritt
des Überprüfens des
Arbeitspunktes ist fertiggestellt. Wenn das Ergebnis positiv ist
(JA Ausgabe von Block 190), werden die statistischen gespeicherten
Daten untersucht, um zu ermitteln, welche der „getesteten" Werte für die betreffenden
Parameter die Meßgröße optimieren.
Dieser Wert wird daraufhin gewählt
und als Mittenwert des gesteuerten Parameters für die darauffolgende Erfassung
eingestellt, auf dem die vorbestimmte Abweichung +J und –J angewandt
wird, Block 195.
-
Darauffolgend werden die statistischen
Daten und die erfaßte
Abtastanzahl für
die betreffende Betriebsbedingung ähnlich wie in dem Fall der
monotonen Parameter zurückgesetzt,
und es wird überprüft, ob sich
der neue Mittenwert des Parameters innerhalb des geplanten Arbeitsintervalls
befindet, indem Schritt 180 durchgeführt wird.
-
Als eine Alternative zu dem beschriebenen Prozeß wird neben
dem statistischen Datum für
die vorgegebenen Abweichungen auch das statistische Datum für den vorab
eingestellten Mittenwert erfaßt, wenn
eine vorangegangene Justierung fertiggestellt wurde, und die Entscheidung über die
sukzessive Einstellung wird getroffen, indem alle statistischen Daten
einbezogen werden (für
den Mittenwert und für alle
geplanten Abweichungen). Daher wird der vorab eingestellte Mittenwert
nicht verändert,
wenn sich dieser in einem optimalen vorbestimmten Intervall befindet, ähnlich wie
in dem Fall des monotonen Parameters. Darauffolgend werden alle
statistischen Daten und entsprechenden Abtastanzahlen für die betreffende
Betriebsbedingung zurückgesetzt,
und der Schritt 50 des Überprüfens des
Arbeitspunktes für
diesen Parameter ist fertiggestellt.
-
Die Vorteile des beschriebenen Verfahrens ergeben
sich aus der vorangegangenen Beschreibung. Insbesondere bestimmt
das vorliegende Verfahren die einzustellenden Erfassungsparameter
vorab, indem statistische Qualitätsuntersuchungen
für eine
große
Anzahl von vorangegangenen Bildern, die erfolgreich gelesen wurden,
durchgeführt
werden; dadurch wird eine Optimierung der sukzessiven Erfassungen
ermöglicht,
die gemäß der Veränderungen
der externen und internen Bedingungen über die Zeit justiert werden.
Insbesondere erlaubt die Analyse der Veränderungen, die bezüglich der
Parameter zur Überwachung
der optimalen Regelung durchgeführt
wurden, zudem Ermittlungen, bevor ein Zustand der Komponentenverschlechterung
auftritt, und erlaubt die zeitige Erzeugung von Alarmen, um die durch
fehlerhafte Komponenten verursachte Fehlfunktionszeit des Lesesystems
stark zu reduzieren oder sogar zu verhindern.
-
Die ausschließlich Verwendung von erfolgreich
gelesenen Bildern („Erfolgen")
garantiert die Verwendung von statistisch signifikanten Daten und eliminiert
Daten, die von spezifischen Bedingungen abgeleitet wurden oder die
durch zufällige
Fehler erzeugt wurden, welche nicht zutreffende oder falsche Veränderungen
der gesteuerten Parameter verursachen würden. Zusätzlich erhöht die ausschließliche Verwendung
von den wesentlichsten Anteilen des gelesenen Codes die Verläßlichkeit
des Verfahrens und deren Konvergenz in Richtung optimaler Werte der
Parameter.
-
Das Suchen nach optimalen Parameterwerten
durch Einführung
kleinerer Veränderungen
in die aktuellen Werte erlaubt im Fall von Parametern, die mit den
entsprechenden Meßgrößen über komplexe Funktionen
in Zusammenhang stehen, einen „Versuch
und Irrtum" (trial and error)-Prozeß, um optimale Betriebsbedingungen
zu erreichen und beizubehalten, auch wenn diese komplexen Funktionen
nicht a priori bekannt sind.
-
Schließlich ist es ersichtlich, daß viele
Veränderungen
und Varianten dieses hier beschriebenen und dargestellten Verfahrens
realisiert werden können,
die alle in den Schutzbereich der Erfindung fallen, wie er durch
die angefügten
Ansprüche
definiert ist. Insbesondere wird betont, daß das beschriebene Verfahren
die Optimierung nicht nur der Fokussierqualität und der Bildhelligkeit gestattet,
sondern auch bei anderen Parametern angewendet werden kann. Beispielsweise
kann das vorliegende Verfahren dazu verwendet werden, die Schwellwerte,
die zur Decodierung verwendet werden, einzustellen, wenn verifiziert
wurde, daß die
Abmessungen betreffenden Beziehungen zwischen den Codeelementen
sich von den Referenzwerten in einer nicht akzeptabler Weise unterscheiden
oder von nicht korrekten Veränderungen
betroffen sind. Es kann ferner dazu verwendet werden, den Wert der
Abtastgeschwindigkeit der Objekte zu korrigieren, dessen anfängliche
Einstellung, die von außen
vorgesehen ist, möglicherweise
nicht korrekt ist, da diese auf einer angenommenen zunehmenden Geschwindigkeit
des Förderbandes 2 basiert,
und sich von der aktuellen Geschwindigkeit, die von dem optischen
Codierer 5 ermittelt wurde, unterscheidet oder aufgrund
von durch die Zeit bedingte Veränderungen
des mechanischen Transportsystems nicht länger angemessen ist (wodurch
sich eine Erfassung von verzerrten Bildern ergibt).
-
Im allgemeinen kann das Verfahren
jedoch angewendet werden, wenn sich die erfaßten Bilder sich sehr stark
voneinander unterscheiden, so daß es notwendig ist, eine prädiktive
Justierung der Parameter vorzusehen; wenn einzelne grundlegende
Parameter Fluktuationen unterworfen sind, die im Vergleich zu der
Bilderfassungsrate relativ gering sind; und wenn es nicht möglich oder
angemessen ist, die Parameterschwankungen nur durch mathematische Berechnungen
oder nur durch die Verwendung von Sensoren zu schätzen.