DE102015219544A1 - System und Verfahren zur Verfolgung optischer Codes - Google Patents

System und Verfahren zur Verfolgung optischer Codes Download PDF

Info

Publication number
DE102015219544A1
DE102015219544A1 DE102015219544.9A DE102015219544A DE102015219544A1 DE 102015219544 A1 DE102015219544 A1 DE 102015219544A1 DE 102015219544 A DE102015219544 A DE 102015219544A DE 102015219544 A1 DE102015219544 A1 DE 102015219544A1
Authority
DE
Germany
Prior art keywords
bar code
image
code fragment
fragment
camera
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102015219544.9A
Other languages
English (en)
Inventor
James A. Negro
Ivan Bachelder
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cognex Corp
Original Assignee
Cognex Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cognex Corp filed Critical Cognex Corp
Publication of DE102015219544A1 publication Critical patent/DE102015219544A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • G06K7/1443Methods for optical code recognition including a method step for retrieval of the optical code locating of the code in an image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1408Methods for optical code recognition the method being specifically adapted for the type of code
    • G06K7/14131D bar codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1408Methods for optical code recognition the method being specifically adapted for the type of code
    • G06K7/14172D bar codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/146Methods for optical code recognition the method including quality enhancement steps
    • G06K7/1465Methods for optical code recognition the method including quality enhancement steps using several successive scans of the optical code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10712Fixed beam scanning
    • G06K7/10722Photodetector array or CCD scanning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10821Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices
    • G06K7/10861Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices sensing of data fields affixed to objects or articles, e.g. coded labels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30241Trajectory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/194Segmentation; Edge detection involving foreground-background segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/277Analysis of motion involving stochastic approaches, e.g. using Kalman filters

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Toxicology (AREA)
  • Electromagnetism (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Image Analysis (AREA)
  • Length Measuring Devices By Optical Means (AREA)

Abstract

Computergestützte Verfahren und Systeme zum Orten von an Objekten angebrachten Strichcodes werden bereitgestellt. Ein Verfahren kann ein erstes Bild eines an einem ersten Objekt angebrachten ersten Strichcodefragments empfangen, aufgenommen von einer Kamera zu einem ersten Zeitpunkt, und eine erste Position des ersten Strichcodefragments identifizieren. Das Verfahren kann auch ein zweites Bild eines zweiten Strichcodefragments empfangen, aufgenommen zu einem ersten Zeitpunkt, und eine zweite Position des zweiten Strichcodefragments identifizieren. Das Verfahren kann auch einen Bereich von möglichen Positionen des ersten Strichcodefragments zum zweiten Zeitpunkt auf Grundlage eines Verfolgungsmodells vorhersagen, das das erste Strichcodefragment auf Grundlage der ersten Position verfolgt, und bestimmen, dass das erste Strichcodefragment und das zweite Strichcodefragment demselben Strichcode entsprechen, wenn die zweite Position innerhalb des Bereichs von möglichen Positionen für das erste Strichcodefragment zum zweiten Zeitpunkt liegt.

Description

  • QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
  • Die vorliegende Erfindung ist verwandt mit U.S.-Anmeldung Nr. TBD, mit dem Titel „Barcode Decoding”, von Iwan A. Bachelder und Savithri Vaidyanathan, eingereicht am 9. Oktober 2014, deren gesamter Inhalt hierin eingegliedert ist.
  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft das Verfolgen von Objekten und spezifischer Vorhersagen eines Bereichs möglicher zukünftiger Positionen eines optischen Codes.
  • HINTERGRUND DER ERFINDUNG
  • Automatisierte Identifikation und Verfolgung von Objekten hat viele Anwendungen, zum Beispiel in Produkten, die optische Codes verwenden. Optische Codes sind Muster von Elementen mit unterschiedlicher Lichtreflexion oder -emission, die gemäß irgendwelchen vorher definierten Regeln angeordnet sind. Ein bekannter optischer Code ist der in verschiedenen Verbraucherprodukten verwendete lineare Strichcode. Ein linearer Strichcode umfasst Striche oder Lücken in einer linearen Weise. Optische Codes können auch zweidimensional sein. Lineare und zweidimensionale Strichcodes werden generell als Symbole bezeichnet. Zweidimensionale optische Codes können An/Aus-Muster in einem zweidimensionalen Matrixcode umfassen. Strichcodes oder Symbole können auf Etiketten gedruckt werden, die auf der Produktverpackung oder direkt auf den Produkten selbst angebracht werden.
  • Die in einem Strichcode oder Symbol kodierte Information kann unter Verwendung von optischen Lesegeräten in fest angebrachten Einrichtungen oder in tragbaren handgehaltenen Vorrichtungen dekodiert werden. Zum Beispiel bewegt im Fall einer fest angebrachten Einrichtung eine Transferstraße mit Codes oder Symbolen markierte Objekte in der Reichweite eines fest angebrachten Lesegeräts, das Bilder der Codes oder Symbole erzeugen kann. Bildbasierte Lesevorrichtungen umfassen typischerweise mindestens eine Kamera, die in der Lage ist, zweidimensionale Bilder eines Blickfeldes (FOV) zu erzeugen. Zum Beispiel verwenden viele Systeme gegenwärtig einen zweidimensionalen Charge-Coupled-Device-(CCD)-Bildsensor, der Bilder aufnimmt, die dann von einem Prozessor empfangen werden. Der Prozessor ist programmiert, die Bilddaten zu untersuchen, um Codekandidaten (z. B. Strichcode- oder Symbolkandidaten) zu identifizieren und jene Codekandidaten zu dekodieren. Lesevorrichtungen können programmiert sein, um Bilder eines Blickfeldes (FOV) in schneller Folge zu erhalten und jegliche erhaltenen Codekandidaten so schnell wie möglich zu dekodieren. Der Prozessor lässt einen oder mehr Dekodierungsalgorithmen laufen, um die Codekandidaten zu dekodieren.
  • In fest angebrachten Einrichtungen kann das optische Lesegerät eine große Anzahl von Bildern desselben Objekts und angebrachten Codes erhalten. Das Objekt und der angebrachte Code können sich an verschiedenen Positionen entlang der Fahrtrichtung durch das FOV befinden. Zusätzlich werden manche Objekte und angebrachte Codes in einem Bild neu für das FOV sein, zum Beispiel jene, die sich während vorheriger Bilder außerhalb des FOV befanden, und andere werden das FOV vor Erzeugung eines folgenden Bildes verlassen.
  • Wenn das Bild eines Codes aufgenommen wird, hängt die Qualität des Bildes von mehreren Faktoren ab, zum Beispiel dem Winkel des Lesegeräts im Verhältnis zu einer Oberfläche, an der der Code angebracht ist, dem Material und der Textur der Oberfläche, an der der Code angebracht ist, der Codemarkierungsqualität oder Beschädigungen nach der Markierung, den Beleuchtungscharakteristika der Umgebung und der Vorrichtung, der Verzerrung im angebrachten Symbol, der Transferstraßengeschwindigkeit, der Entfernung von der Oberfläche, an der der Code angebracht ist, der optischen Unschärfe, Kameraauflösung, Sensorrauschen, Bewegungsunschärfe (Teilbewegung während Sensorbelichtung), usw. Die Bildqualität beeinflusst die Fähigkeit eines Prozessors, der einen spezifischen Algorithmus laufen lässt, um einen Code zu dekodieren. Zum Beispiel wird in vielen Fällen ein einfacher Dekodierungsalgorithmus nicht in der Lage sein, Codes in einem Bild zu dekodieren, es sei denn, die Umstände der Bildaufnahme sind im Wesentlichen ideal. Zusätzlich kann das Bild nicht den gesamten Code umfassen, sondern nur Teile von ihm.
  • ZUSAMMENFASSUNG
  • Mehrere Bilder des Codes können notwendig sein, um den gesamten Code zu rekonstruieren. Um die unvollkommene und unvollständige Bildaufnahme eines Codes zu kompensieren, können Verfolgungsalgorithmen helfen, zu orten, wo der Code in nachfolgenden aufgenommenen Bildern wäre. Nachdem verschiedene Fragmente desselben Codes in aufeinanderfolgenden Bildern identifiziert wurden, können Zusammenfügealgorithmen verwendet werden, um die unterschiedlichen Fragmente zusammenzufügen, um den gesamten Code zu erzeugen.
  • Unter manchen Gesichtspunkten wird ein computergestütztes Verfahren zur Ortung von auf Objekten angebrachten Strichcodes bereitgestellt. Das Verfahren umfasst Empfangen, durch einen Prozessor, eines ersten Bildes eines an einem ersten Objekt angebrachten ersten Strichcodefragments, aufgenommen von einer Kamera zu einem ersten Zeitpunkt, und Identifizieren, durch den Prozessor, einer ersten Position des ersten Strichcodefragments auf Grundlage des ersten Bildes. Das Verfahren umfasst weiter Empfangen, durch den Prozessor, eines zweiten Bildes eines zweiten Strichcodefragments, aufgenommen von der Kamera zu einem zweiten Zeitpunkt, und Identifizieren, durch den Prozessor, einer zweiten Position des zweiten Strichcodefragments auf Grundlage des zweiten Bildes. Das Verfahren umfasst Vorhersagen, durch den Prozessor, eines Bereichs möglicher Positionen des ersten Strichcodefragments zum zweiten Zeitpunkt auf Grundlage eines Verfolgungsmodells, das das erste Strichcodefragment auf Grundlage der ersten Position verfolgt, und Bestimmen, durch den Prozessor, dass das erste Strichcodefragment und das zweite Strichcodefragment einem selben auf einem ersten Objekt angebrachten Strichcode entsprechen, wenn die zweite Position innerhalb des Bereichs möglicher Positionen des ersten Strichcodefragments zum zweiten Zeitpunkt ist.
  • Unter manchen Gesichtspunkten ein computergestütztes Verfahren zur Ortung von an Objekten angebrachten Strichcodes in einem System, das konfiguriert ist, das Blickfeld einer Szene zu erweitern, die von einer Kamera mit einem Bildsensor abgebildet wird. Das Verfahren umfasst Empfangen eines ersten Bildes, das von der Kamera zu einem ersten Zeitpunkt aufgenommen wurde, das erste Bild umfassend ein erstes Blickfeld und ein zweites Blickfeld, wobei das erste Blickfeld des ersten Bildes ein erstes Strichcodefragment abbildet und das zweite Blickfeld des ersten Bildes ein zweites Strichcodefragment abbildet, Identifizieren, auf Grundlage des ersten Bildes, einer ersten Position des ersten Strichcodefragments innerhalb des ersten Blickfelds des ersten Bildes, und weiter Identifizieren, auf Grundlage des ersten Bildes, einer ersten Position des zweiten Strichcodefragments innerhalb des zweiten Blickfelds des ersten Bildes. Das Verfahren kann Empfangen eines zweiten Bildes, das von der Kamera zu einem zweiten Zeitpunkt aufgenommen wurde, das zweite Bild umfassend ein erstes Blickfeld und ein zweites Blickfeld, wobei das erste Blickfeld des zweiten Bildes ein drittes Strichcodefragment abbildet und das zweite Blickfeld des zweiten Bildes ein viertes Strichcodefragment abbildet, Identifizieren, auf Grundlage des zweiten Bildes, einer zweiten Position des dritten Strichcodefragments innerhalb des ersten Blickfelds des zweiten Bildes, und weiter Identifizieren, auf Grundlage des zweiten Bildes, einer zweiten Position des vierten Strichcodefragments innerhalb des zweiten Blickfelds des zweiten Bildes umfassen. Das Verfahren umfasst Vorhersagen eines Bereichs möglicher Positionen des ersten Strichcodefragments zu dem zweiten Zeitpunkt auf Grundlage der ersten Position des ersten Strichcodefragments, Vorhersagen eines Bereichs möglicher Positionen des zweiten Strichcodefragments zu dem zweiten Zeitpunkt auf Grundlage eines zweiten Verfolgungsmodells, das das zweite Strichcodefragment auf Grundlage der ersten Position des zweiten Strichcodefragments verfolgt, Bestimmen, ob die zweite Position des dritten Strichcodefragments innerhalb des Bereichs der möglichen Positionen des ersten Strichcodefragments zum zweiten Zeitpunkt ist, Bestimmen, ob die zweite Position des vierten Strichcodefragments innerhalb des Bereichs der möglichen Positionen des zweiten Strichcodefragments zum zweiten Zeitpunkt ist, und Bestimmen, dass das erste Strichcodefragment, das zweite Strichcodefragment, das dritte Strichcodefragment und das vierte Strichcodefragment einem selben Strichcode entsprechen, wenn zu dem zweiten Zeitpunkt die zweite Position des dritten Strichcodefragments innerhalb des Bereichs der möglichen Positionen des ersten Strichcodefragments ist und die zweite Position des vierten Strichcodefragments innerhalb des Bereichs der möglichen Positionen des zweiten Strichcodefragments ist.
  • Unter manchen Gesichtspunkten wird ein System zum Orten von an Objekten angebrachten Strichcodes bereitgestellt. Das System umfasst eine Kamera, die konfiguriert ist, Bilder von an Objekten angebrachten Strichcodes aufzunehmen, und einen Prozessor in Kommunikation mit der Kamera. Der Prozessor ist konfiguriert, ein erstes Bild eines an einem ersten Objekt angebrachten ersten Strichcodefragments zu empfangen, das von der Kamera zu einem ersten Zeitpunkt aufgenommen wurde, eine erste Position des ersten Strichcodefragments auf Grundlage des ersten Bildes zu identifizieren, ein zweites Bild eines zweiten Strichcodefragments zu empfangen, das von der Kamera zu einem zweiten Zeitpunkt aufgenommen wurde, eine zweite Position des zweiten Strichcodefragments auf Grundlage des zweiten Bildes zu identifizieren, einen Bereich möglicher Positionen des ersten Strichcodefragments zum zweiten Zeitpunkt auf Grundlage eines Verfolgungsmodells, das das erste Strichcodefragment auf Grundlage der ersten Position verfolgt, vorherzusagen und zu bestimmen, dass das erste Strichcodefragment und das zweite Strichcodefragment einem selben an einem ersten Objekt angebrachten Strichcode entsprechen, wenn die zweite Position innerhalb des Bereichs der möglichen Positionen des ersten Strichcodefragments zum zweiten Zeitpunkt ist.
  • Unter manchen Gesichtspunkten wird ein System zum Orten von an Objekten angebrachten Strichcodes bereitgestellt. Das System ist konfiguriert, ein Blickfeld einer Szene zu erweitern, die von einer Kamera mit einem Bildsensor aufgenommen wurde. Das System umfasst die Kamera, die konfiguriert ist, Bilder von an Objekten angebrachten Strichcodes aufzunehmen, und einen Prozessor in Kommunikation mit der Kamera. Der Prozessor ist konfiguriert, ein erstes Bild zu empfangen, das von der Kamera zu einem ersten Zeitpunkt aufgenommen wurde, das erste Bild umfassend ein erstes Blickfeld und ein zweites Blickfeld, wobei das erste Blickfeld des ersten Bildes ein erstes Strichcodefragment abbildet und das zweite Blickfeld des ersten Bildes ein zweites Strichcodefragment abbildet, auf Grundlage des ersten Bildes eine erste Position des ersten Strichcodefragments innerhalb des ersten Blickfelds des ersten Bildes zu identifizieren, und auf Grundlage des ersten Bildes eine erste Position des zweiten Strichcodefragments innerhalb des zweiten Blickfelds des ersten Bildes zu identifizieren. Der Prozessor ist konfiguriert, ein zweites Bild zu empfangen, das von der Kamera zu einem zweiten Zeitpunkt aufgenommen wurde, das zweite Bild umfassend ein erstes Blickfeld und ein zweites Blickfeld, wobei das erste Blickfeld des zweiten Bildes ein drittes Strichcodefragment abbildet und das zweite Blickfeld des zweiten Bildes ein viertes Strichcodefragment abbildet, auf Grundlage des zweiten Bildes eine zweite Position des dritten Strichcodefragments innerhalb des ersten Blickfelds des zweiten Bildes zu identifizieren, und auf Grundlage des zweiten Bildes eine zweite Position des vierten Strichcodefragments innerhalb des zweiten Blickfelds des zweiten Bildes zu identifizieren. Der Prozessor ist konfiguriert, einen Bereich von möglichen Positionen des ersten Strichcodefragments zum zweiten Zeitpunkt auf Grundlage eines ersten Verfolgungsmodells vorherzusagen, das das erste Strichcodefragment auf Grundlage der ersten Position des ersten Strichcodefragments verfolgt, und einen Bereich von möglichen Positionen des zweiten Strichcodefragments zum zweiten Zeitpunkt auf Grundlage eines zweiten Verfolgungsmodells vorherzusagen, das das zweite Strichcodefragment auf Grundlage der ersten Position des zweiten Strichcodefragments verfolgt. Der Prozessor ist konfiguriert, zu bestimmen, ob die zweite Position des dritten Strichcodefragments innerhalb des Bereichs der möglichen Positionen des ersten Strichcodefragments zum zweiten Zeitpunkt ist, zu bestimmen, ob die zweite Position des vierten Strichcodefragments innerhalb des Bereichs der möglichen Positionen des zweiten Strichcodefragments zum zweiten Zeitpunkt ist, und zu bestimmen, dass das erste Strichcodefragment, das zweite Strichcodefragment, das dritte Strichcodefragment und das vierte Strichcodefragment einem selben Strichcode entsprechen, wenn zum zweiten Zeitpunkt die zweite Position des dritten Strichcodefragments innerhalb des Bereichs der möglichen Positionen des ersten Strichcodefragments ist und die zweite Position des vierten Strichcodefragments innerhalb des Bereichs der möglichen Positionen des zweiten Strichcodefragments ist.
  • Diese und andere Ausführungsformen werden im Rest der Beschreibung mit Bezug auf die Zeichnungen ausführlicher beschrieben.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 zeigt ein beispielhaftes Bildverarbeitungssystem, in Übereinstimmung mit manchen Ausführungsformen;
  • 2 zeigt ein beispielhaftes adaptives Verfolgungsmodell, in Übereinstimmung mit manchen Ausführungsformen;
  • 3 zeigt ein beispielhaftes adaptives Verfolgungsmodell, in Übereinstimmung mit manchen Ausführungsformen.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die verschiedenen Gesichtspunkte der vorliegenden Erfindung werden jetzt mit Bezug auf die beigefügten Zeichnungen beschrieben, worin gleiche Bezugsnummern in mehreren Ansichten ähnlichen Elementen entsprechen. Es versteht sich jedoch, dass die Zeichnungen und die sich hiernach darauf beziehende ausführliche Beschreibung nicht beabsichtigen, den beanspruchten Gegenstand auf die besondere offenbarte Form zu beschränken. Vielmehr besteht die Absicht, alle Modifikationen, Äquivalente und Alternativen abzudecken, die innerhalb des Geistes und des Umfangs des beanspruchten Gegenstands fallen.
  • Die vorliegende Erfindung ist auf Systeme und Verfahren zum Verfolgen von Codes in optischen Lesesystemen gerichtet. Entsprechend Gesichtspunkten der vorliegenden Offenbarung sagen Verfolgungsmodelle den möglichen Bereich und manchmal die relativen Wahrscheinlichkeiten von Stellungen eines optischen Codes oder einer Gruppe von optischen Codes vorher, auf Grundlage von mindestens einer oder mehr vorher gemessenen Stellungen desselben optischen Codes oder derselben Gruppe. Diese vorhersagende Fähigkeit von Verfolgungsmodellen beschränkt den Bereich von möglichen Entsprechungen oder Übereinstimmungen zwischen einem sich bewegenden optischen Code und einem zu späteren Zeitpunkten oder in anderen räumlichen Referenzrahmen identifizierten optischen Code. Allgemeiner können die Verfolgungsmodelle den Bereich von möglichen Entsprechungen zwischen einer Gruppe von Interesse und einer zu späteren Zeitpunkten oder in anderen räumlichen Referenzrahmen identifizierten Gruppe optischer Codekandidaten beschränken. Gemäß alternativen Gesichtspunkten der vorliegenden Offenbarung können die Verfolgungsmodelle mögliche Entsprechungen nach Wahrscheinlichkeit priorisieren, zum Zweck der gleichzeitigen Verfolgung von einem oder mehr getrennten, aber möglicherweise ähnlichen optischen Codes oder Gruppen von optischen Codes.
  • Eine Stellung kann die Position, Orientierung und/oder scheinbare Größe (Maßstab) des optischen Codes oder der Gruppe umfassen. Der Bereich von Stellungen kann durch eine einzige vorhergesagte Stellung zusammen mit irgendeiner Unsicherheit angegeben werden, zum Beispiel eine Position zusätzlich zu einem erwarteten Fehler in der Position, der durch eine Verteilung beschrieben wird, zum Beispiel eine Normalverteilung. Der Bereich von Stellungen kann alternativ einfach durch einen Satz oder Locus von möglichen Stellungen angegeben werden, zum Beispiel ein Liniensegment oder ein kreisförmiges Gebiet, das die möglichen Positionen darstellt, mit einer assoziierten Wahrscheinlichkeitsverteilung, zum Beispiel einer Gleichverteilung.
  • Mit Bezug auf 1 werden Gesichtspunkte der vorliegenden Erfindung im Kontext eines beispielhaften Bildgebungssystems/Transferstraße 10 beschrieben, wobei eine Transferstraße 30 Objekte 26a, 26b, 26c usw. entlang einer Fahrtrichtung 25 bewegt. Ein Fachmann würde verstehen, dass das Bildgebungssystem 10 eine beispielhafte Anwendung der vorliegenden Erfindung ist und dass die offenbarten Systeme und Verfahren zum Verfolgen von optischen Codes an Objekten in anderen Anwendungen anwendbar sind.
  • Im vorliegenden Beispiel hat jedes der Objekte ähnliche physikalische Eigenschaften, und daher wird nur ein Objekt, zum Beispiel Objekt 26b, ausführlich beschrieben. Spezifisch umfasst Objekt 26b eine Oberfläche 27, die im Allgemeinen nach oben gerichtet ist, während Objekt 26b von der Transferstraße 30 bewegt wird. Ein Matrixcode 24a ist an der oberen Oberfläche 27 für Identifikationszwecke angebracht. Matrixcodes 24a ähnlichen Typs sind an den oberen Oberflächen jedes der Objekte 26a und 26c angebracht.
  • Immer noch mit Bezug auf 1 umfasst das Bildverarbeitungssystem eine Kamera 22 umfassend Optik 24, die ein Blickfeld 28 unter der Kamera 22 definiert, durch das Transferstraße 30 die Objekte 26a, 26b, 26c usw. bewegt. Daher kommt, während sich die Objekte entlang Fahrtrichtung 25 bewegen, jede der oberen Oberflächen 27 in Blickfeld 28. Blickfeld 28 kann groß genug sein, so dass die gesamte obere Oberfläche 27 sich zum einen oder anderen Zeitpunkt innerhalb des Blickfelds 28 befindet und daher jeglicher an der oberen Oberfläche 27 eines Objekts angebrachter Code das Blickfeld 28 passiert und von Kamera 22 in einem Bild aufgenommen werden kann. Während sich Objekte entlang der Fahrtrichtung 25 bewegen, kann die Kamera 22 Teilfragmente des an der oberen Oberfläche 27 angebrachten Codes aufnehmen. Ein Fachmann würde verstehen, dass das Blickfeld groß genug sein kann, dass es mehr als ein Objekt aufnehmen kann. Außerdem kann das Bildverarbeitungssystem 10 mehr als eine Kamera und/oder eine Kamera mit einem Blickfelderweiterer umfassen, wie in U.S. 8,646,690 mit dem Titel „System and Method for Expansion of Field of View in a Vision System” an Nunnink et al. beschrieben, dessen Inhalte hierin in ihrer Gesamtheit eingegliedert sind. U.S. 8,646,690 gibt Details des Blickfelderweiterers zum Beispiel in Spalte 8, Zeile 43 bis Spalte 9, Zeile 28 und 57.
  • Das Bildverarbeitungssystem 10 umfasst auch einen Computer oder Prozessor 14 (oder mehrere Prozessoren), der Bilder von Kamera 22 empfängt, die Bilder untersucht, um Unterbereiche der Bilder zu identifizieren, die ein Beispiel eines Matrixcodes als Codekandidaten enthalten könnten, und dann versucht, jeden Codekandidaten zu dekodieren, im Bemühen, das gegenwärtig im Blickfeld 28 befindliche Objekt zu identifizieren. Zu diesem Zweck ist Kamera 22 mit Prozessor 14 verknüpft. Eine Schnittstellenvorrichtung 16/18 kann auch mit Prozessor 14 verknüpft sein, um visuelle und Audio-Ausgabe an einen Systemnutzer bereitzustellen, sowie damit der Nutzer Eingaben bereitstellt, um das Bildgebungssystem zu kontrollieren, operative Parameter des Bildgebungssystems einzustellen, Probleme des Bildgebungssystems zu beheben, usw. In zumindest manchen Ausführungsformen umfasst das Bildgebungssystem auch einen Tachometer (Kodierer) 33, der benachbart zur Transferstraße 30 angeordnet ist und der benutzt werden kann, Fahrtrichtung 25 und/oder die Geschwindigkeit zu identifizieren, mit der Transferstraße 30 Objekte durch das Blickfeld bewegt.
  • 2 zeigt ein beispielhaftes Verfahren 200 zur Vorhersage der Stellung eines optischen Codes oder einer Gruppe auf Grundlage eines adaptiven Verfolgungsmodells, gemäß Gesichtspunkten der Erfindung. Spezifisch startet 202 der Prozess durch Bestimmen eines anfänglichen Verfolgungsmodells 204 zum Vorhersagen des Bereichs von nächsten möglichen Stellungen. Das Verfahren bestimmt die anfänglichen Eigenschaften und Stellung 206 des optischen Codes oder der Gruppe von optischen Codes und sagt einen Bereich von möglichen nächsten verfolgten optischen Code-(oder Gruppen-)Stellungen 208 vorher. Einzelheiten, wie das Verfahren den Bereich von möglichen nächsten optischen Codestellungen vorhersagt, werden unten gegeben. Das Verfahren identifiziert dann die optischen Codekandidaten, die Stellungen innerhalb des vorhergesagten Bereichs 210 haben, und bestimmt eine neue optische Codestellung, zum Beispiel durch Abgleichen der Eigenschaften der optischen Codekandidaten mit den Eigenschaften des verfolgten optischen Codes 212. Das Verfahren kann dann optional das Verfolgungsmodell 214 anpassen. Dieses Verfahren kann iterativ wiederholt werden, um nachfolgenden Bereich von Stellungen für einen bestimmten optischen Code oder Gruppe zu bestimmen.
  • Gemäß Gesichtspunkten der vorliegenden Erfindung können die offenbarten Systeme und Verfahren einen einzigen physischen linearen (Strichcode) oder 2D-Identifizierungscode/-symbol verfolgen, oder eine kollektive Anordnung solcher Symbole innerhalb eines oder mehr Bilder oder Blickfelder. Die offenbarten Systeme und Verfahren können optische Codes auf Grundlage von mindestens einem von einer Bewegungsrichtung (in Bildkoordinaten oder physikalischen Koordinaten), einer optischen Codegeschwindigkeit (in Bild- oder in physikalischen Koordinaten), eines Bereichs von Bewegung oder Verschiebung (zwischen Bildern, in Pixeln oder physischem Raum), einer Beschleunigung oder Verlangsamung eines optischen Codes, der Glattheit der Bewegung, der Rotationsgeschwindigkeit, Eigenschaften des einzelnen Systems und/oder dergleichen, verfolgen.
  • Gemäß Gesichtspunkten der vorliegenden Erfindung können Systemparameter Eigenschaften des optischen Lesesystems, z. B. des Kamerasystems, umfassen. Zum Beispiel kann das Kamerasystem mehrere Kameras umfassen. Alternativ kann das Kamerasystem eine Kamera mit einem Blickfelderweiterer umfassen, mit Eigenschaften, die genaue oder ungefähre Grenzen zwischen den Blickfeldern in aufgenommenen Bildern, genaue oder ungefähre Orientierung in aufgenommenen Bildern, jegliche Kalibrierung mit Pixel-zu-Pixel-Entsprechungsinformation umfassen können. Zusätzliche Kamerasystemparameter können relative Kamerapositionen und Kalibrierung der Kamera relativ zu anderen Kameras, in einem Mehrkamerasystem, relative Kamerapositionen relativ zum Förderband, z. B. Orientierung, Blickwinkel, Entfernung, Kalibrierung, die die Pixelgröße in Verbindung mit der Entfernung zwischen der Kamera und dem Förderband umfassen kann, und generell jegliche Beziehung zwischen der Förderebene und der Bildebene umfassen. Kamerakalibrierung kann ein Kartieren der Sensorbildpixel auf physischen Raum umfassen. Diese Kalibrierung kann Formen der Linse, Blickfelderweiterer und andere optische Verzerrung umfassen.
  • Andere Systemeigenschaften können Informationen über das Fördersystem umfassen, die zum Beispiel die Förderbandgeschwindigkeit (in Bildkoordinaten oder physikalischen Koordinaten), die Förderbandbreite und -länge umfassen können.
  • Die offenbarten Verfolgungssysteme und -verfahren können mit Objekten assoziierte Codes auf Grundlage von Code-bezogenen Eingaben verfolgen. Zum Beispiel kann das Verfolgungsmodell optische Codes auf Grundlage von Informationen über die Codebewegung verfolgen, während sich das Objekt zum Beispiel auf dem Förderband bewegt. Von der Kamera aufgenommene Bilder können einen Zeitstempel umfassen, der den Zeitpunkt angibt, zu dem das Bild aufgenommen wurde. Bildaufnahme gibt typischerweise den Zeitpunkt an, zu dem der Sensor belichtet wurde, aber kann den Zeitpunkt angeben, zu dem das Bild zum Speicher übertragen wurde, oder ein anderes konsistentes Ereignis innerhalb der Bildaufnahmesequenz. Die Information kann die Position und Geschwindigkeit des Codes, abgeleitet von den Kodiererablesungen, Zeitstempel von Bildern, die einen bestimmten Code umfassen, der durch das Verfolgungsmodell verfolgt wird, umfassen.
  • Codeeigenschaften, die durch das Verfolgungsmodell genutzt werden können, können auch unveränderliche Messungen oder Informationen, die sich auf die Identität oder Erscheinung des Codes unabhängig von seiner Stellung beziehen, umfassen. Diese Informationen können zum Beispiel den Codetyp umfassen, der durch Symbologie oder Codekategorie definiert werden kann, z. B. zweidimensionales Symbol, Mehrbreitenstrichcode, Zweibreitenstrichcode. Zusätzliche Informationen können Abmessungsattribute des Codes umfassen, zum Beispiel das Seitenverhältnis, die anfängliche Länge und Breite und jegliche bekannten Datenstranginformationen, einschließlich zum Beispiel der Stranglänge, dem Bereich der Charakterwerte, und die Charaktermerkmale, oder jegliche räumliche Beziehungen zu anderen Codes, falls es mehr als einen Code in einer Anordnung gibt.
  • Gemäß Gesichtspunkten der vorliegenden Erfindung können zusätzliche Parameter, die von den offenbarten Verfolgungssystemen und -verfahren verwendet werden können, Informationen über die einzelne Codestellung umfassen. Diese Informationen können zum Beispiel die Position, in jeglicher Art von Koordinaten (x, y) im Bild, der Mitte, der Ecke oder irgendeines identifizierbaren Punktes im Code umfassen. Typischerweise ist im Fall eines linearen Strichcodes die Ortung im Bild in der Richtung parallel zu den Strichen nicht genau, und ist bis auf einen halben Charakter genau in der Richtung senkrecht zu den Strichen. Für zweidimensionale Symbole ist die Ortung typischerweise bis auf ein halbes Modul in x und y genau. Zusätzliche Code-bezogene Informationen können die Orientierung des Codes im Bild, jegliche Schräge oder Verzerrung des Codes und die Größe des Codes, z. B. die scheinbare Modulgröße, umfassen. Scheinbare Modulgröße ist die Größe der kleinsten Codeeinheit, z. B. Strich oder zweidimensionales Modul, in Einheiten von Pixeln pro Modul (PPM).
  • 3 zeigt ein beispielhaftes Verfahren 300 zur Vorhersage eines Bereichs von möglichen Codestellungen auf Grundlage eines Verfolgungsmodells, gemäß Gesichtspunkten der Erfindung. Spezifisch beginnt 302 der Prozess durch Bestimmen eines anfänglichen Verfolgungsmodells 304 zur Vorhersage des Bereichs der nächsten möglichen Stellungen und Aufnehmen eines anfänglichen Blickfeldbildes 305. Das Verfahren bestimmt dann die anfänglichen verfolgten Codeeigenschaften und die Stellung im anfänglichen FOV-Bild 306, unter Verwendung beispielsweise von Symbolkandidat-Findealgorithmen. Findealgorithmen werden in der Literatur beschrieben, zum Beispiel in U.S.-Patent Nr. 4,948,955 , in „A Novel Method for Barcode Localization in Image Domain" von Bodnár et el., in "Automatic Real-Time Barcode Localization in Complex Scenes" von Zhang et al., "A Simple and Efficient Approach to Barcode Localization" von Kutiyanawala et al., "Barcode Localization Using a Bottom Hat Filter" von Juett et al. und "A simple and efficient aproach to barcode localization" by Kutiyanawala et al., die Inhalte aller sind hierin in ihrer Gesamtheit eingegliedert. An diesem Punkt ist es nicht notwendig, jeden Codekandidaten zu dekodieren, nur, ein Symbol als einen wahrscheinlichen Code zu identifizieren. Zudem können die offenbarten Verfahren und Systeme den Code verfolgen, selbst wenn nur ein Teil des Codes sichtbar ist, solange er als ein brauchbarer Code identifiziert werden kann.
  • Dann kann das offenbarte Verfahren einen Bereich von möglichen nächsten Stellungen 308 des verfolgten Codes vorhersagen, zum Beispiel auf Grundlage der gegenwärtigen Stellung des verfolgten Codes, optionalen Codebewegungseingaben, optionalen Systemeingaben und/oder dem Codeverfolgungsmodell. Gemäß Gesichtspunkten der vorliegenden Offenbarung kann der Bereich optional relative Wahrscheinlichkeiten von Stellungen innerhalb des vorhergesagten Bereichs umfassen. Das Verfahren kann dann das nächste FOV-Bild 309 aufnehmen und dann mögliche Codes im nächsten FOV-Bild identifizieren, die Stellungen innerhalb des vorhergesagten Stellungsbereichs 310 haben. Bei diesem Schritt kann das Verfahren falsche Kandidaten herausfiltern, zum Beispiel durch Suchen nach Kandidaten mit Hinweisen auf Striche, die Kandidaten verarbeiten, um Merkmale zu messen, zum Beispiel Kanten oder Hinweise auf Striche, die zum Abgleich gegen den verfolgten Code verwendet werden können, einschließlich Typ der Symbologie, Modulgröße, Länge, und versuchen, die Kandidaten zu dekodieren, um zusätzlich falsche Kandidaten zu identifizieren und zu entfernen und zusätzliche Informationen für übereinstimmende Codefragmente bereitzustellen.
  • Nach der Identifizierung möglicher Codes kann das Verfahren dann Eigenschaften von Codekandidaten mit verfolgten Codeeigenschaften abgleichen, um eine neue gegenwärtige Stellung des verfolgten optischen Codes 312 zu bestimmen. Zusätzlich kann bei diesem Schritt das Verfahren zwei oder mehr übereinstimmende Codekandidaten unter Verwendung von Stellungswahrscheinlichkeiten unterscheiden, und kann Stellung verwenden, um Arten zu unterscheiden, die Strangcharaktere eines verfolgten Strichcodes mit einem Kandidaten abzugleichen, z. B. wenn die Charakterverschiebung uneindeutig ist auf Grund von wiederholten Untersträngen.
  • Das Verfahren kann dann die Codeeigenschaften und/oder das Verfolgungsmodell 314 anpassen. Zum Beispiel kann das Verfahren das Codeverfolgungsmodell auf Grundlage des Fehlers zwischen der vorhergesagten Stellung des Codes und der tatsächlichen Stellung innerhalb der vorhergesagten Region anpassen. Das Verfahren kann die Codeeigenschaften zum Beispiel durch Kombinieren der dekodierten oder teilweise dekodierten Stränge und/oder gemessenen Merkmale für den Code anpassen. Schließlich kann das Verfahren optional verfolgte Codes in einem Blickfeld mit verfolgten Codes in einem anderen Blickfeld assoziieren, zum Beispiel durch Vergleichen von Codeeigenschaften oder durch Verwendung von Kamera- oder Blickfeldkalibrierungen. Dieses Verfahren kann iterativ wiederholt werden, um nachfolgenden Bereich von Stellungen für einen bestimmten Code zu bestimmen.
  • Beispiele von Verfolgungsmodellen
  • Die folgenden Beispiele von Verfolgungsmodellen werden nur zum Zweck der Veranschaulichung bereitgestellt und sind nicht beschränkend. Für jedes der folgenden Beispiele wird die physikalische Situation angegeben und die Parameter des Verfolgungsmodells werden diskutiert.
  • Gemäß Gesichtspunkten der vorliegenden Offenbarung können die offenbarten Systeme und Verfahren Codes verfolgen, die auf Schachteln angebracht sind, die sich auf einem Förderband in einem System mit einer einzigen Kamera bewegen, die ein einziges Blickfeld bereitstellt. Auf jeder Schachtel sind zwei lineare Strichcodes in einer „Lattenzaun”-Orientierung, und das Band bewegt sich vertikal (nach oben) im Verhältnis zur Kamera. Eine Lattenzaun-Orientierung ist eine, in der der Strichcode im Wesentlichen horizontal ist (Striche vertikal).
  • Das Verfolgungsmodell kann die Bewegungsrichtung, die minimale und maximale Bewegung zwischen Bildern und den maximalen Fehler in der vertikalen Bewegung (in Pixeln) verwenden, um einen Bereich von möglichen nächsten Codestellungen vorherzusagen. Das Verfolgungsmodell kann weiter annehmen, dass die nächste Codestellung unter einer Einheitsverteilung innerhalb des vorhergesagten Bereichs sein kann. Das anfängliche Verfolgungsmodell kann eines sein, in der die Bewegungsrichtung gleich 90 Grad ist, die minimale Bewegung 0 m/sec ist und die maximale Bewegung die Hälfte der Bildhöhe sein kann.
  • Eine einfache Vorhersage auf Grundlage eines beispielhaften Modells kann die nächste Position jedes Strichcodes identifizieren. Zum Beispiel kann das Modell vorhersagen, dass die „y”-Position entlang eines vertikalen Liniensegments liegen kann, das an den minimalen und maximalen Bewegungsentfernungen von der gegenwärtigen Position jedes Strichcodes beginnt bzw. endet, und die „x”-Position nicht mehr als den maximalen Fehler von der vertikalen Linie entfernt liegen kann. Eine mögliche Korrektur des Modells kann Ersetzen der Bewegungsrichtung im Modell durch den tatsächlich gemessenen Winkel zwischen den letzten beiden Positionen, oder möglicherweise den gleitenden Durchschnitt von Winkeln, umfassen.
  • Gemäß manchen Gesichtspunkten der vorliegenden Offenbarung können die offenbarten Systeme und Verfahren Codes verfolgen, die auf Schachteln angebracht sind, die sich zufällig auf einem Förderband bewegen, wo zum selben Zeitpunkt bis zu zwei Schachteln sichtbar sein können. Angenommen, dass das System eine einzelne Kamera mit einem Blickfelderweiterer und ohne Kalibrierungsinformation enthält, wie in in U.S. 8,646,890 beschrieben, das Förderband einen Positionskodierer hat, und das Förderband eine konstante Geschwindigkeit hat und nicht aufhört, Schachteln zu bewegen. Zusätzlich hat in diesem Beispiel jeder Code eine unbekannte Orientierung, die sich nicht ändert, während die Schachteln sich auf dem Förderband bewegen.
  • Die offenbarten Systeme und Verfahren können Informationen über den Kodierer (Förderbandposition), die relative Orientierung und Regionen von Blickfeldern in den aufgenommenen Bildern, einen Bereich von möglichen Schachtelhöhen, und Kamerakalibrierungsinformation, zum Beispiel in physikalischen Einheiten pro Pixel am Förderband und an der höchsten Schachtelhöhe, verwenden.
  • Das Verfolgungsmodell kann die Bewegungsrichtung, die Geschwindigkeit der Schachteln im Bild, Informationen über eine maximale Abweichung von der erwarteten Position verwenden, um einen Bereich von möglichen nächsten Codestellungen für jeden verfolgten Code in jedem Blickfeld vorherzusagen. Das Verfolgungsmodell kann auch eine Gauss'sche Wahrscheinlichkeit als eine Funktion der Entfernung von der erwarteten Position verwenden, um einen Bereich von möglichen nächsten Codestellungen vorherzusagen.
  • Das anfängliche Verfolgungsmodell kann eine Bewegungsrichtung gleich 90 Grad, eine maximale Abweichung gleich 20 Pixeln und, eine Geschwindigkeit im Bild gleich dem Durchschnitt der Geschwindigkeiten des Förderbandes und der maximalen Schachtelhöhe umfassen, jedes bestimmt durch die Verwendung der geeigneten Kamerakalibrierung, um die einer Kodiereinheit entsprechende Bewegung zu berechnen.
  • Eine einfache Vorhersage auf Grundlage eines beispielhaften Modells kann die nächste Position jedes Codes identifizieren. Zum Beispiel kann das Modell die nächste Position von Code durch Multiplizieren der Geschwindigkeit mal der Differenz zwischen dem gegenwärtigen und vorherigen Kodiererstand vorhersagen, mit einer Orientierung ähnlich zur Orientierung in den Codeeigenschaften. Die Wahrscheinlichkeit, dass der Code sich innerhalb des vorhergesagten Bereichs befindet, kann mit einer Gauss'schen Wahrscheinlichkeitsfunktion in Bezug auf die vorhergesagte Position bestimmt werden. Mögliche Korrekturen des Modells können Korrigieren der Orientierung des Symbols in den Codeeigenschaften durch Heranziehen eines gleitenden Durchschnitts von gemessenen Orientierungen und Korrigieren der Geschwindigkeit unter Verwendung eines gleitenden Durchschnitts der gemessenen Entfernung zwischen der vorherigen und gegenwärtigen Position, geteilt durch die Kodiererveränderung, umfassen.
  • Gemäß manchen Gesichtspunkten der vorliegenden Offenbarung können die offenbarten Systeme und Verfahren Codes verfolgen, die auf Schachteln angebracht sind, die von einem handgehaltenen Lesegerät oder Präsentationslesegerät ausgelesen werden, z. B. Lesegerät an einer Ladenkasse. In diesem Beispiel hat jede Schachtel einen einzelnen Strichcode, mit verwirrendem Text, und es gibt willkürliche aber glatte Positionsveränderungen von Code im Verhältnis zu der Kamera und unbekannte aber glatt variierende Codeorientierung und -geschwindigkeit.
  • Das Verfolgungsmodell kann getrennte und unabhängige Kalman-Filter für x- und y-Geschwindigkeiten und für Winkelgeschwindigkeit verwenden. Kalman-Filtern ist im Stand der Technik als ein Verfahren zur Zielverfolgung wohlbekannt. Ein Beispiel zur Verwendung von Kalman-Filtern zur Verfolgung kann gefunden werden in „Tracking Targets Using Adaptive Kalman Filtering" von Gutman, P., Velger, M., IEEE Transactions on Aerospace and Electronic Systems Bd. 26, Nr. 5: S. 691–699 (1990). Das anfängliche Verfolgungsmodell kann die Geschwindigkeit in den x- und y-Dimensionen beide gleich Null setzen, die Winkelgeschwindigkeit ebenfalls gleich Null, die Varianzmessungen für Geschwindigkeit auf einen hohen Wert, und die Varianzmessungen für Position auf etwas, das in der Größenordnung des Positionsmessfehlers ist (z. B. eine halbe Charakterbreite).
  • Eine einfache Vorhersage auf Grundlage eines beispielhaften Modells kann Modelle mit einer konstante Geschwindigkeit oder Beschleunigung verwenden, um die nächste Position des Codes zu bestimmen. Mögliche Verfolgungsmodellkorrekturen können einfach standardmäßiges Aktualisieren der Kalman-Filter-Varianzen umfassen.
  • Gemäß manchen Gesichtspunkten der vorliegenden Offenbarung können die offenbarten Systeme und Verfahren Etiketten, die an Schachteln angebracht sind, die sich zufällig auf dem Förderband bewegen. Jedes Etikett hat eine Ansammlung von gedruckten Strichcodes und zweidimensionalen Symbolen, wo manche Strichcodes und Symbole gestapelt sind, z. B. parallel zu anderen gedruckt. Die Etiketten können oben oder seitlich auf der Schachtel sein, und manche Etiketten sind auf anderen Etiketten. Das Förderband hat eine konstante Geschwindigkeit, kann aber periodisch anhalten. Die Kameras setzen mit einem schrägen Blickwinkel auf. Das optische System hat zwei Kameras, jede mit einem Blickfelderweiterer, und es gibt keine Kalibrierungsinformation. Jedes Etikett ist in einer unbekannten unabhängigen Orientierung, die sich glatt ändern kann, wenn die Schachtel sich an den Seiten des Förderbandes verfängt.
  • Die offenbarten Systeme und Verfahren können eine relative Orientierung und Regionen von Blickfeldern im Bild und den Zeitstempel jedes Bildes verwenden, um einen möglichen Bereich von Stellungen für ein Etikett vorherzusagen. Das Verfolgungsmodell kann weiter die Bewegungsrichtung des Etiketts in dem aufgenommenen Bild, die Geschwindigkeit des Etiketts in dem aufgenommenen Bild, die Winkelgeschwindigkeit des Etiketts, die maximale Abweichung von einer erwarteten Position und die maximale Winkelabweichung als einen Parameter verwenden. Das Verfolgungsmodell kann weiter eine Gauss'sche Wahrscheinlichkeit als eine Funktion der Entfernung von erwarteter Position und Winkelabweichung verwenden.
  • Das anfängliche Verfolgungsmodell kann aus einer Bewegungsrichtung gleich 90 Grad, mit einer 15-Grad-Unsicherheit, unbekannten Werten für die Geschwindigkeit und Winkelgeschwindigkeit im aufgenommenen Bild und einer maximalen Abweichung von 20 Pixeln bestehen. Das Modell kann auch eine räumliche Anordnung der Codes auf dem Etikett, wie in dem ersten Bild gemessen, in jedem Blickfeld annehmen.
  • Eine einfache Vorhersage auf Grundlage eines beispielhaften Modells kann die nächste Position der Etikettenmitte unter verschiedenen Annahmen identifizieren. Wenn Geschwindigkeit unbekannt ist, dann kann das Etikett irgendwo entlang des Liniensegments zwischen der vorherigen Etikettenmitte und der Kante des Blickfelds entlang der Bewegungsrichtung sein. Alternativ kann, wenn die Geschwindigkeit bekannt ist, die Etikettenmitte an einem Punkt auf dem Liniensegment sein, der in einer Entfernung liegt, die durch die Multiplikation der Geschwindigkeit mit der Differenz in den Zeitstempeln zwischen dem gegenwärtigen und vorherigen Bild bestimmt wird. Das Modell kann auch die Orientierung des nächsten Etiketts vorhersagen. Spezifisch kann, wenn die Winkelgeschwindigkeit unbekannt ist, das nächste Etikett jede Orientierung haben. Wenn die Winkelgeschwindigkeit bekannt ist, wird das Etikett in einem Winkel liegen, der durch die Multiplikation der Winkelgeschwindigkeit mit der Differenz in den Zeitstempeln zwischen dem gegenwärtigen und vorherigen Bild, und Addieren zum vorherigen Winkel, bestimmt wird.
  • Die Wahrscheinlichkeit, dass das Etikett sich innerhalb des vorhergesagten Bereichs von Stellungen befindet, kann durch die Gauss'sche Wahrscheinlichkeitsfunktion im Verhältnis zur vorhergesagten Position und Winkel bestimmt werden. Die vorhergesagten Positionen jedes der Codes auf dem Etikett können unter Verwendung der räumlichen Anordnung bestimmt werden. Mögliche Korrekturen, die am Modell angewendet werden könnten, können Bestimmen der Stellung des Etiketts durch Abgleichen der gefundenen räumlichen Anordnung von Codes (oder zumindest jener, die sichtbar sind) mit der ursprünglichen räumlichen Anordnung, Korrigieren der Orientierung eines Etiketts in den Codeeigenschaften durch Heranziehen eines gleitenden Durchschnitts von gemessenen Orientierungen, Korrigieren der Winkel- und linearen Geschwindigkeit unter Verwendung eines gleitenden Durchschnitts der gemessenen Entfernung zwischen der vorherigen und gegenwärtigen Position, geteilt durch die Zeitstempeländerung, und Korrigieren der räumlichen Anordnung durch Mitteln der gemessenen relativen Position und Orientierung jedes Codes in der Anordnung umfassen.
  • In bildbasierten automatischen Identifikationssystemen können die bildbasierten Lesegeräte es manchmal versäumen, einen optischen Code auf Grundlage der aufgenommenen Bilder auszulesen. Zum Beispiel können manche aufgenommenen Bilder keinen optischen Code enthalten. Die Kameras in modernen bildbasierten optischen Codelesegeräten operieren typischerweise bei einer hohen Frequenz. Wegen der hohen Rate der Aufnahme von Bildern können manche Bilder keinen optischen Code enthalten (z. B. kann ein Bild von einem Förderband oder von einer Schachtel sein, wie sie ins Blickfeld eintritt, oder einem Strichcode, der ins Blickfeld eintritt). Natürlich wird in jenen Fällen Analysieren des aufgenommenen Bildes keinen optischen Code innerhalb des Bildes identifizieren. In anderen Fällen kann ein aufgenommenes Bild einen optischen Code enthalten, der von dem bildbasierten System geortet werden kann oder auch nicht. Ferner könnte selbst in den Fällen, in denen ein optischer Code vom bildbasierten System geortet worden ist, das bildbasierte System daran scheitern, den optischen Code zu dekodieren.
  • Gemäß Gesichtspunkten der vorliegenden Erfindung können die offenbarten Systeme und Verfahren Bilder mit einem optischen Code im Bild identifizieren und können jene Bilder speichern. Dies kann geschehen, um Bildpufferung zu verbessern. Der optische Code in den Bildern kann entweder dekodiert werden oder auch nicht. Zusätzlich können die offenbarten Systeme und Verfahren sekundäre Bilder identifizieren, zum Beispiel Bilder, wo kein optischer Code innerhalb der Bilder geortet wurde. Die offenbarten Systeme und Verfahren können die gespeicherten Bilder sammeln und die Gründe für eine erfolglose Auslesung von optischen Codes bestimmen.
  • Typische optische Lesesysteme speichern und übertragen alle aufgenommenen Bilder auf eine Verarbeitungseinheit zu weiterer Verarbeitung, zum Beispiel zur Analyse der Gründe, warum ein bestimmter optischer Code nicht dekodiert hat. Jedoch haben jene Systeme begrenzte Bandbreite und begrenzten Speicherplatz für Bilder. Daher ist es unpraktisch, alle Bilder offline zur Verarbeitungseinheit zu übertragen oder alle aufgenommenen Bilder im Speicher des optischen Lesesystems zu speichern. Zusätzlich mögen nicht alle aufgenommenen Bilder nützlich für die Verarbeitungseinheit sein, die Gründe für den Dekodierungsfehlschlag zu identifizieren, daher können wichtige optische Lesegerätressourcen verschwendet werden, wenn jene Bilder übertragen oder gespeichert werden. Die offenbarten Systeme und Verfahren identifizieren nur einen Teilsatz der aufgenommenen Bilder, zum Beispiel um zu analysieren, warum ein bestimmter Code nicht dekodiert hat.
  • Gemäß manchen Gesichtspunkten der Offenbarung kann ein optisches Lesegerät innerhalb seines Sichtbereichs ein Objekt mit einem am Objekt angebrachten optischen Code haben. Spezifisch kann das optische Lesegerät mehrere Bilder oder Aufnahmen des Objekts aufnehmen. Aus dem gesamten Satz von aufgenommenen Bildern kann das offenbarte System zuerst die Bilder identifizieren, die einen optischen Code haben, und sie von anderen Bildern trennen, die keinen optischen Code haben.
  • Die offenbarten Verfahren können versuchen, die Bilder, die einen optischen Code enthalten, zu dekodieren. Die offenbarten Verfahren können manche der Bilder, die einen Code enthalten, erfolgreich dekodieren. Andere Bilder, die einen Code enthalten, aber nicht erfolgreich dekodiert wurden, können verwendet werden, um die Gründe für den Dekodierungsfehlschlag zu analysieren. Gemäß manchen Ausführungsformen der Erfindung können die Bilder mit einem Code, der nicht erfolgreich dekodiert hat, in zwei Gruppen getrennt werden. Die erste Gruppe kann Bilder von größtem Interesse enthalten und die zweite Gruppe kann redundante Bilder enthalten. Die Bilder in der ersten Gruppe und der zweiten Gruppe können an verschiedenen Speicherorten gespeichert werden. Die Bilder von größtem Interesse können zum Beispiel im internen Speicher gespeichert werden oder an einen entfernten Ort übertragen werden, zum Beispiel über das Internet oder lokale Netz. Der Speicherort, wo die zweite Gruppe von redundanten Bildern gespeichert wird, kann wiederverwendet werden, um andere Bilder zu speichern.
  • In typischen Anwendungen ist das optische Lesegerät konfiguriert, ein einziges Bild von größtem Interesse für jeden Code zu identifizieren, der identifiziert wurde aber nicht erfolgreich dekodiert wurde. Jedoch mag ein einziges Bild nicht in der Lage sein, geeignete Informationen über die Gründe zu liefern, warum ein bestimmter Code nicht dekodiert hat. Zum Beispiel kann ein Bild ein Fragment des Codes enthalten, während ein zweites ein anderes Fragment des Codes enthalten kann. Des Weiteren kann es zusätzlich zum eigentlichen Code andere Informationen geben, zum Beispiel einen Adressblock, der von einem einzelnen Bild nicht aufgenommen werden kann und für das Verarbeitungssystem auch nützlich sein kann. Gemäß manchen Gesichtspunkten der Offenbarung identifiziert das System eine Mehrzahl von Bildern von größtem Interesse, die von den redundanten Bildern auf Grundlage verschiedener Kriterien getrennt werden können, die zum Beispiel die Entfernung des Strichcodefragments von der Mitte des Blickfeldes, einen im Bild sichtbaren Symbolbruchteil, die Strichcodequalität, den Bruchteil dekodierbarer Charaktere, die Zuverlässigkeit dekodierbarer Charaktere, eine Bildqualität im Bereich des Strichcodes, usw. umfassen können. Gemäß Gesichtspunkten der Offenbarung kann das oben diskutierte Verfolgungsmodell verwendet werden, Bilder von größtem Interesse zu identifizieren. Zum Beispiel kann das Verfolgungsmodell verwendet werden, um zu identifizieren, welche Bilder demselben Code, der nicht dekodiert hat, entsprechen.
  • Die Bilder können den gesamten optischen Code haben oder sogar ein Fragment des optischen Codes. Der Satz interessanter Bildaufnahmen kann eine Bildaufnahme für jedes erfolglos dekodierte Symbol enthalten. Weiterhin werden die Bilder abgeglichen, um duplizierte Bilder, die den optischen Code haben, zu identifizieren.
  • Die offenbarten Systeme können mehr als ein optisches Lesegerät umfassen. Alle optischen Lesegeräte können konfiguriert sein, um die Objekte in ihrem Sichtbereich zu haben. Das System kann die von den verschiedenen optischen Lesegeräten aufgenommenen Bilder, die demselben Objekt entsprechen, synchronisieren. Falls es mehr als ein optisches Lesegerät im System gibt, können die optischen Lesegeräte in einer Master/Slave-Anordnung arbeiten. Das kann bei der Bildsynchronisierung helfen, zum Beispiel durch Teilen kompatibler Beleuchtung oder Vermeiden inkompatibler Beleuchtung. Zusätzlich kann das System in einer Master/Slave-Anordnung konsolidierte Datenergebnisse liefern, zum Beispiel wie in einem Mehrleser-Scantunnel.
  • Die offenbarten Lesegeräte können die Dekodierungsergebnisse und die Bildkandidaten, die die optischen Codes nicht dekodiert haben, abgleichen. Unter den Bildern, die das System erfolgreich dekodiert hat, können die offenbarten Systeme und Verfahren die Bilder analysieren, um das beste Bild zum Aufzeichnen und Speichern zu bestimmen. Zusätzlich bestimmt die offenbarten Systeme das beste Bild unter den Bildern, die nicht erfolgreich dekodiert haben.
  • Gemäß Gesichtspunkten der Offenbarung können die Bilder, die nicht erfolgreich dekodiert haben, verwendet werden, über die Gründe, warum die Dekodierung fehlgeschlagen hat, Rückmeldung zu geben. Zum Beispiel können mögliche Gründe, warum ein Bild nicht dekodiert hat, eine oder mehr Eigenschaften des Strichcodelesesystems und Eigenschaften des physischen Codes und benachbarten umfassen. Eigenschaften des optischen Lesegeräts, die einen Dekodierungsfehlschlag verursachen können, umfassen unzureichende Beleuchtung, ungleichförmige Beleuchtung, Sensorrauschen, Orientierung relativ zum Strichcode in hoher Perspektive, usw. Physikalische Eigenschaften des Strichcodes und der Szene, die einen Dekodierungsfehlschlag verursachen können, umfassen: die Codemarkierungsqualität oder Beschädigung nach Markierung, Verzerrung im angebrachten Symbol, unzureichende Ruhezone, zum Beispiel Merkmale oder Kanten zu nah zu den Start- und Stopp-Charakteren. Die Start- und Stopp-Charaktere sind Begrenzungscharaktere, auch Wächtermuster genannt, die am Anfang und Ende des Strichcodes vorkommen. Die Start- und Stopp-Charaktere können verwendet werden, um Lesegeräten zum Beispiel zu erlauben zu bestimmen, wo sie das Lesen anfangen und beenden sollen.
  • Gemäß manchen Gesichtspunkten der Offenbarung können die offenbarten Systeme auch eine Mehrzahl von Bildern identifizieren, die ein Code enthielten und erfolgreich dekodieren. Die Systeme können die Mehrzahl von Bildern, die erfolgreich dekodierten, zur weiteren Analyse an einen Prozessor übertragen. Zum Beispiel kann Prozessor die Codequalität in den Bildern, die erfolgreich dekodierten, analysieren. Unter den Bildern, die einen Code erfolgreich dekodierten, können die offenbarten Systeme die Bilder von größtem Interesse identifizieren, z. B. jene Bilder, die die meiste Information für die Analyse der Codequalität liefern könnten. Das Verfolgungsmodell kann verwendet werden, um zu identifizieren, welche Bilder demselben Code, der erfolgreich dekodiert wurde, entsprechen.
  • Gemäß manchen Ausführungsformen ist die Kamera und die Bildaufnahme durch das Lesegerät synchronisiert, so dass Beleuchtungslicht vom Auslesen zur Beleuchtung des Kamerabildes verwendet werden kann. Die Leseanordnung kommuniziert den Status des Auslesens, z. B. ob es ein gutes Auslesen oder ein schlechtes Auslesen gab, an die Kamera, um der Kamera einen gutes-Auslesen/schlechtes-Auslesen-Status zu liefern. Die Kamera kann dann die Bilder auf Grundlage des Auslesestatus speichern, übertragen oder verwerfen.
  • Die offenbarten Systeme können einen Echtzeit- und/oder historischen Überblick der Leistung des Systems bereitstellen, und jegliche aggregierten gesammelten Daten von einer Gruppe von Lesegeräten. Das offenbarte System kann auf einer verteilten Architektur gebaut sein, das die Netzwerkbelastung minimieren und Berechnung und Speicherung für eine große Anzahl von Lesegeräten & gesammelten Daten verteilen kann.
  • Die offenbarten Systeme können ein Datensammelmodul umfassen, das für das Sammeln von Ausleseleistungsdaten von einer Gruppe von Lesegeräten verantwortlich sein kann und auch Keine-Auslesung-Bilder sammeln kann. Historische Daten werden gespeichert, um es einem System zu erlauben zu untersuchen, wie sich die Ausleseleistung verändert hat und wie ein Eingriff in einen Kundenprozess (zum Beispiel Ersetzen eines Druckers) die Ausleseleistung beeinflussen kann. Ausleseleistung kann zum Beispiel durch den Dekodierungsertrag (Prozentzahl) gemessen werden. Zusätzliche Kriterien für Ausleseleistung können Metriken umfassen, die die Qualität oder Konfidenz der Strichcodedekodierung auswerten.
  • Die offenbarten Systeme können weiter ein Bildanalyse- und Klassifikationsmodul und ein Datensynchronisationsmodul umfassen. Das Bildanalyse- und Klassifikationsmodul kann die Analyse des einen oder mehr entsprechenden Bilder durchführen und eine Klassifikation für die Dekodierungsfehlschläge erzeugen. Dekodierungsfehlschläge können das Fehlen einer Schachtel während einer Auslösesequenz, das Fehlen eines Etiketts auf einer Schachtel, Fehlplatzierung des Etiketts, zum Beispiel wenn es von der Schachtel herunterhängt, und schlechte Druckqualität des Etiketts umfassen. Das Datensynchronisationsmodul kann für die Synchronisierung der Daten zwischen den verschiedenen Einheiten des Systems verantwortlich sein.
  • Ein beispielhaftes System, das Leistungsdaten und Bilder von einem oder mehr Codelesevorrichtungen sammelt, ist das COGNEX EXPLORER RTM.
  • Gemäß Gesichtspunkten der vorliegenden Erfindung können die offenbarten Systeme und Verfahren den Ertrag, zum Beispiel die erfolgreichen Auslesungen, des optischen Lesesystems verbessern. Der vorhergesagte Bereich von möglichen nächsten verfolgten Codestellungen werden verwendet, um die Dekodierungsversuche an den Codekandidaten zu aufzureihen. Zum Beispiel können Codes, die in vorhergehenden Bildern dekodiert wurden, später eingereiht oder vollständig ignoriert werden, wodurch Dekodierungskandidaten von anderen potenziellen Codes früher eingereiht werden. In Systemen wie den bereichsbasierten Kameras mit hoher Aufnahmerate, die für das Auslesen optischer Codes verwendet werden, ist die für das Dekodieren einzelner Bilder verfügbare Zeit begrenzt. In diesem Fall kann das Verbessern der Reihenfolge der Analyse der Codekandidaten (und Vermeiden unnötiger Verarbeitung von vorher dekodierten Symbolen) den Ertrag des optischen Lesesystems verbessern. Ähnlich kann der vorhergesagte Bereich von möglichen nächsten verfolgten Codestellungen verwendet werden, um die Reihenfolge von Codekandidaten zu verbessern, die nicht erfolgreich dekodiert wurden. Andere Verfahren zur Ordnung von Codekandidaten auf Grundlage des vorhergesagten Bereichs von möglichen nächsten verfolgten Codestellungen werden erwogen.
  • Der hierin beschriebene Gegenstand kann in digitaler elektronischer Schaltung oder in Computersoftware, -firmware oder -hardware implementiert werden, einschließlich der in dieser Beschreibung offenbarten strukturellen Mittel und strukturellen Äquivalenten davon, oder in Kombinationen von ihnen. Der hierin beschriebene Gegenstand kann als ein oder mehr Computerprogrammprodukte implementiert werden, wie etwa ein oder mehr in einem Informationsträger (z. B. in einer maschinenlesbaren Speichervorrichtung) verkörperte Computerprogramme, oder in einem propagierten Signal verkörpert sein, zur Ausführung durch oder Kontrolle des Betriebes von Datenverarbeitungsapparaten (z. B. einem programmierbaren Prozessor, einem Computer oder mehreren Computern). Ein Computerprogramm (auch bekannt als Programm, Software, Softwareanwendung oder Code) kann in jeder Form von Programmiersprache geschrieben sein, einschließlich kompilierter oder interpretierter Sprachen, und es kann in jeder Form eingerichtet sein, einschließlich als alleinstehendes Programm oder als ein Modul, eine Komponente, eine Subroutine oder andere für Verwendung in einer Rechenumgebung geeignete Einheit. Ein Computerprogramm entspricht nicht notwendig einer Datei. Ein Programm kann in einem Teil einer Datei gespeichert sein, die andere Programme oder Daten enthält, in einer einzelnen Datei, die dem fraglichen Programm gewidmet ist, oder in multiplen koordinierten Dateien (z. B. in Dateien, die ein oder mehr Module, Unterprogramme oder Teile von Code speichern). Ein Computerprogramm kann eingerichtet sein, um auf einem Computer oder auf mehreren Computern an einem Ort oder verteilt über mehrere Orte und verbunden durch ein Kommunikationsnetzwerk ausgeführt zu werden.
  • Die in dieser Beschreibung beschriebenen Prozesse und logischen Flüsse, einschließlich der Verfahrensschritte des hierin beschriebenen Gegenstands, können von einem oder mehr programmierbaren Prozessoren durchgeführt werden, die ein oder mehr Computerprogramme ausführen, die Funktionen des hierin beschriebenen Gegenstands durchführen, indem sie mit Eingabedaten arbeiten und Ausgabe erzeugen. Die Prozesse und logischen Flüsse können auch durchgeführt werden von, und Apparate des hierin beschriebenen Gegenstands können implementiert werden als, Spezialzweck-Schaltlogik, z. B. ein FPGA (feldprogrammierbarer Gate-Array) oder ein ASIC (anwendungsspezifischer integrierter Schaltkreis).
  • Für die Ausführung eines Computerprogramms geeignete Prozessoren umfassen beispielsweise sowohl Allgemein- als auch Spezialzweck-Mikroprozessoren und jeglichen einen oder mehr Prozessor von jeglicher Art von Digitalcomputer. Im Allgemeinen wird ein Prozessor Anweisungen und Daten von einem Nur-Lese-Speicher oder Schreib-Lese-Speicher oder beiden erhalten. Die wesentlichen Elemente eines Computers sind ein Prozessor zur Ausführung von Anweisungen und eine oder mehr Speichervorrichtungen zum Speichern von Anweisungen und Daten. Im Allgemeinen wird ein Computer auch umfassen, oder operativ verbunden sein um Daten zu erhalten von oder zu übertragen zu, oder beides, eine oder mehr Massenspeichervorrichtungen zum Speichern von Daten, z. B. magnetische, magnetoptische Platten oder optische Platten. Informationsträger, die geeignet sind, Computerprogramm-Anweisungen und Daten zu verkörpern, umfassen alle Formen von nichtflüchtigem Speicher, einschließlich beispielsweise Halbleiterspeichervorrichtungen, (z. B. EPROM, EEPROM und Flashspeichervorrichtungen); Magnetplatten, (z. B. interne Festplatten oder entnehmbare Platten); magnetoptische Platten; und optische Platten (z. B. CD- und DVD-Platten). Der Prozessor und der Speicher können durch Spezialzweck-Logikschaltkreise ergänzt werden und/oder darin eingegliedert sein.
  • Um Wechselwirkung mit einem Nutzer bereitzustellen, kann der hierin beschriebene Gegenstand implementiert sein auf einem Computer mit einem Anzeigegerät, z. B. einem CRT-(Kathodenstrahlröhre) oder LCD-(Flüssigkristallanzeige)Monitor, zur Darstellung von Informationen an den Nutzer und einer Tastatur und einer Zeigevorrichtung (z. B. einer Maus oder einem Trackball), mit denen der Nutzer dem Computer Eingabe liefern kann. Andere Arten von Vorrichtungen können auch verwendet werden, um Wechselwirkung mit einem Nutzer bereitzustellen. Zum Beispiel kann dem Nutzer bereitgestellte Rückmeldung jede Form von sensorischer Rückmeldung sein (z. B. visuelle Rückmeldung, auditive Rückmeldung oder taktile Rückmeldung), und Eingabe vom Nutzer kann in jeglicher Form empfangen werden, einschließlich akustischer, Sprach- oder taktiler Eingabe.
  • Der hierin beschriebene Gegenstand kann in einem Rechnersystem implementiert sein, das eine Back-End-Komponente (z. B. einen Datenserver), eine Middleware-Komponente (z. B. einen Anwendungsserver) und eine Front-End-Komponente (z. B. einen Klientencomputer mit einer graphischen Nutzerschnittstelle oder einen Webbrowser, durch den ein Nutzer mit einer Implementation des hierin beschriebenen Gegenstandes interagieren kann) umfasst, oder jegliche Kombination von solchen Back-End-, Middleware- und Front-End-Komponenten. Die Komponenten des Systems können durch jegliche Form oder Medium von digitaler Datenkommunikation verknüpft sein, z. B. ein Kommunikationsnetzwerk. Beispiele von Kommunikationsnetzwerken umfassen ein lokales Netzwerk („LAN”) oder ein Weitverkehrsnetz („WAN”), z. B. das Internet.
  • Es versteht sich, dass der offenbarte Gegenstand in seiner Anwendung nicht auf die Konstruktionsdetails und auf die Anordnungen der Komponenten beschränkt ist, die in der folgenden Beschreibung dargelegt oder den Zeichnungen veranschaulicht werden. Der offenbarte Gegenstand ist auch anderer Ausführungsformen fähig, und dass er auf verschiedene Weise praktiziert und ausgeführt wird. Auch versteht es sich, dass die hierin verwendete Phraseologie und Terminologie dem Zweck der Beschreibung dient und nicht als beschränkend angesehen werden sollte.
  • So werden die Fachleute einschätzen können, dass die Konzeption, auf der diese Offenbarung basiert, leicht als eine Grundlage verwendet werden kann, um andere Strukturen, Verfahren und Systeme zum Ausführen von verschiedenen Zwecken des offenbarten Gegenstands zu entwerfen. Es ist daher wichtig, dass die Ansprüche als solche äquivalente Konstruktionen umfassend angesehen werden, soweit sie nicht vom Geist und Umfang des offenbarten Gegenstands abweichen.
  • Obwohl der offenbarte Gegenstand in den vorangehenden beispielhaften Ausführungsformen beschrieben und veranschaulicht worden ist, versteht es sich, dass die vorliegende Offenbarung nur als Beispiel getätigt worden ist, und dass zahlreiche Änderungen in den Einzelheiten der Implementierung des offenbarten Gegenstands vorgenommen werden können, ohne vom Geist und Umfang des offenbarten Gegenstands abzuweichen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 8646690 [0021, 0021]
    • US 4948955 [0030]
    • US 8646890 [0038]
  • Zitierte Nicht-Patentliteratur
    • „A Novel Method for Barcode Localization in Image Domain” von Bodnár et el. [0030]
    • ”Automatic Real-Time Barcode Localization in Complex Scenes” von Zhang et al. [0030]
    • ”A Simple and Efficient Approach to Barcode Localization” von Kutiyanawala et al. [0030]
    • ”Barcode Localization Using a Bottom Hat Filter” von Juett et al. [0030]
    • ”A simple and efficient aproach to barcode localization” by Kutiyanawala et al. [0030]
    • „Tracking Targets Using Adaptive Kalman Filtering” von Gutman, P., Velger, M., IEEE Transactions on Aerospace and Electronic Systems Bd. 26, Nr. 5: S. 691–699 (1990) [0044]

Claims (24)

  1. Ein Verfahren zum Orten von an Objekten angebrachten Strichcodes umfassend: Empfangen, durch einen Prozessor, von einem ersten Bild eines an einem ersten Objekt angebrachten ersten Strichcodefragments, aufgenommen von einer Kamera zu einem ersten Zeitpunkt; Identifizieren, durch den Prozessor, einer ersten Position des ersten Strichcodefragments auf Grundlage des ersten Bildes; Empfangen, durch den Prozessor, eines zweiten Bildes eines zweiten Strichcodefragments, aufgenommen von der Kamera zu einem zweiten Zeitpunkt; Identifizieren, durch den Prozessor, einer zweiten Position des zweiten Strichcodefragments auf Grundlage des zweiten Bildes; Vorhersagen, durch den Prozessor, eines Bereichs möglicher Positionen des ersten Strichcodefragments zum zweiten Zeitpunkt auf Grundlage eines Verfolgungsmodells, das das erste Strichcodefragment auf Grundlage der ersten Position verfolgt; und Bestimmen, durch den Prozessor, dass das erste Strichcodefragment und das zweite Strichcodefragment einem selben auf einem ersten Objekt angebrachten Strichcode entsprechen, wenn die zweite Position innerhalb des Bereichs möglicher Positionen des ersten Strichcodefragments zum zweiten Zeitpunkt liegt.
  2. Das Verfahren aus Anspruch 1, wobei das Verfolgungsmodell das erste Strichcodefragment weiter auf Grundlage von mindestens einem von festen Beschränkungen, konfigurierbaren Beschränkungen, adaptiven Beschränkungen und Nutzerbeschränkungen verfolgt.
  3. Das Verfahren aus Anspruch 1, wobei das Verfolgungsmodell das erste Strichcodefragment weiter auf Grundlage von mindestens einem von zusätzlicher Information aus dem ersten aufgenommenen Bild und dem zweiten aufgenommenen Bild, Information abgeleitet von mindestens einer vorherigen Bildsequenz, einem Zeitintervall zwischen dem ersten Zeitpunkt und dem zweiten Zeitpunkt, einer Entfernung zwischen der ersten Position und der zweiten Position, Information abgeleitet von einer gegenwärtigen Bildsequenz, Bildkalibrierungsinformation, Bildskalierungsinformation, einem Zeitdifferenzial von Bildexpositionssequenz, Symbologie und Kamerabewegungsinformation verfolgt.
  4. Das Verfahren aus Anspruch 1, wobei das Verfolgungsmodell das erste Strichcodefragment weiter auf Grundlage von mindestens einem von einer Abschätzung von Bewegung in Bildkoordinaten oder einer Abschätzung von Bewegung in einem dreidimensionalen physikalischen Raum verfolgt.
  5. Das Verfahren aus Anspruch 1, wobei das Verfolgungsmodell das erste Strichcodefragment weiter auf Grundlage von mindestens einem von einer Position der Kamera, die das erste Bild und das zweite Bild aufnahm, einer Orientierung der Kamera, einer Kamerakalibrierung, einem Winkel der Kamera im Verhältnis zum ersten Objekt und einer Entfernung der Kamera vom ersten Objekt verfolgt.
  6. Das Verfahren aus Anspruch 1, weiter umfassend Kombinieren des ersten Strichcodefragments mit dem zweiten Strichcodefragment, falls das erste Strichcodefragment und das zweite Strichcodefragment demselben Strichcode entsprechen.
  7. Das Verfahren aus Anspruch 1, weiter umfassend Bestimmen, dass das erste Strichcodefragment und das zweite Strichcodefragment verschiedenen Objekten entsprechen, falls das erste Strichcodefragment und das zweite Strichcodefragment nicht demselben Strichcode entsprechen.
  8. Das Verfahren aus Anspruch 1, wobei das Verfolgungsmodell Objekte in einem Bildkoordinatensystem verfolgt.
  9. Das Verfahren aus Anspruch 1, wobei das Verfolgungsmodell Objekte verfolgt, die sich auf einem Förderband bewegen, wobei das Förderband die Objekte in einer ersten Fahrtrichtung bewegt.
  10. Das Verfahren aus Anspruch 9, wobei das Verfolgungsmodell Objekte weiter auf Grundlage von physikalischen Eigenschaften des Förderbandes verfolgt.
  11. Das Verfahren aus Anspruch 10, wobei die physikalischen Eigenschaften des Förderbandes mindestens eines von einer ersten Fahrtrichtung, einer Transferstraßengeschwindigkeit des Förderbandes, einer Länge des Förderbandes und einer Breite des Förderbandes umfassen.
  12. Verfahren zur Ortung von an Objekten angebrachten Strichcodes in einem System, das konfiguriert ist, das Blickfeld einer Szene zu erweitern, die von einer Kamera mit einem Bildsensor abgebildet wird, das Verfahren umfassend: Empfangen eines ersten Bildes, das von der Kamera zu einem ersten Zeitpunkt aufgenommen wurde, das erste Bild umfassend ein erstes Blickfeld und ein zweites Blickfeld, wobei das erste Blickfeld des ersten Bildes ein erstes Strichcodefragment abbildet und das zweite Blickfeld des ersten Bildes ein zweites Strichcodefragment abbildet; Identifizieren, auf Grundlage des ersten Bildes, einer ersten Position des ersten Strichcodefragments innerhalb des ersten Blickfelds des ersten Bildes; Identifizieren, auf Grundlage des ersten Bildes, einer ersten Position des zweiten Strichcodefragments innerhalb des zweiten Blickfelds des ersten Bildes; Empfangen eines zweiten Bildes, das von der Kamera zu einem zweiten Zeitpunkt aufgenommen wurde, das zweite Bild umfassend ein erstes Blickfeld und ein zweites Blickfeld, wobei das erste Blickfeld des zweiten Bildes ein drittes Strichcodefragment abbildet und das zweite Blickfeld des zweiten Bildes ein viertes Strichcodefragment abbildet; Identifizieren, auf Grundlage des zweiten Bildes, einer zweiten Position des dritten Strichcodefragments innerhalb des ersten Blickfelds des zweiten Bildes; Identifizieren, auf Grundlage des zweiten Bildes, einer zweiten Position des vierten Strichcodefragments innerhalb des zweiten Blickfelds des zweiten Bildes; Vorhersagen eines Bereichs möglicher Positionen des ersten Strichcodefragments zu dem zweiten Zeitpunkt auf Grundlage eines ersten Verfolgungsmodells, das das erste Strichcodefragment auf Grundlage der ersten Position des ersten Strichcodefragments verfolgt; Vorhersagen eines Bereichs möglicher Positionen des zweiten Strichcodefragments zu dem zweiten Zeitpunkt auf Grundlage eines zweiten Verfolgungsmodells, das das zweite Strichcodefragment auf Grundlage der ersten Position des zweiten Strichcodefragments verfolgt; Bestimmen, ob die zweite Position des dritten Strichcodefragments innerhalb des Bereichs der möglichen Positionen des ersten Strichcodefragments zum zweiten Zeitpunkt liegt; Bestimmen, ob die zweite Position des vierten Strichcodefragments innerhalb des Bereichs der möglichen Positionen des zweiten Strichcodefragments zum zweiten Zeitpunkt liegt; und Bestimmen, dass das erste Strichcodefragment, das zweite Strichcodefragment, das dritte Strichcodefragment und das vierte Strichcodefragment einem selben Strichcode entsprechen, wenn zu dem zweiten Zeitpunkt die zweite Position des dritten Strichcodefragments innerhalb des Bereichs der möglichen Positionen des ersten Strichcodefragments ist und die zweite Position des vierten Strichcodefragments innerhalb des Bereichs der möglichen Positionen des zweiten Strichcodefragments liegt.
  13. Das Verfahren aus Anspruch 12, wobei das erste Verfolgungsmodell und das zweite Verfolgungsmodell Strichcodefragmente weiter auf Grundlage von mindestens einem von festen Beschränkungen, konfigurierbaren Beschränkungen, adaptiven Beschränkungen und Nutzerbeschränkungen verfolgen.
  14. Das Verfahren aus Anspruch 12, wobei das erste Verfolgungsmodell und das zweite Verfolgungsmodell Strichcodefragmente weiter auf Grundlage von mindestens einem von zusätzlicher Information aus dem ersten aufgenommenen Bild und dem zweiten aufgenommenen Bild, Information abgeleitet von mindestens einer vorherigen Bildsequenz, einem Zeitintervall zwischen dem ersten Zeitpunkt und dem zweiten Zeitpunkt, einer Entfernung zwischen der ersten Position des ersten Strichcodefragments und der zweiten Position des ersten Strichcodefragments, einer Entfernung zwischen der ersten Position des zweiten Strichcodefragments und der zweiten Position des zweiten Strichcodefragments Information abgeleitet von einer gegenwärtigen Bildsequenz, Bildkalibrierungsinformation, Bildskalierungsinformation, einem Zeitdifferenzial von Bildexpositionssequenz, Symbologie und Kamerabewegungsinformation verfolgen.
  15. Das Verfahren aus Anspruch 12, wobei das erste Verfolgungsmodell und das zweite Verfolgungsmodell Strichcodefragmente weiter auf Grundlage von mindestens einem von einer Abschätzung von Bewegung in Bildkoordinaten oder einer Abschätzung von Bewegung in einem dreidimensionalen physikalischen Raum verfolgen.
  16. Das Verfahren aus Anspruch 12, wobei das erste Verfolgungsmodell und das zweite Verfolgungsmodell Strichcodefragmente weiter auf Grundlage von mindestens einem von einer Position der Kamera, die das erste Bild und das zweite Bild aufnahm, einer Orientierung der Kamera, einer Kamerakalibrierung, einem Winkel der Kamera im Verhältnis zum ersten Objekt und einer Entfernung der Kamera vom ersten Objekt verfolgen.
  17. Das Verfahren aus Anspruch 12, weiter umfassend Kombinieren des ersten Strichcodefragments, des zweiten Strichcodefragments, des dritten Strichcodefragments und des vierten Strichcodefragments, falls die Strichcodefragmente demselben Strichcode entsprechen.
  18. Das Verfahren aus Anspruch 12, weiter umfassend Bestimmen, dass die Strichcodefragmente verschiedenen Objekten entsprechen, falls die Strichcodefragmente nicht demselben Strichcode entsprechen.
  19. Das Verfahren aus Anspruch 12, wobei das Verfolgungsmodell Objekte in einem Bildkoordinatensystem verfolgt.
  20. Das Verfahren aus Anspruch 12, wobei das Verfolgungsmodell Objekte verfolgt, die sich auf einem Förderband bewegen, wobei das Förderband die Objekte in einer ersten Fahrtrichtung bewegt.
  21. Das Verfahren aus Anspruch 20, wobei das Verfolgungsmodell Objekte weiter auf Grundlage von physikalischen Eigenschaften des Förderbandes verfolgt.
  22. Das Verfahren aus Anspruch 21, wobei die physikalischen Eigenschaften des Förderbandes mindestens eines von einer ersten Fahrtrichtung, einer Transferstraßengeschwindigkeit des Förderbandes, einer Länge des Förderbandes und einer Breite des Förderbandes umfassen.
  23. Ein System zum Orten von an Objekten angebrachten Strichcodes umfassend: eine Kamera, die konfiguriert ist, Bilder von an Objekten angebrachten Strichcodes aufzunehmen; und einen Prozessor in Kommunikation mit der Kamera, konfiguriert um: ein erstes Bild eines an einem ersten Objekt angebrachten ersten Strichcodefragments zu empfangen, das von der Kamera zu einem ersten Zeitpunkt aufgenommen wurde; eine erste Position des ersten Strichcodefragments auf Grundlage des ersten Bildes zu identifizieren; ein zweites Bild eines zweiten Strichcodefragments zu empfangen, das von der Kamera zu einem zweiten Zeitpunkt aufgenommen wurde; eine zweite Position des zweiten Strichcodefragments auf Grundlage des zweiten Bildes zu identifizieren; einen Bereich möglicher Positionen des ersten Strichcodefragments zum zweiten Zeitpunkt auf Grundlage eines Verfolgungsmodells, das das erste Strichcodefragment auf Grundlage der ersten Position verfolgt, vorherzusagen, und zu bestimmen, dass das erste Strichcodefragment und das zweite Strichcodefragment einem selben an einem ersten Objekt angebrachten Strichcode entsprechen, wenn die zweite Position innerhalb des Bereichs der möglichen Positionen des ersten Strichcodefragments zum zweiten Zeitpunkt liegt.
  24. Ein System zum Orten von an Objekten angebrachten Strichcodes, das System konfiguriert, ein Blickfeld einer Szene zu erweitern, die von einer Kamera mit einem Bildsensor aufgenommen wurde, das System umfassend: die Kamera, die konfiguriert ist, Bilder von an Objekten angebrachten Strichcodes aufzunehmen; und einen Prozessor in Kommunikation mit der Kamera, konfiguriert um: ein erstes Bild zu empfangen, das von der Kamera zu einem ersten Zeitpunkt aufgenommen wurde, das erste Bild umfassend ein erstes Blickfeld und ein zweites Blickfeld, wobei das erste Blickfeld des ersten Bildes ein erstes Strichcodefragment abbildet und das zweite Blickfeld des ersten Bildes ein zweites Strichcodefragment abbildet; auf Grundlage des ersten Bildes eine erste Position des ersten Strichcodefragments innerhalb des ersten Blickfelds des ersten Bildes zu identifizieren; auf Grundlage des ersten Bildes eine erste Position des zweiten Strichcodefragments innerhalb des zweiten Blickfelds des ersten Bildes zu identifizieren; ein zweites Bild zu empfangen, das von der Kamera zu einem zweiten Zeitpunkt aufgenommen wurde, das zweite Bild umfassend ein erstes Blickfeld und ein zweites Blickfeld, wobei das erste Blickfeld des zweiten Bildes ein drittes Strichcodefragment abbildet und das zweite Blickfeld des zweiten Bildes ein viertes Strichcodefragment abbildet; auf Grundlage des zweiten Bildes eine zweite Position des dritten Strichcodefragments innerhalb des ersten Blickfelds des zweiten Bildes zu identifizieren; auf Grundlage des zweiten Bildes eine zweite Position des vierten Strichcodefragments innerhalb des zweiten Blickfelds des zweiten Bildes zu identifizieren; einen Bereich von möglichen Positionen des ersten Strichcodefragments zum zweiten Zeitpunkt auf Grundlage eines ersten Verfolgungsmodells vorherzusagen, das das erste Strichcodefragment auf Grundlage der ersten Position des ersten Strichcodefragments verfolgt; einen Bereich von möglichen Positionen des zweiten Strichcodefragments zum zweiten Zeitpunkt auf Grundlage eines zweiten Verfolgungsmodells vorherzusagen, das das zweite Strichcodefragment auf Grundlage der ersten Position des zweiten Strichcodefragments verfolgt; zu bestimmen, ob die zweite Position des dritten Strichcodefragments innerhalb des Bereichs der möglichen Positionen des ersten Strichcodefragments zum zweiten Zeitpunkt liegt; zu bestimmen, ob die zweite Position des vierten Strichcodefragments innerhalb des Bereichs der möglichen Positionen des zweiten Strichcodefragments zum zweiten Zeitpunkt liegt; und zu bestimmen, dass das erste Strichcodefragment, das zweite Strichcodefragment, das dritte Strichcodefragment und das vierte Strichcodefragment einem selben Strichcode entsprechen, wenn zum zweiten Zeitpunkt die zweite Position des dritten Strichcodefragments innerhalb des Bereichs der möglichen Positionen des ersten Strichcodefragments liegt und die zweite Position des vierten Strichcodefragments innerhalb des Bereichs der möglichen Positionen des zweiten Strichcodefragments liegt.
DE102015219544.9A 2014-10-09 2015-10-08 System und Verfahren zur Verfolgung optischer Codes Pending DE102015219544A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/510,689 2014-10-09
US14/510,689 US9836635B2 (en) 2014-10-09 2014-10-09 Systems and methods for tracking optical codes

Publications (1)

Publication Number Publication Date
DE102015219544A1 true DE102015219544A1 (de) 2016-04-14

Family

ID=55644360

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015219544.9A Pending DE102015219544A1 (de) 2014-10-09 2015-10-08 System und Verfahren zur Verfolgung optischer Codes

Country Status (4)

Country Link
US (2) US9836635B2 (de)
CN (2) CN112507750A (de)
DE (1) DE102015219544A1 (de)
HK (1) HK1224061A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018211072A1 (de) * 2017-05-18 2018-11-22 Ssi Schäfer Automation Gmbh (At) Vorrichtung und verfahren zum steuern eines materialflusses an einem materialfluss-knotenpunkt

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10210369B2 (en) 2010-12-23 2019-02-19 Cognex Corporation Mark reader with reduced trigger-to-decode response time
US9836635B2 (en) 2014-10-09 2017-12-05 Cognex Corporation Systems and methods for tracking optical codes
DE102015107730B4 (de) * 2015-05-18 2020-07-23 Hmgeb Holding B.V. Blisterband-Inspektionsvorrichtung
CN107679529B (zh) 2016-08-01 2019-12-24 杭州海康威视数字技术股份有限公司 一种物流包裹图片处理方法、装置及系统
EP3507572B1 (de) * 2016-08-31 2022-10-19 Topcon Positioning Systems, Inc. Vorrichtung und verfahren zur fahrzeugpositionierung
US10185857B2 (en) * 2017-06-14 2019-01-22 Canon Information And Imaging Solutions, Inc. Devices, systems, and methods for reading barcodes
US10521871B2 (en) * 2017-07-12 2019-12-31 Fanuc Corporation Robot system
US10140497B1 (en) * 2017-09-12 2018-11-27 Symbol Technologies, Llc Methods and system for reading barcodes captured on multiple images
US10607047B2 (en) * 2017-12-06 2020-03-31 Cognex Corporation Local tone mapping for symbol reading
US10846561B1 (en) 2020-04-01 2020-11-24 Scandit Ag Recognition and selection of discrete patterns within a scene or image
DE102018119691A1 (de) * 2018-08-14 2020-02-20 Ifm Electronic Gmbh Kamerasystem zur Erfassung von Kodierungen
AT521845B1 (de) * 2018-09-26 2021-05-15 Waits Martin Verfahren zur Fokuseinstellung einer Filmkamera
US11605177B2 (en) * 2019-06-11 2023-03-14 Cognex Corporation System and method for refining dimensions of a generally cuboidal 3D object imaged by 3D vision system and controls for the same
US11335021B1 (en) 2019-06-11 2022-05-17 Cognex Corporation System and method for refining dimensions of a generally cuboidal 3D object imaged by 3D vision system and controls for the same
US11600018B2 (en) * 2019-10-25 2023-03-07 Cognex Corporation Boundary estimation systems and methods
CN112766007A (zh) * 2019-11-06 2021-05-07 联策科技股份有限公司 智能读码定位系统与方法
US11216628B2 (en) * 2020-04-01 2022-01-04 Scandit Ag High-speed scanning of optical patterns using a digital camera
US11295163B1 (en) 2020-04-01 2022-04-05 Scandit Ag Recognition of optical patterns in images acquired by a robotic device
US11514665B2 (en) 2020-04-01 2022-11-29 Scandit Ag Mapping optical-code images to an overview image
US11087105B1 (en) 2020-05-15 2021-08-10 Scandit Ag Performance improvements for recognition of optical patterns in images
US11328140B2 (en) * 2020-04-23 2022-05-10 Zebra Technologies Corporation Method for accurate object tracking with color camera in multi planar scanners
US11244147B2 (en) 2020-05-15 2022-02-08 Scandit Ag Optical data exchange while preserving social distancing
US11403477B1 (en) 2020-05-15 2022-08-02 Scandit Ag Image exposure performance improvements for recognition of optical patterns
US11922271B1 (en) 2020-05-15 2024-03-05 Scandit Ag Virtual screen standby mode for mobile device camera
US11290643B1 (en) 2020-06-26 2022-03-29 Scandit Ag Efficient digital camera image acquisition and analysis
US11417001B1 (en) 2020-07-27 2022-08-16 Scandit Ag Detecting discrete optical patterns using depth estimation
EP4222674A1 (de) * 2020-09-30 2023-08-09 United States Postal Service System und verfahren zur verbesserung der artikelabtastraten in einem verteilungsnetzwerk
EP4246369A4 (de) * 2020-11-30 2024-02-28 Huawei Technologies Co., Ltd. Verfahren und vorrichtung zur codeabtastung
US11495036B1 (en) 2021-01-29 2022-11-08 Scandit Ag Segmenting images for optical character recognition
CN113111677B (zh) * 2021-06-16 2021-11-16 浙江华睿科技有限公司 一种条码读取方法、装置、设备和介质
US11314959B1 (en) 2021-06-30 2022-04-26 Datalogic Ip Tech S.R.L. System and method for identification and quantification of types of failure in automated reading of barcodes
US11880738B1 (en) * 2021-08-17 2024-01-23 Scandit Ag Visual odometry for optical pattern scanning in a real scene
US20230102634A1 (en) * 2021-09-29 2023-03-30 Zebra Technologies Corporation Method of creating an optimized/adaptive roi based on detection of barcode location in the fov
US11557136B1 (en) 2022-02-23 2023-01-17 Scandit Ag Identity document verification based on barcode structure

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4948955A (en) 1988-12-22 1990-08-14 The Boeing Company Barcode location determination
US8646890B1 (en) 2013-02-08 2014-02-11 Jetbest Corporation Opening and closing structure of ink cartridge
US8646690B2 (en) 2012-02-06 2014-02-11 Cognex Corporation System and method for expansion of field of view in a vision system

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR940002697A (ko) * 1992-07-13 1994-02-19 시모야마 도시로오 바 코드 주사 스티치
US5252814A (en) * 1992-08-17 1993-10-12 Ncr Corporation Multi-scanner checkout counter using digitizer panel to determine X-Y location of scanned items
US5477042A (en) * 1993-06-01 1995-12-19 Metamedia Corporation 2-D bar code scanner/decoder having a redundancy canceller
JPH096891A (ja) * 1995-06-21 1997-01-10 Asahi Optical Co Ltd データシンボル読み取り装置およびデータシンボル読み取りシステム
DE19734031A1 (de) * 1997-08-06 1999-02-11 Sick Ag Verfahren und Vorrichtung zum Lesen eines aus einer vorgegebenen Anzahl von Codeelementen bestehenden Strichcodes
JP3607131B2 (ja) * 1999-05-26 2005-01-05 株式会社デンソー 情報コード画像取込装置、光学情報読取装置及び画像取込タイミング設定システム
US6954544B2 (en) * 2002-05-23 2005-10-11 Xerox Corporation Visual motion analysis method for detecting arbitrary numbers of moving objects in image sequences
WO2005013182A1 (en) * 2003-07-01 2005-02-10 Accu-Sort Systems Inc. System and method for associating machine readable information and dimensioning data for conveyor borne packages
DE602006017812D1 (de) * 2005-03-17 2010-12-09 British Telecomm Verfahren zur verfolgung von objekten in einer videosequenz
US7383994B2 (en) * 2005-05-03 2008-06-10 Datalogic Scanning, Inc. Methods and systems for forming images of moving optical codes
CN100373393C (zh) * 2005-06-30 2008-03-05 中国科学院自动化研究所 基于运动估计的扫描指纹图像重构方法
EP1927038A2 (de) * 2005-09-23 2008-06-04 Braintech Canada, Inc. System und verfahren zur visuellen verfolgung
US7549585B2 (en) * 2006-08-03 2009-06-23 Ncr Corporation Methods and apparatus for preventing improper scans by a bar code scanner
US8086036B2 (en) * 2007-03-26 2011-12-27 International Business Machines Corporation Approach for resolving occlusions, splits and merges in video images
US7929804B2 (en) * 2007-10-03 2011-04-19 Mitsubishi Electric Research Laboratories, Inc. System and method for tracking objects with a synthetic aperture
WO2009085233A2 (en) * 2007-12-21 2009-07-09 21Ct, Inc. System and method for visually tracking with occlusions
US8812226B2 (en) * 2009-01-26 2014-08-19 GM Global Technology Operations LLC Multiobject fusion module for collision preparation system
US8116527B2 (en) * 2009-10-07 2012-02-14 The United States Of America As Represented By The Secretary Of The Army Using video-based imagery for automated detection, tracking, and counting of moving objects, in particular those objects having image characteristics similar to background
EP2357608B1 (de) * 2009-12-28 2012-11-21 Softkinetic Software Verfolgungsverfahren
CN101872423A (zh) * 2010-05-27 2010-10-27 天津大学 一种生产线上运动目标追踪方法
CN101882212B (zh) * 2010-06-01 2012-12-12 福建新大陆电脑股份有限公司 一种条码图像的获取方法
JP5847183B2 (ja) * 2010-10-01 2016-01-20 エフ ホフマン−ラ ロッシュ アクチェン ゲゼルシャフト 光学式バーコードの取り込み装置および方法
EP2668612B1 (de) * 2011-01-24 2016-01-20 Datalogic ADC, Inc. Tunnel- oder portalscanner sowie abtastverfahren für eine automatisierte kasse
US8668150B2 (en) * 2011-03-17 2014-03-11 United States Postal Service Systems, methods, and apparatus for overhead scanning of images in a manual distribution environment
WO2012129267A1 (en) * 2011-03-21 2012-09-27 Nemo Equipment Inc. Pressure shower
JP5102410B2 (ja) * 2011-03-22 2012-12-19 パナソニック株式会社 移動体検出装置および移動体検出方法
US8582821B1 (en) * 2011-05-23 2013-11-12 A9.Com, Inc. Tracking objects between images
US8740081B2 (en) * 2011-11-03 2014-06-03 Cognex Corporation Method and apparatus for ordering code candidates in image for decoding attempts
AU2011253910B2 (en) * 2011-12-08 2015-02-26 Canon Kabushiki Kaisha Method, apparatus and system for tracking an object in a sequence of images
US8908915B2 (en) * 2012-02-13 2014-12-09 National Tsing Hua University Devices and methods for tracking moving objects
US8733656B2 (en) * 2012-05-22 2014-05-27 Cognex Corporation Code and part associating method and apparatus
KR101330334B1 (ko) * 2012-07-05 2013-11-15 엘에스산전 주식회사 무선 진단 모듈 및 이를 이용한 무선 진단 시스템
CN103294979B (zh) * 2013-05-21 2016-08-03 苏州斯普锐智能系统有限公司 基于多个线性成像拍照系统的全方位条码扫描设备及方法
US9836635B2 (en) 2014-10-09 2017-12-05 Cognex Corporation Systems and methods for tracking optical codes

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4948955A (en) 1988-12-22 1990-08-14 The Boeing Company Barcode location determination
US8646690B2 (en) 2012-02-06 2014-02-11 Cognex Corporation System and method for expansion of field of view in a vision system
US8646890B1 (en) 2013-02-08 2014-02-11 Jetbest Corporation Opening and closing structure of ink cartridge

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
"A Novel Method for Barcode Localization in Image Domain" von Bodnár et el.
"A Simple and Efficient Approach to Barcode Localization" von Kutiyanawala et al.
"A simple and efficient aproach to barcode localization" by Kutiyanawala et al.
"Automatic Real-Time Barcode Localization in Complex Scenes" von Zhang et al.
"Barcode Localization Using a Bottom Hat Filter" von Juett et al.
"Tracking Targets Using Adaptive Kalman Filtering" von Gutman, P., Velger, M., IEEE Transactions on Aerospace and Electronic Systems Bd. 26, Nr. 5: S. 691-699 (1990)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018211072A1 (de) * 2017-05-18 2018-11-22 Ssi Schäfer Automation Gmbh (At) Vorrichtung und verfahren zum steuern eines materialflusses an einem materialfluss-knotenpunkt
US11321548B2 (en) 2017-05-18 2022-05-03 Ssi Schäfer Automation Gmbh (At) Device and method for controlling a material flow at a material flow nod point

Also Published As

Publication number Publication date
HK1224061A1 (zh) 2017-08-11
US9836635B2 (en) 2017-12-05
US10628648B2 (en) 2020-04-21
US20180157882A1 (en) 2018-06-07
CN105512587B (zh) 2020-10-09
US20160104021A1 (en) 2016-04-14
CN112507750A (zh) 2021-03-16
CN105512587A (zh) 2016-04-20

Similar Documents

Publication Publication Date Title
DE102015219544A1 (de) System und Verfahren zur Verfolgung optischer Codes
Zhou et al. Robust vehicle detection in aerial images using bag-of-words and orientation aware scanning
DE102014206704B4 (de) Aktualisierung der kalibrierung einer verkehrskamera unter verwendung einer szenenanalyse
DE102011117585B4 (de) Systeme und Verfahren zum Verfolgen von Objekten
CN104809437B (zh) 一种基于实时视频的车辆检测与跟踪方法
DE112011103690T5 (de) Erkennung und Verfolgung sich bewegender Objekte
US9607220B1 (en) Image-based vehicle speed estimation
DE102013216041A1 (de) Videobasierte Fahrzeuggeschwindigkeitsschätzung anhand von Bewegungsvektoren in Videostreams
DE112018000605T5 (de) Informationsverarbeitungsvorrichtung, Datenverwaltungsvorrichtung, Datenverwaltungssystem, Verfahren und Programm
DE102015206178A1 (de) Ein Videoverfolgungsbasiertes Verfahren zur automatischen Reihung von Fahrzeugen in Drivethrough-Anwendungen
EP1395852A1 (de) Verfahren zur bereitstellung von bildinformationen
WO2013023904A1 (de) Messgerät zur bestimmung der räumlichen lage eines messhilfsinstruments
DE102014216794A1 (de) Robuste und recheneffiziente videobasierte Objektverfolgung in kontrollierten Bewegungsumgebungen
DE112010004767T5 (de) Punktwolkedaten-Verarbeitungsvorrichtung, Punktwolkedaten-Verarbeitungsverfahren und Punktwolkedaten-Verarbeitungsprogramm
EP4137901A1 (de) Auf tiefenlernen basierendes echtzeit-prozessüberwachungssystem und verfahren dafür
JP2008046903A (ja) 対象個数検出装置および対象個数検出方法
DE102018205879A1 (de) Verfahren, Vorrichtung und computerlesbares Speichermedium mit Instruktionen zur Verarbeitung von Sensordaten
DE10154861A1 (de) Verfahren zur Bereitstellung von Bildinformationen
DE112017008101T5 (de) Autonome roboter und verfahren zum betreiben derselben
DE102014105567A1 (de) Verfahren zur Verfolgung von Objekten unter Verwendung hyperspektraler Bilder
Zhao et al. Real-world trajectory extraction from aerial videos-a comprehensive and effective solution
EP3543901B1 (de) Vorrichtung und verfahren zur robusten ermittlung der position, ausrichtung, identität und ausgewählter zustandsinformationen von objekten
DE102019202901A1 (de) Fußgängerverfolgung unter Verwendung eines Tiefensensornetzwerks
DE112022002520T5 (de) Verfahren zur automatischen Kalibrierung von Kameras und Erstellung von Karten
Yao An effective vehicle counting approach based on CNN

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication