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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/14—Image acquisition
- G06V30/146—Aligning or centring of the image pick-up or image-field
- G06V30/1475—Inclination or skew detection or correction of characters or of image to be recognised
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/14—Image acquisition
- G06V30/148—Segmentation of character regions
- G06V30/15—Cutting or merging image elements, e.g. region growing, watershed or clustering-based techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character 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
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
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
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:
Wie in
In
Nachfolgend wird anhand der
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
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: 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:
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
Die Funktion f(y, α) wertet die Grauwerte G(m, n), G(m', n') derjenigen durch die Koordinaten (m, n) und (m', n') gegebenen Bildpunkte
Anschaulich beschreibt die Funktion f(y, α) also eine Projektion in Richtung der x-Koordinatenachse
Aufgrund der vorstehenden Definition der Funktion f(y, α) bildet sich ein Maximum der Funktion f(y, α) dann aus, wenn die Gerade
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
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
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
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.
Der dritte Summand velC3 repräsentiert eine Geschwindigkeitskomponente, die für jedes Partikel von der aktuellen Position
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: 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:
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
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
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
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: 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:
Da der Winkel α als konstanter Wert α ˆ angenommen wird, hängt die Funktionnur 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
Wie in
Anschaulich beschreibt die Funktioneine Projektion in Richtung der x-Koordinatenachse
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 Funktionein kleinerer Wert der Zielfunktion 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 a smaller value of the objective function 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 Funktionkonvergiert 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
Zuletzt kann eine Zeichensegmentierung der Codezeilensegmente
Auf die Zeichensegmentierung folgend kann das in jedem einzelnen Codezeichensegment enthaltene Codezeichen
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)
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)
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 |
-
2012
- 2012-05-14 DE DE201210208025 patent/DE102012208025A1/en not_active Withdrawn
Non-Patent Citations (1)
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)
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 |