DE102012208025A1 - Method for computer-aided segmentation of grey value image for purpose of computer-aided optical text character recognition, involves utilizing coordinate as search parameter for swarm optimization and function as objective function - Google Patents

Method for computer-aided segmentation of grey value image for purpose of computer-aided optical text character recognition, involves utilizing coordinate as search parameter for swarm optimization and function as objective function Download PDF

Info

Publication number
DE102012208025A1
DE102012208025A1 DE201210208025 DE102012208025A DE102012208025A1 DE 102012208025 A1 DE102012208025 A1 DE 102012208025A1 DE 201210208025 DE201210208025 DE 201210208025 DE 102012208025 A DE102012208025 A DE 102012208025A DE 102012208025 A1 DE102012208025 A1 DE 102012208025A1
Authority
DE
Germany
Prior art keywords
image
code
function
swarm optimization
value
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.)
Withdrawn
Application number
DE201210208025
Other languages
German (de)
Inventor
Martin Grafmüller
Steffen Zopf
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.)
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Sick AG
Original Assignee
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
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 Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV, Sick AG filed Critical Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Priority to DE201210208025 priority Critical patent/DE102012208025A1/en
Publication of DE102012208025A1 publication Critical patent/DE102012208025A1/en
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/146Aligning or centring of the image pick-up or image-field
    • G06V30/1475Inclination or skew detection or correction of characters or of image to be recognised
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/148Segmentation of character regions
    • G06V30/15Cutting or merging image elements, e.g. region growing, watershed or clustering-based techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Image Analysis (AREA)

Abstract

The method involves determining a value of a coordinate of an image. A function to be optimized is chosen such that a function value of the function depends on image values of a portion of the image, where the portion of the image yields the coordinate of the image. The coordinate is utilized as a search parameter for particle swarm optimization, and the function is utilized as an objective function of the optimization, where the coordinate indicates a position on a coordinate axis of the image. A value of an angle (alpha) is utilized for segmentation of an image. Independent claims are also included for the following: (1) a device for computer-aided segmentation of an image (2) a code reader (3) a method for reading a code (4) a program product comprising a set of instructions for executing a method for computer-aided segmentation of an image.

Description

Die vorliegende Erfindung betrifft ein Verfahren und eine Vorrichtung zur rechnergestützten Segmentierung wenigstens eines einen Code mit wenigstens einer Codezeile enthaltenden Bildes zum Zweck der rechnergestützten Zeichenerkennung. The present invention relates to a method and a device for the computer-aided segmentation of at least one image containing a code with at least one line of code for the purpose of computer-aided character recognition.

Zeichenerkennungsverfahren dienen dazu, einen in einem Bild enthaltenen, mehrere Zeichen enthaltenden Code automatisch zu lesen. Beispielsweise erfolgt bei der optischen Zeichenerkennung eine optische Erfassung eines auf der Oberfläche eines Gegenstands aufgebrachten, insbesondere aufgedruckten, Codes und eine maschinelle Auswertung des auf diese Weise erfassten Bildes, um die in dem Code enthaltene Information automatisch zu erfassen. Abhängig von dieser Information kann beispielsweise ein technischer Prozess angesteuert werden. Character recognition methods are used to automatically read a code containing several characters contained in an image. For example, in the case of optical character recognition, an optical detection of a code applied on the surface of an object, in particular printed-on, is carried out, and a machine evaluation of the image acquired in this way in order to automatically detect the information contained in the code. Depending on this information, for example, a technical process can be controlled.

Ein Code kann aus wenigstens einer Codezeile bestehen, wobei eine Codezeile wiederum aus einem oder mehreren in einer die Ausrichtung der Codezeile darstellenden Richtung aufeinander folgenden Codezeichen bestehen kann. Die Codezeichen können beispielsweise Textzeichen, Buchstaben oder Zahlen umfassen, prinzipiell aber auch abstrakte Symbole wie beispielsweise Striche oder Felder eines Strich- oder Matrixcodes oder andere vorgegebene Symbole. A code may consist of at least one line of code, and in turn one line of code may consist of one or more consecutive code characters in a direction representing the orientation of the line of code. The code characters may include, for example, text characters, letters or numbers, but in principle also abstract symbols such as dashes or fields of a stroke or matrix code or other predetermined symbols.

Es sind Verfahren bekannt, die die in einem Segment eines Bildes enthaltenen Codezeichen erkennen können, wenn das Segment genau ein Codezeichen enthält und das Codezeichen eine vorgegebene Ausrichtung und Größe aufweist. Bei der automatischen Erfassung von einen Code enthaltenden Bildern können die Ausrichtung, die absolute Positionierung und die relative Anordnung der Codezeichen in dem Bild allerdings erheblich variieren. Vor der vorstehend beschriebenen Erkennung einzelner Codezeichen ist deshalb notwendig, das den Code enthaltende Bild zu segmentieren. Methods are known that can recognize the code characters contained in a segment of an image when the segment contains exactly one code character and the code character has a predetermined orientation and size. However, when automatically capturing code-containing images, the alignment, absolute positioning, and relative arrangement of the code characters in the image may vary significantly. Therefore, before the above-described recognition of individual code characters, it is necessary to segment the picture containing the code.

Unter Segmentierung wird sowohl die Ermittlung der Ausrichtung der wenigstens einen Codezeile in dem Bild bzw. der Winkelabweichung dieser Ausrichtung von einer horizontalen Ausrichtung verstanden als auch die Zeichensegmentierung, d.h. die Ermittlung der einzelnen, jeweils genau eine Codezeile enthaltenden Segmente des Bildes, und die Zeichensegmentierung, d.h. die Ermittlung der einzelnen, jeweils genau ein Codezeichen enthaltenden Segmente des Bildes. Segmentation is understood to mean either the determination of the orientation of the at least one code line in the image or the angular deviation of this orientation from a horizontal alignment, as well as the character segmentation, i. the determination of the individual segments of the image, each containing exactly one line of code, and the character segmentation, i. the determination of the individual segments of the image, each containing exactly one code character.

Bekannte Verfahren zur rechnergestützten Segmentierung von Bildern sind mit einem erheblichen Rechenaufwand verbunden und erfordern z.B. häufig eine Binarisierung der Bilder, wodurch nicht nur der Rechenaufwand gesteigert, sondern auch die Robustheit dieser Verfahren beeinträchtigt wird. Ferner benötigen bekannte Verfahren häufig eine Vielzahl an von einem Benutzer einzugebenden Vorabinformationen, um ein Bild mit ausreichender Genauigkeit und Zuverlässigkeit segmentieren zu können. Auf die Bestimmung der Ausrichtung gerichtete Segmentierungsverfahren sind außerdem häufig nur für einen beschränkten Bereich der Winkelabweichung der tatsächlichen Ausrichtung von der horizontalen Ausrichtung anwendbar, beispielsweise für einen Winkelbereich von ±10°. Known methods for the computer-aided segmentation of images involve a considerable amount of computation and require e.g. often a binarization of images, which not only increases the computational effort, but also the robustness of these processes is impaired. Further, prior art methods often require a plurality of advance information to be input by a user in order to segment an image with sufficient accuracy and reliability. Moreover, segmentation methods directed to the determination of orientation are often only applicable for a limited range of the angular deviation of the actual orientation from the horizontal orientation, for example for an angular range of ± 10 °.

In dem Artikel von J. Sadri und M. Cheriet: „A New Approach for Skew Correction of Documents Based on Particle Swarm Optimization“, Document Analysis and Recognition International Conference, S. 1066–1070, 2009 ist ein Verfahren zur Segmentierung wenigstens eines einen Code mit wenigstens einer Codezeile enthaltenden Bildes offenbart, bei dem ein Projektionsprofil des Bildes definiert und Maxima und Minima des Projektionsprofils betrachtet werden. Das Projektionsprofil, das auch als „Histogramm“ bezeichnet wird, stellt eine Funktion dar, deren Wert in Abhängigkeit einer jeweils betrachteten Zeile oder Spalte von Bildpunkten variiert, wobei der Wert des Projektionsprofils als die Summe der Bildwerte der in der jeweiligen Bildpunktzeile oder -spalte angeordneten Bildpunkte definiert ist. Ausgehend von diesem Projektionsprofil wird eine zu optimierende Funktion definiert, die als die Differenz aus der Summe der Maxima des Projektionsprofils und der Summe der Minima des Projektionsprofils gegeben ist, wobei jeweils das Projektionsprofil betrachtet wird, das sich bei einer Drehung des Bildes um einen Winkel θ gegenüber der Horizontalen ergibt, das heißt die zu optimierende Funktion ist abhängig von einer angenommenen Winkelabweichung zwischen der Ausrichtung der Textzeilen und der Horizontalen des Bildes. Der Winkel, für den die zu optimierende Funktion maximal wird, stellt eine Schätzung der tatsächlichen Winkelabweichung der Ausrichtung des Textes von der Horizontalen des Bildes dar. In the article of J. Sadri and M. Cheriet: "A New Approach for Skew Correction of Documents Based on Particle Swarm Optimization", Document Analysis and Recognition International Conference, pp. 1066-1070, 2009 discloses a method for segmenting at least one image containing a code with at least one line of code, in which a projection profile of the image is defined and maxima and minima of the projection profile are considered. The projection profile, which is also referred to as a "histogram", represents a function whose value varies as a function of a respectively considered row or column of pixels, the value of the projection profile being arranged as the sum of the image values of the pixels in the respective pixel row or column Pixels is defined. Based on this projection profile, a function to be optimized is defined, which is given as the difference between the sum of the maxima of the projection profile and the sum of the minima of the projection profile, in each case the projection profile being considered, which is an angle θ when the image is rotated relative to the horizontal, that is, the function to be optimized depends on an assumed angular deviation between the alignment of the text lines and the horizontal of the image. The angle at which the function to be optimized maximizes represents an estimate of the actual angular deviation of the orientation of the text from the horizontal of the image.

Die Maxima und Minima des Projektionsprofils bei einem bestimmten Winkel werden gemäß dem in dem genannten Artikel beschriebenen Verfahren ermittelt, indem das Projektionsprofil für alle Bildzeilen ausgewertet wird und eine Spline-Interpolation der sich ergebenden Projektionsprofilkurve durchgeführt wird. Der Wert, für den die zu optimierende Funktion maximal wird, wird durch eine Partikelschwarmoptimierung (PSO, engl.: particle swarm optimization) berechnet, wobei der gesuchte Winkel als Suchparameter und die zu optimierende Funktion als Zielfunktion der Partikelschwarmoptimierung verwendet wird. The maxima and minima of the projection profile at a certain angle are determined in accordance with the method described in said article by evaluating the projection profile for all image lines and performing a spline interpolation of the resulting projection profile curve. Of the Value for which the function to be optimized becomes maximum is calculated by particle swarm optimization (PSO), where the searched angle is used as the search parameter and the function to be optimized as the target function of the particle swarm optimization.

Die Partikelschwarmoptimierung ist ein Optimierungsverfahren, bei dem versucht wird, ein Extremum bzw. Optimum einer das Optimierungsproblem beschreibenden zu optimierenden Funktion, auch Zielfunktion genannt, zu finden, deren Wert von einem oder mehreren Suchparametern abhängt, die den "Suchraum" der Partikelschwarmoptimierung aufspannen. Bei der Partikelschwarmoptimierung wird ein Schwarm von mehreren einzelnen "Partikeln" definiert, wobei jedes Partikel eine mögliche Lösung des Optimierungsproblems repräsentiert, d.h. einen durch einen Satz von Werten der Suchparameter definierten Punkt in dem Suchraum. Jedes Partikel weist außerdem eine Geschwindigkeit auf, mit der es sich während einer Iteration der Partikelschwarmoptimierung in dem Suchraum bewegt, was auch als Exploration des Suchraums bezeichnet wird. Die Geschwindigkeit eines Partikels während einer Iteration der Partikelschwarmoptimierung wird in Abhängigkeit von der „besten“ Position dieses speziellen Partikels im Suchraum, d.h. der Position mit dem höchsten Wert der Zielfunktion, die von dem Partikel bisher eingenommen wurde, und der "globalen" besten Position, d.h. der besten Position, die von einem beliebigen Partikel in dem Suchraum bisher eingenommen wurde, bestimmt. Dies entspricht dem in der Natur z.B. bei Vogelschwärmen zu beobachtenden Phänomen, dass jedes Individuum des Schwarms zu der von ihm selbst besuchten besten Position und gleichzeitig zu der besten von einem beliebigen Individuum des Schwarms besuchten Position strebt. Die Partikel des Schwarms konvergieren nach mehreren Iterationen zu einem gemeinsamen besten Punkt im Suchraum, der dann dem gesuchten Optimum der Zielfunktion entspricht. Particle Swarm Optimization is an optimization method that seeks to find an extremum or optimal of a function to be optimized describing the optimization problem, also called an objective function, the value of which depends on one or more search parameters that span the "search space" of the particle swarm optimization. Particle Swarm Optimization defines a swarm of several individual "particles", each particle representing a possible solution to the optimization problem, i. a point in the search space defined by a set of values of the search parameters. Each particle also has a velocity with which it moves during an iteration of particle swarm optimization in the search space, which is also referred to as exploration of the search space. The velocity of a particle during an iteration of particle swarm optimization is determined by the "best" position of that particular particle in the search space, i. the position with the highest value of the objective function previously occupied by the particle and the "global" best position, i. the best position previously occupied by any particle in the search space. This corresponds to that in nature e.g. In the case of bird swarms, it is observed that each individual of the swarm strives to the best position he or she has visited, and at the same time to the best position visited by any individual of the swarm. The particles of the swarm converge after several iterations to a common best point in the search space, which then corresponds to the desired optimum of the objective function.

Die Partikelschwarmoptimierung erlaubt somit die Suche eines Optimums einer zu optimierenden Funktion, ohne dass die zu optimierende Funktion für alle möglichen Werte seiner Funktionsparameter errechnet werden muss, wodurch der für die Optimierung erforderliche Rechenaufwand reduziert ist. The particle swarm optimization thus makes it possible to search for an optimum of a function to be optimized, without the function to be optimized having to be calculated for all possible values of its function parameters, thereby reducing the computation required for the optimization.

Bei dem in dem genannten Artikel beschriebenen Segmentierungsverfahren erfordert die Bestimmung eines Werts der Zielfunktion die Auswertung des Projektionsprofils über alle Zeilen des Bildes hinweg, um die Minima und Maxima des Projektionsprofils durch die Spline-Interpolation feststellen zu können. Diese Auswertung stellt einen erheblichen für die Durchführung des Verfahrens erforderlichen Rechenaufwand dar. In the segmentation method described in the cited article, the determination of a value of the objective function requires the evaluation of the projection profile across all lines of the image in order to be able to determine the minima and maxima of the projection profile through the spline interpolation. This evaluation represents a considerable amount of computation required for carrying out the method.

Die Aufgabe der Erfindung ist es, ein Verfahren zur Segmentierung wenigstens eines einen Code mit wenigstens einer Codezeile enthaltenden Bildes zu schaffen, das mit geringerem Rechenaufwand und in kurzer Zeit durchführbar ist, welches insbesondere ohne eine Binarisierung des Bildes auskommt, welches für einen großen Bereich von Winkelabweichungen des Codes von der Horizontalen eine zuverlässige Segmentierung ermöglicht und welches dabei nicht notwendigerweise auf Benutzereingaben angewiesen ist. The object of the invention is to provide a method for segmentation of at least one image containing a code with at least one line of code, which can be carried out with less computation and in a short time, which in particular manages without binarizing the image, which is suitable for a large range of Angular deviations of the code from the horizontal allows a reliable segmentation and which does not necessarily rely on user input.

Die Aufgabe wird durch ein Verfahren mit den Merkmalen des Anspruchs 1 gelöst. Bei dem erfindungsgemäßen Verfahren zur rechnergestützten Segmentierung wenigstens eines einen Code mit wenigstens einer Codezeile enthaltenden Bildes zum Zweck der rechnergestützten Zeichenerkennung wird rechnergestützt durch eine Partikelschwarmoptimierung der Wert wenigstens einer Koordinate des Bildes ermittelt, für den der Funktionswert einer zu optimierenden Funktion extremal wird, wobei die zu optimierende Funktion derart gewählt ist, dass ihr Funktionswert von den Bildwerten eines Teilbereichs des Bildes abhängt, der sich aus der wenigstens einen Koordinate ergibt, wobei die wenigstens eine Koordinate des Bildes als ein Suchparameter für die Partikelschwarmoptimierung verwendet wird und die zu optimierende Funktion als Zielfunktion der Partikelschwarmoptimierung verwendet wird. Das erfindungsgemäße Verfahren kann insbesondere mit einer Recheneinrichtung durchgeführt werden, z.B. auf einem Computer. The object is achieved by a method having the features of claim 1. In the method according to the invention for the computer-aided segmentation of at least one image containing a code with at least one line of code for the purpose of computer-aided character recognition, computer-assisted particle swarm optimization determines the value of at least one coordinate of the image for which the function value of a function to be optimized becomes extreme optimizing function is selected such that its function value depends on the image values of a subregion of the image resulting from the at least one coordinate, wherein the at least one coordinate of the image is used as a search parameter for the particle swarm optimization and the function to be optimized serves as the objective function Particle Swarm Optimization is used. The method according to the invention can be carried out in particular with a computing device, e.g. on a computer.

Es wurde erkannt, dass sich anhand einer Auswertung nur eines Teilbereichs des Bildes ein Maß ableiten lässt, welches für einen Teilbereich extremal wird, aus dessen Eigenschaften sich eine richtige und genaue Segmentierung des Bildes ergibt. Beispielsweise lässt abhängig von der Formulierung der Zielfunktion die Winkelabweichung des Teilbereichs gegenüber der Horizontalen auf die Winkelabweichung der Ausrichtung der wenigstens einen Codezeile gegenüber der Horizontalen schließen und/oder die Position des Teilbereichs im Suchraum lässt auf die Position eines eine Codezeile enthaltenden Segments des Bildes schließen. Durch die Optimierung der Zielfunktion wird dann derjenige Wert der Koordinate ermittelt, aus dem sich der obige, die Segmentierung ermöglichende Teilbereich ergibt. It has been recognized that by evaluating only a portion of the image, a measure can be derived which becomes extremal to a portion whose properties result in correct and accurate segmentation of the image. For example, depending on the formulation of the objective function, the angular deviation of the partial region from the horizontal can make the angular deviation of the alignment of the at least one code line from the horizontal and / or the position of the partial region in the search space indicate the position of a segment of the image containing a line of code. By optimizing the objective function, that value of the coordinate is then determined, from which the above segment enabling the segmentation results.

Da das Extremum der Zielfunktion durch eine Partikelschwarmoptimierung ermittelt wird, ist es nicht notwendig, die Zielfunktion für alle möglichen Werte der wenigstens einen Koordinate zu ermitteln. Stattdessen erfordert die für die Partikelschwarmoptimierung notwendige Berechnung des Werts der Zielfunktion nur die Auswertung des sich aus dem aktuellen Wert der Koordinate ergebenden Teilbereichs des Bildes. Since the extremum of the objective function is determined by a particle swarm optimization, it is not necessary to determine the objective function for all possible values of the at least one coordinate. Instead The calculation of the value of the objective function required for the particle swarm optimization requires only the evaluation of the subregion of the image resulting from the current value of the coordinate.

Dadurch dass eine Auswertung des gesamten Bildes nicht notwendig ist, wird der für die Durchführung des Verfahrens erforderliche Rechenaufwand erheblich reduziert. Das Verfahren erfordert ferner keine Binarisierung des Bildes, sondern es können problemlos auch Grauwerte des Bildes als Bildwerte verwendet werden. Das Verfahren kann prinzipiell völlig ohne Benutzereingaben auskommen. Außerdem hat sich herausgestellt, dass das Verfahren für einen großen Bereich von Winkelabweichungen der Ausrichtung der Codezeile von der Horizontalen des Bildes robust und zuverlässig anwendbar ist. Since an evaluation of the entire image is not necessary, the computational effort required to carry out the method is considerably reduced. Furthermore, the method does not require binarization of the image, but gray values of the image can also be used without problems as image values. The method can in principle get along completely without user input. In addition, it has been found that the method is robustly and reliably applicable for a wide range of angular deviations of the alignment of the line of code from the horizontal of the image.

Vorteilhafte Ausführungsformen der Erfindung sind in den Unteransprüchen, der Beschreibung und den Zeichnungen beschrieben. Advantageous embodiments of the invention are described in the subclaims, the description and the drawings.

Das erfindungsgemäße Verfahren kann dazu verwendet werden, die Ausrichtung des Codes in dem Bild zu ermitteln und/oder eine Zeilen- oder Zeichensegmentierung des Bildes durchzuführen. Die Bestimmung der Ausrichtung des Codes kann insbesondere die Bestimmung des Winkels umfassen, um den die Ausrichtung der wenigstens einen Codezeile in dem Bild von der Horizontalen des Bildes abweicht und der nachfolgend als Winkel α bezeichnet wird. Dabei wird der Winkel α, wie nachfolgend noch genauer erläutert, bevorzugt neben der wenigstens einen Koordinate des Bildes als weiterer Suchparameter der Partikelschwarmoptimierung verwendet. Die Zeilen- und/oder Zeichensegmentierung kann das Bestimmen von Segmenten des Bildes umfassen, in denen sich jeweils genau eine Codezeile bzw. genau ein Codezeichen befindet. Die Bestimmung der Ausrichtung des Codes und die Zeilensegmentierung können prinzipiell durch eine gemeinsame Partikelschwarmoptimierung durchgeführt werden. Allerdings ist es bevorzugt, wenn die Bestimmung der Ausrichtung des Bildes und die Zeilensegmentierung in zwei gesonderten aufeinander folgend durchgeführten Partikelschwarmoptimierungen durchgeführt werden. The method according to the invention can be used to determine the orientation of the code in the image and / or to perform a line or character segmentation of the image. In particular, the determination of the orientation of the code may include the determination of the angle by which the orientation of the at least one line of code in the image deviates from the horizontal of the image and is referred to below as angle α. In this case, the angle α, as explained in more detail below, is preferably used in addition to the at least one coordinate of the image as a further search parameter of the particle swarm optimization. Line and / or character segmentation may include determining segments of the image in which there is exactly one line of code or one code character respectively. The determination of the orientation of the code and the line segmentation can in principle be carried out by a joint particle swarm optimization. However, it is preferred that the determination of the orientation of the image and the line segmentation be performed in two separate successive particle swarm optimizations.

Gemäß einer vorteilhaften Ausführungsform der Erfindung wird ein Winkel als weiterer Suchparameter für die Partikelschwarmoptimierung verwendet, der eine angenommene Winkelabweichung der Ausrichtung des Codes in dem Bild von der Horizontalen des Bildes angibt, wobei der Funktionswert der zu optimierenden Funktion von dem Winkel abhängt und durch die Partikelschwarmoptimierung ein Wert des Winkels ermittelt wird, für den der Funktionswert der zu optimierenden Funktion extremal wird. According to an advantageous embodiment of the invention, an angle is used as another search parameter for the particle swarm optimization, which indicates an assumed angular deviation of the orientation of the code in the image from the horizontal of the image, the function value of the function to be optimized being dependent on the angle and the particle swarm optimization determining a value of the angle for which the function value of the function to be optimized becomes extreme.

Bei dieser Ausführungsform wird also neben der wenigstens einen Koordinate des Bildes zusätzlich der Winkel α als Suchparameter der Partikelschwarmoptimierung verwendet, von dem die Zielfunktion abhängt. Das bedeutet, dass eine Partikelschwarmoptimierung mit einem zumindest zweidimensionalen Suchraum durchgeführt wird. Der Winkel α kann beispielsweise gemeinsam mit der wenigstens einen Koordinate den Teilbereich des Bildes definieren, von dem der Wert der Zielfunktion abhängt. Beispielsweise kann der Teilbereich, wie nachstehend noch genauer erläutert ist, als die Menge der Bildpunkte definiert sein, die sich auf einer Geraden befinden, die ausgehend von einer sich aus der wenigstens einen Koordinate des Bildes ergebenden Position in dem Bild in Richtung des Winkels α gegenüber der Horizontalen des Bildes geneigt verläuft. Als Ergebnis der Partikelschwarmoptimierung wird dann ein den Wert der wenigstens einen Koordinate und den Wert des Winkels α umfassendes Wertepaar bestimmt, für das die Zielfunktion extremal wird. Dieser aus der Partikelschwarmoptimierung resultierende Wert des Winkels α stellt dann eine Abschätzung der tatsächlichen Abweichung der Ausrichtung der wenigstens einen Codezeile von der Horizontalen des Bildes dar. In this embodiment, in addition to the at least one coordinate of the image, in addition, the angle α is used as the search parameter of the particle swarm optimization on which the objective function depends. This means that a particle swarm optimization is carried out with an at least two-dimensional search space. The angle α can, for example, together with the at least one coordinate, define the subregion of the image on which the value of the objective function depends. For example, as will be explained in more detail below, the subarea may be defined as the set of pixels that are on a straight line that is opposite to a position resulting from the at least one coordinate of the image in the image in the direction of the angle α the horizontal of the picture is inclined. As a result of the particle swarm optimization, a pair of values including the value of the at least one coordinate and the value of the angle α is determined, for which the target function becomes extremal. This value of the angle α resulting from the particle swarm optimization then represents an estimate of the actual deviation of the orientation of the at least one line of code from the horizontal of the image.

Der Bereich, in dem der Wert des Winkels α durch die Partikelschwarmoptimierung gesucht wird, kann z.B. 180° breit sein, ist bevorzugt aber auf einen Winkelbereich mit einer Ausdehnung von weniger als 180° beschränkt, da in den meisten Anwendungen sichergestellt werden kann, dass der tatsächliche Wert des Winkels α nur über einen solchen beschränkten Bereich variiert, beispielsweise von –45° bis +45°. Der Suchraum der Partikelschwarmoptimierung wird dann auf den entsprechenden Wertebereich für den Winkel α beschränkt. The range in which the value of the angle α is searched by the particle swarm optimization may be e.g. 180 ° wide, but is preferably limited to an angular range with an extension of less than 180 °, since it can be ensured in most applications that the actual value of the angle α varies only over such a limited range, for example, from -45 ° up to + 45 °. The search space of the particle swarm optimization is then limited to the corresponding value range for the angle α.

Wenn hierin von der "Horizontalen" des Bildes die Rede ist, ist damit insbesondere die Zeilenrichtung des Bildes gemeint, d.h. die Richtung, in der eine Zeile von Bildpunkten des Bildes verläuft. Ein Bildpunkt des Bildes kann dabei prinzipiell einem Sensorelement oder Pixel eines Bildsensors entsprechen, mit dem das Bild aufgenommen wurde und der eine Mehrzahl von in einem Raster mit mehreren Zeilen und Spalten angeordneten Sensorelementen aufweist, und die Zeilenrichtung des Bildes kann der Richtung des Bildsensors entsprechen, in der eine Zeile von Sensorelementen bzw. Pixeln des Bildsensors verläuft. Die "Horizontale" des Bildes kann aber prinzipiell eine beliebige Richtung in dem Bild angeben, in der die Codezeilen des Bildes erwartungsgemäß zumindest ungefähr ausgerichtet sein sollten, d.h. die der erwarteten Ausrichtung des Codes entspricht. Die Ausrichtung des Codes bzw. einer Codezeile ist dabei die Richtung, in der die einzelnen Codezeichen der Codezeile aufeinander folgen bzw. die Richtung senkrecht zu der Richtung, in der die Codezeilen aufeinander folgen. Ebenso kann aber als "Horizontale" auch eine beliebige andere Vorzugsrichtung des Bildes betrachtet werden, in Bezug auf die eine winkelmäßige Ausrichtungsabweichung des Codes ermittelt werden soll. Ganz allgemein ist unter der "Horizontalen" des Bildes somit eine beliebige vorgegebene Vorzugsrichtung des Bildes zu verstehen und entspricht nicht notwendigerweise der Ausrichtung des zu erkennenden Codes. When referring to the "horizontal" of the image, this refers in particular to the line direction of the image, ie the direction in which a line of pixels of the image runs. A pixel of the image may in principle correspond to a sensor element or pixel of an image sensor with which the image was taken and which has a plurality of sensor elements arranged in a grid with a plurality of rows and columns, and the line direction of the image may correspond to the direction of the image sensor, in which a row of sensor elements or pixels of the image sensor runs. The "horizontal" of the image may, however, in principle indicate any direction in the image in which the lines of code of the image should be expected to be at least approximately aligned, that is to say that corresponds to the expected orientation of the code. The orientation of the code or a line of code is the direction in which the individual Code characters of the code line follow each other or the direction perpendicular to the direction in which follow the lines of code. However, as "horizontal" any other preferred direction of the image can be considered, in relation to which an angular orientation deviation of the code is to be determined. In general, the "horizontal" of the image thus means any given preferred direction of the image and does not necessarily correspond to the orientation of the code to be recognized.

Besonders bevorzugt ist es, wenn mehrere einen Code mit wenigstens einer Codezeile enthaltende Bilder aufeinander folgend segmentiert werden, wobei bei der Segmentierung eines Bildes der Wert des Winkels (α) verwendet wird, der bei der Segmentierung eines vorhergehenden Bildes ermittelt wurde. Der Wert des Winkels α, der für das vorhergehende Bild ermittelt wurde, kann dabei insbesondere bei der Initialisierung der Partikel des Schwarms während der für die Segmentierung des darauf folgenden Bilds durchgeführten Partikelschwarmoptimierung verwendet werden. Dadurch kann die Konvergenz der Partikelschwarmoptimierung und somit das gesamte Verfahren noch weiter beschleunigt werden, insbesondere wenn sich die Ausrichtungen der in den aufeinander folgenden Bildern enthaltenen Codes nur geringfügig unterscheiden, was bei Systemen zur Erfassung von Bildern von auf Gegenständen angebrachten Codes oder bei mehreren aufeinanderfolgenden zu lesenden Textseiten häufig der Fall ist. It is particularly preferred if several images containing a code with at least one line of code are sequentially segmented, wherein the segmentation of an image uses the value of the angle (α) which was determined during the segmentation of a preceding image. The value of the angle α, which was determined for the preceding image, can be used in particular during the initialization of the particles of the swarm during the particle swarm optimization carried out for the segmentation of the subsequent image. Thereby, the convergence of particle swarm optimization, and thus the entire process, can be further accelerated, especially if the orientations of the codes contained in the successive images differ only slightly, as in systems for capturing images of object-attached codes or in several successive ones reading text pages is often the case.

Eine weitere Ausführungsform der Erfindung sieht vor, dass der Funktionswert der zu optimierenden Funktion von dem Winkel α abhängt, wobei bei der Partikelschwarmoptimierung ein unveränderlicher geschätzter Wert des Winkels α angenommen wird. Das bedeutet, dass bei der Partikelschwarmoptimierung ein bereits vor Durchführung der Partikelschwarmoptimierung bestimmter Schätzwert für den Winkel α verwendet wird, der bei der Partikelschwarmoptimierung nicht als Suchparameter verwendet wird, sondern vorzugsweise als unveränderlich angenommen wird. Ein solcher Schätzwert, der nachfolgend auch mit α ˆ bezeichnet ist, kann prinzipiell mit jedem beliebigen Verfahren zur Abschätzung der Ausrichtung eines Codes in einem Bild bestimmt werden. Bevorzugt wird der Schätzwert mit einem wie vorstehend beschriebenen erfindungsgemäßen Verfahren zur Bestimmung des Winkels α ermittelt, d.h. es werden zwei aufeinander folgende Partikelschwarmoptimierungen durchgeführt, wobei die erste zur Bestimmung der Ausrichtung des Codes und die zweite beispielsweise zur Zeilensegmentierung des Codes in dem Bild unter Verwendung des in der ersten Partikelschwarmoptimierung ermittelten Werts des Winkels α dient. Ein solches hierarchisches Vorgehen hat sich als besonders effizient, zuverlässig und genau erwiesen. A further embodiment of the invention provides that the function value of the function to be optimized depends on the angle .alpha., With the particle swarm optimization assuming an invariable estimated value of the angle .alpha. This means that in the particle swarm optimization, an estimated value for the angle α, which is already used before the particle swarm optimization is carried out, is used, which is not used as a search parameter in the particle swarm optimization, but is preferably assumed to be immutable. Such an estimate, also referred to below as α, can in principle be determined using any method for estimating the orientation of a code in an image. Preferably, the estimated value is determined by means of a method according to the invention for determining the angle α as described above, i. two successive particle swarm optimizations are carried out, the first serving to determine the orientation of the code and the second, for example, to line segmentation of the code in the image using the value of the angle α determined in the first particle swarm optimization. Such a hierarchical approach has proven to be particularly efficient, reliable and accurate.

Wie vorstehend beschrieben, hängt der Funktionswert der Zielfunktion der Partikelschwarmoptimierung vorzugsweise von dem Wert des Winkels α ab, wobei der Winkel α entweder als weiterer Suchparameter der Partikelschwarmoptimierung verwendet wird oder ein vorgegebener unveränderlicher Wert für den Winkels α angenommen wird. Bevorzugt lässt sich der Funktionswert der zu optimierenden Zielfunktion durch eine in Richtung des Winkels α gegenüber der Horizontalen des Bildes gerichtete Projektion von Bildpunkten errechnen, die wenigstens einen Bildpunkt umfassen, dessen Position in dem Bild sich aus der wenigstens einen Koordinate des Bildes ergibt. Die Zielfunktion kann dabei ein Projektionsprofil des Bildes definieren. Durch eine solche Zielfunktion können beispielsweise ausgeprägte, in Richtung des Winkels α verlaufende Kanten des Codes bzw. einer Codezeile oder Zwischenräume zwischen mehreren Codezeilen erkannt werden, die die Zielfunktion für den entsprechenden Winkel α und eine der Position der Kante oder des Zwischenraums in dem Bild entsprechende Koordinate des Bildes extremal werden lassen. Eine solche Zielfunktion ist deshalb in besonderer Weise dazu geeignet, anhand eines Teilbereichs des Bildes ein Maß zu errechnen, dessen Extremum Aufschluss darüber gibt, wie das Bild zu segmentieren ist. As described above, the function value of the objective function of the particle swarm optimization preferably depends on the value of the angle α, wherein the angle α is used either as another search parameter of the particle swarm optimization or a predetermined fixed value for the angle α is assumed. Preferably, the function value of the objective function to be optimized can be calculated by a projection of pixels directed in the direction of the angle α relative to the horizontal of the image, comprising at least one pixel whose position in the image results from the at least one coordinate of the image. The objective function can define a projection profile of the image. By means of such an objective function, it is possible to detect, for example, pronounced edges of the code or a code line or spaces between several lines of code which correspond to the target function for the corresponding angle α and one of the position of the edge or gap in the image Coordinate the image become extremal. Such an objective function is therefore particularly suitable for calculating, on the basis of a subregion of the image, a measure whose extremum provides information about how the image is to be segmented.

Gemäß einer vorteilhaften Ausführungsform der Erfindung hängt der Funktionswert der zu optimierenden Funktion von einer Summe mehrerer Einzelwerte ab, wobei zumindest einer und vorzugsweise jeder der Einzelwerte von dem Bildwert eines Bildpunkts abhängt, der auf einer gedachten Geraden liegt, die ausgehend von einem Bildpunkt, dessen Position in dem Bild sich aus der wenigstens einen Koordinate des Bildes ergibt, um den Winkel α gegenüber der Horizontalen des Bildes geneigt verläuft. Darunter, dass der Bildpunkt auf der Gerade liegt, wird verstanden, dass die Gerade den Bildpunkt bevorzugt schneidet oder sich der Bildpunkt zumindest innerhalb eines vorgegebenen Abstandes von der Geraden befindet. Diese Auswahl an Bildpunkten ist besonders geeignet, um wie vorstehend beschrieben ausgeprägte Kanten oder Zwischenräume des Codes zu erkennen und daraus eine korrekte Segmentierung des Bildes abzuleiten. According to an advantageous embodiment of the invention, the function value of the function to be optimized depends on a sum of a plurality of individual values, wherein at least one and preferably each of the individual values depends on the image value of a pixel lying on an imaginary line starting from a pixel whose position in the image resulting from the at least one coordinate of the image is inclined by the angle α relative to the horizontal of the image. Under the fact that the pixel lies on the line, it is understood that the straight line preferably intersects the pixel or the pixel is located at least within a predetermined distance from the line. This selection of pixels is particularly suitable for recognizing pronounced edges or spaces of the code as described above and deriving therefrom a correct segmentation of the image.

Wenigstens einer und vorteilhafterweise jeder Einzelwert hängt dabei bevorzugt jeweils von dem Bildwert eines auf der Geraden liegenden ersten Bildpunkts und des Bildwerts eines zweiten Bildpunkts ab, der gegenüber dem ersten Bildpunkt in einer vorgegebenen Richtung verschoben ist und einen vorgegebenen Abstand zu dem ersten Bildpunkt aufweist. Insbesondere kann der Funktionswert von der Differenz der Bildwerte des ersten und des zweiten Bildpunktes abhängen. Ein solcher Vergleich eines ersten auf der Geraden liegenden Bildpunktes mit einem zweiten, in einer vorgegebenen Richtung und um eine vorgegebene Distanz gegenüber dem ersten Bildpunkt verschobenen zweiten Bildpunkt bewirkt, dass sich Kanten einer Codezeile und Zwischenräume zwischen zwei Codezeilen in der entsprechenden Zielfunktion als besonders ausgeprägte Extrema niederschlagen. Anstelle eines einzelnen Bildwerts kann dabei auch ein aus mehreren Bildwerten gemittelter oder interpolierter Wert verwendet werden, wobei die mehreren Bildwerte den Bildwert des ersten oder zweiten Bildpunkts umfassen sowie die Bildwerte von zu dem ersten oder zweiten Bildpunkt benachbarten Bildpunkten. At least one and advantageously each individual value preferably depends in each case on the image value of a first pixel lying on the straight line and the image value of a second pixel which is displaced in a predetermined direction with respect to the first pixel and has a predetermined distance from the first pixel. In particular, the function value may depend on the difference between the image values of the first and second pixels. Such a comparison of a first on the line lying pixel with a second, in a predetermined direction and by a predetermined distance relative to the first pixel shifted second pixel causes reflected edges of a line of code and spaces between two lines of code in the corresponding target function as particularly pronounced extremes. Instead of a single image value, it is also possible to use a value averaged or interpolated from a plurality of image values, the plurality of image values comprising the image value of the first or second pixel and the image values of pixels adjacent to the first or second pixel.

Gemäß einer besonders bevorzugten Ausführungsform ist die vorgegebene Richtung als die Richtung senkrecht zu der in Richtung des Winkels α verlaufenden Geraden gegeben. Auf diese Weise lassen sich Kanten einer Codezeile besonders gut erkennen, weil sich, wenn die Gerade entlang einer solchen Kante verläuft, die Bildwerte des auf der Gerade liegenden ersten Bildpunkts und des senkrecht zu der Geraden von dem ersten Bildpunkt beabstandeten zweiten Bildpunkt besonders stark unterscheiden, so dass z.B. ein Maximum der Zielfunktion auftritt. Ebenso kann die vorgegebene Richtung als die Richtung parallel zu der in Richtung des Winkels α verlaufenden Geraden gegeben sein. Auf diese Weise lassen sich zwischen zwei Codezeilen angeordnete Zwischenräume besonders gut erkennen, weil sich, wenn die Gerade entlang eines solchen Zwischenraums verläuft, die Bildwerte des auf der Gerade liegenden ersten Bildpunkts und des parallel zu der Geraden von dem ersten Bildpunkt beabstandeten zweiten Bildpunkts nur besonders geringfügig unterscheiden, so dass z.B. ein Minimum der Zielfunktion auftritt. According to a particularly preferred embodiment, the predetermined direction is given as the direction perpendicular to the straight line running in the direction of the angle α. In this way, edges of a code line can be recognized particularly well, because when the straight line runs along such an edge, the image values of the first pixel lying on the straight line and the second pixel perpendicular to the straight line from the first pixel differ particularly strongly, so that eg a maximum of the objective function occurs. Likewise, the predetermined direction may be given as the direction parallel to the straight line running in the direction of the angle α. In this way, interspaces between two lines of code can be recognized particularly well because, when the straight line runs along such a space, the image values of the first pixel lying on the straight line and of the second pixel spaced parallel to the straight line from the first pixel are only particularly significant slightly different, so that eg a minimum of the objective function occurs.

Die wenigstens eine Koordinate des Bildes kann prinzipiell jede Größe sein, aus der ein Teilbereich des Bildes ableitbar ist bzw. aus der eine Position in dem Bild ableitbar ist, aus der sich der Teilbereich ergibt. Beispielsweise kann die wenigstens eine Koordinate eine Position auf einer Koordinatenachse des Bildes repräsentieren, wobei der Teilbereich als die Menge der auf einer ausgehend von diesem Punkt im Winkel α gegenüber der Horizontalen geneigten Geraden angeordneten Bildpunkte gegeben ist. Beispielsweise kann als Koordinate ein Zeilenindex des Bildes verwendet werden, in welchem Fall die Koordinate z.B. eine Position auf einer in Spaltenrichtung des Bildes verlaufenden Koordinatenachse des Bildes repräsentiert. Die Koordinate kann auch eine Position auf einer gegenüber der Spalten- und/oder Zeilenrichtung geneigten Koordinatenachse repräsentieren und die Koordinatenachse kann einen beliebigen Verlauf und insbesondere auch einen nicht-geraden Verlauf aufweisen. Die Position in dem Bild, die aus der Koordinate ableitbar ist bzw. der daraus ableitbare Teilbereich kann darüber hinaus auch von einem weiteren Parameter wie insbesondere dem Winkel α abhängen. The at least one coordinate of the image can in principle be any size from which a partial region of the image can be derived or from which a position in the image can be derived, from which the partial region results. For example, the at least one coordinate may represent a position on a coordinate axis of the image, the partial region being given as the set of pixels arranged on a straight line inclined at an angle α with respect to the horizontal starting from this point. For example, a line index of the image may be used as the coordinate, in which case the coordinate is e.g. represents a position on a coordinate axis of the image in the column direction of the image. The coordinate may also represent a position on a coordinate axis inclined with respect to the column and / or row direction and the coordinate axis may have an arbitrary course and in particular also a non-straight course. The position in the image which can be derived from the coordinate or the subarea derivable therefrom can also depend on a further parameter such as in particular the angle α.

Für das erfindungsgemäße Verfahren ist keine Binarisierung der Bilder notwendig. Dementsprechend arbeiten das Verfahren und insbesondere die Partikelschwarmoptimierung vorzugsweise mit einem nicht-binären Bild. Beispielsweise können Grauwerte des Bildes als Bildwerte verwendet werden. Dadurch wird sowohl die Geschwindigkeit als auch die Robustheit des Verfahrens gesteigert. Das Bild lässt sich bevorzugt in mehrere in einem Raster angeordnete Bildpunkte unterteilen, derart dass jedem Bildpunkt ein Bildwert des Bildes zugeordnet ist oder zuordnenbar ist. Bei dem Bild kann es sich insbesondere um ein Rastergrafikbild handeln. Die Bildwerte sind bevorzugt Grauwerte, wobei aber auch farbige Bilder und prinzipiell auch binäre Bilder verwendet werden können. No binarization of the images is necessary for the method according to the invention. Accordingly, the method and in particular the particle swarm optimization preferably work with a non-binary image. For example, gray values of the image can be used as image values. This increases both the speed and the robustness of the process. The image can preferably be subdivided into a plurality of pixels arranged in a raster, such that an image value of the image is assigned to each pixel or can be assigned. The image may in particular be a raster graphic image. The image values are preferably gray values, but color images and, in principle, binary images can also be used.

Die Partikelschwarmoptimierung kann mit wenigstens einem Schwarm durchgeführt werden, der mehrere Partikel aufweist. Particle swarm optimization may be performed with at least one swarm having multiple particles.

Wie eingangs beschrieben, erhält bei der Partikelschwarmoptimierung ein Partikel eine Geschwindigkeit, mit der sich das Partikel von Iteration zu Iteration in dem Suchraum der Partikelschwarmoptimierung fortbewegt. Während einer Iteration wird die Position des Partikels in dem Suchraum anhand der gegenwärtigen Geschwindigkeit des Partikels in dem Suchraum aktualisiert und die Geschwindigkeit des Partikels wird anhand der zuletzt berechneten Position der Partikel in dem Suchraum aktualisiert. Die aktualisierte Geschwindigkeit eines Partikels hängt dabei von der besten Position des jeweiligen Partikels in dem Suchraum während vorhergehender Iterationen und von der besten Position des gesamten Schwarms, d.h. der besten Position eines beliebigen Partikels des Schwarms in dem Suchraum, während vorhergehender Iterationen, die auch als globale beste Position des Schwarms bezeichnet wird, ab. Wird bei der Partikelschwarmoptimierung ein mehrdimensionaler Suchraum verwendet, der von der wenigstens einen Koordinate und wenigstens einem weiteren Suchparameter aufgespannt wird, wird die Geschwindigkeit eines Partikels durch einen Vektor repräsentiert, wobei jedem Suchparameter eine Komponente des Vektors zugeordnet ist, die die Geschwindigkeit des Partikels in der durch den jeweiligen Suchparameter definierten Raumrichtung des Suchraums darstellt. As described above, in particle swarm optimization, a particle is given a velocity at which the particle travels from iteration to iteration in the particle swarm optimization search space. During an iteration, the position of the particle in the search space is updated based on the current velocity of the particle in the search space, and the velocity of the particle is updated from the last calculated position of the particles in the search space. The updated velocity of a particle depends on the best position of the particular particle in the search space during previous iterations and on the best position of the entire swarm, i. the best position of any particle of the swarm in the search space during previous iterations, also referred to as the swarm's global best position. If a multidimensional search space, which is spanned by the at least one coordinate and at least one further search parameter, is used in the particle swarm optimization, the velocity of a particle is represented by a vector, wherein each search parameter is assigned a component of the vector which determines the velocity of the particle in the particle represented by the respective search parameter defined spatial direction of the search space.

Gemäß einer Ausführungsform der Erfindung geht, insbesondere zusätzlich zu der besten Position des Partikels und der globalen besten Position des Schwarms, eine in einer vorhergehenden Iteration der Partikelschwarmoptimierung berechnete Geschwindigkeit des jeweiligen Partikels in dem Suchraum mit einem Gewichtungsfaktor in die geänderte Geschwindigkeit dieses Partikels ein. Dabei ist es bevorzugt, wenn der Gewichtungsfaktor von der Anzahl der bereits durchgeführten Iterationen der Partikelschwarmoptimierung abhängt und mit zunehmender Anzahl an Iterationen abnimmt. Es kann zum Beispiel eine Anfangsgeschwindigkeit, mit der das Partikel zu Anfang der Partikelschwarmoptimierung initialisiert wird, mit einem abnehmenden Gewicht in die aktuelle Geschwindigkeit des Partikels eingehen. Dadurch wird zu Anfang der Partikelschwarmoptimierung ein ausreichendes Durchstreifen des gesamten Suchraums durch die Partikel, auch Exploration genannt, gewährleistet. Zu Ende der Partikelschwarmoptimierung dominieren aufgrund des abnehmenden Gewichtungsfaktors dann hingegen hauptsächlich die Geschwindigkeitskomponenten, die auf die besten bzw. globalen besten Schwarmpositionen gerichtet sind, so dass die Partikel sich zunehmend hin zu den in dem bereits explorierten Suchraum befindlichen Extrema bewegen, was auch als Exploitation bezeichnet wird. Diese Abfolge von Exploration und Exploitation führt zu einer besonders zuverlässigen Suche der Extrema und gleichzeitig schnellen Konvergenz des Verfahrens. According to one embodiment of the invention, in particular in addition to the best position of the particle and the global best position of the swarm, a velocity of the respective particle in the search space calculated in a previous iteration of the particle swarm optimization is weighted by a factor in the changed velocity of that particle. It is preferred if the weighting factor depends on the number of iterations of the particle swarm optimization already carried out and decreases as the number of iterations increases. For example, an initial rate at which the particle is initialized at the beginning of the particle swarm optimization may be included in the actual velocity of the particle with a decreasing weight. Thus, at the beginning of the particle swarm optimization a sufficient roaming of the entire search space through the particles, also called exploration, is guaranteed. At the end of the particle swarm optimization, due to the decreasing weighting factor, the predominant components are the velocity components directed to the best or global best swarm positions so that the particles move increasingly towards the extremes already in the explored search space, which is also called exploitation becomes. This sequence of exploration and exploitation leads to a particularly reliable search of the extremes and at the same time rapid convergence of the method.

Gemäß einer weiteren Ausführungsform wird während einer Iteration der Partikelschwarmoptimierung eine Zufallszahl generiert und die geänderte Position eines Partikels abhängig von der Zufallszahl berechnet. Durch diese zufällige Variation der Position des Partikels kann die Exploration des Suchraums noch weiter verbessert werden und das Konvergieren der Partikelschwarmoptimierung zu dem tatsächlichen Extremum der Zielfunktion noch zuverlässiger gewährleistet werden. According to a further embodiment, a random number is generated during an iteration of the particle swarm optimization and the changed position of a particle is calculated as a function of the random number. By this random variation of the position of the particle, the exploration of the search space can be further improved and the convergence of the particle swarm optimization to the actual extremum of the target function can be ensured even more reliably.

Die Partikelschwarmoptimierung kann auch mit mehreren Schwärmen durchgeführt werden, die jeweils mehrere Partikel aufweisen. Die Verwendung mehrerer Schwärme kann beispielsweise dazu dienen, mehrere Extrema der Zielfunktion zu finden, d.h. mehrere verschiedene Werte der wenigstens einen Koordinaten und/oder weiterer Suchparameter, für die die Zielfunktion extremal wird, wobei es sich bei den einzelnen Extrema jeweils um ein globales oder auch um ein lokales Extremum handeln kann. Mehrere Extrema können beispielsweise mehreren Codezeilen und/oder mehreren jeweils zwischen zwei Codezeilen angeordneten Zwischenräumen entsprechen, deren Positionen dann durch die mehreren Schwärme identifiziert werden, so dass anhand der identifizierten Positionen z.B. eine Zeilensegmentierung des Bildes möglich ist. The particle swarm optimization can also be carried out with several swarms, each having a plurality of particles. For example, the use of multiple swarms may serve to find multiple extremes of the objective function, i. a plurality of different values of the at least one coordinates and / or further search parameters for which the objective function becomes extremal, wherein the individual extrema can each be a global or even a local extremum. For example, a plurality of extremes may correspond to multiple lines of code and / or a plurality of spaces each arranged between two lines of code, the positions of which are then identified by the plurality of flocks, so that from the identified positions e.g. a line segmentation of the image is possible.

Gemäß einer bevorzugten Ausführungsform wird ein Territorium für wenigstens einen Schwarm definiert, welches einen Teilbereich des durch die Parameter der Partikelschwarmoptimierung definierten Suchraums darstellt, wobei während einer Iteration der Partikelschwarmoptimierung überprüft wird, ob sich wenigstens ein Partikel des Schwarms außerhalb des dem Schwarm zugeordneten Territoriums befindet. Der Suchraum der Partikelschwarmoptimierung wird auf diese Weise in mehrere Territorien unterteilt, wobei jeder Schwarm ein Extremum in dem ihm zugeordneten Territorium sucht. Die Aufteilung des Suchraums in Territorien kann dabei insbesondere so erfolgen, dass ein Suchraum jeweils einem Teilbereich des Bildes entspricht, innerhalb dessen z.B. genau eine Codezeile, genau ein Zwischenraum zwischen zwei Codezeilen oder genau ein Codezeichen oder genau ein Zwischenraum zwischen zwei Codezeichen erwartet wird, wobei das zugehörige Extremum der Zielfunktion dann von dem jeweiligen Schwarm gesucht wird. Durch diese gezielte Aufteilung des Suchraums können die Geschwindigkeit des Verfahrens und dessen Zuverlässigkeit noch weiter erhöht werden. According to a preferred embodiment, a territory is defined for at least one swarm representing a subset of the search space defined by the particle swarm optimization parameters, and during an iteration of particle swarm optimization it is checked if at least one swarm particle is outside of the swarm associated territory. The particle swarm optimization search space is thus subdivided into several territories, each swarm seeking an extremum in its associated territory. In particular, the division of the search space into territories can take place in such a way that a search space corresponds in each case to a partial area of the image within which e.g. exactly one line of code, exactly one space between two lines of code or exactly one code character or exactly one space between two code characters is expected, with the associated extremum of the objective function is then sought by the respective swarm. This targeted division of the search space, the speed of the process and its reliability can be further increased.

Die Anzahl der Schwärme der Partikelschwarmoptimierung wird bevorzugt abhängig von der Anzahl der in dem Bild erwarteten Codezeilen und/oder Codezeichen eingestellt, wobei die Anzahl der Schwärme beispielsweise um einen Schwarm größer gewählt werden kann als die Anzahl der Zeilen, so dass jedem Zwischenraum zwischen zwei Codezeilen und den oberhalb und unterhalb der Codezeilen angeordneten Freiräumen jeweils ein Schwarm zugeordnet werden kann, der zur Bestimmung der Position des jeweiligen Zwischen- bzw. Freiraums dient. Wenn festgestellt wird, dass ein Partikel das Territorium seines Schwarms aufgrund seiner aktuellen Geschwindigkeit verlassen würde, kann dem Partikel stattdessen eine Position innerhalb des Territoriums zugewiesen werden. The number of swarms of particle swarm optimization is preferably set depending on the number of code lines and / or code characters expected in the image, wherein the number of swarms may be selected, for example, one swarm larger than the number of lines, such that each space between two lines of code and the free spaces arranged above and below the code lines can each be assigned a swarm which serves to determine the position of the respective intermediate or free space. If it is determined that a particle would leave the territory of its flock due to its current speed, the particle may instead be assigned a position within the territory.

Das beschriebene Verfahren kann prinzipiell ganz ohne Benutzereingaben automatisch in robuster und zuverlässiger Weise durchgeführt werden. Es kann aber auch eine Eingabe von einem Benutzer erfasst werden, die eine Angabe über einen erwarteten Wert des Winkels α umfasst. Dieser Wert des Winkels α kann dann verwendet werden, um das Verfahren zur Bestimmung des Winkels α zu initialisieren, oder der Winkel α kann bei einer Zeilen- und/oder Zeichensegmentierung als vorgegebener unveränderlicher Wert angenommen werden. The described method can in principle be carried out automatically without user input automatically in a robust and reliable manner. However, an input can also be detected by a user, which includes an indication of an expected value of the angle α. This value of the angle α can then be used to initialize the method for determining the angle α, or the angle α can be taken as a given fixed value in a row and / or character segmentation.

Es kann auch eine Angabe von einem Benutzer erfasst werden, die eine erwartete Anzahl von in dem Code enthaltenen Codezeilen und/oder eine erwartete Anzahl von in einer Codezeile des Codes enthaltenen Codezeichen umfasst. Eine solche Angabe kann insbesondere dazu verwendet werden, die Anzahl der bei der Partikelschwarmoptimierung verwendeten Schwärme und/oder die diesen Schwärmen jeweils zugeordneten Suchterritorien zu wählen. Insbesondere durch die Auswahl der Anzahl der Schwärme in Abhängigkeit von einer, z.B. von einem Benutzer eingegebenen, Anzahl von erwarteten Codezeilen oder Codezeichen kann die Zuverlässigkeit der Segmentierung erheblich gesteigert werden. An indication may also be captured by a user comprising an expected number of lines of code contained in the code and / or an expected number of codes contained in a code line of the code. Such an indication can in particular be used to select the number of swarms used in the particle swarm optimization and / or the search territories assigned to each of these swarms. In particular, the selection of the number of swarms depending on a, for example, entered by a user, number of expected lines of code or code characters, the reliability of the segmentation can be significantly increased.

Eine Benutzereingabe kann auch einen oder mehrere Wertebereiche für eine oder mehrere der vorstehend genannten Angaben umfassen. User input may also include one or more ranges of values for one or more of the above.

Das Verfahren eignet sich insbesondere zur automatischen optischen Textzeichenerkennung, wobei die Segmentierung die Bestimmung einer Ausrichtung eines mehrere Zeilen enthaltenden Textes und/oder die Bestimmung von Segmenten des Bildes umfassen kann, die genau eine Textzeile oder genau ein Textzeichen enthalten. Aufgrund seiner hohen Geschwindigkeit kann das Verfahren insbesondere auch in Echtzeitanwendungen eingesetzt werden, d.h. als Teil eines Verfahrens, welches wenigstens eine Echtzeitbedingung erfüllt. The method is particularly suitable for automatic optical text character recognition, where the segmentation may comprise the determination of an alignment of a text containing several lines and / or the determination of segments of the image which contain exactly one text line or one text character. Due to its high speed, the method can be used in particular in real-time applications, i. as part of a method that satisfies at least one real-time condition.

Ein weiterer Gegenstand der Erfindung betrifft eine Vorrichtung, umfassend wenigstens eine Recheneinrichtung, welche zur Durchführung eines wie hierin beschriebenen Verfahrens konfiguriert ist. Die hierin in Bezug auf das Verfahren beschriebenen Vorteile und vorteilhaften Ausführungsformen gelten entsprechend auch für die erfindungsgemäße Vorrichtung. Another object of the invention relates to a device comprising at least one computing device which is configured to carry out a method as described herein. The advantages and advantageous embodiments described herein with regard to the method also apply correspondingly to the device according to the invention.

Die Vorrichtung kann eine optische Erfassungsvorrichtung, beispielsweise eine CCD-Kamera, umfassen, die zur Aufnahme wenigstens eines Bildes ausgebildet ist, wobei die Recheneinrichtung konfiguriert ist, das Segmentierungsverfahren an dem wenigstens einen Bild durchzuführen. Die das von der optischen Erfassungsvorrichtung aufgenommene Bild darstellenden Bilddaten können dabei beispielsweise in einem elektronischen Speicher ablegbar sein, der zu diesem Zweck mit der optischen Erfassungsvorrichtung verbunden ist und der mit der Recheneinrichtung derart verbunden ist, dass die Recheneinrichtung die Bilddaten abrufen und verarbeiten kann. Die optische Erfassungsvorrichtung und die Recheneinrichtung sind vorzugsweise in einer gemeinsamen baulichen Einheit integriert. Die Vorrichtung kann insbesondere durch einen Codeleser oder eine Smartkamera gebildet sein. The device may comprise an optical detection device, such as a CCD camera, adapted to receive at least one image, wherein the computing device is configured to perform the segmentation process on the at least one image. The image data representing the image recorded by the optical detection device can be stored, for example, in an electronic memory, which is connected to the optical detection device for this purpose and which is connected to the computing device in such a way that the computing device can retrieve and process the image data. The optical detection device and the computing device are preferably integrated in a common structural unit. The device can be formed in particular by a code reader or a smart camera.

Ein weiterer Gegenstand der Erfindung ist ein Verfahren zum Lesen eines Codes, bei dem ein mit einer optischen Erfassungsvorrichtung von einer Oberfläche eingelesenes Bild mit einem wie hierin beschriebenen Verfahren zur Segmentierung wenigstens eines einen Code mit wenigstens einer Codezeile enthaltenden Bildes segmentiert wird, um die Ausrichtung des Codes auf der Oberfläche zu bestimmen. Bei der Oberfläche kann es sich beispielsweise um ein auf einer Verpackung, z.B. einer Arzneimittelverpackung, angebrachtes mit dem Code bedrucktes Etikett handeln. Another object of the invention is a method for reading a code, in which an image read in from a surface with an optical detection device is segmented using a method as described herein for segmenting at least one image containing a code with at least one line of code to determine the alignment of the image To determine codes on the surface. The surface may, for example, be a one on a package, e.g. a drug package, attached label printed with the code act.

Ein weiterer Gegenstand der Erfindung ist ein Programmprodukt, welches Programmanweisungen enthält, die bei ihrer Ausführung auf einer Recheneinrichtung ein wie hierin beschriebenes Verfahren zur Segmentierung eines einen Code mit wenigstens einer Codezeile enthaltenden Bildes durchführen. A further subject of the invention is a program product which contains program instructions which, when executed on a computing device, perform a method as described herein for segmenting an image containing a code with at least one line of code.

Nachfolgend wird die Erfindung beispielhaft anhand einer vorteilhaften Ausführungsform unter Bezugnahme auf die beigefügten Zeichnungen beschrieben. Es zeigen: The invention will now be described by way of example with reference to an advantageous embodiment with reference to the accompanying drawings. Show it:

1 ein Beispiel eines zu segmentierenden Bildes, das einen Code mit mehreren Codezeilen enthält; und 1 an example of an image to be segmented containing a code with multiple lines of code; and

2 das Bild aus 1 mit einer Kennzeichnung der Bildsegmente, die jeweils eine Codezeile enthalten; 2 the picture off 1 with an identification of the image segments, each containing a line of code;

3a–c das Bild aus 1 nach einer Segmentierung; 3a -C the picture 1 after a segmentation;

4 eine schematische Darstellung eines Beispiels eines Bildes, an dem ein Verfahren gemäß einer Ausführungsform der Erfindung durchgeführt wird; und 4 a schematic representation of an example of an image on which a method is performed according to an embodiment of the invention; and

5 eine weitere schematische Darstellung des Bildes aus 4. 5 another schematic representation of the image 4 ,

1 zeigt ein Bild, welches von einer optischen Erfassungsvorrichtung aufgenommen wurde. Das Bild kann auch durch Ausschneiden einer Textregion aus einem solchen Bild erhalten worden sein. Bei dem Bild handelt es sich um ein Grauwertbild mit mehreren Bildpunkten, die in einem Raster aus M in einer Zeilenrichtung 10 des Bildes verlaufenden Zeilen von Bildpunkten und N in einer Spaltenrichtung 12 des Bildes verlaufenden Spalten von Bildpunkten angeordnet sind, wobei jedem Bildpunkt ein Bild- bzw. Grauwert zwischen 0 = Schwarz und 255 = Weiß zugeordnet ist. Die Position eines Bildpunktes ist dabei durch einen dem Bildpunkt zugeordneten Zeilenindex m und einen Spaltenindex n gegeben, welche die Bildpunktzeile bzw. -spalte angeben, in der sich der jeweilige Bildpunkt befindet. Ein Bildpunkt 26 des Bildes entspricht dabei einem Sensorelement oder Pixel eines Bildsensors, mit dem das Bild aufgenommen wurde, und die Zeilenrichtung 10 des Bildes entspricht der Richtung des Bildsensors, in der eine Zeile von Sensorelementen bzw. Pixeln des Bildsensors verläuft. 1 Fig. 10 shows an image taken by an optical detection device. The image may also have been obtained by cropping a text region from such an image. The image is a grayscale image with multiple pixels in a grid of M in a row direction 10 of the image extending lines of pixels and N in a column direction 12 are arranged in the image extending columns of pixels, each pixel is associated with an image or gray value between 0 = black and 255 = white. The position of a pixel is given by an image index associated with the row index m and a column index n, which indicate the pixel row or column in which the respective pixel is located. A pixel 26 of the image corresponds to a sensor element or pixel of an image sensor, with which the image was taken, and the line direction 10 of the image corresponds to the direction of the image sensor in which a row of sensor elements or pixels of the image sensor runs.

Wie in 1 gezeigt, enthält das Bild einen Code mit drei jeweils aus mehreren Codezeichen 14 bestehenden Codezeilen 16, deren Ausrichtung gegenüber der horizontalen Richtung des Bildes, welche der Zeilenrichtung 10 des Bildes entspricht, um einen Winkel α geneigt ist. Die Codezeichen 14 heben sich von einem helleren Hintergrund 18 des Bildes ab. As in 1 shown, the image contains a code with three each of several code characters 14 existing lines of code 16 whose orientation is opposite to the horizontal direction of the image, that of the line direction 10 corresponds to the image is inclined by an angle α. The code characters 14 stand out from a lighter background 18 of the picture.

2 zeigt das Bild aus 1, wobei zusätzlich die Codezeilensegmente 20 des Bildes gekennzeichnet sind, in denen sich jeweils genau eine Codezeile 16 befindet und die mit einem computerisierten Verfahren zur Segmentierung des Bildes bestimmt werden sollen. 2 shows the picture 1 , where additionally the code line segments 20 of the image are marked, in each of which exactly one line of code 16 and which are to be determined by a computerized method for segmenting the image.

In 3a–c sind die drei Codezeilensegmente 20 aus 2 dargestellt, nachdem diese aus dem Bild aus 1 und 2 ausgeschnitten wurden und die Ausrichtung der Codezeilen 16 korrigiert wurde, indem die Codezeilen 16 um den durch das rechnergestützte Verfahren zur Segmentierung des Bildes bestimmten Winkel α im Uhrzeigersinn gedreht wurden. In 3a -C are the three code line segments 20 out 2 shown after this out of the picture 1 and 2 were cut out and the alignment of the lines of code 16 has been corrected by the lines of code 16 around the angle α determined by the computer-aided method for segmenting the image were rotated clockwise.

Nachfolgend wird anhand der 4 und 5 ein beispielhaftes Verfahren zur rechnergestützten Segmentierung wenigstens eines einen Code mit wenigstens einer Codezeile enthaltenden Bildes unter Verwendung einer Partikelschwarmoptimierung gemäß einer Ausführungsform der Erfindung beschrieben. The following is based on the 4 and 5 an exemplary method for computer-aided segmentation of at least one image containing a code with at least one line of code using a particle swarm optimization according to an embodiment of the invention described.

4 zeigt ein wie in 1 bis 3 gezeigtes Bild in schematischer Darstellung, wobei auch die einzelnen, in einem Raster von M Bildpunktzeilen 22 und N Bildpunktspalten 24 angeordneten Bildpunkte 26 dargestellt sind. Ein beliebiger Bildpunkt 26 ist dabei eindeutig durch einen ganzzahligen Zeilenindex m und einen ganzzahligen Spaltenindex n gegeben, welche die Position des Bildpunktes 26 in dem Bild angeben. 4 shows a like in 1 to 3 shown image in a schematic representation, where also the individual, in a grid of M pixel lines 22 and N pixel columns 24 arranged pixels 26 are shown. An arbitrary pixel 26 is uniquely given by an integer row index m and an integer column index n, which is the position of the pixel 26 in the picture.

Bei dem beispielhaft geschilderten Verfahren wird zunächst der Wert des Winkels α bestimmt bzw. abgeschätzt, der eine Winkelabweichung der Ausrichtung einer Codezeile des Bildes von der Horizontalen des Bildes angibt, wobei die Horizontale der Zeilenrichtung 10 des Bildes entspricht. Zu dieser Winkelschätzung wird eine Partikelschwarmoptimierung durchgeführt, deren Suchraum durch zwei Suchparameter aufgespannt wird, die zum einen den Winkel α umfassen und zum anderen eine Koordinate y des Bildes. Der Winkel α ist als der angenommene Wert der Winkelabweichung einer in dem Bild enthaltenden Codezeile von der Horizontalen des Bildes definiert. Die Koordinate y definiert, wie in 4 gezeigt, einen Wert auf einer Koordinatenachse 28 des Bildes, die ihren Ursprung in dem Bildpunkt (m, n) = (1, 1) hat und die gegenüber der Spaltenrichtung 12 um den angenommenen Wert des Winkels α geneigt ist. Die Koordinatenachse 28 ist so normiert, dass der Wert 1 auf der Koordinatenachse 28 der Breite und Höhe eines Bildpunktes 26 entspricht. Der Parameter x gibt einen Wert auf einer Koordinatenachse 30 des Bildes an, die gegenüber der Koordinatenachse 28 um 90 Grad gedreht ist. Beide Koordinaten x und y sind hier als diskrete ganzzahlige Werte definiert, d.h. es werden stets ganzzahlige Werte für x und y angenommen. In the method described by way of example, first the value of the angle α is determined or estimated, which indicates an angular deviation of the orientation of a code line of the image from the horizontal of the image, the horizontal line direction 10 corresponds to the picture. For this angle estimation, a particle swarm optimization is carried out, whose search space is spanned by two search parameters, which on the one hand comprise the angle α and, on the other hand, a coordinate y of the image. The angle α is defined as the assumed value of the angular deviation of a line of code contained in the image from the horizontal of the image. The coordinate y defines, as in 4 shown a value on a coordinate axis 28 of the image having its origin in the pixel (m, n) = (1, 1) and that opposite to the column direction 12 is inclined by the assumed value of the angle α. The coordinate axis 28 is normalized to the value 1 on the coordinate axis 28 the width and height of a pixel 26 equivalent. The parameter x gives a value on a coordinate axis 30 of the image, which is opposite the coordinate axis 28 turned 90 degrees. Both coordinates x and y are defined here as discrete integer values, ie integer values for x and y are always assumed.

Die Zielfunktion f(y, α) der Partikelschwarmoptimierung hängt von der Koordinate y und dem Winkel α ab, welche die Parameter der Funktion f bilden, und ist wie folgt definiert:

Figure 00230001
The objective function f (y, α) of the particle swarm optimization depends on the coordinate y and the angle α, which form the parameters of the function f, and is defined as follows:
Figure 00230001

Darin bezeichnet G(m, n):{1, ..., M} × {1, ..., N} → {0, ..., 255} die Funktion, die jedem durch die zugehörigen Zeilen- und Spaltenindizes m, n bzw. m', n' identifizierten Bildpunkt 26 dem zu diesem Bildpunkt 26 gehörigen Grauwert des Bildes zwischen 0 und 255 zuweist, d.h. die Funktion G(m, n) bezeichnet die Bilddaten des Grauwertbildes. Die Parameter m, n und m', n' leiten sich durch die Gleichungen m = –xsinα + ycosα m′ = –xsinα + (y + 1)cosα n = xcosα + y sinα n′ = xcosα + (y + 1)sinα aus den wie vorstehend definierten Koordinaten x und y ab. X ist dabei die Menge aller ganzzahligen Werte von x, die zusammen mit dem jeweiligen Wert der Koordinate y einen Bildpunkt identifizieren, der innerhalb des Bildes liegt. |X| bezeichnet die Mächtigkeit der Menge X, d.h. die Anzahl der in der Menge X enthaltenen ganzzahligen Werte der Koordinate x. Wie vorstehend beschrieben, ist die Grauwertfunktion G(m, n) bzw. G(m', n') nur für diskrete Bildpunkte und somit für diskrete ganzzahlige Werte von m, n und m', n' definiert. Die vorstehenden Gleichungen zur Berechnung von m, n und m', n' aus x, y und α sind dementsprechend so zu verstehen, dass die sich aus diesen Gleichungen ergebenden reellwertigen Ergebnisse für m, n, m' und n' gegebenenfalls auf einen benachbarten ganzzahligen Wert auf- oder abgerundet werden, um einen entsprechenden Bildpunkt 26 eindeutig zu identifizieren und die Auswertung von G(m, n) und G(m', n') zu ermöglichen. Here, G (m, n) denotes {1, ..., M} × {1, ..., N} → {0, ..., 255} the function which indices each through the associated row and column indices m, n or m ', n' identified pixel 26 to this pixel 26 assigned gray value of the image between 0 and 255, ie, the function G (m, n) denotes the image data of the gray value image. The parameters m, n and m ', n' are derived by the equations m = -xsinα + ycosα m '= - xsinα + (y + 1) cosα n = x cos α + y sin α n '= x cos α + (y + 1) sin α from the coordinates x and y as defined above. X is the set of all integer values of x which, together with the respective value of the coordinate y, identify a pixel which lies within the image. | X | denotes the power of the set X, ie the number of integer values of the coordinate x contained in the set X. As described above, the gray value function G (m, n) or G (m ', n') is defined only for discrete pixels and thus for discrete integer values of m, n and m ', n'. The above equations for the calculation of m, n and m ', n' from x, y and α are accordingly to be understood such that the real-valued results for m, n, m 'and n' resulting from these equations may be adjacent integer value rounded up or down to a corresponding pixel 26 clearly identify and allow the evaluation of G (m, n) and G (m ', n').

Die Funktion f(y, α) wertet die Grauwerte G(m, n), G(m', n') derjenigen durch die Koordinaten (m, n) und (m', n') gegebenen Bildpunkte 26 aus, die auf einer wie in 4 gezeigten Geraden 32 liegen, die die y-Koordinatenachse 28 bei dem jeweiligen y-Wert schneidet und die in Richtung der x-Koordinatenachse 30, d.h. gegenüber der Horizontalen des Bildes um einen Winkel α geneigt, verläuft. In 4 sind beispielhaft vier verschiedene solche Geraden 32 für vier beispielhafte Werte der Koordinate y, nämlich y = y1, y2, y3 und y3 + 1, dargestellt. Ebenfalls dargestellt ist ein beispielhafter Punkt (m, n) in dem Bild, der sich für einen bestimmten y-Wert y = y1 und einen beispielhaften x-Wert x = x1 aus den obigen Gleichungen ergibt sowie der entsprechende Punkt (m', n') in dem Bild, der sich für dieselben x- und y-Werte ergibt. Wie in 4 gezeigt, ist der Punkt (m', n') senkrecht zu der Geraden 32 um den Wert 1 von dem Punkt (m, n) beabstandet. Der Differenzwert G(m, n) – G(m', n') repräsentiert somit den in Richtung senkrecht zu der Geraden 32 betrachteten Gradienten der Bildgrauwerte dar. Die Funktion f(y, α) berechnet folglich die quadrierten, in der Richtung senkrecht zur Geraden 32 betrachteten Grauwertgradienten, wobei die Summe dieser quadrierten Gradienten über alle Bildpunkte 26 gebildet wird, die auf der jeweiligen Geraden 32 liegen. Der Faktor 1/|X| bewirkt eine Normierung der Zielfunktion f(y, α), so dass der Wert der Zielfunktion f(y, α) nicht davon abhängt, wie viele innerhalb des Bildes angeordnete Bildpunkte 26 auf der dem jeweiligen Wertepaar (y, α) entsprechenden Geraden 32 liegen. The function f (y, α) evaluates the gray values G (m, n), G (m ', n') of those pixels given by the coordinates (m, n) and (m ', n') 26 out on a like in 4 shown straight lines 32 lie, which is the y-coordinate axis 28 at the respective y-value and that in the direction of the x-coordinate axis 30 , that is inclined relative to the horizontal of the image by an angle α, runs. In 4 are exemplary four different such lines 32 for four exemplary values of the coordinate y, namely y = y 1 , y 2 , y 3 and y 3 + 1. Also shown is an exemplary point (m, n) in the image resulting in a given y-value y = y 1 and an exemplary x-value x = x 1 from the equations above and the corresponding point (m ', n ') in the image resulting in the same x and y values. As in 4 is shown, the point (m ', n') is perpendicular to the line 32 spaced by 1 from the point (m, n). The difference value G (m, n) -G (m ', n') thus represents that in the direction perpendicular to the line 32 Thus, the function f (y, α) calculates the squared, in the direction perpendicular to the line 32 observed gray scale gradients, the sum of these squared gradients over all pixels 26 is formed on the respective straight line 32 lie. The factor 1 / | X | causes a normalization of the objective function f (y, α), so that the value of the objective function f (y, α) does not depend on how many pixels are arranged within the image 26 on the line corresponding to the respective value pair (y, α) 32 lie.

Anschaulich beschreibt die Funktion f(y, α) also eine Projektion in Richtung der x-Koordinatenachse 30 der quadrierten, in Richtung senkrecht zu der Richtung der x-Koordinatenachse 30 ermittelten Gradienten der Grauwerte des Bildes. Illustratively, the function f (y, α) thus describes a projection in the direction of the x-coordinate axis 30 the squared, in the direction perpendicular to the direction of the x-coordinate axis 30 determined gradient of the gray values of the image.

Aufgrund der vorstehenden Definition der Funktion f(y, α) bildet sich ein Maximum der Funktion f(y, α) dann aus, wenn die Gerade 32 entlang eines Übergangs von einer in dem Bild enthaltenen Codezeile zum Hintergrund des Bildes verläuft bzw. wenn die Gerade 32 entlang einer Kante einer Codezeile verläuft, da dann die quadrierten Gradienten für alle auf der Geraden 32 liegenden Bildpunkte 26 maximal werden. Der Wert des Winkels α in dem zu diesem Maximum gehörenden Wertepaar (y, α) gibt folglich eine Abschätzung des tatsächlichen Werts des Winkels α an, um den die Codezeilen gegenüber der Horizontalen geneigt sind. Due to the above definition of the function f (y, α), a maximum of the function f (y, α) is formed when the straight line 32 along a transition from a line of code contained in the image to the background of the image, or if the line 32 along one edge of a line of code, since then the squared gradients for all on the line 32 lying pixels 26 become maximum. The value of the angle α in the value pair (y, α) belonging to this maximum thus indicates an estimate of the actual value of the angle α by which the lines of code are inclined with respect to the horizontal.

Das Wertepaar (y, α), für das die Funktion f(y, α) maximal wird, wird durch eine Partikelschwarmoptimierung bestimmt, wobei die Koordinate y und der Winkel α als Suchparameter und die Funktion f(y, α) als Zielfunktion der Partikelschwarmoptimierung verwendet werden. The pair of values (y, α), for which the function f (y, α) becomes maximal, is determined by a particle swarm optimization, with the coordinate y and the angle α as the search parameter and the function f (y, α) as the target function of the particle swarm optimization be used.

Der Definitionsbereich der Funktion f(y, α), der gleichzeitig den Suchraum der Partikelschwarmoptimierung darstellt, ist gegeben durch [1, ..., ymax] × [–αmin, ..., αmax], wobei [1, ..., ymax] alle ganzzahligen Werte von y umfasst, die sich innerhalb des Bildes befinden und [–αmin, ..., αmax] einen vorgegebenen kontinuierlichen oder mit einer Schrittweite von z.B. 1° diskretisierten Wertebereich darstellt, in dem der gesuchte Wert des Winkels α gesucht werden soll, z.B. [–45°, ..., 45°]. The domain of the function f (y, α), which simultaneously represents the search space of the particle swarm optimization, is given by [1, ..., y max ] × [-α min , ..., α max ], where [1, ..., y max ] includes all integer values of y, which are within the image and [-α min , ..., α max ] represents a predetermined continuous range or with a step size of eg 1 ° discretized range of values, in the the searched value of the angle α should be searched for, eg [-45 °, ..., 45 °].

Zu Beginn der Partikelschwarmoptimierung wird ein Schwarm von beispielsweise vier Partikeln initialisiert, die anhand eines entsprechenden Index i = 1, ..., 4 unterschieden werden. Bei der Initialisierung wird jedem Partikel ein von wenigstens einer Zufallszahl abhängiges Wertepaar parti(0) = (part α / i(0), part y / i(0)) innerhalb des Suchraums zugeordnet, das die Position des Partikels im Suchraum darstellt, wobei allgemein part α / i(ia + 1) den Wert des Parameters α und part y / i(ia + 1) den Wert des Parameters y des i-ten Partikels während der (ia + 1)-ten Iteration der Partikelschwarmoptimierung angibt, mit ia = 0, ..., iamax. Prinzipiell kann der Suchraum für die Initialisierung in mehrere Teilbereiche eingeteilt werden, wobei das Initialisierungswertepaar (part α / i(0), part y / i(0)) wenigstens eines Partikels i aus einem bestimmten dieser Teilbereiche ausgewählt wird, um somit bei der Initialisierung eine gleichmäßige Verteilung der Partikel im Suchraum sicherzustellen. At the beginning of the particle swarm optimization, a swarm of, for example, four particles is initialized, which are differentiated by a corresponding index i = 1,..., 4. At initialization, each particle becomes a value pair dependent on at least one random number part i (0) = (part α / i (0), part y / i (0)) within the search space, which represents the position of the particle in the search space, where general part α / i (ia + 1) the value of the parameter α and part y / i (ia + 1) indicates the value of the parameter y of the i-th particle during the (ia + 1) -th iteration of the particle swarm optimization, with ia = 0,..., ia max . In principle, the search space for the initialization can be divided into several subareas, the initialization value pair (part α / i (0), part y / i (0)) at least one particle i is selected from a specific one of these subregions, so as to ensure a uniform distribution of the particles in the search space during the initialization.

Nach der Initialisierung der Partikel findet die erste Iteration der Partikelschwarmoptimierung statt. Diese beginnt mit der Berechnung der aktuellen Geschwindigkeiten der Partikel, wobei die Geschwindigkeit des i-ten Partikels in der (ia + 1)-ten Iteration allgemein durch den Vektor veli(ia + 1) = (vel α / i(ia + 1), vel y / i(ia + 1)) dargestellt wird, wobei ia = 0 und ia + 1 = 1 während der ersten, auf die Initialisierung der Partikel folgenden Iteration. Die Komponenten vel α / i(ia + 1) und vel y / i(ia + 1) des Geschwindigkeitsvektors veli(ia + 1) geben jeweils die Geschwindigkeit an, mit der sich das i-te Partikel in der Dimension α bzw. in der Dimension y des Suchraums bewegt. Die Geschwindigkeiten der Partikel berechnen sich nach den folgenden Gleichungen:

Figure 00260001
Figure 00270001
After initialization of the particles, the first iteration of the particle swarm optimization takes place. This begins with the calculation of the actual velocities of the particles, whereby the velocity of the i-th particle in the (ia + 1) -th iteration generally by the vector vel i (ia + 1) = (vel α / i (ia + 1), vel y / i (ia + 1)) where ia = 0 and ia + 1 = 1 during the first iteration following initialization of the particles. The components vel α / i (ia + 1) and vel y / i (ia + 1) of the velocity vector vel i (ia + 1) respectively indicate the speed at which the i-th particle moves in the dimension α or in the dimension y of the search space. The velocities of the particles are calculated according to the following equations:
Figure 00260001
Figure 00270001

Der Geschwindigkeitsvektor wird also aus den drei Summanden velC1, velC2 und velC3 berechnet. Da bei der Initialisierung des beispielhaften Verfahrens den Partikeln keine Anfangsgeschwindigkeiten zugewiesen werden, d.h. veli(ia) = (0, 0) für ia = 0, verschwindet der erste Summand velC1 bei der ersten Iteration der Partikelschwarmoptimierung. In folgenden Iterationen geht aufgrund des Summanden velC1 die Geschwindigkeit eines Partikels aus der vorherigen Iteration ia mit einem von der Iteration ia abhängigen Gewichtungsfaktor w(ia) in die Geschwindigkeit während der jeweils aktuellen Iteration ia + 1 ein. Durch den Summanden velC1 kann eine ausreichende Exploration des Suchraums sichergestellt werden. Bevorzugt nimmt der Gewichtungsfaktor w(ia) mit zunehmenden Iterationen ia ab, wodurch eine gute Konvergenz des Verfahrens erreicht wird. The velocity vector is thus calculated from the three summands velC 1 , velC 2 and velC 3 . Since no initial velocities are assigned to the particles during the initialization of the exemplary method, ie vel i (ia) = (0, 0) for ia = 0, the first summand velC 1 disappears during the first iteration of the particle swarm optimization. In the following iterations, due to the summand velC 1, the velocity of a particle from the previous iteration ia enters the velocity during the respective current iteration ia + 1 with a weighting factor w (ia) dependent on the iteration ia. By the summand velC 1 sufficient exploration of the search space can be ensured. Preferably, the weighting factor w (ia) decreases with increasing iterations ia, whereby a good convergence of the method is achieved.

Unmittelbar nach der Initialisierung ist die aktuelle Position jedes Partikels gleichzeitig auch dessen beste bisher besuchte Position, d.h. pbesti(ia) = (pbest α / i(ia), pbest y / i(ia)) ist identisch mit der aktuellen Position parti(ia) = (part α / i(ia), part y / i(ia)) des i-ten Partikels für ia = 0, so dass auch der zweite Summand velC2 in der ersten Iteration, d.h. für ia + 1 = 1, verschwindet. Unter der "besten" Position des i-ten Partikels wird die von dem Partikel bereits besuchte Position im Suchraum verstanden, die den größten Wert der Funktion f(y, α) liefert. In folgenden Iterationen bedeutet der zweite Summand velC2 eine Geschwindigkeitskomponente jedes Partikels, die von der aktuellen Partikelposition parti(ia) = (part α / i(ia), part y / i(ia)) in Richtung der besten bereits besuchten Position desselben Partikels parti(ia) = (part α / i(ia), part y / i(ia)) zeigt, so dass das Partikel in Richtung seiner besten besuchten Position im Suchraum bewegt wird. ac1 in der obigen Gleichung ist ein unveränderlicher Gewichtungsfaktor und der Faktor r1 ist eine Zufallszahl zwischen 0 und 1, die während jeder Iteration neu berechnet wird. Immediately after initialization, the current position of each particle is also its best previously visited position, ie pbest i (ia) = (pbestα / i (ia), pbesty / i (ia)) is identical to the current position part i (ia) = (part α / i (ia), part y / i (ia)) of the i-th particle for ia = 0, so that also the second summand velC 2 vanishes in the first iteration, ie for ia + 1 = 1. The "best" position of the i-th particle is understood to be the position already visited by the particle in the search space, which yields the largest value of the function f (y, α). In subsequent iterations, the second summand velC 2 means a velocity component of each particle, which is the current particle position part i (ia) = (part α / i (ia), part y / i (ia)) in the direction of the best already visited position of the same particle part i (ia) = (part α / i (ia), part y / i (ia)) shows, so that the particle is moved in the direction of its best visited position in the search space. ac 1 in the above equation is a fixed weighting factor and the factor r 1 is a random number between 0 and 1, which is recalculated during each iteration.

Der dritte Summand velC3 repräsentiert eine Geschwindigkeitskomponente, die für jedes Partikel von der aktuellen Position parti(ia) = (part α / i(ia), part y / i(ia)) des Partikels in Richtung der globalen besten bekannten Position aller Partikel im Suchraum, genannt gbest(ia) = (gbestα(ia), gbesty(ia)), weist und somit das jeweilige Partikel in Richtung dieser besten von einem beliebigen Partikel bereits besuchten Position bewegt. Während der ersten Iteration ist dieser Summand velC3 der einzige nicht-verschwindende der drei Summanden velC1, velC2 und velC3 und bewegt die Partikel in Richtung der Position desjenigen Partikels, welches mit der besten Position initialisiert wurde. In Ausnahmefällen kann auch der dritte Summand velC3 bei der ersten Iteration verschwinden. In diesem Fall kann den Partikeln während der ersten Iteration z.B. ein zufälliger nicht-verschwindender Geschwindigkeitsvektor vel(1) zugewiesen werden oder es können andere geeignete Verfahren eingesetzt werden, um während der ersten Iteration einen nicht-verschwindenden Geschwindigkeitsvektor vel(1) für die Partikel zu bestimmen. Der Faktor ac2 in der obigen Gleichung ist wiederum ein unveränderlicher Gewichtungsfaktor und der Faktor r2 stellt eine für die jeweiligen Iteration berechnete Zufallszahl zwischen 0 und 1 dar. The third summand velC 3 represents a velocity component for each particle from the current position part i (ia) = (part α / i (ia), part y / i (ia)) of the particle in the direction of the global best known position of all particles in the search space, referred gbest (ia) = (gbest α (ia) gbest, y (ia)), has, and thus the respective particles in the direction of this best already visited by any particles Position moves. During the first iteration this summand velC 3 is the only non-vanishing of the three summands velC 1 , velC 2 and velC 3 and moves the particles in the direction of the position of the particle which coincides with the the best position was initialized. In exceptional cases, the third summand velC 3 can disappear on the first iteration. In this case, during the first iteration, for example, a random non-vanishing velocity vector vel (1) may be assigned to the particles, or other suitable methods may be employed to provide a non-vanishing velocity vector vel (1) for the particles during the first iteration determine. The factor ac 2 in the above equation is again an immutable weighting factor and the factor r 2 represents a random number between 0 and 1 calculated for the respective iteration.

Nach der Berechnung der Geschwindigkeiten wird in einer Iteration der Partikelschwarmoptimierung die Position jedes Partikels aktualisiert, d.h. der die aktualisierten Positionen aller i Partikel umfassende Positionsvektor part(ia + 1) wird nach der folgenden Gleichung berechnet:

Figure 00290001
After calculating the velocities, in an iteration of the particle swarm optimization, the position of each particle is updated, ie the position vector part (ia + 1) comprising the updated positions of all i particles is calculated according to the following equation:
Figure 00290001

Die Partikel des Schwarms bewegen sich folglich ausgehend von ihrer Position aus der vorhergehenden Iteration ia einen Schritt in Richtung ihres aktuellen Geschwindigkeitsvektors veli(ia + 1). Bevorzugt wird die Position der Partikel jeweils zusätzlich noch abhängig von einer für jedes Partikel während einer Iteration berechneten Zufallszahl verändert, wodurch die Exploration des Suchraums noch weiter verbessert werden kann. Diese zufällige Positionsveränderung geht vorzugsweise mit einem Gewichtungsfaktor in die neue Position ein, welcher mit zunehmenden Iterationen ia abnimmt, um die Konvergenz des Verfahrens sicherzustellen. Consequently, the particles of the swarm, based on their position from the previous iteration, generally move one step in the direction of their current velocity vector vel i (ia + 1). In each case, the position of the particles is preferably additionally changed as a function of a random number calculated for each particle during an iteration, as a result of which the exploration of the search space can be further improved. This random position change preferably enters the new position with a weighting factor, which generally decreases with increasing iterations in order to ensure the convergence of the method.

Ausgehend von den aktualisierten Partikelpositionen wird anschließend in jeder Iteration die aktualisierte beste Position jedes Partikels pbesti(ia + 1) = (pbest α / i(ia + 1), pbest y / i(ia + 1)) ermittelt, wobei die bisherige beste Partikelposition pbesti(ia) mit der aktualisierten Partikelposition parti(ia + 1) verglichen und gegebenenfalls angepasst wird. Sodann wird die aktualisierte globale beste Position aller Partikel gbest(ia + 1) = (gbestα(ia + 1), gbesty(ia + 1)) berechnet, wobei die bisherige globale beste Position aller Partikel gbest(ia) mit den aktualisierten Positionen parti(ia + 1) aller Partikel i vergleichen und gegebenenfalls angepasst ist. Die "bessere" Position ist dabei stets diejenige, für die die Funktion f(y, α) einen höheren Wert annimmt. Based on the updated particle positions, the updated best position of each particle is then in each iteration pbest i (ia + 1) = (pbestα / i (ia + 1), pbesty / i (ia + 1)) determined, wherein the previous best particle position pbest i (ia) compared with the updated particle position part i (ia + 1) and adjusted if necessary. Then gbest the updated global best position of all particles (ia + 1) = (gbest α (ia + 1), gbest y (ia + 1)), where the current global best position of all particles gbest (ia) with the updated Compare the positions part i (ia + 1) of all particles i and adjust them if necessary. The "better" position is always the one for which the function f (y, α) assumes a higher value.

Am Ende jeder Iteration wird das Vorliegen eines Abbruchkriteriums überprüft, welches anzeigt, ob eine ausreichende Konvergenz der Partikelpositionen erreicht worden ist. Bevorzugt wird dabei für jede Geschwindigkeitskomponente, d.h. für vel y / i(ia + 1) einerseits und vel α / i(ia + 1) andererseits jeweils ein gesondert definiertes Abbruchkriterium überprüft und es wird z.B. überprüft, ob beide Abbruchkriterien gleichzeitig erfüllt sind. Beispielsweise kann überprüft werden, ob die Summe der Beträge der aktuellen in Richtung des Suchparameters y gerichteten Geschwindigkeitskomponenten vel y / i(ia + 1) aller i Partikel und die der Beträge der aktuellen in Richtung des Suchparameters α gerichteten Geschwindigkeits komponente vel α / i(ia + 1) aller i Partikel jeweils einen vorgegebenen Schwellwert stopy, stopα nicht überschreiten, d.h. ob die Gleichungen

Figure 00300001
Figure 00310001
mit nop = Anzahl an Partikeln = 4, erfüllt sind. Wird festgestellt, dass das Abbruchkriterium nicht erfüllt ist, wird die nächste Iteration wie vorstehend beschrieben durchgeführt, wobei mit der Berechnung der aktualisierten Partikelgeschwindigkeiten begonnen wird. At the end of each iteration, the presence of an abort criterion is checked, which indicates whether sufficient convergence of the particle positions has been achieved. It is preferred for each speed component, ie for vely / i (ia + 1) on the one hand and velα / i (ia + 1) On the other hand, each checked a separately defined termination criterion and it is checked, for example, whether both termination criteria are met simultaneously. For example, it can be checked whether the sum of the amounts of the current speed components directed in the direction of the search parameter y vely / i (ia + 1) all i particles and the amounts of the current speed component directed in the direction of the search parameter α velα / i (ia + 1) all i particles each have a predetermined threshold stop y , stop α , ie whether the equations
Figure 00300001
Figure 00310001
with nop = number of particles = 4, are satisfied. If it is determined that the abort criterion is not met, the next iteration is performed as described above, beginning with the calculation of the updated particle velocities.

Ist das Abbruchkriterium erfüllt, stellt der aktuelle globale beste Wert gbest(ia + 1) = (gbestα(ia + 1), gbesty(ia + 1)) die Lösung des Optimierungsproblems dar. gbestα(ia + 1) ist folglich der aus dem Verfahren resultierende Schätzwert für den tatsächlichen Wert des Suchparameters α, d.h. für den Winkel, um den die Ausrichtung der Codezeilen des Bildes von der Horizontalen des Bildes abweicht. If the stop criterion is met, the current global best value gbest (ia + 1) = (gbest α (ia + 1), gbest y (ia + 1)), the solution of the optimization problem is. Gbest α (ia + 1) is thus the result of the method for the actual value of the search parameter α, ie for the angle by which the alignment of the lines of code of the image deviates from the horizontal of the image.

Der am Ende der vorstehend beschriebenen Winkelschätzung resultierende Wert gbesty(ia + 1) wird für das weitere Segmentierungsverfahren gemäß dem vorliegenden Ausführungsbeispiel nicht mehr benötigt. Obwohl der aus der Partikelschwarmoptimierung resultierende Optimalwert der Koordinate y für die letztendliche Segmentierung an sich nicht unbedingt von Bedeutung ist, kommt es im Rahmen der Erfindung darauf an, dass eine Koordinate des Bildes, bei dem beschriebenen Beispiel y, als Suchparameter bei der Partikelschwarmoptimierung verwendet wird, da dadurch der Rechenaufwand des Verfahrens erheblich reduziert wird. Die Verwendung der Koordinate y als Suchparameter der vorstehend beschriebenen Partikelschwarmoptimierung ermöglicht es nämlich, die Existenz von Teilbereichen des Bildes auszunutzen, anhand derer sich der Winkel α besonders zuverlässig bestimmen lässt. Die Partikel steuern bei der Partikelschwarmoptimierung zielgerichtet diejenigen Werte der Koordinate y an, aus denen sich diese für die Segmentierung besonders aussagekräftigen Teilbereiche ergeben. So wird eine besonders gute Abschätzung des Winkels α ermöglicht wird, ohne dass eine Auswertung des gesamten Bildes während einer Iteration der Partikelschwarmoptimierung erforderlich ist. The resulting at the end of the angle estimation described above gbest value y (ia + 1) is no longer needed for the further segmentation method according to the present embodiment. Although the optimum value of the coordinate y resulting from the particle swarm optimization is not necessarily important for the final segmentation per se, it is important in the context of the invention that a coordinate of the image, in the example described y, be used as a search parameter in the particle swarm optimization because this considerably reduces the computational complexity of the method. The use of the coordinate y as a search parameter of the above-described particle swarm optimization makes it possible to exploit the existence of subregions of the image by means of which the angle α can be determined particularly reliably. In the particle-swarm optimization, the particles purposefully control those values of the coordinate y, from which these sub-ranges, which are particularly meaningful for the segmentation, result. Thus, a particularly good estimate of the angle α is made possible without the need to evaluate the entire image during an iteration of the particle swarm optimization.

Auf die vorstehend beschriebene Winkelschätzung folgend wird eine Zeilensegmentierung des Bildes durchgeführt, d.h. eine Bestimmung der z.B. in 2 gezeigten Codezeilensegmente 20 des Bildes. Hierzu wird eine weitere Partikelschwarmoptimierung durchgeführt. Following the above-described angle estimation, a line segmentation of the image is performed, ie, a determination of, for example, in 2 shown code line segments 20 of the picture. For this purpose, a further particle swarm optimization is carried out.

Bei der Zeilensegmentierung wird der während der Winkelschätzung ermittelte Schätzwert für den Winkel α, nachfolgend als α ˆ bezeichnet, als fester unveränderlicher Wert des Winkels α angenommen. Die Zielfunktion für die Partikelschwarmoptimierung ist wie folgt definiert:

Figure 00320001
In the line segmentation, the estimated value for the angle α determined during the angle estimation, hereinafter referred to as α, is assumed to be a fixed invariable value of the angle α. The objective function for particle swarm optimization is defined as follows:
Figure 00320001

Da der Winkel α als konstanter Wert α ˆ angenommen wird, hängt die Funktion

Figure 00320002
nur noch von der variablen Koordinate y ab, d.h. dass eine eindimensionale Partikelschwarmoptimierung durchgeführt wird. Dabei sind die Parameter x, y, X, |X| und G(m, n) wie vorstehend in Bezug auf die Winkelschätzung beschrieben definiert, was auch aus der die Zeilensegmentierung veranschaulichenden 5 hervorgeht. Allerdings sind die Parameter m, n und m‘, n‘ mit den Parametern x, y und α ˆ über die folgenden abgewandelten Gleichungen verbunden m = –xsinα ˆ + ycosα ˆ m′ = –(x + 1)sinα ˆ + ycosα ˆ n = xcosα ˆ + ysinα ˆ n′ = (x + 1)cosα ˆ + ysinα ˆ Since the angle α is assumed to be a constant value α, the function depends
Figure 00320002
only from the variable coordinate y, ie that a one-dimensional particle swarm optimization is performed. The parameters x, y, X, | X | and G (m, n) are defined as described above with respect to the angle estimation, which is also illustrated by the line segmentation 5 evident. However, the parameters m, n and m ', n' are connected to the parameters x, y and α via the following modified equations m = -xsinα + ycosα m '= - (x + 1) sinα + ycosα n = xcosα + ysinα n '= (x + 1) cosα + ysinα

Wie in 5 gezeigt, ergibt sich daraus, dass der Bildpunkt (m‘, n‘) gegenüber dem Bildpunkt (m, n) parallel zu der Richtung der x-Koordinatenachse 30 um eine Bildpunktbreite verschoben ist, d.h. dass anstelle des Gradienten senkrecht zur x-Koordinatenachse 30 der Gradient parallel zu der x-Koordinatenachse 30 betrachtet wird. As in 5 shown, it follows that the pixel (m ', n') with respect to the pixel (m, n) parallel to the direction of the x-coordinate axis 30 is shifted by one pixel width, ie that instead of the gradient perpendicular to the x-coordinate axis 30 the gradient parallel to the x-coordinate axis 30 is looked at.

Anschaulich beschreibt die Funktion

Figure 00330001
eine Projektion in Richtung der x-Koordinatenachse 30 der quadrierten Gradienten parallel zu der Richtung der x-Koordinatenachse 30. Dabei bildet sich ein Minimum der Funktion
Figure 00330002
dann aus, wenn die entsprechende Gerade 32 entlang eines Zwischenraums zwischen zwei Codezeilen oder eines oberhalb oder unterhalb einer Codezeile angeordneten Freiraums verläuft, da sich dann die Grauwerte entlang der Geraden 32 kaum verändern, so dass die quadrierten Gradienten für alle auf der Geraden 32 liegenden Bildpunkte 26 minimal werden. Der zu einem solchen Minimum gehörende Wert der Koordinate y gibt dann die Position eines solchen Frei- bzw. Zwischenraums in dem Bild an und ermöglicht somit eine Bestimmung der wie in 2 gezeigten Codezeilensegmente 20. The function describes clearly
Figure 00330001
a projection in the direction of the x-coordinate axis 30 the squared gradient parallel to the direction of the x-coordinate axis 30 , This creates a minimum of function
Figure 00330002
then off, if the corresponding line 32 along a space between two lines of code or one above or below a line of code arranged free space runs, since then the gray values along the line 32 barely changing, leaving the squared gradient for all on the line 32 lying pixels 26 be minimal. The value of the coordinate y belonging to such a minimum then indicates the position of such a clearance in the image and thus enables a determination of how in 2 shown code line segments 20 ,

Abgesehen davon, dass die Partikelschwarmoptimierung für die Zeilensegmentierung nur noch mit dem Suchparameter y, d.h. mit einem eindimensionalen Suchraum, durchgeführt wird und zum Zweck der Identifizierung der Minima der Funktion

Figure 00330003
ein kleinerer Wert der Zielfunktion
Figure 00330004
als „besserer“ Wert angesehen wird, entspricht diese zweite Partikelschwarmoptimierung weitgehend der vorstehend beschriebenen für die Winkelschätzung durchgeführten Partikelschwarmoptimierung. Deshalb sind nachfolgend in erster Linie die Unterschiede der für die Zeilensegmentierung durchgeführten Partikelschwarmoptimierung gegenüber der für die Winkelschätzung durchgeführten Partikelschwarmoptimierung herausgestellt. Apart from the fact that the particle swarm optimization for the line segmentation is performed only with the search parameter y, ie with a one-dimensional search space, and for the purpose of identifying the minima of the function
Figure 00330003
a smaller value of the objective function
Figure 00330004
is considered to be a "better" value, this second particle swarm optimization largely corresponds to the particle swarm optimization described above for the angle estimation. For this reason, the differences between the particle swarm optimization performed for the line segmentation and the particle swarm optimization carried out for the angle estimation are highlighted below.

Die Partikelschwarmoptimierung für die Zeilensegmentierung wird mit mehreren Schwärmen durchgeführt, von denen jeder mehrere Partikel umfasst und die während der Partikelschwarmoptimierung jeweils unabhängig voneinander behandelt werden. Die Anzahl der Schwärme entspricht der Anzahl der in dem Bild erwarteten Codezeilen zuzüglich eines Schwarms, wobei anschaulich jedem zu lokalisierenden Zwischenraum zwischen zwei Codezeilen und den beiden zu lokalisierenden Freiräumen oberhalb der obersten Codezeile und unterhalb der untersten Codezeile jeweils ein Schwarm zugeordnet wird. Für jeden Schwarm wird dabei ein Teilbereich des Suchraums als Territorium dieses Schwarms definiert, wobei jedes Territorium bevorzugt einen Bereich des Suchraums abdeckt, der einem Bereich des Bildes entspricht, in dem genau ein Frei- bzw. Zwischenraum des Codes erwartet wird. Particle swarm optimization for row segmentation is performed with multiple swarms, each containing multiple particles, each treated independently during particle swarm optimization. The number of swarms corresponds to the number of lines of code expected in the picture plus a swarm, with each swap allocated to each localization between two lines of code and the two free spaces to be located above the top line of code and below the bottom line of code. For each swarm, a subregion of the search space is defined as the territory of this swarm, each territory preferably covering an area of the search space corresponding to an area of the image in which exactly one free space of the code is expected.

Bei der Initialisierung wird jedem Partikel eines Schwarms eine zufällige, in dem Territorium des jeweiligen Schwarms angeordnete Position des Suchraums zugeordnet. Die Schritte der Bestimmung der aktualisierten Geschwindigkeiten der Partikel, der aktualisierten Positionen der Partikel, der aktualisierten besten und der aktualisierten globalen besten Positionen der Partikel und die Überprüfung des Abbruchkriteriums werden dann bei jeder Iteration der Partikelschwarmoptimierung für alle Schwärme unabhängig voneinander durchgeführt, und zwar in der vorstehend für die Winkelschätzung beschriebenen Weise. Nach der Aktualisierung wird für jedes Partikel eines Schwarms überprüft, ob sich das Partikel innerhalb des Territoriums des Schwarms befindet, zu dem das Partikel gehört. During initialization, each particle of a swarm is assigned a random position of the search space arranged in the territory of the respective swarm. The steps of determining the updated velocities of the particles, the updated positions of the particles, the updated best and the updated global best positions of the particles, and the check of the termination criterion are then performed independently for each swarm at each iteration of the particle swarm optimization previously described for angle estimation. After the update, for each particle of a swarm, it is checked if the particle is within the territory of the swarm to which the particle belongs.

Falls sich ein Partikel außerhalb seines Territoriums befindet, wird seine Position auf eine Position innerhalb des Territoriums gesetzt. Das Territorium eines Schwarms kann für die Partikelschwarmoptimierung fest vorgegeben sein oder während der Partikelschwarmoptimierung adaptiv angepasst werden, wobei insbesondere durch Anpassungen der Territoriengrenzen sichergestellt werden kann, dass sich zwei Schwärme nicht oder nicht wesentlich überlappen. If a particle is outside its territory, its position is set to a position within the territory. The territory of a swarm may be fixed for the particle swarm optimization or adaptively adapted during the particle swarm optimization, whereby it can be ensured, in particular by adapting the territorial boundaries, that two swarms do not overlap or substantially overlap.

Wird durch die Überprüfung des Abbruchkriteriums festgestellt, dass ein Schwarm zu einem Minimum der Funktion

Figure 00350001
konvergiert hat, wird die Partikelschwarmoptimierung für diesen Schwarm beendet. Der aus diesem Schwarm resultierende optimierte Wert y gibt die Position eines Codezeilenzwischenraums oder -freiraums in dem Bild an, die dann letztendlich für die Bestimmung der wie in 2 gezeigten Codezeilensegmente 20 verwendet werden kann. Bei alleiniger Verwendung der aus der Partikelschwarmoptimierung resultierenden Positionen der Codezeilenzwischenräume und -freiräume für die Zeilensegmentierung kann zunächst ein aus Hintergrundbildpunkten bestehender "Rand" oberhalb oder unterhalb der jeweiligen segmentierten Codezeile 16 verbleiben. Dieser Rand kann in einem Nachbearbeitungsschritt entfernt werden, um wie in 2 dargestellte randfreie Codezeilensegmente 20 zu erhalten. It is determined by checking the termination criterion that a swarm to a minimum of the function
Figure 00350001
has converged, the particle swarm optimization for this swarm is terminated. The optimized value y resulting from this swarm indicates the position of a code line spacing or space in the image, which is then ultimately used for the determination of the as in 2 shown code line segments 20 can be used. Using only the positions of the code line spaces and spaces for line segmentation resulting from the particle swarm optimization, an "edge" consisting of background pixels may first be above or below the respective segmented code line 16 remain. This border can be removed in a post-processing step, as in 2 illustrated edge-free code line segments 20 to obtain.

Zuletzt kann eine Zeichensegmentierung der Codezeilensegmente 20 durchgeführt werden, d.h. jedes Codezeilensegment 20 wird in mehrere Codezeichensegmente unterteilt, die jeweils genau ein Codezeichen 14 enthalten. Das Verfahren zur Zeichensegmentierung kann dem vorstehend beschriebenen Verfahren zur Zeilensegmentierung entsprechen, wobei mehrere Schwärme zur Identifizierung der Zwischenräume zwischen jeweils zwei Codezeichen 14 verwendet werden können und anstelle der Koordinate y beispielsweise die Koordinate x als Suchparameter der Partikelschwarmoptimierung verwendet werden kann. Finally, a character segmentation of the code line segments 20 be performed, ie each code line segment 20 is divided into several code character segments, each with exactly one code character 14 contain. The character segmentation method may be similar to the row segmentation method described above, where multiple swarms are used to identify the spaces between two code characters each 14 can be used and instead of the coordinate y, for example, the coordinate x can be used as a search parameter of the particle swarm optimization.

Auf die Zeichensegmentierung folgend kann das in jedem einzelnen Codezeichensegment enthaltene Codezeichen 14 durch eine Zeichenerkennung erkannt und so die in dem Bild codierte Information erfasst werden, wobei jedes an sich bereits bekannte Verfahren zur Zeichenerkennung verwendet werden kann. Following the character segmentation, the code character contained in each individual code character segment 14 detected by a character recognition and thus the information encoded in the image information are detected, wherein any known per se methods for character recognition can be used.

BezugszeichenlisteLIST OF REFERENCE NUMBERS

10 10
Zeilenrichtung line direction
12 12
Spaltenrichtung column direction
14 14
Codezeichen code characters
16 16
Codezeile line of code
18 18
Hintergrund background
20 20
Codezeilensegment Lines of code segment
22 22
Bildpunktzeile Pixel row
24 24
Bildpunktspalte Pixel column
26 26
Bildpunkt pixel
28 28
Koordinatenachse coordinate axis
30 30
Koordinatenachse coordinate axis
32 32
Gerade Just
m, m' m, m '
Zeilenindex line index
n, n' n, n '
Spaltenindex column index
x, y x, y
Koordinate des Bildes Coordinate of the picture
α α
Winkel angle
α ˆα
geschätzter Winkel estimated angle

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 Nicht-PatentliteraturCited non-patent literature

  • J. Sadri und M. Cheriet: „A New Approach for Skew Correction of Documents Based on Particle Swarm Optimization“, Document Analysis and Recognition International Conference, S. 1066–1070, 2009 [0007] J. Sadri and M. Cheriet: "A New Approach to Skew Correction of Documents Based on Particle Swarm Optimization", Document Analysis and Recognition International Conference, pp. 1066-1070, 2009 [0007]

Claims (19)

Verfahren zur rechnergestützten Segmentierung wenigstens eines einen Code mit wenigstens einer Codezeile (16) enthaltenden Bildes zum Zweck der rechnergestützten Zeichenerkennung, bei dem durch eine Partikelschwarmoptimierung der Wert wenigstens einer Koordinate (y) des Bildes ermittelt wird, für den der Funktionswert einer zu optimierenden Funktion extremal wird, wobei die zu optimierende Funktion derart gewählt ist, dass ihr Funktionswert von den Bildwerten eines Teilbereichs des Bildes abhängt, der sich aus der wenigstens einen Koordinate (y) ergibt, wobei die wenigstens eine Koordinate (y) des Bildes als ein Suchparameter für die Partikelschwarmoptimierung verwendet wird und die zu optimierende Funktion als Zielfunktion der Partikelschwarmoptimierung verwendet wird. Method for computer-aided segmentation of at least one code with at least one line of code ( 16 For the purpose of computer-aided character recognition, the value of at least one coordinate (y) of the image is determined by a particle swarm optimization, for which the function value of a function to be optimized becomes extreme, wherein the function to be optimized is selected such that its function value is dependent on the image values of a partial region of the image resulting from the at least one coordinate (y), wherein the at least one coordinate (y) of the image is used as a search parameter for the particle swarm optimization and the function to be optimized is used as the target function of the particle swarm optimization , Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass ein Winkel (α) als weiterer Suchparameter für die Partikelschwarmoptimierung verwendet wird, der eine angenommene Winkelabweichung der Ausrichtung des Codes in dem Bild von der Horizontalen des Bildes angibt, wobei der Funktionswert der zu optimierenden Funktion von dem Winkel (α) abhängt und durch die Partikelschwarmoptimierung ein Wert des Winkels (α) ermittelt wird, für den der Funktionswert der zu optimierenden Funktion extremal wird. Method according to claim 1, characterized in that an angle (α) is used as another search parameter for the particle swarm optimization, which indicates an assumed angular deviation of the orientation of the code in the image from the horizontal of the image, wherein the function value of the function to be optimized depends on the angle (α) and the particle swarm optimization determines a value of the angle (α) for which the function value of the function to be optimized becomes extreme. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass mehrere einen Code mit wenigstens einer Codezeile (16) enthaltende Bilder aufeinander folgend segmentiert werden, wobei für die Segmentierung eines Bildes der Wert des Winkels (α) verwendet wird, der bei der Segmentierung eines vorhergehenden Bildes ermittelt wurde. A method according to claim 2, characterized in that a plurality of a code with at least one line of code ( 16 ), wherein the segmentation of an image uses the value of the angle (α) determined when segmenting a previous image. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der Funktionswert der zu optimierenden Funktion von einem Winkel (α) abhängt, der eine Winkelabweichung der Ausrichtung des Codes in dem Bild von der Horizontalen des Bildes angibt, wobei bei der Partikelschwarmoptimierung ein unveränderlicher geschätzter Wert des Winkels (α) angenommen wird. Method according to claim 1, characterized in that the function value of the function to be optimized depends on an angle (α) indicating an angular deviation of the orientation of the code in the image from the horizontal of the image, wherein the particle swarm optimization assumes an invariable estimated value of the angle (α). Verfahren nach zumindest einem der Ansprüche 2 bis 4, dadurch gekennzeichnet, dass sich der Funktionswert der zu optimierenden Funktion durch eine in Richtung des Winkels (α) gegenüber der Horizontalen des Bildes gerichtete Projektion von Bildpunkten (26) errechnen lässt, die wenigstens einen Bildpunkt (26) umfassen, dessen Position in dem Bild sich aus der wenigstens einen Koordinate (y) des Bildes ergibt. Method according to at least one of claims 2 to 4, characterized in that the function value of the function to be optimized by a in the direction of the angle (α) with respect to the horizontal of the image directed projection of pixels ( 26 ) which calculates at least one pixel ( 26 ) whose position in the image results from the at least one coordinate (y) of the image. Verfahren nach zumindest einem der Ansprüche 2 bis 5, dadurch gekennzeichnet, dass der Funktionswert der zu optimierenden Funktion von einer Summe mehrerer Einzelwerte abhängt, wobei ein Einzelwert jeweils von dem Bildwert eines Bildpunkts (26) abhängt, der auf einer gedachten Geraden (32) liegt, die sich ausgehend von einem Bildpunkt (26), dessen Position in dem Bild sich aus der wenigstens einen Koordinate (y) des Bildes ergibt, in einem Winkel (α) gegenüber der Horizontalen des Bildes erstreckt. Method according to at least one of claims 2 to 5, characterized in that the function value of the function to be optimized depends on a sum of a plurality of individual values, wherein a single value in each case depends on the image value of a pixel ( 26 ) which depends on an imaginary line ( 32 ), which starting from a pixel ( 26 ) whose position in the image results from the at least one coordinate (y) of the image, extends at an angle (α) with respect to the horizontal of the image. Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass ein Einzelwert jeweils von der Differenz des Bildwerts des auf der Geraden liegenden, ersten Bildpunkts (26) und des Bildwerts eines zweiten Bildpunkts (26) abhängt, der gegenüber dem ersten Bildpunkt (26) in einer vorgegebenen Richtung verschoben ist und einen vorgegebenen Abstand zu dem ersten Bildpunkt aufweist. A method according to claim 6, characterized in that a single value in each case of the difference of the image value of lying on the line, the first pixel ( 26 ) and the image value of a second pixel ( 26 ), which is opposite the first pixel ( 26 ) is shifted in a predetermined direction and has a predetermined distance to the first pixel. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass die vorgegebene Richtung als die Richtung senkrecht zu der in Richtung des Winkels (α) verlaufenden Geraden (32) gegeben ist oder dass die vorgegebene Richtung als die Richtung parallel zu der in Richtung des Winkels (α) verlaufenden Geraden (32) gegeben ist. A method according to claim 7, characterized in that the predetermined direction as the direction perpendicular to the in the direction of the angle (α) extending straight lines ( 32 ) or that the predetermined direction is given as the direction parallel to the line (α) extending in the direction of the angle (α) ( 32 ) given is. Verfahren nach zumindest einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die wenigstens eine Koordinate (y) des Bildes eine Position auf einer Koordinatenachse (28) des Bildes angibt. Method according to at least one of the preceding claims, characterized in that the at least one coordinate (y) of the image is a position on a coordinate axis ( 28 ) of the image. Verfahren nach zumindest einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass Grauwerte des Bildes als Bildwerte verwendet werden. Method according to at least one of the preceding claims, characterized in that gray values of the image are used as image values. Verfahren nach zumindest einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Partikelschwarmoptimierung mit wenigstens einem Schwarm durchgeführt wird, der mehrere Partikel aufweist. Method according to at least one of the preceding claims, characterized in that the particle swarm optimization is carried out with at least one swarm having a plurality of particles. Verfahren nach Anspruch 11, dadurch gekennzeichnet, dass während einer Iteration der Partikelschwarmoptimierung eine geänderte Geschwindigkeit eines Partikels in dem Suchraum der Partikelschwarmoptimierung berechnet wird, wobei eine in einer vorhergehenden Iteration der Partikelschwarmoptimierung berechnete Geschwindigkeit des Partikels mit einem Gewichtungsfaktor in die geänderte Geschwindigkeit eingeht, insbesondere wobei der Gewichtungsfaktor von der Anzahl der bereits durchgeführten Iterationen der Partikelschwarmoptimierung abhängt und mit zunehmender Anzahl an Iterationen abnimmt. Method according to claim 11, characterized in that during an iteration of the particle swarm optimization, a changed velocity of a particle is calculated in the search area of the particle swarm optimization, wherein a velocity of the particle calculated in a preceding iteration of the particle swarm optimization is included in the changed velocity with a weighting factor, in particular wherein the weighting factor depends on the number of already performed iterations of the particle swarm optimization and decreases with increasing number of iterations. Verfahren nach Anspruch 11 oder 12, dadurch gekennzeichnet, dass während einer Iteration der Partikelschwarmoptimierung eine geänderte Position eines Partikels in dem Suchraum der Partikelschwarmoptimierung berechnet wird, wobei eine Zufallszahl generiert wird und die geänderte Position abhängig von der Zufallszahl berechnet wird. Method according to claim 11 or 12, characterized in that during an iteration of the particle swarm optimization, a changed position of a particle in the search area of the particle swarm optimization is calculated, where a random number is generated and the changed position is calculated depending on the random number. Verfahren nach zumindest einem der Ansprüche 11 bis 13, dadurch gekennzeichnet, dass die Partikelschwarmoptimierung mit mehreren Schwärmen durchgeführt wird, die jeweils mehrere Partikel aufweisen, wobei vorzugsweise ein Territorium des Bildes für wenigstens einen Schwarm definiert wird, welches einen Teilbereich des durch die Parameter der Partikelschwarmoptimierung definierten Suchraums darstellt, wobei während einer Iteration der Partikelschwarmoptimierung überprüft wird, ob sich wenigstens ein Partikel des Schwarms außerhalb des dem Schwarm zugeordneten Territoriums befindet. Method according to at least one of claims 11 to 13, characterized in that particle swarm optimization is performed with multiple swarms, each having multiple particles, wherein preferably a territory of the image is defined for at least one swarm, which represents a subregion of the search space defined by the parameters of the particle swarm optimization, wherein it is checked during an iteration of the particle swarm optimization whether at least one particle of the swarm is located outside the territory associated with the swarm. Verfahren nach zumindest einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass eine Eingabe von einem Benutzer erfasst wird, die eine Angabe enthält, die aus der Gruppe ausgewählt ist, die – einen erwarteten Wert eines Winkels (α), der eine Winkelabweichung der Ausrichtung des Codes in dem Bild von der Horizontalen des Bildes angibt, – eine erwartete Anzahl von in dem Code enthaltenen Codezeilen (16), – eine erwartete Anzahl von in einer Codezeile des Codes enthaltenen Codezeichen (14), und – einen erwarteten Wertebereich für eine oder mehrere der vorstehenden Angaben umfasst. Method according to at least one of the preceding claims, characterized in that an input is detected by a user containing an indication selected from the group comprising: - an expected value of an angle (α) representing an angular deviation of the orientation of the code in the image indicates from the horizontal of the image, - an expected number of lines of code contained in the code ( 16 ), - an expected number of code characters contained in a code line of the code ( 14 ), and - an expected range of values for one or more of the above. Vorrichtung, umfassend wenigstens eine Recheneinrichtung, welche zur Durchführung eines Verfahrens gemäß zumindest einem der vorhergehenden Ansprüche konfiguriert ist. Device comprising at least one computing device configured to perform a method according to at least one of the preceding claims. Codeleser, umfassend – zumindest eine optische Erfassungsvorrichtung zur Aufnahme wenigstens eines Bildes und – wenigstens eine Recheneinrichtung, die zur Durchführung eines Verfahrens gemäß zumindest einem der Ansprüche 1 bis 15 unter Verwendung eines von der Erfassungsvorrichtung erhaltenen Bildes konfiguriert ist. Code reader, comprising - At least one optical detection device for receiving at least one image and At least one computing device configured to perform a method according to at least one of claims 1 to 15 using an image obtained from the detection device. Verfahren zum Lesen eines Codes, bei dem ein mit einer optischen Erfassungsvorrichtung von einer Oberfläche eingelesenes Bild mit einem Verfahren gemäß zumindest einem der Ansprüche 1 bis 15 segmentiert wird, um die Ausrichtung des Codes auf der Oberfläche zu bestimmen. A method of reading a code in which an image read in from a surface by an optical detection device is segmented by a method according to any one of claims 1 to 15 to determine the orientation of the code on the surface. Programmprodukt, welches Programmanweisungen enthält, die bei ihrer Ausführung auf einer Recheneinrichtung ein Verfahren gemäß zumindest einem der Ansprüche 1 bis 15 durchführen. Program product containing program instructions which, when executed on a computing device, perform a method according to at least one of claims 1 to 15.
DE201210208025 2012-05-14 2012-05-14 Method for computer-aided segmentation of grey value image for purpose of computer-aided optical text character recognition, involves utilizing coordinate as search parameter for swarm optimization and function as objective function Withdrawn DE102012208025A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE201210208025 DE102012208025A1 (en) 2012-05-14 2012-05-14 Method for computer-aided segmentation of grey value image for purpose of computer-aided optical text character recognition, involves utilizing coordinate as search parameter for swarm optimization and function as objective function

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE201210208025 DE102012208025A1 (en) 2012-05-14 2012-05-14 Method for computer-aided segmentation of grey value image for purpose of computer-aided optical text character recognition, involves utilizing coordinate as search parameter for swarm optimization and function as objective function

Publications (1)

Publication Number Publication Date
DE102012208025A1 true DE102012208025A1 (en) 2013-11-14

Family

ID=49475569

Family Applications (1)

Application Number Title Priority Date Filing Date
DE201210208025 Withdrawn DE102012208025A1 (en) 2012-05-14 2012-05-14 Method for computer-aided segmentation of grey value image for purpose of computer-aided optical text character recognition, involves utilizing coordinate as search parameter for swarm optimization and function as objective function

Country Status (1)

Country Link
DE (1) DE102012208025A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104156945B (en) * 2014-07-16 2017-08-25 西安电子科技大学 Gray-scale image segmentation method based on multi-objective particle swarm algorithm
CN112489427A (en) * 2020-11-26 2021-03-12 招商华软信息有限公司 Vehicle trajectory tracking method, device, equipment and storage medium

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
J. Sadri und M. Cheriet: "A New Approach for Skew Correction of Documents Based on Particle Swarm Optimization", Document Analysis and Recognition International Conference, S. 1066-1070, 2009

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104156945B (en) * 2014-07-16 2017-08-25 西安电子科技大学 Gray-scale image segmentation method based on multi-objective particle swarm algorithm
CN112489427A (en) * 2020-11-26 2021-03-12 招商华软信息有限公司 Vehicle trajectory tracking method, device, equipment and storage medium
CN112489427B (en) * 2020-11-26 2022-04-15 招商华软信息有限公司 Vehicle trajectory tracking method, device, equipment and storage medium

Similar Documents

Publication Publication Date Title
DE102016118502B4 (en) Method, device and apparatus for determining a roadway boundary
EP2467828B1 (en) Method and system for automatic object detection and subsequent object tracking in accordance with the object shape
EP1789925B1 (en) Device, method and computer program for determining an item of information concerning a shape and/or a position of an ellipse in a graphical image
DE102016120775A1 (en) System and method for detecting lines in an image with a vision system
DE102015121339B4 (en) SYSTEMS AND METHODS FOR DETERMINING A CONDITION OF A ROAD
EP2187351B1 (en) Device and method for detecting objects
WO2017032775A1 (en) Active machine learning for training an event classification
DE102018119682A1 (en) Image processing device, image processing method and non-temporary computer readable memory
EP2901414B1 (en) Method and image processing system for determining parameters of a camera
DE102007051967A1 (en) Detector and method for detecting a lane boundary
WO2008034599A2 (en) Method and device for image processing
EP1766579A2 (en) Method for detecting geometrical structures in images
DE102012208025A1 (en) Method for computer-aided segmentation of grey value image for purpose of computer-aided optical text character recognition, involves utilizing coordinate as search parameter for swarm optimization and function as objective function
EP3009984A1 (en) Detection system for optical codes
DE102019115224A1 (en) SYSTEM AND METHOD FOR FINDING AND CLASSIFYING LINES IN A PICTURE THROUGH A LAYERING SYSTEM
EP3259703B1 (en) Mobile device for capturing a text range on an identification document
WO2018234251A1 (en) Method and device for detecting a user input on the basis of a gesture
EP3142068B1 (en) Method for three-dimensional recording of objects
DE102020129164A1 (en) METHOD AND DEVICE FOR DISTINGUISHING DIFFERENT CONFIGURATION STATES OF AN OBJECT ON THE BASIS OF A PICTURED REPRESENTATION OF THE OBJECT
WO2020233991A1 (en) Method for operating a deep neural network
EP3214602A1 (en) Method for three-dimensional recording of objects
EP2115699B1 (en) Method for the automatic analysis of object movements
DE102022209504A1 (en) Method and device for recognizing a line in a camera image for a machine or a transmission system and recognition system for a machine or a transmission system
DE102018221617A1 (en) Method for determining a relative movement using a digital image sequence
EP4285319A1 (en) Generation of training data for two-dimensional scans of a ground radar system

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06K0009520000

Ipc: G06V0030186000

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee