DE202012102113U1 - Optoelectronic code reader - Google Patents

Optoelectronic code reader Download PDF

Info

Publication number
DE202012102113U1
DE202012102113U1 DE201220102113 DE202012102113U DE202012102113U1 DE 202012102113 U1 DE202012102113 U1 DE 202012102113U1 DE 201220102113 DE201220102113 DE 201220102113 DE 202012102113 U DE202012102113 U DE 202012102113U DE 202012102113 U1 DE202012102113 U1 DE 202012102113U1
Authority
DE
Germany
Prior art keywords
code
image data
codes
evaluation unit
area
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.)
Expired - Lifetime
Application number
DE201220102113
Other languages
German (de)
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.)
Sick AG
Original Assignee
Sick AG
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 Sick AG filed Critical Sick AG
Priority to DE201220102113 priority Critical patent/DE202012102113U1/en
Publication of DE202012102113U1 publication Critical patent/DE202012102113U1/en
Anticipated expiration legal-status Critical
Expired - Lifetime 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/146Methods for optical code recognition the method including quality enhancement steps
    • G06K7/1491Methods for optical code recognition the method including quality enhancement steps the method including a reconstruction step, e.g. stitching two pieces of bar code together to derive the full bar code

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Electromagnetism (AREA)
  • General Health & Medical Sciences (AREA)
  • Toxicology (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)

Abstract

Optoelektronischer Codeleser (10) mit einem Lichtempfangselement (20) zur Umwandlung von Empfangslicht in Bilddaten sowie mit einer Auswertungseinheit (22), die dafür ausgebildet ist, Codebereiche (14, 40) in den Bilddaten aufzufinden und Codeinformationen aus den Codebereichen (14, 40) auszulesen, dadurch gekennzeichnet, dass die Auswertungseinheit (22) dafür ausgebildet ist, in den Bilddaten einen ersten Codebereich (14, 40) und einen zweiten Codebereich (14, 40) aufzufinden, die Bilddaten aus dem ersten Codebereich (14, 40) und dem zweiten Codebereich (14, 40) unter der Annahme, dass darin zueinander redundante Codes (40) enthalten sind, zu einem gemeinsamen Code (46) zu kombinieren und dann den gemeinsamen Code (46) zu decodieren, um die Codeinformationen zu erhalten.Optoelectronic code reader (10) with a light receiving element (20) for converting received light into image data and with an evaluation unit (22) which is designed to find code areas (14, 40) in the image data and code information from the code areas (14, 40) read out, characterized in that the evaluation unit (22) is designed to find a first code area (14, 40) and a second code area (14, 40) in the image data, the image data from the first code area (14, 40) and the second code area (14, 40) on the assumption that codes (40) which are redundant to one another are contained therein to form a common code (46) and then to decode the common code (46) in order to obtain the code information.

Description

Die Erfindung betrifft einen optoelektronischen Codeleser s nach dem Oberbegriff von Anspruch 1. The invention relates to an optoelectronic code reader s according to the preamble of claim 1.

Die verbreitesten Codeleser sind Barcodescanner, welche einen Barcode oder Strichcode mit einem Laserlesestrahl quer zum Code abtasten. Sie werden an Supermarktkassen, zur automatischen Paketidentifikation, Sortierung von Postsendungen oder bei der Gepäckabfertigung in Flughäfen und in anderen Logistikanwendungen häufig eingesetzt. Weitere Anwendungen umfassen Qualitäts- oder Teilekontrollen in Fertigungsprozessen. Mit der Weiterentwicklung der digitalen Kameratechnologie werden Barcodescanner zunehmend durch kamerabasierte Codeleser abgelöst. Statt Codebereiche abzuscannen, nimmt ein kamerabasierter Codeleser mit Hilfe eines CCD-Chips Bilder der Objekte mit den darauf befindlichen Codes auf. Kamerabasierte Codeleser kommen problemlos auch mit anderen Codearten als eindimensionalen Strichcodes zurecht, die wie ein Matrixcode auch zweidimensional aufgebaut sind und mehr Informationen zur Verfügung stellen. The most common code readers are bar code scanners which scan a bar code or bar code with a laser read beam across the code. They are often used in supermarket cash registers, automatic parcel identification, mail sorting or baggage handling in airports and other logistics applications. Other applications include quality or parts controls in manufacturing processes. With the advancement of digital camera technology, barcode scanners are increasingly replaced by camera-based code readers. Instead of scanning code areas, a camera-based code reader uses a CCD chip to take pictures of the objects with the codes on them. Camera-based code readers can easily cope with code types other than one-dimensional barcodes, which, like a matrix code, are also two-dimensional and provide more information.

Dabei werden herkömmlich die von der Bildverarbeitung segmentierten Regionen potentieller Codekandidaten sequentiell einer Decoderstufe übergeben. Die Decoderstufe wandelt diese Region über ein Abtastgitter oder eine Projektion in eine binarisierte zweidimensionale Bitmatrix um, aus der wiederum die in dem Symbol enthaltene Originalnachricht extrahiert oder decodiert wird. Conventionally, the regions of potential code candidates segmented by the image processing are transferred sequentially to a decoder stage. The decoder stage converts this region via a sampling grid or a projection into a binarized two-dimensional bit matrix, from which in turn the original message contained in the symbol is extracted or decoded.

Die Bilddaten der zu lesenden Codes sind im realen Betrieb von Störungen überlagert. Durch geschickte Wahl der Codierung können beim Auslesen Fehler bis zu einem gewissen Grad korrigiert werden. Bei starker Zerstörung des Codebereichs kann die maximale Fehlerkorrekturmöglichkeit des Symbols überschritten werden. Solche Codes sind somit absolut unlesbar. Ein Beispiel für derartige Störungen sind sogenannte Finger in den Coderegionen, also Leiterbahnen auf Wafern. The image data of the codes to be read are superimposed during real operation of faults. By clever choice of coding errors can be corrected to a certain extent when reading out. If the code area is severely destroyed, the maximum error correction capability of the symbol can be exceeded. Such codes are therefore completely unreadable. An example of such disturbances are so-called fingers in the code regions, ie printed conductors on wafers.

In vielen Fällen ist der Code mehrfach in einem von der Kamera aufgenommenen Bild oder in einer Bildsequenz vorhanden. Beispielsweise ist der gleiche Code mehrfach auf eine Leiterplatte oder ein sonstiges Objekt aufgedruckt und dadurch in dem Bild mehrfach vorhanden. In einer anderen wichtigen Anwendungsgruppe befinden sich die Code tragenden Objekte relativ zu dem Codeleser in Bewegung und werden mehrfach aufgenommen. Dies geschieht beispielsweise in einem sogenannten Lesetunnel, in dem Objekte an einem oder mehreren fest montierten Codelesern vorbeigefördert werden. Der Code ist dann in mehreren nacheinander aufgenommenen Bildern mit einem der Relativbewegung entsprechenden Versatz enthalten. In many cases, the code exists multiple times in an image captured by the camera or in a sequence of images. For example, the same code is printed multiple times on a printed circuit board or other object and thereby multiple times in the image. In another important application group, the code-bearing objects are in motion relative to the code reader and are recorded multiple times. This happens, for example, in a so-called reading tunnel, in which objects are conveyed past one or more permanently mounted code readers. The code is then contained in several consecutively recorded images with an offset corresponding to the relative movement.

Im Stand der Technik erfolgen die Decodierversuche aber stets ohne Betrachtung der bereits zuvor ausgewerteten oder noch zu segmentierenden Codekandidatenregionen. Die grundsätzlich vorhandene Coderedundanz wird somit nicht erkannt und zumindest nicht genutzt. In the prior art, however, the decoding attempts always take place without consideration of the code candidate regions which have already been evaluated or are yet to be segmented. The basically existing code redundancy is thus not recognized and at least not used.

Die EP 1 096 416 B1 offenbart eine Coderekonstruktion bei eindimensionalen Codes. Es ist denkbar, dass die Scanlinien in einem ungünstigen Winkel zu dem eindimensionalen Code stehen, so dass keine Scanlinie den gesamten Code quert. Dann wird eine vollständige Erfassung der Codeinformation durch überlappendes Zusammenfügen („stitching“) mehrerer Einzelscans erreicht. In den Überlappungsbereichen, wo mehrere Teillesungen identischer Codeinformation verfügbar sind, kann eine Mittelung oder ein Mehrheitsentscheid durchgeführt werden, um festzulegen, welche Einzelinformation für die Decodierung Verwendung finden soll. Da diese überlappende Auswertung nur an Schnittstellen der Einzelscans vorgenommen wird, ist die Korrektur von Störungen bei der Erfassung der Codes unzureichend. Das Problem von Teilerfassungen stellt sich außerdem für kamerabasierte Codeleser und zweidimensionale Codes nicht, weil hier keine Winkelabhängigkeit gegeben ist, beziehungsweise die relative Orientierung der Codes in den Bilddaten durch Bildverarbeitung korrigiert werden kann. The EP 1 096 416 B1 discloses a code reconstruction in one-dimensional codes. It is conceivable that the scan lines are at an unfavorable angle to the one-dimensional code, so that no scan line traverses the entire code. Then complete detection of the code information is achieved by overlapping stitching of several individual scans. In the overlap areas, where multiple subsets of identical code information are available, an averaging or majority decision can be made to determine which item of information to use for decoding. Since this overlapping evaluation is performed only at interfaces of the individual scans, the correction of errors in the detection of the codes is insufficient. In addition, the problem of partial acquisitions does not arise for camera-based code readers and two-dimensional codes because no angle dependence is given here, or the relative orientation of the codes in the image data can be corrected by image processing.

Es ist daher Aufgabe der Erfindung, eine erfolgreiche Codelesung auch bei stark zerstören Codes zu ermöglichen. It is therefore an object of the invention to enable a successful code reading even with heavily destructive codes.

Diese Aufgabe wird durch einen optoelektronischen Codeleser nach Anspruch 1 elöst. Dabei geht die Erfindung von dem Grundgedanken aus, den Codeinhalt trotz einer Zerstörung des Codes, der über der Kapazität der Fehlerkorrekturen des Decodierers liegt, mit Hilfe der vorhandenen Coderedundanz noch zu lesen. Dazu sucht die Auswertungseinheit in einem Bild oder in einer Bildsequenz zur Decodierung des Codes in einem ersten Codebereich nach einem weiteren zweiten Codebereich, von dem aufgrund der Lage oder zeitlichen Abfolge angenommen werden kann, dass es sich um einen redundanten Code handelt. Die Bilddaten in dem ersten und zweiten Codebereich werden dann unter Ausnutzung der Redundanz miteinander kombiniert, um Fehlerstellen auszugleichen. Erst der daraus entstehende gemeinsame Code, in dem die Fehlerstellen verringert oder sogar beseitigt sind, wird dann decodiert. This object is achieved by an optoelectronic code reader according to claim 1. The invention is based on the basic idea that the code content can still be read despite the destruction of the code, which lies above the capacity of the error corrections of the decoder, with the aid of the existing code redundancy. For this purpose, the evaluation unit searches in an image or in an image sequence for decoding the code in a first code area for a further second code area from which it can be assumed on the basis of the position or chronological sequence that it is a redundant code. The image data in the first and second code areas are then combined with each other by utilizing the redundancy to compensate for defects. Only the resulting common code, in which the flaws are reduced or even eliminated, is then decoded.

Die Erfindung hat den Vorteil, dass durch Ausnutzung von Coderedundanzen die Leserate eines Codelesers besonders bei schwierigem Bildmaterial oder beim Lesen in Bewegung erhöht werden kann, wenn der gleiche Codeinhalt mehrfach in einem Bild oder einer Bildsequenz vorhanden ist. Die jeweils korrekten Codeinhalte können durch Kombination zusammengesetzt werden, die insbesondere in Form einfachster logischer Operationen implementiert sein kann. Damit werden auch Codes erfassbar, die im herkömmlichen sequentiellen Einzeldecodierverfahren aufgrund der Begrenzungen der Fehlerkorrekturverfahren eines Decoders nicht gelesen werden könnten. The invention has the advantage that, by exploiting code redundancy, the read rate of a code reader is increased, especially in the case of difficult image material or when reading in motion can if the same code content exists multiple times in an image or image sequence. The respective correct code contents can be composed by combination, which can be implemented in particular in the form of simplest logical operations. This also makes it possible to detect codes that could not be read in the conventional sequential single-decoding method due to the limitations of the error correction method of a decoder.

Der Codeleser ist bevorzugt als kamerabasierter Codeleser ausgebildet, wobei das Lichtempfangselement ein matrix- oder zeilenförmiger Bildsensor ist. Der Bildsensor weist dabei beispielsweise eine Vielzahl zu einer Zeile oder einer Matrix angeordneten Lichtempfangselemente oder Pixel in CCD- oder CMOS-Technologie auf. Obwohl Bilddaten grundsätzlich auch mit Hilfe eines abtastenden Strahls eines Codescanners erfasst werden können, lässt sich über einen Bildsensor wesentlich einfacher ein der digitalen Verarbeitung zugängliches Bild erzeugen. The code reader is preferably designed as a camera-based code reader, wherein the light receiving element is a matrix or line-shaped image sensor. In this case, the image sensor has, for example, a multiplicity of light-receiving elements or pixels in CCD or CMOS technology arranged to form a line or a matrix. Although image data can basically also be acquired with the aid of a scanning beam of a code scanner, it is much easier to generate an image that is accessible to digital processing via an image sensor.

Die Auswertungseinheit ist bevorzugt dafür ausgebildet, Codebereiche mit zweidimensionalen Codes aufzufinden und zweidimensionale Codes zu decodieren. In einem zweidimensionalen Code lässt sich wesentlich mehr Information auf gleicher Fläche unterbringen als in einem Barcode. Es ist eine Reihe von Standards für zweidimensionale Codes bekannt. The evaluation unit is preferably designed to find code areas with two-dimensional codes and to decode two-dimensional codes. In a two-dimensional code, much more information can be accommodated on the same surface than in a barcode. There are a number of standards known for two-dimensional codes.

Die Bilddaten weisen bevorzugt ein Bild mit mehreren Codebereichen auf. Das betrifft also Anwendungen, in denen die Objekte den gleichen Code redundant mehrfach tragen. Das ist aber ohnehin nicht unüblich, um Lesungen aus verschiedenen Perspektiven zu unterstützen. The image data preferably has an image with several code areas. This applies to applications in which the objects carry the same code redundantly multiple times. This is not uncommon anyway, to support readings from different perspectives.

Die Bilddaten weisen in einer bevorzugten Alternative mehrere Bilder mit Codebereichen auf. Die redundanten Codes sind hier also auf verschiedene Bilder verteilt. Entsprechende Bildsequenzen entstehen insbesondere, wenn dasselbe codetragende Objekt in verschiedenen Bewegungsstadien mehrfach aufgenommen wird, wie etwa bei der Codeerfassung an einem Förderband oder in einem Lesetunnel. Die redundanten Codes sind in solchen Anwendungen längst vorhanden, werden aber üblicherweise nicht oder jedenfalls nur für voneinander unabhängige sequentielle Decodierversuche ohne Ausnutzung der Redundanz über einer Verknüpfung mehrerer Bilder genutzt. The image data comprises a plurality of images with code regions in a preferred alternative. The redundant codes are thus distributed to different images. Corresponding image sequences arise in particular when the same code-carrying object is recorded several times in different stages of motion, such as during code detection on a conveyor belt or in a reading tunnel. The redundant codes have long existed in such applications, but are usually not or at least used only for independent sequential decoding attempts without exploiting the redundancy over a combination of multiple images.

Die Auswertungseinheit ist bevorzugt dafür ausgebildet, die Bilddaten und insbesondere die Codebereiche zu binarisieren. Es entsteht dabei ein Schwarz-Weiß-Bild, was für das Lesen der meisten Codetypen ausreicht. Störungen in Grauwertbildern durch unterschiedliche Helligkeiten werden durch die Binarisierung beseitigt. Außerdem kann die durch Binarisierung entstehende Bitmatrix leichter mit einfachen bitlogischen Operationen bearbeitet werden. Intelligente Binarisierungsalgorithmen sind in der Lage, eine Fehlzuordnung von dunkeln und hellen Pixeln weitgehend zu vermeiden. The evaluation unit is preferably designed to binarize the image data and in particular the code regions. This creates a black and white image, which is sufficient for reading most types of code. Disturbances in greyscale images due to different brightnesses are eliminated by the binarization. In addition, the bitmatrix resulting from binarization can be more easily manipulated with simple bit-logic operations. Intelligent binarization algorithms are able to largely avoid misregistration of dark and light pixels.

Die Auswertungseinheit ist bevorzugt dafür ausgebildet, die Codebereiche zu negieren. Dabei werden also nach der Binarisierung die Bitwerte vertauscht, so dass aus hellen Pixeln dunkle Pixel werden und umgekehrt. Für die Kombination von Codebereichen kann das negierte Bild der bessere Ausgangspunkt sein als das ursprüngliche Bild. The evaluation unit is preferably designed to negate the code areas. Thus, after the binarization, the bit values are interchanged so that bright pixels become dark pixels and vice versa. For the combination of code areas, the negated picture may be the better starting point than the original picture.

Die Auswertungseinheit ist bevorzugt dafür ausgebildet, Codebereiche oder negierte Codebereiche mittels logischem UND oder mittels logischem ODER zu einem gemeinsamen Code zu kombinieren. Die Verarbeitung ist einfach und extrem schnell, aber dennoch in der Lage, die aufgrund einer Zerstörung der fehlenden Information des einen Codebereichs aus dem anderen Codebereich zu rekonstruieren. The evaluation unit is preferably designed to combine code areas or negated code areas by means of logical AND or by means of logical OR to form a common code. The processing is simple and extremely fast, but still capable of reconstructing those due to a destruction of the missing information of one code area from the other code area.

Die Auswertungseinheit ist bevorzugt dafür ausgebildet, den ersten Codebereich und den zweiten Codebereich mittels mindestens einer von vier bitlogischen Operationen zu kombinieren, nämlich:

  • – durch logische UND-Verknüpfung der binarisierten Bilddaten des ersten Codebereichs und des zweiten Codebereichs
  • – durch logische ODER-Verknüpfung der binarisierten Bilddaten des ersten Codebereichs und des zweiten Codebereichs
  • – durch logische UND-Verknüpfung der negierten binarisierten Bilddaten des ersten Codebereichs und des zweiten Codebereichs
  • – durch logische ODER-Verknüpfung der negierten binarisierten Bilddaten des ersten Codebereichs und des zweiten Codebereichs.
The evaluation unit is preferably designed to combine the first code area and the second code area by means of at least one of four bit-logical operations, namely:
  • By logically ANDing the binarized image data of the first code area and the second code area
  • By logically ORing the binarized image data of the first code area and the second code area
  • By logically ANDing the negated binarized image data of the first code area and the second code area
  • By logically ORing the negated binarized image data of the first code area and the second code area.

Alle diese Operationen sind schnell und auf einfacher Hardware implementierbar. Je nach Eigenschaften der Codes und der Zerstörungen ist eine bestimmte Auswahl der genannten bitlogischen Operationen besonders geeignet für die Rekonstruktion der Codeinformation aus den redundanten Codebereichen. All these operations are fast and implementable on simple hardware. Depending on the characteristics of the codes and the destructions, a specific selection of the mentioned bit-logical operations is particularly suitable for the reconstruction of the code information from the redundant code areas.

Die Auswertungseinheit ist bevorzugt dafür ausgebildet, alle vier bitlogischen Operationen auszuführen und die jeweils resultierenden gemeinsamen Codes zu decodieren. Die bitlogischen Operationen können dabei parallel zueinander oder nacheinander ausgeführt werden. Indem das Ergebnis von allen diesen vier bitlogischen Operationen ermittelt wird, werden keine bestimmten Eigenschaften der Polarität der Codes und der Zerstörung unterstellt. Dabei bedeutet Polarität des Codes, ob ein dunkler Code auf hellem Grund gesucht wird oder umgekehrt, und entsprechend Polarität der Zerstörung, ob diese durch einen dunkeln oder einen hellen Bereich verursacht ist, also beispielsweise durch Bildlücken oder Übersteuerungsbereiche. Prinzipiell reicht es, wenn die Decodierung nach einer der genannten bitlogischen Operationen erfolgreich ist. Es kann dann auf die weiteren bitlogischen Operationen mit nachfolgendem Decodierversuch verzichtet werden. Alternativ wird irgend eine der erfolgreichen Decodierungen als Ergebnis verwendet, oder es findet eine gegenseitige Plausibilisierung oder Ergänzung der Decodierversuche statt. The evaluation unit is preferably designed to execute all four bit-logic operations and to decode the respectively resulting common codes. The bit-logical operations can be carried out parallel to each other or one after the other. By determining the result of all these four bit-logic operations, no particular polarity characteristics of the codes and destruction are assumed. The polarity of the code means that a darker one Code is searched on a light background or vice versa, and according to polarity of destruction, whether it is caused by a dark or a bright area, so for example by gaps in the image or override areas. In principle, it is sufficient if the decoding succeeds after one of the mentioned bit-logical operations. It is then possible to dispense with the further bit-logical operations with subsequent decoding attempt. Alternatively, any one of the successful decodes is used as the result, or a mutual plausibility check or supplement to the decoding attempts takes place.

Die Auswertungseinheit ist bevorzugt dafür ausgebildet, bei Kenntnis der Polarität der Codes und der Polarität von Zerstörungen der Codes nur die eine entsprechende bitlogische Operation auszuführen und nur den einen daraus resultierenden gemeinsamen Code zu decodieren. Damit kann gezielt zur Beschleunigung der Auswertung nur die eine passende bitlogische Operation durchgeführt und ausgewertet werden. Als Beispiel sei bekannt, dass die Codes dunkel auf hellem Hintergrund sind und dass die wesentliche Ursache für Zerstörungen in Störlicht liegt, also helle Zerstörungen repariert werden sollen. Dann werden die Codes durch die binäre „0“ repräsentiert und die Zerstörungen durch die binäre „1“. Die passende bitlogische Operation ist dann eine ODER-Verknüpfung der negierten binarisierten Bilddaten. Auf diese Weise werden wie gewünscht und erforderlich die dunkeln Codebereiche in die helle Zerstörung hinein übertragen. Ganz analog kann auf einfache Weise für jede Kombination der Polaritäten von Code und Zerstörung die passende bitlogische Operation gefunden werden. The evaluation unit is preferably designed to execute only the one corresponding bit-logical operation with knowledge of the polarity of the codes and the polarity of destruction of the codes and to decode only the one common code resulting therefrom. In order to accelerate the evaluation, only the appropriate bit-logical operation can be carried out and evaluated. As an example, it is known that the codes are dark on a light background and that the main cause of destruction is in stray light, so light destruction should be repaired. Then the codes are represented by the binary "0" and the destructions by the binary "1". The appropriate bit-logical operation is then an OR of the negated binarized image data. In this way, as desired and necessary, the dark code areas are transmitted into the light destruction. Similarly, the appropriate bit-logic operation can be easily found for any combination of polarities of code and destruction.

Die Auswertungseinheit ist bevorzugt dafür ausgebildet, bei Kenntnis der Polarität der Codes oder der Polarität von Zerstörungen der Codes nur die zwei entsprechenden bitlogischen Operationen auszuführen und die jeweils resultierenden gemeinsamen Codes zu decodieren. Hier liegen also weniger Informationen über die Polaritäten vor. Deshalb muss noch eine zusätzliche zweite bitlogische Operation ausgeführt werden, um beide Szenarien der unbekannten Polarität abzudecken. The evaluation unit is preferably designed to execute only the two corresponding bit-logical operations with knowledge of the polarity of the codes or the polarity of destruction of the codes and to decode the respectively resulting common codes. So here is less information about the polarities. Therefore, an additional second bit-logic operation must be performed to cover both unknown polarity scenarios.

Die Auswertungseinheit ist bevorzugt dafür ausgebildet, zunächst zu versuchen, die Bilddaten des ersten Codebereichs und/oder des zweiten Codebereichs für sich zu decodieren und nur falls dies scheitert, einen gemeinsamen Code zu bilden und zu decodieren. Die Kombination redundanter Codebereiche und der anschließende Decodierversuch des entstehenden gemeinsamen Codes werden also nur ausgeführt, wenn zuvor ein einfacher Decodierversuch gescheitert ist, der nur einen einzigen Codebereich nutzt. Das ist dann vorteilhaft, wenn stark zerstörte Codes die Ausnahme bleiben, weil dann das aufwändigere Verfahren nur selten gebraucht wird. Alternativ kann jeweils sofort und direkt die Lesung über redundante kombinierte Codebereiche erfolgen. Man erspart sich damit den vorgelagerten einfachen Leseversuch, dafür muss aber die etwas aufwändigere Lesung über kombinierte Codebereiche stets durchgeführt werden. Information geht gegenüber dem einfachen Leseversuch nicht verloren, wenn die vier bitlogischen Operationen angewandt werden, da zumindest eine dieser Operationen die Codebereiche auch dann korrekt verknüpft, wenn keine größeren Zerstörungen vorliegen. The evaluation unit is preferably designed to first attempt to decode the image data of the first code area and / or of the second code area separately and only if this fails to form a common code and to decode. The combination of redundant code areas and the subsequent decoding attempt of the resulting common code are thus executed only if previously a simple decoding attempt has failed, which uses only a single code area. This is advantageous if heavily destroyed codes remain the exception, because then the more complex process is rarely needed. Alternatively, the reading can take place immediately and directly via redundant combined code areas. This saves you the preliminary simple reading attempt, but the more complex reading over combined code areas always has to be done. Information is not lost compared to the simple read attempt when the four bit-logic operations are applied, since at least one of these operations correctly associates the code areas even if there are no major destructions.

Die Erfindung wird nachstehend auch hinsichtlich weiterer Merkmale und Vorteile beispielhaft anhand von Ausführungsformen und unter Bezug auf die beigefügte Zeichnung näher erläutert. Die Abbildungen der Zeichnung zeigen in: The invention will be explained in more detail below with regard to further features and advantages by way of example with reference to embodiments and with reference to the accompanying drawings. The illustrations of the drawing show in:

1 eine schematische Schnittdarstellung eines kamerabasierten Codelesers; 1 a schematic sectional view of a camera-based code reader;

2 eine schematische Übersichtsdarstellung eines Codelesers an einem Förderband mit codetragenden Objekten in Relativbewegung zu dem Codeleser; 2 a schematic overview of a code reader on a conveyor belt with code-bearing objects in relative movement to the code reader;

3a eine Darstellung eines Codes mit einer Zerstörung am Beispiel eines Datamatrix-Codes, dessen Informationsblöcke rein schematsich gezeigt sind; 3a a representation of a code with a destruction using the example of a data matrix code, the information blocks are shown purely schematichich;

3b eine Darstellung eines Codes gemäß 3a mit einer Zerstörung an einer anderen Stelle des Codes; und 3b a representation of a code according to 3a with destruction elsewhere in the code; and

3c eine Darstellung eines gemeinsamen Codes, der aus einer Kombination der Codes gemäß 3a und 3b entsteht und in dem die Zerstörung kompensiert ist. 3c a representation of a common code consisting of a combination of codes according to 3a and 3b arises and in which the destruction is compensated.

1 zeigt eine schematische Schnittdarstellung eines kamerabasierten Codelesers 10. Die Erfindung wird anhand des Beispiels des kamerabasierten Codelesers 10 beschrieben, obwohl ebenso vorstellbar ist, dass Bilddaten mit einem anderen Lichtempfänger gewonnen werden, etwa durch Abtastung mit einem Lesestrahl. 1 shows a schematic sectional view of a camera-based code reader 10 , The invention is based on the example of the camera-based code reader 10 Although it is also conceivable that image data is obtained with another light receiver, such as by scanning with a read beam.

Der Codeleser 10 erfasst einen Aufnahmebereich 12, in dem sich zu lesende Codes 14 befinden können. Das Licht aus dem Aufnahmebereich 12 wird durch ein Aufnahmeobjektiv 16 empfangen, in dem nur eine dargestellte Linse 18 die Aufnahmeoptik repräsentiert. Ein Bildsensor 20, beispielsweise ein CCD- oder CMOS-Chip mit einer Vielzahl von zu einer Zeile oder einer Matrix angeordneten Pixelelementen, erzeugt Bilddaten des Aufnahmebereichs 12 und gibt diese als Rohbild oder Eingangsbild an eine als Ganzes mit Bezugszeichen 22 gekennzeichnete Auswertungseinheit weiter. Für eine bessere Erfassung des Codes 14 kann der Codeleser mit einer nicht dargestellten aktiven Beleuchtung ausgerüstet sein. The code reader 10 captures a recording area 12 in which are codes to read 14 can be located. The light from the recording area 12 is through a taking lens 16 received, in which only one lens shown 18 represents the recording optics. An image sensor 20 For example, a CCD or CMOS chip having a plurality of pixel elements arranged in a row or a matrix generates image data of the recording area 12 and gives these as raw image or input image to as a whole with reference numerals 22 marked evaluation unit on. For a better capture of the code 14 the code reader can be equipped with an active illumination, not shown.

Die Auswertungseinheit 22 ist auf einem oder mehreren digitalen Bausteinen implementiert, beispielsweise Mikroprozessoren, ASICs, FPGAs oder dergleichen, die auch ganz oder teilweise außerhalb des Codelesers 10 vorgesehen sein können. Die Auswertungseinheit 22 umfasst eine Vorverarbeitungs- oder Segmentierungseinheit 24, eine Binarisierungseinheit 26, eine Kombiniereinheit 28 und eine Decodierungseinheit 30. The evaluation unit 22 is implemented on one or more digital devices, such as microprocessors, ASICs, FPGAs or the like, which are also wholly or partly outside the code reader 10 can be provided. The evaluation unit 22 includes a preprocessing or segmentation unit 24 , a binarization unit 26 , a combination unit 28 and a decoding unit 30 ,

In der Segmentierungseinheit 22 werden Bildbereiche als Codebereiche identifiziert, in denen zu lesende Codes 14 vorhanden sein könnten, etwa anhand von Kontrasten oder Varianzen. Zusätzlich können die Bilddaten aufbereitet werden, also beispielsweise geglättet, helligkeitsnormiert oder dergleichen. Die Bilddaten in den Codebereichen werden anschließend in der Binarisierungseinheit 24 binarisiert, d.h. es wird ein Schwarz-Weiß-Bild aus den Grauwertdaten des Bildsensors 20 erzeugt. In anderen Ausführungsformen erfolgt die Binarisierung schon vor der Segmentierung, oder es wird darauf verzichtet und mit Grauwert- oder Farbbilddaten gearbeitet. In the segmentation unit 22 Image areas are identified as code areas in which codes to be read 14 could be present, for example, based on contrasts or variances. In addition, the image data can be edited, that is, for example, smoothed, brightness normalized or the like. The image data in the code areas are then in the Binarisierungseinheit 24 binarized, ie it becomes a black and white image from the gray value data of the image sensor 20 generated. In other embodiments, the binarization takes place before the segmentation, or it is waived and worked with grayscale or color image data.

Die Funktionsweise der Kombiniereinheit 28 wird weiter unten im Zusammenhang mit 3 ausführlich erläutert. Kurz zusammengefasst werden hier Bilddaten aus mehreren Codebereichen mit zueinander redundanten Codes kombiniert, um einen gemeinsamen Code zu erhalten, in dem sich Zerstörungen in den einzelnen zugrundeliegenden Codebereichen untereinander ausgleichen. The operation of the combination unit 28 will be related below 3 explained in detail. In a nutshell, image data from several code areas are combined here with mutually redundant codes in order to obtain a common code in which destructions in the individual underlying code areas balance each other out.

Der gemeinsame Code wird dann einer Decodiereinheit 30 zugeführt, um den Codeinhalt auszulesen. Dies wird möglicherweise mit verschiedenen, unter unterschiedlichen Bedingungen zusammengeführten gemeinsamen Codes wiederholt, um die Wahrscheinlichkeit einer erfolgreichen Lesung bei teilweise zerstörten Bilddaten zu erhöhen. The common code then becomes a decoding unit 30 supplied to read the code content. This may be repeated with different common codes merged under different conditions to increase the likelihood of successful reading on partially corrupted image data.

An einem Ausgang 32 des Codelesers 10 können die gelesenen Codeinformationen ausgelesen werden. Der Ausgang 32 oder eine weitere, nicht dargestellte Schnittstelle kann auch dafür genutzt werden, Rohbilddaten oder Bilddaten in verschiedenen Verarbeitungsstufen auszugeben. At an exit 32 of the code reader 10 the read code information can be read out. The exit 32 or another, not shown interface can also be used to output raw image data or image data in different processing stages.

2 zeigt den Codeleser 10 in einer wichtigen beispielhaften Anwendung, nämlich in einer Montage an einem Lesetunnel beziehungsweise über einem Förderband 34, welches Objekte 36, wie durch den Pfeil 38 angedeutet, durch das Sichtfeld des Codelesers 10 fördert. Wie in der gesamten Beschreibung sind gleiche Merkmale mit den gleichen Bezugszeichen versehen. Die Objekte 36 tragen an ihren Außenflächen Codes 14, die von dem Codeleser 10 gelesen und ausgewertet werden. Diese Codes 14 können von dem Codeleser 10 nur dann gelesen werden, wenn sie auf der Oberseite oder zumindest von oben erkennbar angebracht sind. Daher kann abweichend von der Darstellung in 2 zum Lesen eines etwa seitlich oder unten angebrachten Codes 14a eine Mehrzahl von Codelesern 10 aus verschiedenen Richtungen montiert sein, um eine sogenannte Omnilesung aus allen Richtungen zu ermöglichen. 2 shows the code reader 10 in an important exemplary application, namely in a mounting on a reading tunnel or on a conveyor belt 34 which objects 36 as by the arrow 38 indicated by the field of view of the code reader 10 promotes. As throughout the description, like features have been given the same reference numerals. The objects 36 wear codes on their outer surfaces 14 that from the code reader 10 be read and evaluated. These codes 14 can from the code reader 10 only be read if they are mounted on the top or at least recognizable from above. Therefore, deviating from the illustration in 2 for reading an approximately laterally or down attached code 14a a plurality of code readers 10 be mounted from different directions, to allow a so-called Omnilesung from all directions.

Wegen der Kombiniereinheit 28 ist der Codeleser 10 in der Lage, unter Ausnutzen von Coderedundanzen Codes 14 zu lesen, die sonst aufgrund von Artefakten im Codebereich oder sonstigen Teilzerstörungen der Bilddaten im Codebereich nicht lesbar wären. Diese Coderedundanz kann vorliegen, weil der gleiche Code 14 mehrfach auf dem Objekt 20 und somit in einem aufgenommenen Einzelbild vorhanden ist. Because of the combination unit 28 is the code reader 10 able to take advantage of code redundancy codes 14 which otherwise would not be readable due to artifacts in the code area or other partial destruction of the image data in the code area. This code redundancy may be present because of the same code 14 several times on the object 20 and thus exists in a recorded single image.

Alternativ wird die Coderedundanz in einer Bildsequenz genutzt, in welcher der Code 14 mehrfach nacheinander aufgenommen ist. Dies geschieht unter anderem beim Lesen in Bewegung, beispielsweise in der in 2 dargestellten Anwendung. In einer solchen Situation ist die Coderedundanz ohne Mehraufwand implizit gegeben. Ist beispielsweise ein bestimmter Bereich im Lesefeld des Codelesers 10 überstrahlt, so werden hier keine auswertbaren Bilddaten gewonnen. Durch die Relativbewegung der Objekte 36 wandert aber dieser Defekt über den Codebereich, so dass in verschiedenen Bildern der Bildsequenz die Zerstörung unterschiedliche Teilbereiche des Codes 14 trifft. Somit verhindert die Zerstörung die Lesung des Codes 14 in jedem Einzelbild. Durch Ausnutzen der Coderedundanz in der Bildsequenz kann der Code 14 dennoch gelesen werden. Alternatively, the code redundancy is used in a picture sequence in which the code 14 is recorded several times in succession. This happens among other things when reading in motion, for example in the in 2 presented application. In such a situation, the code redundancy is implicitly given without overhead. For example, is a specific area in the reading field of the code reader 10 outshone, no evaluable image data is obtained here. Due to the relative movement of the objects 36 However, this defect migrates across the code area, so that in different images of the image sequence the destruction of different parts of the code 14 meets. Thus, the destruction prevents the reading of the code 14 in every single frame. By exploiting the code redundancy in the image sequence, the code can 14 nevertheless be read.

Anhand der 3 wird nun die Kombination von Codebereichen in der Kombiniereinheit 28 beschrieben. Als Beispiel wird die Struktur eines Datamatrixcodes gezeigt, obwohl andere 2D-Codes und 1D-Codes ebenso gelesen werden können. Based on 3 now becomes the combination of code areas in the combining unit 28 described. As an example, the structure of a data matrix code is shown, although other 2D codes and 1D codes can also be read.

Um tatsächlich eine Verbesserung der Leserate zu erzielen, sollten einige Voraussetzungen erfüllt sein. Sind einige dieser Voraussetzungen nicht gegeben, so ist das Verfahren weiterhin anwendbar, aber die Vorteile werden möglicherweise nur zum Teil oder unter ungünstigen Bedingungen gar nicht erzielt. To actually improve the read rate, some conditions should be met. If some of these conditions are not fulfilled, the procedure will continue to apply, but the benefits may not be achieved in whole or in part, even under unfavorable conditions.

Zunächst sollte der Code 14 mehrfach in einem Einzelbild oder in einer Bildsequenz vorhanden sein, weil ohne solche redundanten Codedaten die Basis für eine Kombination fehlt. Die Zerstörungen sollten lokal disjunkt sein, sich also in den zu kombinierenden Codebereichen an unterschiedlichen Orten befinden. Teilbereiche, die in allen Codebereichen zerstört sind, können auch durch Kombination nicht rekonstruiert werden. Schließlich sollte die Zerstörung einfarbig sein, somit eindeutig als hell oder als dunkel klassifizierbar sein. Das ist bei realen Störeffekten fast immer der Fall. Andernfalls könnte man die Codebereiche unterteilen und die Teilbereiche zunächst einzeln kombinieren und anschließend wieder zusammensetzen, so dass die Bedingung in den Teilbereichen erfüllt ist. First, the code should 14 be present multiple times in a single frame or in a picture sequence, because without such redundant code data the basis for a combination is missing. The destruction should be locally disjoint, that is, they are in different places in the code areas to be combined. Subareas that are destroyed in all code areas can not be reconstructed by combination. After all, the destruction should be monochrome, thus clearly classifiable as light or dark. This is almost always the case with real disruptive effects. Otherwise, one could subdivide the code areas and first combine the subareas individually and then reassemble them so that the condition in the subareas is met.

3a zeigt die Struktur eines Datamatrixcodes 40, dessen Codewörter 42 durch leere Blöcke illustriert sind. In einem realen Datamatrixcode 40 wären die Codewörter 42 nicht leer, sondern mit der eigentlichen Codeinformation in Form schwarzer Quadrate an den der Codeinformation entsprechenden Stellen gefüllt. Eine schematisch als schwarzer Balken dargestellte Zerstörung 44 verdeckt einen Teil von mehreren Codewörtern 42. Es sei unterstellt, dass die Zerstörung 44 die Fehlerkapazität überschreitet, beispielsweise einer Reed-Solomon-Korrektur in der Decodiereinheit 30. Dies hängt in der Praxis noch davon ab, welche tatsächliche schwarz-weiße Information unterhalb der Zerstörung 44 verdeckt wird beziehungsweise lesbar bleibt. 3a shows the structure of a data matrix code 40 , whose codewords 42 illustrated by empty blocks. In a real data matrix code 40 would be the codewords 42 not empty but filled with the actual code information in the form of black squares at the positions corresponding to the code information. A destruction shown schematically as a black bar 44 hides part of several codewords 42 , It is assumed that the destruction 44 exceeds the error capacity, for example a Reed-Solomon correction in the decoding unit 30 , In practice, this still depends on what actual black and white information is underneath the destruction 44 is hidden or remains readable.

Sofern der Code 14, 40 trotz der Zerstörung 44 lesbar bleibt, bedarf es keiner Kombination redundanter Codebereiche. Daher sind Ausführungsformen denkbar, in denen zunächst versucht wird, den Code 14 ohne Kombination zu lesen. Nur wenn das nicht gelingt, werden redundante Codebereiche kombiniert. Andererseits wäre es unschädlich, ohne Ausnahme zu kombinieren, da unbeschädigte Codes 14 selbstverständlich auch nach der Kombination lesbar bleiben. Unless the code 14 . 40 despite the destruction 44 remains readable, it does not require a combination of redundant code areas. Therefore, embodiments are conceivable in which the code is first tried 14 without reading combination. Only if this fails, redundant code areas are combined. On the other hand, it would be harmless to combine without exception, as undamaged codes 14 Of course, even after the combination remain legible.

3b zeigt ein weiteres redundantes Bild des Datamatrixcodes 40. Die Zerstörung 44 betrifft nun einen anderen Teilbereich. Ein derartiges relatives Wandern der Zerstörung 44 tritt bei nacheinander aufgenommenen Bildern in einer Anwendung wie in derjenigen der 2 regelmäßig auf. Aber auch wenn die Datamatrixcodes 40 mehrfach auf einem Objekt 36 angebracht sind und die Codebereiche aus demselben Bild stammen, ist es zumindest extrem unwahrscheinlich, dass eine Zerstörung 44 identische Teilbereiche trifft. 3b shows another redundant image of the data matrix code 40 , The destruction 44 now concerns another subarea. Such a relative wandering of destruction 44 occurs in successively recorded images in an application such as in the 2 regularly on. But even if the data matrix codes 40 several times on an object 36 are appropriate and the code areas are from the same picture, it is at least extremely unlikely that a destruction 44 identical subregions meets.

Die Kombiniereinheit 30 setzt nun aus den beiden Datamatrixcodes 40 einen gemeinsamen Code 46 zusammen, der in 3c gezeigt ist und in dem die Zerstörung 44 eliminiert oder zumindest reduziert ist. Denkbar sind dafür beliebige Verfahren, etwa eine Mittelung auf Ebene von Grauwerten. The combination unit 30 now sets from the two data matrix codes 40 a common code 46 together, in 3c is shown and in which the destruction 44 eliminated or at least reduced. Conceivable for this are arbitrary methods, such as an averaging on the level of gray values.

In einer bevorzugten Ausführungsform sind die Codebereiche mit den Datamatrixcodes 40 samt der Zerstörung 44 zuvor in der Binarisierungseinheit 26 in ein reines Schwarz-Weiß-Bild gewandelt. Somit liegt eine Bitmatrix M1 und eine Bitmatrix M2 aus den beiden Codebereichen vor, die in 3a beziehungsweise 3b gezeigt sind. Diese beiden Bitmatrizen werden nun mit einer bitlogischen oder bool’schen Operation verknüpft, so dass eine neue Bitmatrix entsteht, in der die wegen der Zerstörung 44 fehlenden Informationen in der einen Matrix M1 aus der anderen Matrix M2 übertragen werden. Die bereits identisch in beiden Codebereichen enthaltenen Informationen bleiben nach der bitlogischen Operation erhalten, so dass nur die Fehlerstellen auskorrigiert werden. In a preferred embodiment, the code areas are the data matrix codes 40 including the destruction 44 previously in the binarization unit 26 transformed into a pure black and white picture. Thus, there is a bit matrix M1 and a bit matrix M2 of the two code areas, which in 3a respectively 3b are shown. These two bit matrices are now combined with a bitlogical or boolean operation to create a new bitmatrix in which to destroy 44 missing information in the one matrix M1 are transferred from the other matrix M2. The information already contained identically in both code areas remains after the bit-logical operation, so that only the error locations are corrected.

Welche bitlogische Operation die passende ist, hängt von der Polarität des Codes 40 und der Polarität der Zerstörung 44 ab. Polarität bezeichnet dabei die Helligkeit, also ob der Code 40 beziehungsweise die Zerstörung 44 hell oder dunkel ist. In dem in 3 gezeigten Beispiel sind sowohl der Datamatrixcode 40 als auch die Zerstörung schwarz, somit durch eine binäre „0“ repräsentiert. Letzteres ist natürlich nur Konvention und damit beispielhaft. Die geeignete bitlogische Operation für das Beispiel ist ein „ODER“. Damit bleiben zum einen Teile des Datamatrixcodes 40 unberührt, die in beiden redundanten Codebereichen enthalten sind. Unter den Zerstörungen 44 trifft in den hellen Zwischenbereichen des Codes eine binäre „1“ auf eine binäre „0“ der Zerstörung 44, so dass durch „ODER“-Verknüpfung gerade die helle Information der Codezwischenbereiche rekonstruiert wird. Which bit-logical operation is the right one depends on the polarity of the code 40 and the polarity of destruction 44 from. Polarity refers to the brightness, so whether the code 40 or the destruction 44 is light or dark. In the in 3 example shown are both the data matrix code 40 as well as the destruction black, thus represented by a binary "0". The latter is of course just convention and therefore exemplary. The appropriate bit-logic operation for the example is an "OR". This leaves parts of the data matrix code 40 unaffected, which are contained in both redundant code areas. Under the destruction 44 In the bright intermediate areas of the code, a binary "1" hits a binary "0" of destruction 44 , so that the bright information of the code intermediate areas is just reconstructed by "OR" linking.

Je nach Polarität des Codes 40 und der Zerstörung 44 ist eine andere bitlogische Operation erforderlich. Kennt man die Polaritäten, kann die benötigte bitlogische Operation vorab festgelegt werden. Kennt man nur eine Polarität entweder des Codes 40 oder der Zerstörung 44, so sind zwei komplementäre bitlogische Operationen erforderlich. Depending on the polarity of the code 40 and the destruction 44 another bit-logical operation is required. Knowing the polarities, the required bit-logical operation can be determined in advance. If one knows only one polarity of the code 40 or destruction 44 , so two complementary bit-logic operations are required.

Sind beide Polaritäten unbekannt, so werden die folgenden vier bitlogischen Operationen ausgeführt: M1 UND M2, M1 ODER M2, !M1 UND !M2, !M1 ODER !M2. Dabei bedeutet „!“ eine logische Negation oder Invertierung, also ein Austausch jeder binären „0“ durch die binäre „1“ und umgekehrt. Damit wird eine Unabhängigkeit davon erreicht, ob der Code hell auf dunklem Hintergrund ist oder umgekehrt, d.h. welche Polarität der Code hat. If both polarities are unknown, the following four bit-logic operations are performed: M1 AND M2, M1 OR M2,! M1 AND! M2,! M1 OR! M2. In this case, "!" Means a logical negation or inversion, ie an exchange of each binary "0" by the binary "1" and vice versa. This achieves independence from whether the code is bright on a dark background or vice versa, i. what polarity the code has.

Eine der vier entstehenden Bitmatrizen ist dann, sofern die eingangs genannten Voraussetzungen gegeben sind, stets decodierbar, weil die fehlende Information einer der beiden Matrizen über die einfarbige Zerstörung 44 in die Kombinationsmatrix übertragen wurde. Die Decodiereinheit 30 versucht jede der Kombinationsmatrizen zu decodieren, unternimmt demnach vier Leseversuche im allgemeinen Fall und zwei beziehungsweise nur einen Leseversuch bei Vorwissen über die Polaritäten. Die weiteren Decodierversuche können abgebrochen werden, sobald der Code einmal gelesen wurde. One of the four resulting bit matrices is then, provided that the conditions mentioned above are given, always decodable, because the missing information of the two matrices on the monochrome destruction 44 was transferred to the combination matrix. The decoding unit 30 tries to decode each of the combination matrices therefore undertakes four read attempts in the general case and two or only a reading attempt with prior knowledge of the polarities. The further decoding attempts can be aborted once the code has been read once.

In einer praktischen Implementierung kann sich die Auswertungseinheit 22 die jeweils aufgebauten Bitmatrizen merken, wenn Coderedundanzen über eine Bildsequenz hinweg genutzt werden sollen. Bei Coderedundanz innerhalb eines Einzelbilds genügt es, sich die Eckpunkte der detektierten Codekandidaten zu merken und sinnvolle Paarungen beispielsweise anhand ähnlicher Geometrien und Flächeninhalte zu bilden. Auf Basis der gefundenen sinnvollen Paarungen und der abgespeicherten Eckpunkte können dann jeweils nochmals zwei Bitmatrizen M1 und M2 generiert werden, aus denen mit den beschriebenen bitlogischen Operationen die Kombinationsmatrizen berechnet werden. Mit den Kombinationsmatrizen werden dann die Decodierversuche angestoßen. Nach einem Decodiervorgang erhält man dabei unter Umständen automatisch zwei Gut-Lesungen auf den ursprünglichen Regionen von M1 und M2. In a practical implementation, the evaluation unit may 22 memorize the respective bit matrices, if coded redundancies are to be used over a picture sequence. With code redundancy within a single frame, it is sufficient to remember the vertices of the detected code candidates and to form meaningful pairings, for example, based on similar geometries and surface contents. On the basis of the found meaningful pairings and the stored vertices, two bit matrices M1 and M2 can then be respectively generated, from which the combination matrices are calculated with the described bit-logical operations. The decoding attempts are then initiated with the combination matrices. Under certain circumstances, after a decoding process, two good readings may automatically be obtained on the original regions of M1 and M2.

ZITATE ENTHALTEN IN DER BESCHREIBUNG QUOTES INCLUDE IN THE DESCRIPTION

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.This list of the documents listed by the applicant has been generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte PatentliteraturCited patent literature

  • EP 1096416 B1 [0007] EP 1096416 B1 [0007]

Claims (13)

Optoelektronischer Codeleser (10) mit einem Lichtempfangselement (20) zur Umwandlung von Empfangslicht in Bilddaten sowie mit einer Auswertungseinheit (22), die dafür ausgebildet ist, Codebereiche (14, 40) in den Bilddaten aufzufinden und Codeinformationen aus den Codebereichen (14, 40) auszulesen, dadurch gekennzeichnet, dass die Auswertungseinheit (22) dafür ausgebildet ist, in den Bilddaten einen ersten Codebereich (14, 40) und einen zweiten Codebereich (14, 40) aufzufinden, die Bilddaten aus dem ersten Codebereich (14, 40) und dem zweiten Codebereich (14, 40) unter der Annahme, dass darin zueinander redundante Codes (40) enthalten sind, zu einem gemeinsamen Code (46) zu kombinieren und dann den gemeinsamen Code (46) zu decodieren, um die Codeinformationen zu erhalten. Optoelectronic code reader ( 10 ) with a light receiving element ( 20 ) for the conversion of received light into image data and with an evaluation unit ( 22 ), which is adapted to code areas ( 14 . 40 ) in the image data and code information from the code areas ( 14 . 40 ), characterized in that the evaluation unit ( 22 ) is designed to store in the image data a first code area ( 14 . 40 ) and a second code area ( 14 . 40 ), the image data from the first code area ( 14 . 40 ) and the second code area ( 14 . 40 ) assuming that mutually redundant codes ( 40 ), to a common code ( 46 ) and then the common code ( 46 ) to decode the code information. Codeleser (10) nach Anspruch 1, der als kamerabasierter Codeleser (10) ausgebildet ist, wobei das Lichtempfangselement (20) ein matrix- oder zeilenförmiger Bildsensor ist. Code reader ( 10 ) according to claim 1, which is a camera-based code reader ( 10 ), wherein the light receiving element ( 20 ) is a matrix or line image sensor. Codeleser (10) nach Anspruch 1 oder 2, wobei die Auswertungseinheit (22) dafür ausgebildet ist, Codebereiche (14, 40) mit zweidimensionalen Codes (40) aufzufinden und zweidimensionale Codes (40) zu decodieren. Code reader ( 10 ) according to claim 1 or 2, wherein the evaluation unit ( 22 ) is adapted to code areas ( 14 . 40 ) with two-dimensional codes ( 40 ) and two-dimensional codes ( 40 ) to decode. Codeleser (10) nach einem der vorhergehenden Ansprüche, wobei die Bilddaten ein Bild mit mehreren Codebereichen (14, 40) aufweisen. Code reader ( 10 ) according to one of the preceding claims, wherein the image data is an image with a plurality of code areas ( 14 . 40 ) exhibit. Codeleser (10) nach einem der Ansprüche 1 bis 3, wobei die Bilddaten mehrere Bilder mit Codebereichen (14, 40) aufweisen, insbesondere mehrere Bilder desselben codetragenden Objekts (36) in verschiedenen Bewegungsstadien. Code reader ( 10 ) according to one of claims 1 to 3, wherein the image data comprises a plurality of images with code regions ( 14 . 40 ), in particular a plurality of images of the same code-carrying object ( 36 ) in different stages of movement. Codeleser (10) nach einem der vorhergehenden Ansprüche, wobei die Auswertungseinheit (22, 26) dafür ausgebildet ist, die Bilddaten und insbesondere die Codebereiche (14, 40) zu binarisieren. Code reader ( 10 ) according to one of the preceding claims, wherein the evaluation unit ( 22 . 26 ) is adapted to the image data and in particular the code areas ( 14 . 40 ) to binarize. Codeleser (10) nach Anspruch 6, wobei die Auswertungseinheit (22) dafür ausgebildet ist, die Codebereiche (14, 40) zu negieren. Code reader ( 10 ) according to claim 6, wherein the evaluation unit ( 22 ) is adapted to the code areas ( 14 . 40 ) to negate. Codeleser (10) nach Anspruch 6 oder 7, wobei die Auswertungseinheit (22) dafür ausgebildet ist, Codebereiche (14, 40) oder negierte Codebereiche mittels logischem UND oder mittels logischem ODER zu einem gemeinsamen Code (46) zu kombinieren. Code reader ( 10 ) according to claim 6 or 7, wherein the evaluation unit ( 22 ) is adapted to code areas ( 14 . 40 ) or negated code areas by logical AND or by logical OR to a common code ( 46 ) to combine. Codeleser (10) nach einem der Ansprüche 6 bis 8, wobei die Auswertungseinheit (22) dafür ausgebildet ist, den ersten Codebereich (14, 40) und den zweiten Codebereich (14, 40) mittels mindestens einer von vier bitlogischen Operationen zu kombinieren: – durch logische UND-Verknüpfung der binarisierten Bilddaten des ersten Codebereichs (14, 40) und des zweiten Codebereichs (14, 40) – durch logische ODER-Verknüpfung der binarisierten Bilddaten des ersten Codebereichs (14, 40) und des zweiten Codebereichs (14, 40) – durch logische UND-Verknüpfung der negierten binarisierten Bilddaten des ersten Codebereichs (14, 40) und des zweiten Codebereichs (14, 40) – durch logische ODER-Verknüpfung der negierten binarisierten Bilddaten des ersten Codebereichs (14, 40) und des zweiten Codebereichs (14, 40). Code reader ( 10 ) according to one of claims 6 to 8, wherein the evaluation unit ( 22 ) is adapted to the first code area ( 14 . 40 ) and the second code area ( 14 . 40 ) by means of at least one of four bit-logical operations: by logically ANDing the binarized image data of the first code area ( 14 . 40 ) and the second code area ( 14 . 40 ) - by logical ORing the binarized image data of the first code area ( 14 . 40 ) and the second code area ( 14 . 40 ) - by logically ANDing the negated binarized image data of the first code area ( 14 . 40 ) and the second code area ( 14 . 40 ) - by logical ORing the negated binarized image data of the first code area ( 14 . 40 ) and the second code area ( 14 . 40 ). Codeleser (10) nach Anspruch 9, wobei die Auswertungseinheit (22) dafür ausgebildet ist, alle vier bitlogischen Operationen auszuführen und die jeweils resultierenden gemeinsamen Codes (46) zu decodieren. Code reader ( 10 ) according to claim 9, wherein the evaluation unit ( 22 ) is designed to perform all four bit-logic operations and the respective resulting common codes ( 46 ) to decode. Codeleser (10) nach Anspruch 9, wobei die Auswertungseinheit (22) dafür ausgebildet ist, bei Kenntnis der Polarität der Codes (40) und der Polarität von Zerstörungen (44) der Codes (40) nur die eine entsprechende bitlogische Operation auszuführen und nur den einen daraus resultierenden gemeinsamen Code (46) zu decodieren. Code reader ( 10 ) according to claim 9, wherein the evaluation unit ( 22 ) is trained to know the polarity of the codes ( 40 ) and the polarity of destruction ( 44 ) of the codes ( 40 ) execute only the one corresponding bit-logical operation and only the one common code resulting therefrom ( 46 ) to decode. Codeleser (10) nach Anspruch 9, wobei die Auswertungseinheit (22) dafür ausgebildet ist, bei Kenntnis der Polarität der Codes (40) oder der Polarität von Zerstörungen (44) der Codes (40) nur die zwei entsprechenden bitlogischen Operationen auszuführen und die jeweils resultierenden gemeinsamen Codes (46) zu decodieren. Code reader ( 10 ) according to claim 9, wherein the evaluation unit ( 22 ) is trained to know the polarity of the codes ( 40 ) or the polarity of destruction ( 44 ) of the codes ( 40 ) execute only the two corresponding bit-logical operations and the respective resulting common codes ( 46 ) to decode. Codeleser (10) nach einem der vorhergehenden Ansprüche, wobei die Auswertungseinheit (22) dafür ausgebildet ist, zunächst zu versuchen, die Bilddaten des ersten Codebereichs (14, 40) und/oder des zweiten Codebereichs (14, 40) für sich zu decodieren und nur falls dies scheitert einen gemeinsamen Code (46) zu bilden und zu decodieren. Code reader ( 10 ) according to one of the preceding claims, wherein the evaluation unit ( 22 ) is adapted to first try to process the image data of the first code area ( 14 . 40 ) and / or the second code area ( 14 . 40 ) to decode for itself and only if this fails a common code ( 46 ) and to decode.
DE201220102113 2012-06-11 2012-06-11 Optoelectronic code reader Expired - Lifetime DE202012102113U1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE201220102113 DE202012102113U1 (en) 2012-06-11 2012-06-11 Optoelectronic code reader

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE201220102113 DE202012102113U1 (en) 2012-06-11 2012-06-11 Optoelectronic code reader

Publications (1)

Publication Number Publication Date
DE202012102113U1 true DE202012102113U1 (en) 2012-07-03

Family

ID=46605451

Family Applications (1)

Application Number Title Priority Date Filing Date
DE201220102113 Expired - Lifetime DE202012102113U1 (en) 2012-06-11 2012-06-11 Optoelectronic code reader

Country Status (1)

Country Link
DE (1) DE202012102113U1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2779023A1 (en) * 2013-03-15 2014-09-17 Cognex Corporation Systems and methods for pattern stitching and decoding using multiple captured images
US9600703B2 (en) 2013-03-15 2017-03-21 Cognex Corporation Systems and methods for sorting image acquisition settings for pattern stitching and decoding using multiple captured images
TWI638130B (en) * 2017-04-25 2018-10-11 Benq Materials Corporation Inspection apparatus for thin films with internal marks and inspection method by using thereof

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1096416B1 (en) 1999-10-26 2009-12-30 Datalogic S.P.A. Method for reconstructing a bar code through consecutive scans

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1096416B1 (en) 1999-10-26 2009-12-30 Datalogic S.P.A. Method for reconstructing a bar code through consecutive scans

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2779023A1 (en) * 2013-03-15 2014-09-17 Cognex Corporation Systems and methods for pattern stitching and decoding using multiple captured images
US9104932B2 (en) 2013-03-15 2015-08-11 Cognex Corporation Systems and methods for pattern stitching and decoding using multiple captured images
US9600703B2 (en) 2013-03-15 2017-03-21 Cognex Corporation Systems and methods for sorting image acquisition settings for pattern stitching and decoding using multiple captured images
EP3229170A3 (en) * 2013-03-15 2018-02-28 Cognex Corporation Systems and methods for pattern stitching and decoding using multiple captured images
EP3654231A1 (en) * 2013-03-15 2020-05-20 Cognex Corporation Systems for pattern stitching and decoding using multiple captured images
TWI638130B (en) * 2017-04-25 2018-10-11 Benq Materials Corporation Inspection apparatus for thin films with internal marks and inspection method by using thereof

Similar Documents

Publication Publication Date Title
EP2417561B1 (en) Two-dimensional code and method
EP3454298B1 (en) Camera device and method for recording a flow of objects
EP3428834B1 (en) Optoelectronic code reader and method for reading optical codes
DE68920617T2 (en) Article, procedure and system for hexagonal data encoding.
DE69310049T2 (en) Method and device for finding a corner of a structure in two-dimensional images
EP1645839B1 (en) Apparatus and Method for Observing Moving Objects
AU2006227490B2 (en) Apparatus and process for two-stage decoding of high-density optical symbols
EP2555160B1 (en) Generation of an image segmented into interesting and uninteresting areas
DE102005011237B3 (en) Image`s defects determining method, for disc-shaped object e.g. substrate, involves recording images of surface of object, and executing comparison operation when three comparison images with same image content are present in buffer store
DE2417282A1 (en) DEVICE FOR RECOGNIZING A PATTERN
DE69814105T2 (en) Method for automatically regulating the properties of an optical code reading system
DE102013112040B4 (en) System and method for finding saddle-point like structures in an image and determining information therefrom
DE102011051934A1 (en) Method and device for OCR acquisition of value documents by means of a matrix camera
EP2639738A1 (en) Method and reader for recording a number of two-dimensional codes displayed one after the other on a display device
DE112018005068T5 (en) METHOD AND SYSTEM FOR READING BARCODES TAKEN ON SEVERAL IMAGES
DE202012102113U1 (en) Optoelectronic code reader
DE102014114506B4 (en) Camera for mounting on a conveyor and method for inspection or identification
EP2677492A1 (en) Code reader and method for online verification of a code
EP3822844B1 (en) Code reader and method for reading optical codes
DE102022109916A1 (en) SYSTEMS AND METHODS FOR RAPID AUTOMATIC ADJUSTMENT OF INDUSTRIAL FIXED-VISION CAMERAS
DE112005002383T5 (en) A method of decoding bar code symbols and the like using a plurality of scan lines
EP4087234B1 (en) Camera and method for detecting image data
EP4277259B1 (en) Image capture and brightness adjustment
DE102021126906A1 (en) Camera-based code reader and method for reading optical codes
DE202021105663U1 (en) Camera-based code reader

Legal Events

Date Code Title Description
R207 Utility model specification

Effective date: 20120823

R150 Utility model maintained after payment of first maintenance fee after three years
R151 Utility model maintained after payment of second maintenance fee after six years
R158 Lapse of ip right after 8 years