WO2007063195A1 - Method of coding in graphic form - Google Patents

Method of coding in graphic form Download PDF

Info

Publication number
WO2007063195A1
WO2007063195A1 PCT/FR2005/003013 FR2005003013W WO2007063195A1 WO 2007063195 A1 WO2007063195 A1 WO 2007063195A1 FR 2005003013 W FR2005003013 W FR 2005003013W WO 2007063195 A1 WO2007063195 A1 WO 2007063195A1
Authority
WO
WIPO (PCT)
Prior art keywords
tree
mark
graphic
node
information
Prior art date
Application number
PCT/FR2005/003013
Other languages
French (fr)
Inventor
Oguz Berke Durak
Original Assignee
Universite Paris 7 Denis Diderot
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 Universite Paris 7 Denis Diderot filed Critical Universite Paris 7 Denis Diderot
Priority to PCT/FR2005/003013 priority Critical patent/WO2007063195A1/en
Publication of WO2007063195A1 publication Critical patent/WO2007063195A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/06009Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
    • G06K19/06046Constructional details
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K2019/06215Aspects not covered by other subgroups
    • G06K2019/06243Aspects not covered by other subgroups concentric-code

Definitions

  • the present invention relates to a method of encoding information in graphical form and a code obtainable by such a method. It also relates to a method of decoding a code in graphical form.
  • the word "information" represents the information to be coded; it is for example a number, base 10 or binary representation;
  • coding in graphic form or "coding” represent the method making it possible to transform the information into a representation in graphic form, adapted if necessary to be read by a machine;
  • decoding represents the inverse method of the coding, making it possible to transform a graphic code into the corresponding information.
  • Barcodes are commonly used for logistical purposes or for the identification of products in the trade. This method is for example described in the EAN product identification standards, available in France from Gencod EAN France.
  • An example of a bar code of the state of the art is shown in FIG. 1; under the bars of the code is reproduced, in the usual way, the information.
  • This coding method has the disadvantage that the code is sensitive to a deformation of the support on which it is applied. Thus, an extension of the support in a direction perpendicular to the direction of the bars can change the value of the code or make the code unreadable. It is also necessary to have a good reading resolution in the direction perpendicular to the bars of the code.
  • Coding methods providing two-dimensional graphic codes have been proposed; these codes are based on the definition of cells in the graphic code; these cells take values representative of the symbols to be coded.
  • EP-A-I 443 452 proposes a two-dimensional coding using three colors, with reference areas.
  • US-A-2003/0121978 proposes a positioning of the cells in the code which renders the reading more robust.
  • US-A-2005/0061892 contains a description of different symbols usable for two-dimensional codes.
  • US-A-2005/0127191 provides encoding using image processing algorithms for decoding two-dimensional graphic codes.
  • US-A-2001/0007116 proposes a distribution of the symbols in the graphic code as well as a redundancy allowing a better resistance to the transmission errors, in particular by fax.
  • US-A-2004/0031852 proposes to have in the code a synchronization pattern.
  • US-A-6,267,296 provides a two-dimensional code with symbols of different sizes; redundancy allows a correct reading under different conditions.
  • US-A-6,360,948 mentions the problem of the distortion caused by the reading of an image on a non-plane support; he suggests to have in the image alignment symbols to take account of this deformation; the proposed system aims to compensate for the form of the medium on which the code is applied.
  • the solutions described in these documents consist in choosing symbols that are supposed to be more resistant to errors or in arranging in the graphic code elements facilitating the recognition of specific areas of the code. These solutions are, in each case, adapted to a given type of error.
  • the graphic codes of these documents are hardly or hardly readable in case of deformation of the medium on which the graphic code is applied - curling of the support, inhomogeneous stretching, folding; they are as little or hardly readable in the presence of deformations due to the reading devices; for example, deformations due to camera lenses, perspective effects or curl surfaces make it difficult to read these codes.
  • the invention provides, in one embodiment, a method of encoding information in the form of a graphical mark having a plurality of related components, comprising:
  • a step of transforming the tree into a graphic mark in which a node of the tree is encoded by a connected component of the graphic mark comprising as many internal connected components as the present node of son.
  • the method may have one or more of the following additional features:
  • the tree is a commutative or non-commutative tree
  • the tree is a binary tree; the connected components have at least two colors, and a node of the tree is encoded by a connected component of the graphic mark having a first color and comprising as many internal connected components of a second color as the present node of wires.
  • the invention provides a method of decoding a graphical mark having a plurality of related components into an information; the method comprises:
  • a step of transforming the graphic mark into a tree in which a node of the tree corresponds to a connected component of the mark graph the node with as many wires as the corresponding connected component has inner connected components;
  • the tree is a commutative, non-commutative tree or a binary tree.
  • a node of the tree corresponding to a connected component of the graphical mark having a first color has as many threads as the related component comprises inner connected components of a second color.
  • the invention proposes a support having a graphic mark capable of being decoded according to this method; yet another embodiment relates to a support with a graphic mark obtained by the method described above.
  • An indication of the value of the information decoded or coded according to said method for example a directly human-readable indication, may be provided on the medium.
  • a related component of the graphic mark may have a rectangular shape.
  • the support has at least one of the following characteristics:
  • the tree corresponding to the mark in the coding or the decoding has a height greater than or equal to 5;
  • the tree corresponding to the mark in the coding or the decoding has a number of nodes greater than 10
  • the diameter of the largest uniform color disc in the mark is less than or equal to four times the line thickness used to write the mark
  • the invention provides a decoder apparatus, comprising:
  • an acquisition part adapted to provide an image of a graphic code
  • a processing part that can be performed by software or cable and adapted to receive the image provided by the acquisition part and to decode the received image to provide the value of the information coded in the graphic code.
  • the processing portion may also be adapted to provide an indication of the position of a graphic code in the received image.
  • the invention provides a computer program on a computer readable medium and containing code adapted to execute on a computer all the steps of the encoding or decoding method mentioned above.
  • FIG. 2 is a flow chart of an embodiment of the method of the invention
  • FIG. 3 shows a tree representative of the information "12"
  • FIG. 4 shows a graphic code encoding the information "12"
  • FIG. 5 shows another graphic code encoding information "12"
  • FIG. 6 is a flow chart of a decoding algorithm of an embodiment of the method of the invention
  • FIG. 7 shows a graphic code encoding the same information as the bar code of FIG. 1;
  • FIGS. 8 to 12 show different examples of graphic codes encoding the "777" information
  • FIG. 13 shows a non-commutative tree representative of the information "12", in a second embodiment of the invention.
  • FIG. 14 shows a graphic code coding information "12"
  • FIG. 15 shows another graphic code coding information "12"
  • FIG. 16 shows a decoding apparatus according to the invention.
  • the invention proposes, in one embodiment, to use, in a graphic code, the connected components to graphically represent the information to be coded. Specifically, the information is recursively encoded by the number of related components contained in a given connected component.
  • connection component a set satisfying the following property: for two elements a, b of the set, there exists a continuous path allowing to go from the element a to the element b passing only by elements of the set.
  • This definition of connectivity corresponds to the topology definition of arc connectivity.
  • a component black for example is connected if any pixel of the component can be connected to another pixel of the component by a path formed of adjacent pixels of the component. It is understood that while this definition may depend on the resolution of the digitization, it is independent of the reason for the digitization and the definition of the adjacent one; thus, a conventional digitization in the form of a two-dimensional matrix of pixels leads to the same result, with regard to the connectivity, as a digitization with a matrix of hexagonal elements.
  • the code is particularly resistant to inhomogeneous extensions - stretching in one or more directions -, curl or deformation of the support.
  • the code still resists deformations that can be made by a reading device.
  • FIGS. 3 to 5 give a first example of an embodiment of the invention.
  • a representation of the information in the form of a commutative tree is used. This solution avoids having to have an orientation of the graphic code.
  • a graphic code is used in which the connected components are alternately black and white; this choice ensures a better compactness of the graphic code; this choice is independent of the commutative or non-chosen representation for the tree.
  • the information to be coded is the number twelve ("12"). This number is written in binary 1100.
  • the first step 12 of the flow chart of FIG. 2 consists in choosing the information to be coded.
  • w be a binary word of length m representing the information to be coded. Its bits are numbered from 1 to m, the z ' -th bit being denoted w (i).
  • the tree reduced to a single node is represented by ⁇ .
  • B (t) represents the tree whose root has only one son, this son being the root of the tree represented by t.
  • C (t, t) represents a tree whose root has two sons, the first being the root of the tree represented by t and the second that of the tree represented by f.
  • T transforming every word w into a term T (w).
  • U makes it possible to transform an noncommutative binary tree into a commutative binary tree in an injective manner
  • V makes it possible to retrieve the non-commutative tree from its transformed transform. This is important because the information on the order of the threads is lost when the read symbol undergoes deformations, rotations or reflections, and allows a greater freedom in the procedure of graphic formatting.
  • V (C (A, B (t) ⁇ B (t))) ⁇ V (C (B (t), C (B (t) A))) V (C (C (B (f) A ) ⁇ (i))) C (V (t), V (t '))
  • the tree in Figure 3 shows that the nodes are represented in black or white, the color of a node depending on its depth in the tree - the nodes having an even depth are black while the nodes with an odd depth are white. It is only a convention of representation to facilitate the understanding of the presentation, as shown by the comparison of Figures 4 and 5 below.
  • the root node 40 is considered as the current node.
  • a black connected component is drawn for the current node, having as many internal connected components as the current node having son nodes.
  • the current node is the root node 40, with two child nodes.
  • next step 20 it is sought if there is another node of the same depth in the tree. If this is the case, change the next node to another node of the same depth
  • step 22 and go back to step 18; if there is no other node of the same depth, we go to step 24.
  • step 24 it is checked whether there are nodes of lower level; if this is the case, go to step 26, and if not go to step 28. In the example, there are nodes of a depth greater than the root node and so we go to step 26
  • step 26 change the current node to a lower level node and loop to step 18. In the example, and go from the root node to node 41 or node 42, for example to the node. 41. Then, loop to step 18.
  • step 28 the drawing of the graphic code is completed.
  • the connected components 40a to 54a in FIG. 4 corresponding to the nodes 40 to 54 of FIG. 3.
  • the connected components 53a and 54a are not strictly speaking "drawn", since they are implicitly defined when drawing the connected components 50a and 52a.
  • the flow chart of FIG. 2 is only an example of implementation of a coding according to the first embodiment.
  • the nodes of the tree of FIG. 3 are scanned in the ascending order of the references of the figure. It is obvious that the same graphic code is obtained by scanning the nodes of the tree in another order.
  • the algorithm proposed above for the transformation of information into a tree is only an example; it has the advantage of simplicity and efficiency, but one could also consider another algorithm.
  • Figure 5 shows another example of graphic code, also corresponding to the number "12".
  • the invention can provide graphical marks easily readable by a machine, but can nevertheless be made in a form that can be appreciated by the human being independently of the coded information.
  • the different graphic components are referenced 40b to 54b and correspond respectively to the nodes 40 to 54 of the tree of FIG. 3.
  • the black and white nodes have been inverted.
  • the outer frame of FIG. 5 does not constitute a useful connected component in the coding, but simply the border of the graphic code.
  • the connected component corresponding to the root node 40 is the white connected component 40b surrounding the bicycle; it contains two connected components 41b and 42b, corresponding to the nodes 41 and 42. It can be seen that from a topological point of view, FIG. 5 is identical to FIG. 4 - only changing the shape of the various connected components forming the object, as well as the alternation white-black, as indicated above.
  • the size of the graphic code can be determined in advance by counting the depth of the tree. This makes it possible to determine the size of the graphic code.
  • a decoding algorithm corresponding to the coding algorithm of FIG. 3 is described with reference to FIG. 6.
  • the first step of the algorithm consists in creating a tree from the received graphic code; iteratively, each connected component of the code graph corresponds to a node of the tree whose number of wires is a function of the number of related components contained in this component.
  • the second step of the algorithm is to transform the tree into information.
  • step 112 the graphics code is received; this reception of the graphic code is carried out by image acquisition, in a manner known per se.
  • a charge-coupled camera, a scanning device (scanner) or any other solution for acquiring an image in the form of pixels can be used.
  • the resolution may vary, since the resolution is sufficient to preserve the connectivity properties in the image. In practice, it is sufficient that the picture element is smaller (in its largest dimension) than half the minimum distance between two connected components; this criterion ensures that the acquisition of the image of the graphic code preserves the connectivity of the different components of the code.
  • the grid used may be square, hexagonal, or irregular; an irregular grid is particularly suitable if the graphic code is deformed and this deformation is predetermined or measurable on the code - for example, for a code with components formed of lines of constant thickness, the variations in thickness of the lines may be used as a measure of deformation.
  • step 114 the first connected component - the outermost connected component - is considered and defined as the current connected component.
  • the current node of the tree is defined as the root node.
  • step 116 is performed.
  • step 116 the number of connected components in the current connected component is determined and one or more wires are constructed at the current node based on the number of related components contained within. of the current connected component.
  • Each of the son nodes thus constructed is associated with a connected component.
  • step 118 is performed. In step 118, it is determined whether there are corresponding connected components in the tree at nodes of the same depth as the current node.
  • step 120 in which the current connected component is changed to the identified connected component and the current node to the corresponding node, then to step 116. Conversely, if it is determined in step 118 that there are no related components corresponding in the tree to nodes of the same depth as the current node, go to step 122.
  • step 122 it is determined whether there are corresponding connected components in the tree at nodes of greater depth than the current node. If this is the case, go to step 124, in which the current connected component is changed to the identified connected component and the current node to the corresponding node, and then to step 116. Conversely, if it is determined in step 122 that there is no corresponding connected component in the tree at nodes of greater depth than the current node, proceed to step 124. At step 124, it is scanned the set of related components of the graphic code and builds a corresponding tree. As explained with reference to FIG.
  • the preceding steps represent only one of the methods for scanning the graphic code and other strategies are possible for constructing the tree by associating with a given connected component of the graphic code a node of a tree whose number of sons is a function of the number of connected components contained in the given connected component.
  • step 126 transforming the tree obtained in the previous steps into information.
  • the process in this step is the opposite of the method described above with reference to step 14 of FIG. 2.
  • step 14 is carried out using the procedure U described above, this will be the procedure F described in the same place that can be used in step 126.
  • the coding of Figure 3 as the decoding of Figure 6 can be implemented with limited resources.
  • step 14 can be performed, if one chooses to use the procedure U, in linear time; if the programming language used does not have automatic management of the memory or practical representation of the terms, it will be noticed that the number of nodes of the obtained tree is in O (m log m), and one will be able to work in a table fixed size.
  • a simple and recursive way to realize this step is to represent each component by a rectangle with horizontal and vertical edges, and to reserve inside this rectangle one or two sub-rectangles to accommodate the recursively calculated representations of the nodes. This division can be done vertically or horizontally, this choice affecting the final size of the symbol if it is desired to maintain constant the distance between the edges of adjacent rectangles.
  • a The algorithm can search for various configurations to minimize the total area, the largest dimension, or to give the symbol a desired aspect ratio.
  • the algorithm supposes that it is possible to recognize in a digitized image all the connected components as well as their nesting relations. This can be done by scanning the pixels and using a Union-Find algorithm to update the sets of members of the components encountered as and when, which takes a memory amount of 0 ⁇ n) words machine and a time in 0 ⁇ n log ri) where n is the number of pixels, assuming that the memory is addressable in constant time.
  • the Union-Find algorithms are well known and described in Introduction to Algorithms (Second Edition), Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Cliff Stein, MIT Press and McGraw-Hill.
  • the inventors have implemented the present invention using a program written in OCam1 language, compiled in native code for an x86 architecture machine; this machine received images either in real time by a black and white CCD sensor digitized by a Bt848-based acquisition card, with a resolution of 384 x 292, or by a digital camera with a resolution of 1600 x 1200 pixels .
  • a graphic code of the type of that of Figure 4 or Figure 5, is decoded in less than 130ms in 384 x 292 (respectively 2.5s in 1600 x 1200) on a Xeon clocked at 3.00GHz.
  • the calculation time is not very sensitive to the number of symbols present (with 125 copies of the symbols on an image 1600 x 1200, the time goes up to 2.75s). It depends essentially on the number of related components. Proper filtering of background noise can greatly reduce the number of spurious components.
  • FIG. 7 shows a graphic code coding the same information as the bar code of FIG. 1.
  • alternating black and white connected components were used, as in the example of FIG.
  • Figures 8 to 12 show different examples of graphic codes for information 777.
  • Figure 8 shows the undeformed graphic code.
  • Figures 9, 10 and 11 show different deformations of the code. These deformations could result either from a deformation of a physical medium on which the code is applied. They could result from the reading device used. These deformations do not modify the connectivity by arcs of the different components composing the graphic code and therefore do not modify the value of the coded information.
  • the graphic code is thus resistant to any deformation that does not modify the connectivity of the components; it can in particular be decoded independently of axial stretching.
  • FIG. 12 shows another graphic code for the number 777. In the example of FIG. 12 as in that of FIG. 5, connected components which do not have a specific and identical shape are used.
  • Figures 13 to 15 show another embodiment of the invention, in which a non-commutative tree is used. This means that the order of the threads in the tree is important. The graphic code is then oriented and the reading direction of the related components is important.
  • Figure 13 shows the tree corresponding to the number 12 - in binary 1100.
  • the coding is as follows: a node with a son codes for a 1 while a node with 2 sons codes for a zero.
  • Figure 14 shows a possible example of a graphic code, using a noncommutative binary tree.
  • the graphic code uses rectangular connected components; it is oriented to account for the noncommutative nature of the tree.
  • the threads of a node are ordered by their relative positions; for nodes of the same rank, the left son comes before the right son and the son of the top before the son of the bottom.
  • the reference numbers show the reading order.
  • the mirror image of the mark of FIG. 14 does not therefore code the same information.
  • the decoding therefore implies, when searching for related components, to scan the tree in a given direction.
  • the code remains resistant to uniaxial deformations; deformations can, however, lead to difficulties if the reading order is important.
  • the advantage of this code is to present a higher density of information, at the cost of greater difficulty if it is desired to marry the code form recognizable by a human, similar to that of Figure 5.
  • Figure 15 shows another example of graphical code.
  • the order of the connected components is given by the angle of the edges with the horizontal or the vertical.
  • a connected component contains two connected components, such as the component 1 and its two wires 2 and 3, it is first necessary to consider the connected component whose edges are parallel to the axes.
  • the example of FIG. 15 only involves locally comparing two connected components and does not require orienting the graphic code.
  • FIGS. 13 to 15 is resistant to deformations, like that of FIGS. 2 to 12.
  • the explanations given with reference to Figures 2 and 6 are provided solely to facilitate the understanding of the invention. In practice, it is possible to use a graphical code transformation algorithm into a tree, which operates in a single pass and which makes it possible to directly find the tree corresponding to the graphic code, such as the one proposed above.
  • the graphic code of the invention is advantageously combined with the coded value, as represented in FIGS. 7 and 8.
  • the coded value can be written in human readable form, for example under the graphic code. This allows on the one hand a reading of the combination by an automatic device and on the other hand a reading of the combination by a human operator.
  • the graphic code may also simply be applied to any support, to allow recognition by a device of the type described with reference to FIG. 16.
  • the support may be a label, a plastic film, or even a product itself. .
  • the graphic codes of the invention can be characterized by various parameters:
  • the balanced nature of the tree represented for example by the ratio between the number of nodes and an exponential function of its height; - the area occupied by the graphic mark, given the thickness of the line;
  • the information density that is to say the ratio between the amount of coded information and the ratio of the area of the graphic mark and the square of the line thickness.
  • the depth of the tree is typically greater than or equal to five for the coding of usual information.
  • the number of nodes is typically greater than 10 for the coding of usual information.
  • the balanced character of the tree is appreciated by the ratio between the number of nodes and an exponential function of the height of the tree. For example, for a binary tree, consider the ratio N / 2 h , with N the number of nodes and h the height of the tree. This ratio tends to 1 for a complete binary tree; it tends to zero for a set of concentric circles. Coding with the methods described above provides values asymptotically greater than 0.1. For a p-ary tree, the number 2 is replaced by the number p in this formula; we find the number p by considering the maximum arity of the nodes of the tree, that is to say the maximum number of threads of a given node. Can also consider instead of the numeral 2 the value max (2, p), which also deals with particular cases, such as concentric circles. A code could then be characterized by the following inequality:
  • the area occupied by the graphic mark, given the thickness of the line, can be evaluated by the diameter of the largest disk of a homogeneous color or by the distance between adjacent connected components. This diameter or this distance is, in the examples of FIGS. 4, 7 and 8, of the order of the thickness of the line; this amounts to avoiding gaps in the mark. For example, the diameter or the distance may be less than or equal to four or even two times the line thickness used to write the mark.
  • the density of information is assessed as the ratio between the amount of coded information, typically measured in bits, and the ratio of the area of the graphical mark to the square of the line weight. In the example of FIG. 4, four-bit information is coded in a substantially square graphic mark with a side of about 14 line thicknesses. The density is 1/50. In Figure 7, the mark has a size of about 80 x 40 line thicknesses, while the coded information is 40 bits long; this leads to a density of the order of 1.25%. Typically, the density of a graphic mark is greater than 0.5%.
  • one of these criteria can be used, or a combination of any number of these criteria.
  • the invention also relates in another embodiment, a decoder apparatus.
  • An example of such an apparatus is shown in the schematic view of FIG. 16.
  • a support 160 In the example of FIG. 16 is shown a support 160, with two graphic codes according to the invention.
  • On the support 160 is also shown a reference; this mark is symbolic of the calculation of the position of the two graphic codes, as explained below.
  • the apparatus comprises an image acquisition part of the graphic code, of the kind described with reference to step 112 above.
  • This acquisition part provides an image of the medium 160 and the graphic codes to a processing part 163.
  • This acquisition part typically comprises an image sensor 161, followed by an analog / digital converter 162; of course, the converter can be integrated with the image sensor.
  • the processing part 163 is adapted to decode the received image and outputs, for example to a display 164 or to a port the value of the information coded in the image.
  • the portion 163 may comprise a conventional microprocessor, a programmable circuit or other logic means adapted to the automatic implementation of the decoding method. It is also possible to use wired logic, as indicated in FIG. 16 by the mention of a software or wired decoder. If necessary, one or more storage memories can be provided.
  • the support 160 comprises two codes.
  • the processing portion 163 is adapted to recognize the presence of both codes; in addition, it is adapted to provide an indication of the position of the two codes; in the example, this position is indicated relative to the Cartesian coordinate system represented in the figure.
  • the reference 164 thus shows the display of the values of the two codes as well as the positions of these codes in the chosen reference.
  • the landmark is a Cartesian landmark, given the rectangular shape of the acquired image; other types of markers may be used depending on the acquisition part.
  • the invention is not limited to the examples proposed above. Thus, in the examples, only two colors were used for the related components. We could also use more than two colors, which increases the information at each level of the tree.
  • binary trees were used; in the tree, each node has zero, one or two sons; each connected component therefore contains zero, one or two related components.
  • the related components of the graphic code could contain up to three (or N threads). This solution makes it possible to increase the compactness of the graphic code, without making the decoding more complex.
  • the word "trace” has been used above to indicate the creation of a related component in the mark; the plot may consist of a physical writing of the connected component on a support; in this case, the tracing action is not necessarily implemented at each iteration of step 18, since it is possible to dispense with "tracing” white connected components.

Abstract

An item of information is coded in the form of a graphic mark, with several connected components. For coding, the information item to be coded is transformed into a tree. Thereafter, the tree is transformed into a graphic mark; a node of the tree is coded by a connected component of the graphic mark with as many interior connected components as the node has children. For decoding, the connected components of the graphic mark are considered and the graphic mark is transformed into a tree; a node of the tree corresponds to a connected component of the graphic mark and the node of the tree has as many children as the corresponding connected component has interior connected components. The tree is thereafter transformed into information. The graphic mark obtained in accordance with the coding is decodable, even after deformations: recognition of connected components is resistant to the deformations of the graphic mark.

Description

PROCEDEDE CODAGE SOUSFORME GRAPHIQUE GRAPHIC UNDERFORMING CODING METHOD
La présente invention concerne un procédé de codage d'information sous forme graphique ainsi qu'un code susceptible d'être obtenu par un tel procédé. Elle concerne encore un procédé de décodage d'un code sous forme graphique.The present invention relates to a method of encoding information in graphical form and a code obtainable by such a method. It also relates to a method of decoding a code in graphical form.
Des procédés de codage d'information sous forme graphique ont été proposés, dans lesquels une information est codée sous une forme graphique. Dans la suite de la description, on utilise les termes suivants:Information coding methods in graphical form have been proposed, in which information is coded in graphic form. In the remainder of the description, the following terms are used:
- le mot "information" représente l'information à coder; il s'agit par exemple d'un nombre, en base 10 ou en représentation binaire;- the word "information" represents the information to be coded; it is for example a number, base 10 or binary representation;
- les mots "codage sous forme graphique" ou "codage" représentent le procédé permettant de transformer l'information en une représentation sous forme graphique, adaptée le cas échéant à être lue par une machine;the words "coding in graphic form" or "coding" represent the method making it possible to transform the information into a representation in graphic form, adapted if necessary to be read by a machine;
- le mot "code graphique" ou "marque graphique" représente le résultat du codage sous forme graphique, c'est-à-dire un ensemble de marques lisibles par un dispositif de lecture;the word "graphic code" or "graphic mark" represents the result of the coding in graphic form, that is to say a set of marks readable by a reading device;
- le mot "décodage" représente le procédé inverse du codage, permettant de transformer un code graphique en l'information correspondante.the word "decoding" represents the inverse method of the coding, making it possible to transform a graphic code into the corresponding information.
Il est entendu que la simple écriture d'un nombre sous forme de chiffres ou même de lettre représente, au sens strict, un codage sous forme graphique. Ce codage est adapté à une lecture humaine; il n'est pas ou mal adapté à une lecture par une machine, dans la mesure où la reconnaissance des chiffres et des lettres nécessite des outils logiciels relativement complexes. La présente invention s'applique à des codages adaptés à une lecture par une machine. Parmi les procédés de codage sous forme graphique, un procédé couramment utilisé est le codage par codes barre. Le code graphique appelé "code barres" ou "code à barres" est composé d'une pluralité de barres parallèles. Les largeurs respectives des barres et/ou leurs positions relatives sont représentatives de l'information. Le code barres est adapté à être lu par un dispositif de balayage utilisant un laser ou par un capteur d'images. Les codes barres sont utilisés couramment à des fins logistiques ou pour l'identification de produits dans le commerce. Ce procédé est par exemple décrit dans les standards EAN d'identification des produits, disponibles en France auprès de Gencod EAN France. Un exemple de code barres de l'état de la technique est représenté à la figure 1; sous les barres du code est reproduite, de façon habituelle, l'information. Ce procédé de codage présente l'inconvénient que le code est sensible à une déformation du support sur lequel il est appliqué. Ainsi, une extension du support dans une direction perpendiculaire à la direction des barres peut modifier la valeur du code ou rendre le code illisible. Il est aussi nécessaire de disposer d'une bonne résolution de lecture dans le sens perpendiculaire aux barres du code.It is understood that the simple writing of a number in the form of numbers or even of letters represents, in the strict sense, a coding in graphical form. This coding is adapted to a human reading; it is not or poorly suited to reading by a machine, since the recognition of numbers and letters requires relatively complex software tools. The present invention applies to encodings adapted to a reading by a machine. Among the coding methods in graphical form, a commonly used method is bar code coding. The graphic code called "bar code" or "bar code" is composed of a plurality of parallel bars. The respective widths of the bars and / or their relative positions are representative of the information. The bar code is adapted to be read by a scanning device using a laser or an image sensor. Barcodes are commonly used for logistical purposes or for the identification of products in the trade. This method is for example described in the EAN product identification standards, available in France from Gencod EAN France. An example of a bar code of the state of the art is shown in FIG. 1; under the bars of the code is reproduced, in the usual way, the information. This coding method has the disadvantage that the code is sensitive to a deformation of the support on which it is applied. Thus, an extension of the support in a direction perpendicular to the direction of the bars can change the value of the code or make the code unreadable. It is also necessary to have a good reading resolution in the direction perpendicular to the bars of the code.
Des versions plus élaborées de tels codes sont décrites dans US-A-5 504 322 ou US-A-6 047 892.More elaborate versions of such codes are described in US-A-5,504,322 or US-A-6,047,892.
Il a été proposé des procédés de codage fournissant des codes graphiques bidimensionnels; ces codes reposent sur la définition de cellules dans le code graphique; ces cellules prennent des valeurs représentatives des symboles à coder. Par exemple, EP-A-I 443 452 propose un codage bidimensionnel utilisant trois couleurs, avec des zones de référence. US-A-2003/0121978 propose un positionnement des cellules dans le code qui rend la lecture plus robuste. US-A-2005/0061892 contient une description de différents symboles utilisables pour des codes bidimensionnels. US- A-2005/0127191 propose un codage utilisant des algorithmes de traitement d'image pour le décodage de codes graphiques bidimensionnels. US-A-2001 /0007116 propose une répartition des symboles dans le code graphique ainsi qu'une redondance permettant une meilleure résistance aux erreurs de transmission, notamment par télécopie. US-A-2004/0031852 propose de disposer dans le code un motif de synchronisation. US-A-6 267 296 propose un code bidimensionnel avec des symboles de différentes tailles; la redondance permet une lecture correcte sous différentes conditions.Coding methods providing two-dimensional graphic codes have been proposed; these codes are based on the definition of cells in the graphic code; these cells take values representative of the symbols to be coded. For example, EP-A-I 443 452 proposes a two-dimensional coding using three colors, with reference areas. US-A-2003/0121978 proposes a positioning of the cells in the code which renders the reading more robust. US-A-2005/0061892 contains a description of different symbols usable for two-dimensional codes. US-A-2005/0127191 provides encoding using image processing algorithms for decoding two-dimensional graphic codes. US-A-2001/0007116 proposes a distribution of the symbols in the graphic code as well as a redundancy allowing a better resistance to the transmission errors, in particular by fax. US-A-2004/0031852 proposes to have in the code a synchronization pattern. US-A-6,267,296 provides a two-dimensional code with symbols of different sizes; redundancy allows a correct reading under different conditions.
US-A-6 360 948 mentionne le problème de la déformation provoquée par la lecture d'une image sur un support non plan; il suggère de disposer dans l'image des symboles d'alignement permettant de tenir compte de cette déformation; le système proposé vise à compenser la forme du support sur lequel est appliqué le code.US-A-6,360,948 mentions the problem of the distortion caused by the reading of an image on a non-plane support; he suggests to have in the image alignment symbols to take account of this deformation; the proposed system aims to compensate for the form of the medium on which the code is applied.
D'autres solutions de l'état de la technique sont décrites dans les documents FR- A-2 809 210 (codage des 256 valeurs possibles d'un octet par des symboles différents), FR-A-2 735 891 (lecture des pixels d'une image), FR- A-2 660 773 (codage redondant), FR- A-2 561 012 (procédé et dispositif de reconnaissance de forme), EP-A-I 287 483, WO-A-2004 055735, WO-A-01 86582 (codage utilisant des zones distinctes de référence, de données, de contrôle et de parité), un ou encore WO-A-03 012727 (codage utilisant des symboles constitué des orientations angulaires des motifs de modulation d'une image), WO-A-02 080 645 (reconnaissance de marques). Les solutions décrites dans ces documents consistent à choisir des symboles supposés plus résistants aux erreurs ou encore à disposer dans le code graphique des éléments facilitant la reconnaissance de zones précises du code. Ces solutions sont, dans chacun des cas, adaptées à un type donné d'erreur. Les codes graphiques de ces documents sont peu ou difficilement lisibles en cas de déformation du support sur lequel le code graphique est appliqué - gondolage du support, étirement inhomogène, pliure; ils sont aussi peu ou difficilement lisibles en présence de déformations dues aux dispositifs de lecture; par exemple, les déformations dues aux lentilles des caméras, aux effets de perspective ou encore au gondolement des surfaces compliquent la lecture de ces codes. II existe donc un besoin d'un code graphique, qui supporte la déformation, qu'il s'agisse de la déformation du support sur lequel est appliqué le code ou encore de la déformation provoquée par la lecture du code graphique. Un tel code graphique est d'autant plus utile qu'il est possible de le coder et de le décoder en utilisant des moyens simples.Other solutions of the state of the art are described in documents FR-A-2 809 210 (coding of the 256 possible values of one byte by different symbols), FR-A-2 735 891 (reading of the pixels of an image), FR-A-2 660 773 (redundant coding), FR-A-2 561 012 (method and device for pattern recognition), EP-AI 287 483, WO-A-2004 055735, WO-A A-01 86582 (coding using separate areas of reference, data, control and parity), or WO-A-03 012727 (coding using symbols consisting of angular orientations of the modulation patterns of an image) WO-A-02 080 645 (recognition of marks). The solutions described in these documents consist in choosing symbols that are supposed to be more resistant to errors or in arranging in the graphic code elements facilitating the recognition of specific areas of the code. These solutions are, in each case, adapted to a given type of error. The graphic codes of these documents are hardly or hardly readable in case of deformation of the medium on which the graphic code is applied - curling of the support, inhomogeneous stretching, folding; they are as little or hardly readable in the presence of deformations due to the reading devices; for example, deformations due to camera lenses, perspective effects or curl surfaces make it difficult to read these codes. There is therefore a need for a graphic code, which supports the deformation, whether it is the deformation of the medium on which the code is applied or the deformation caused by the reading of the graphic code. Such a graphic code is all the more useful that it is possible to code and decode it using simple means.
En conséquence, l'invention propose, dans un mode de réalisation un procédé de codage d'une information sous forme d'une marque graphique présentant une pluralité de composantes connexes, comprenant:Accordingly, the invention provides, in one embodiment, a method of encoding information in the form of a graphical mark having a plurality of related components, comprising:
- une étape de transformation de l'information à coder en un arbre;a step of transforming the information to be coded into a tree;
- une étape de transformation de l'arbre en une marque graphique, dans laquelle un nœud de l'arbre est codé par une composante connexe de la marque graphique comprenant autant de composantes connexes intérieures que le nœud présente de fils. Le procédé peut présenter une ou plusieurs des caractéristiques additionnelles suivantes :a step of transforming the tree into a graphic mark, in which a node of the tree is encoded by a connected component of the graphic mark comprising as many internal connected components as the present node of son. The method may have one or more of the following additional features:
- l'arbre est un arbre commutatif ou non-commutatif;the tree is a commutative or non-commutative tree;
- l'arbre est un arbre binaire; - les composantes connexes présentent au moins deux couleurs, et un nœud de l'arbre est codé par une composante connexe de la marque graphique présentant une première couleur et comprenant autant de composantes connexes intérieures d'une deuxième couleur que le nœud présente de fils.- the tree is a binary tree; the connected components have at least two colors, and a node of the tree is encoded by a connected component of the graphic mark having a first color and comprising as many internal connected components of a second color as the present node of wires.
Dans un autre mode de réalisation, l'invention propose un procédé de décodage d'une marque graphique présentant une pluralité de composantes connexes en une information; le procédé comprend:In another embodiment, the invention provides a method of decoding a graphical mark having a plurality of related components into an information; the method comprises:
- une étape de transformation de la marque graphique en un arbre, dans laquelle un nœud de l'arbre correspond à une composante connexe de la marque graphique le nœud présentant autant de fils que la composante connexe correspondante présente de composantes connexes intérieures;a step of transforming the graphic mark into a tree, in which a node of the tree corresponds to a connected component of the mark graph the node with as many wires as the corresponding connected component has inner connected components;
- une étape de transformation de l'arbre en l'information.a step of transforming the tree into information.
Comme dans le procédé de codage, on peut prévoir que l'arbre est un arbre commutatif, non-commutatif ou encore un arbre binaire.As in the coding method, it can be provided that the tree is a commutative, non-commutative tree or a binary tree.
Si les composantes connexes présentent au moins deux couleurs, un nœud de l'arbre correspondant à une composante connexe de la marque graphique présentant une première couleur présente autant de fils que la composant connexe comprend de composantes connexes intérieures d'une deuxième couleur. Dans un autre mode de réalisation, l'invention propose un support présentant une marque graphique susceptible d'être décodée suivant ce procédé; encore un autre mode de réalisation concerne un support avec une marque graphique obtenue par le procédé décrit plus haut.If the related components have at least two colors, a node of the tree corresponding to a connected component of the graphical mark having a first color has as many threads as the related component comprises inner connected components of a second color. In another embodiment, the invention proposes a support having a graphic mark capable of being decoded according to this method; yet another embodiment relates to a support with a graphic mark obtained by the method described above.
On peut prévoir sur le support une indication de la valeur de l'information décodée ou codée suivant ledit procédé, par exemple une indication directement lisible par l'homme. Une composante connexe de la marque graphique peut présenter une forme rectangulaire.An indication of the value of the information decoded or coded according to said method, for example a directly human-readable indication, may be provided on the medium. A related component of the graphic mark may have a rectangular shape.
Avantageusement, le support présente au moins l'une des caractéristiques suivantes :Advantageously, the support has at least one of the following characteristics:
- l'arbre correspondant à la marque dans le codage ou le décodage présente une hauteur supérieure ou égale à 5;the tree corresponding to the mark in the coding or the decoding has a height greater than or equal to 5;
- l'arbre correspondant à la marque dans le codage ou le décodage présente un nombre de nœuds supérieur à 10the tree corresponding to the mark in the coding or the decoding has a number of nodes greater than 10
- l'arbre correspondant à la marque dans le codage ou le décodage satisfait- the tree corresponding to the mark in the encoding or decoding satisfies
max\2,p) ' avec N le nombre de nœuds, p l'arité maximale des nœuds de l'arbre et h la hauteur de l'arbre;max \ 2, p) 'with N the number of nodes, p the maximum arity of the nodes of the tree and h the height of the tree;
- le diamètre du plus grand disque de couleur homogène dans la marque est inférieur ou égal à quatre fois l'épaisseur de trait utilisée pour écrire la marque- the diameter of the largest uniform color disc in the mark is less than or equal to four times the line thickness used to write the mark
- la densité, exprimée par le rapport entre- density, expressed as the ratio between
- la quantité d'information codée, mesurée en bits etthe quantity of coded information, measured in bits and
- le rapport de la surface de la marque graphique et le carré de l'épaisseur de trait est supérieure à 0,5%. Dans encore un mode de réalisation, l'invention propose un appareil décodeur, comprenant :the ratio of the area of the graphic mark and the square of the line thickness is greater than 0.5%. In yet another embodiment, the invention provides a decoder apparatus, comprising:
- une partie d'acquisition adaptée à fournir une image d'un code graphique; - une partie de traitement pouvant être réalisée par logiciel ou câblée et adaptée à recevoir l'image fournie par la partie d'acquisition et à décoder l'image reçue pour fournir la valeur de l'information codée dans le code graphique. La partie de traitement peut aussi être adaptée à fournir une indication de la position d'un code graphique dans l'image reçue.an acquisition part adapted to provide an image of a graphic code; - A processing part that can be performed by software or cable and adapted to receive the image provided by the acquisition part and to decode the received image to provide the value of the information coded in the graphic code. The processing portion may also be adapted to provide an indication of the position of a graphic code in the received image.
Enfin, l'invention propose un programme d'ordinateur sur un support lisible par ordinateur et contenant du code adapté à exécuter sur un ordinateur toutes les étapes du procédé de codage ou de décodage mentionné ci-dessus.Finally, the invention provides a computer program on a computer readable medium and containing code adapted to execute on a computer all the steps of the encoding or decoding method mentioned above.
D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description qui suit de modes de réalisation, donnés à titre d'exemple uniquement et en référence aux dessins annexés, où:Other characteristics and advantages of the invention will appear on reading the following description of embodiments, given by way of example only and with reference to the appended drawings, in which:
- la figure 1 montre un code barres de l'état de la technique;- Figure 1 shows a bar code of the state of the art;
- la figure 2 est un ordinogramme d'un mode de réalisation du procédé de l'invention; - la figure 3 montre un arbre représentatif de l'information "12";FIG. 2 is a flow chart of an embodiment of the method of the invention; FIG. 3 shows a tree representative of the information "12";
- la figure 4 montre un code graphique codant l'information "12";FIG. 4 shows a graphic code encoding the information "12";
- la figure 5 montre un autre code graphique codant l'information "12";FIG. 5 shows another graphic code encoding information "12";
- la figure 6 est un ordinogramme d'un algorithme de décodage d'un mode de réalisation du procédé de l'invention; - la figure 7 montre un code graphique codant la même information que le code barres de la figure 1 ;FIG. 6 is a flow chart of a decoding algorithm of an embodiment of the method of the invention; FIG. 7 shows a graphic code encoding the same information as the bar code of FIG. 1;
- les figures 8 à 12 montrent différents exemples de codes graphiques codant l'information "777";FIGS. 8 to 12 show different examples of graphic codes encoding the "777" information;
- la figure 13 montre un arbre non-commutatif représentatif de l'information "12", dans un deuxième mode de réalisation de l'invention;FIG. 13 shows a non-commutative tree representative of the information "12", in a second embodiment of the invention;
- la figure 14 montre un code graphique codant l'information "12";FIG. 14 shows a graphic code coding information "12";
- la figure 15 montre un autre code graphique codant l'information "12";FIG. 15 shows another graphic code coding information "12";
- la figure 16 montre un appareil de décodage selon l'invention.- Figure 16 shows a decoding apparatus according to the invention.
L'invention propose, dans un mode de réalisation, d'utiliser, dans un code graphique les composantes connexes pour représenter graphiquement l'information à coder. Spécifiquement, l'information est codée de façon récursive par le nombre de composantes connexes contenues dans une composante connexe donnée.The invention proposes, in one embodiment, to use, in a graphic code, the connected components to graphically represent the information to be coded. Specifically, the information is recursively encoded by the number of related components contained in a given connected component.
On appelle dans ce contexte "composante connexe" un ensemble vérifiant la propriété suivante : pour deux éléments a, b de l'ensemble, il existe un chemin continu permettant d'aller de l'élément a jusqu'à l'élément b en passant uniquement par des éléments de l'ensemble. Cette définition de la connexité correspond à la définition en topologie de la connexité par arcs.In this context, we call "connected component" a set satisfying the following property: for two elements a, b of the set, there exists a continuous path allowing to go from the element a to the element b passing only by elements of the set. This definition of connectivity corresponds to the topology definition of arc connectivity.
Dans une marque graphique numérisée, formée d'une pluralité de pixels présentant par exemple deux valeurs (noir ou blanc), une composante (noire par exemple) est connexe si tout pixel de la composante peut être relié à un autre pixel de la composante par un chemin formé de pixels adjacents de la composante. On comprend que si cette définition peut dépendre de la résolution de la numérisation, elle est indépendante du motif de la numérisation et de la définition de l'adjacente; ainsi, une numérisation classique sous forme de matrice bidimensionnelle de pixels conduit au même résultat, pour ce qui est de la connexité, qu'une numérisation avec une matrice d'éléments hexagonaux.In a digitized graphic mark, formed of a plurality of pixels having for example two values (black or white), a component (black for example) is connected if any pixel of the component can be connected to another pixel of the component by a path formed of adjacent pixels of the component. It is understood that while this definition may depend on the resolution of the digitization, it is independent of the reason for the digitization and the definition of the adjacent one; thus, a conventional digitization in the form of a two-dimensional matrix of pixels leads to the same result, with regard to the connectivity, as a digitization with a matrix of hexagonal elements.
L'utilisation des composantes connexes, au lieu de symboles d'une forme ou d'une position prédéterminée, assure que le code est susceptible d'être lu, malgré des déformations.The use of the related components, instead of symbols of a predetermined shape or position, ensures that the code is readable despite deformations.
Le code résiste notamment à des extensions inhomogènes — étirement dans une ou plusieurs directions -, à un gondolement ou à une déformation du support. Le code résiste encore aux déformations qui peuvent être apportées par un dispositif de lecture.The code is particularly resistant to inhomogeneous extensions - stretching in one or more directions -, curl or deformation of the support. The code still resists deformations that can be made by a reading device.
On donne en référence aux figures 3 à 5 un premier exemple d'un mode de réalisation de l'invention. Dans ce premier mode de réalisation, on utilise une représentation de l'information sous forme d'un arbre commutatif. Cette solution évite de devoir disposer d'une orientation du code graphique.FIGS. 3 to 5 give a first example of an embodiment of the invention. In this first embodiment, a representation of the information in the form of a commutative tree is used. This solution avoids having to have an orientation of the graphic code.
On utilise en outre un code graphique dans lequel les composantes connexes sont alternativement noires et blanches; ce choix assure une meilleure compacité du code graphique; ce choix est indépendant de la représentation commutative ou non choisie pour l'arbre.In addition, a graphic code is used in which the connected components are alternately black and white; this choice ensures a better compactness of the graphic code; this choice is independent of the commutative or non-chosen representation for the tree.
Dans ce premier exemple, l'information à coder est le nombre douze ("12"). Ce nombre s'écrit en binaire 1100. La première étape 12 de l'ordinogramme de la figure 2 consiste à choisir l'information à coder.In this first example, the information to be coded is the number twelve ("12"). This number is written in binary 1100. The first step 12 of the flow chart of FIG. 2 consists in choosing the information to be coded.
Pour le codage, l'information est transformée en un arbre, ce qui est représenté à la deuxième étape 14 de l'ordinogramme de la figure 2. On peut utiliser à cet effet tout algorithme connu en soi. Dans l'exemple, on a considéré l'algorithme suivant. Soit w un mot binaire de longueur m représentant l'information à coder. Ses bits sont numérotés de 1 à m, le z'-ème bit étant noté w(i). On représente les arbres binaires non commutatifs par un ensemble de termes t vérifiant l'équation t = A + B(t) + C{t,t). Ces termes sont construits comme suit :For coding, the information is transformed into a tree, which is represented in the second step 14 of the flow chart of FIG. 2. Any algorithm known per se can be used for this purpose. In the example, we considered the following algorithm. Let w be a binary word of length m representing the information to be coded. Its bits are numbered from 1 to m, the z ' -th bit being denoted w (i). The noncommutative binary trees are represented by a set of terms t satisfying the equation t = A + B (t) + C (t, t). These terms are constructed as follows:
1. L'arbre réduit à un seul noeud est représenté par ^. 2. Le terme B(t) représente l'arbre dont la racine n'a qu'un fils, ce fils étant la racine de l'arbre représenté par t.1. The tree reduced to a single node is represented by ^. 2. The term B (t) represents the tree whose root has only one son, this son being the root of the tree represented by t.
3. Le terme C(t,t) représente un arbre dont la racine a deux fils, le premier étant la racine de l'arbre représenté par t et le deuxième celle de l'arbre représenté par f. Voici une procédure récursive T transformant tout mot w en un terme T(w). Quand m =3. The term C (t, t) represents a tree whose root has two sons, the first being the root of the tree represented by t and the second that of the tree represented by f. Here is a recursive procedure T transforming every word w into a term T (w). When m =
0 on pose T(W) = A. Sinon soient w(l) le premier bit de w et w' = w(2) ... w(m) le mot constitué des m - 1 derniers bits de w. Soit x (respectivement y) le mot obtenu par suppression des chiffres se situant aux positions paires (respectivement impaires) de w'. Si w(l) = 0 on pose T(w) = B(T(w')), sinon on pose T(w) = C(T(x),T(y)). La transformation Test injective et la transformée inverse se déduit facilement de cette définition. Par exemple, le mot w = 1100 est transformé suivant ce procédé en0 we put T (W) = A. Otherwise let w (l) be the first bit of w and w '= w (2) ... w (m) the word consisting of the last m - 1 bits of w. Let x (respectively y) be the word obtained by deleting the digits in the even (odd) positions of w '. If w (l) = 0 we put T (w) = B (T (w ')), otherwise we put T (w) = C (T (x), T (y)). The Injective Test transformation and the inverse transform are easily deduced from this definition. For example, the word w = 1100 is transformed according to this method into
T(w) = C(C(B(A) J)β(A)))T (w) = C (C (B (A) J) β (A)))
Voici deux procédures récursives U et V transformant des termes en termes. La procédure U permet de transformer un terme t en un terme U(t) de façon à ce que pour tout terme t' obtenu par réarrangement de l'ordre des fils des noeuds de U(t) on ait V(f) = t.Here are two recursive procedures U and V transforming terms into terms. The procedure U makes it possible to transform a term t into a term U (t) so that for any term t 'obtained by rearrangement of the order of the threads of the nodes of U (t) we have V (f) = t .
Autrement dit U permet de transformer de façon injective un arbre binaire non commutatif en un arbre binaire commutatif, et V permet de retrouver l'arbre non commutatif à partir de son transformé. Cela est important car l'information sur l'ordre des fils est perdue lorsque le symbole lu subit des déformations, rotations ou réflexions, et permet une plus grande liberté dans la procédure de mise en forme graphique. On pose U(A) = A, V(A) = A et pour tous termes t et t' :In other words, U makes it possible to transform an noncommutative binary tree into a commutative binary tree in an injective manner, and V makes it possible to retrieve the non-commutative tree from its transformed transform. This is important because the information on the order of the threads is lost when the read symbol undergoes deformations, rotations or reflections, and allows a greater freedom in the procedure of graphic formatting. We put U (A) = A, V (A) = A and for all terms t and t ':
U(B(ή) =B(U(ή)U (B (ή) = B (U (ή)
V(B(t) = B(V(t))V (B (t) = B (V (t))
U(C(t,t')) = C(B(U(t),C(Aβ(U(f))))) V(C(B(t),C(Aβ(t)))) ≈ V(C(B(t),C(B(t)A)))U (C (t, t ')) = C (B (U (t), C (Aβ (U (f))))) V (C (B (t), C (Aβ (t)))) ≈ V (C (B (t), C (B (t) A)))
V(C(C(A,B(t)\B(t))) ≈ V(C(B(t),C(B(t)A))) V(C(C(B(f)A)β(i))) = C(V(t),V(t'))V (C (A, B (t) \ B (t))) ≈ V (C (B (t), C (B (t) A))) V (C (C (B (f) A ) β (i))) = C (V (t), V (t '))
On notera que la fonction V est partielle, les cas non couverts par la définition correspondent à des arbres qui n'ont pas été obtenus par la procédure U. Le terme t = T(OOIl) de l'exemple précédent est transformé enNote that the function V is partial, the cases not covered by the definition correspond to trees that were not obtained by the procedure U. The term t = T (OOIl) of the preceding example is transformed into
U(C(C(B(A)A)β(A)))) ≈ C(B(C(B(B(A)5C(A5B(A)))) ,C(A5B(B(A))))) Les résultats obtenus par l'application de cet algorithme au codage du nombre 12 sont représentés à la figure 3. Pour plus de clarté dans l'exposé, les nœuds de l'arbre de la figure 3 sont numérotés de 40 à 54. Le nœud 40 est le nœud racine. Les nœuds sont associés à des références A, B et C, comme indiqué plus haut. L'arbre est commutatif, en ce sens qu'un changement dans l'ordre des fils n'est pas important pour la transformation de l'information en arbre et pour la transformation inverse de l'arbre en information. Ainsi, échanger la position relative des nœuds 41 et 42 (et de leurs descendances respectives) ne change pas le codage.U (C (C (B (A)) β (A)))) ≈ C (B (C (B (B (A) 5 C (A 5 B (A)))), C (A 5 B (B (A))))) The results obtained by the application of this algorithm to the coding of the number 12 are shown in FIG. 3. For clarity in the presentation, the nodes of the tree of FIG. 3 are numbered from 40 to 54. The node 40 is the root node. The nodes are associated with references A, B and C, as indicated above. The tree is commutative, in that a change in the order of the threads is not important for the transformation of information into a tree and for the inverse transformation of the tree into information. Thus, exchanging the relative position of the nodes 41 and 42 (and their respective progenies) does not change the coding.
Par ailleurs, on constate sur l'arbre de la figure 3 que les nœuds sont représentés en noir ou en blanc, la couleur d'un nœud dépendant de sa profondeur dans l'arbre - les nœuds présentant une profondeur paire sont noirs tandis que les nœuds présentant une profondeur impaire sont blancs. Il ne s'agit que d'une convention de représentation pour faciliter la compréhension de l'exposé, comme le montre la comparaison des figures 4 et 5 ci-dessous.In addition, the tree in Figure 3 shows that the nodes are represented in black or white, the color of a node depending on its depth in the tree - the nodes having an even depth are black while the nodes with an odd depth are white. It is only a convention of representation to facilitate the understanding of the presentation, as shown by the comparison of Figures 4 and 5 below.
A l'étape suivante de l'ordinogramme, référencée 16, on considère le nœud racine 40 comme nœud courant.In the next step of the flowchart, referenced 16, the root node 40 is considered as the current node.
A l'étape 18 suivante, on trace pour le nœud courant une composante connexe noire, présentant autant de composantes connexes intérieures que le nœud courant présente de nœuds fils. A la première itération, le nœud courant est le nœud racine 40, avec deux nœuds fils. On trace donc une composante connexe, qui contient deux composantes connexes. Il s'agit respectivement sur les figures 4 et 5 des composantes connexes les plus extérieures, référencées 40a et 40b.In the next step 18, a black connected component is drawn for the current node, having as many internal connected components as the current node having son nodes. At the first iteration, the current node is the root node 40, with two child nodes. We trace a connected component, which contains two related components. These are respectively in Figures 4 and 5 of the outermost connected components, referenced 40a and 40b.
A l'étape 20 suivante, on cherche s'il existe un autre nœud de même profondeur dans l'arbre. Si tel est le cas, on change le nœud suivant en un autre nœud de même profondeurIn the next step 20, it is sought if there is another node of the same depth in the tree. If this is the case, change the next node to another node of the same depth
(étape 22) et on repasse à l'étape 18; s'il n'existe pas d'autre nœud de même profondeur, on passe à l'étape 24. Dans l'exemple, à la première itération, il n'existe pas de nœud de même profondeur que le nœud racine et on passe directement à l'étape 24.(step 22) and go back to step 18; if there is no other node of the same depth, we go to step 24. In the example, at the first iteration, there is no node of the same depth as the root node and we pass directly at step 24.
A l'étape 24, on vérifie s'il existe des nœuds de niveau inférieur; si tel est le cas, on passe à l'étape 26, et sinon on passe à l'étape 28. Dans l'exemple, il existe des nœuds d'une profondeur supérieure au nœud racine et on passe donc à l'étape 26. A l'étape 26, on change le nœud courant pour un nœud de niveau inférieur et on boucle vers l'étape 18. Dans l'exemple, et on passe du nœud racine au nœud 41 ou au nœud 42, par exemple au nœud 41. On boucle ensuite vers l'étape 18.In step 24, it is checked whether there are nodes of lower level; if this is the case, go to step 26, and if not go to step 28. In the example, there are nodes of a depth greater than the root node and so we go to step 26 In step 26, change the current node to a lower level node and loop to step 18. In the example, and go from the root node to node 41 or node 42, for example to the node. 41. Then, loop to step 18.
A l'étape 28, le tracé du code graphique est terminé. Dans l'exemple, en commençant par le nœud racine, on est ainsi conduit à tracer successivement les composantes connexes suivantes 40a à 54a sur la figure 4 correspondant aux noeuds 40 à 54 de la figure 3. Les composantes connexes 53a et 54a ne sont pas à proprement parler "tracées", puisqu'elles sont implicitement définies lors du tracé des composantes connexes 50a et 52a.In step 28, the drawing of the graphic code is completed. In the example, beginning with the root node, it is thus necessary to draw successively the following connected components 40a to 54a in FIG. 4 corresponding to the nodes 40 to 54 of FIG. 3. The connected components 53a and 54a are not strictly speaking "drawn", since they are implicitly defined when drawing the connected components 50a and 52a.
Bien entendu, l'ordinogramme de la figure 2 n'est qu'un exemple de mise en œuvre d'un codage selon le premier mode de réalisation. Dans cet exemple, on balaye les nœuds de l'arbre de la figure 3 dans l'ordre croissant des références de la figure. Il est manifeste que le même code graphique est obtenu en balayant les nœuds de l'arbre suivant un autre ordre. De la même façon, l'algorithme proposé plus haut pour la transformation d'une information en un arbre n'est qu'un exemple; il présente l'avantage de la simplicité et de l'efficacité, mais on aurait aussi pu considérer un autre algorithme.Of course, the flow chart of FIG. 2 is only an example of implementation of a coding according to the first embodiment. In this example, the nodes of the tree of FIG. 3 are scanned in the ascending order of the references of the figure. It is obvious that the same graphic code is obtained by scanning the nodes of the tree in another order. In the same way, the algorithm proposed above for the transformation of information into a tree is only an example; it has the advantage of simplicity and efficiency, but one could also consider another algorithm.
Dans l'exemple de la figure 4, on a considéré des composantes connexes présentant une forme de rectangle ou de carré. Cette solution présente l'avantage de la simplicité. Plus précisément, on utilise des rectangles emboîtés aux bords parallèles.In the example of Figure 4, we considered connected components having a shape of rectangle or square. This solution has the advantage of simplicity. More precisely, nested rectangles with parallel edges are used.
La figure 5 montre un autre exemple de code graphique, correspondant aussi au nombre "12". Cet exemple montre que l'invention peut fournir des marques graphiques facilement lisibles par une machine, mais pouvant néanmoins être mis sous une forme appréciable par l'être humain indépendamment de l'information codée. Dans l'exemple de la figure 5, les différentes composantes graphiques sont référencées 40b à 54b et correspondent respectivement aux nœuds 40 à 54 de l'arbre de la figure 3. Par rapport à la figure 4, on a inversé les nœuds noirs et blancs - le cadre extérieur de la figure 5 ne constitue pas une composante connexe utile dans le codage, mais simplement la bordure du code graphique. La composante connexe correspondant au nœud racine 40 est la composante connexe blanche 40b entourant le vélo; elle contient deux composantes connexes 41b et 42b, correspondant aux nœuds 41 et 42. On constate que d'un point de vue topologique, la figure 5 est identique à la figure 4 — seule changeant la forme des différentes composantes connexes formant l'objet, ainsi que l'alternance blanc-noir, comme indiqué plus haut.Figure 5 shows another example of graphic code, also corresponding to the number "12". This example shows that the invention can provide graphical marks easily readable by a machine, but can nevertheless be made in a form that can be appreciated by the human being independently of the coded information. In the example of FIG. 5, the different graphic components are referenced 40b to 54b and correspond respectively to the nodes 40 to 54 of the tree of FIG. 3. Compared with FIG. 4, the black and white nodes have been inverted. the outer frame of FIG. 5 does not constitute a useful connected component in the coding, but simply the border of the graphic code. The connected component corresponding to the root node 40 is the white connected component 40b surrounding the bicycle; it contains two connected components 41b and 42b, corresponding to the nodes 41 and 42. It can be seen that from a topological point of view, FIG. 5 is identical to FIG. 4 - only changing the shape of the various connected components forming the object, as well as the alternation white-black, as indicated above.
Dans l'exemple de la figure 4 comme dans celui de la figure 5, la taille du code graphique peut être déterminée à l'avance en comptant la profondeur de l'arbre. Ceci permet de déterminer la taille du code graphique.In the example of Figure 4 as in that of Figure 5, the size of the graphic code can be determined in advance by counting the depth of the tree. This makes it possible to determine the size of the graphic code.
On décrit en référence à la figure 6 un algorithme de décodage correspondant à l'algorithme de codage de la figure 3. La première étape de l'algorithme consiste à créer un arbre à partir du code graphique reçu; de façon itérative, chaque composante connexe du code graphique correspond à un nœud de l'arbre, dont le nombre de fils est fonction du nombre de composantes connexes contenues dans cette composante. La seconde étape de l'algorithme consiste à transformer l'arbre en information.A decoding algorithm corresponding to the coding algorithm of FIG. 3 is described with reference to FIG. 6. The first step of the algorithm consists in creating a tree from the received graphic code; iteratively, each connected component of the code graph corresponds to a node of the tree whose number of wires is a function of the number of related components contained in this component. The second step of the algorithm is to transform the tree into information.
L'exemple de la figure 6 donne plus de détails sur la première étape; à l'étape 112, on reçoit le code graphique; cette réception du code graphique s'effectue par acquisition d'image, de façon connue en soi. On peut utiliser une caméra à couplage de charge, un dispositif de lecture à balayage (scanner) ou toute autre solution permettant l'acquisition d'une image sous la forme de pixels. Comme indiqué plus haut, la résolution peut varier, dans la mesure où la résolution est suffisante pour préserver les propriétés de connexité dans l'image. En pratique, il suffit que l'élément d'image soit plus petit (dans sa plus grande dimension) que la moitié de la distance minimale entre deux composantes connexes; ce critère assure que l'acquisition de l'image du code graphique préserve la connexité des différentes composantes du code. Comme indiqué plus haut, la grille utilisée peut être carrée, hexagonale, ou irrégulière; une grille irrégulière est notamment adaptée si le code graphique est déformé et que cette déformation est prédéterminée ou mesurable sur le code - par exemple, pour un code avec des composantes formées de traits d'épaisseur constante, les variations d'épaisseur des traits peuvent être utilisées comme mesure de la déformation.The example in Figure 6 gives more details on the first step; in step 112, the graphics code is received; this reception of the graphic code is carried out by image acquisition, in a manner known per se. A charge-coupled camera, a scanning device (scanner) or any other solution for acquiring an image in the form of pixels can be used. As noted above, the resolution may vary, since the resolution is sufficient to preserve the connectivity properties in the image. In practice, it is sufficient that the picture element is smaller (in its largest dimension) than half the minimum distance between two connected components; this criterion ensures that the acquisition of the image of the graphic code preserves the connectivity of the different components of the code. As indicated above, the grid used may be square, hexagonal, or irregular; an irregular grid is particularly suitable if the graphic code is deformed and this deformation is predetermined or measurable on the code - for example, for a code with components formed of lines of constant thickness, the variations in thickness of the lines may be used as a measure of deformation.
On peut ensuite appliquer à l'image du code graphique des opérations classiques de traitement d'image, comme le débruitage par filtres linéaires ou morphologiques, suivi d'un seuillage. On obtient de la sorte une images ayant un nombre fini de couleurs (deux dans les exemples) et ayant des zones homogènes.Conventional image processing operations can be applied to the image of the graphic code, such as linear or morphological filter denoising, followed by thresholding. In this way we obtain an image having a finite number of colors (two in the examples) and having homogeneous areas.
Ensuite, à l'étape 114, on considère la première composante connexe - la composante connexe la plus extérieure - et on la définit comme composante connexe courante. On définit le nœud courant de l'arbre comme le nœud racine. On passe ensuite à l'étape 116. A l'étape 116, on détermine le nombre de composantes connexes contenues dans la composante connexe courante et on construit un ou plusieurs fils au nœud courant en fonction du nombre de composantes connexes contenues à l'intérieur de la composante connexe courante. A chacun des nœuds fils ainsi construits est associée une composante connexe. On passe ensuite à l'étape 118. A l'étape 118, on détermine s'il existe des composantes connexes correspondant dans l'arbre à des nœuds de même profondeur que le nœud courant. Si tel est le cas, on passe à l'étape 120, dans laquelle on change la composante connexe courante en la composante connexe identifiée et le nœud courant en le nœud correspondant, puis à l'étape 116. A l'inverse, si l'on détermine à l'étape 118 qu'il n'existe pas de composantes connexes correspondant dans l'arbre à des nœuds de même profondeur que le nœud courant, on passe à l'étape 122.Next, in step 114, the first connected component - the outermost connected component - is considered and defined as the current connected component. The current node of the tree is defined as the root node. Next, step 116 is performed. At step 116, the number of connected components in the current connected component is determined and one or more wires are constructed at the current node based on the number of related components contained within. of the current connected component. Each of the son nodes thus constructed is associated with a connected component. Next, step 118 is performed. In step 118, it is determined whether there are corresponding connected components in the tree at nodes of the same depth as the current node. If this is the case, proceed to step 120, in which the current connected component is changed to the identified connected component and the current node to the corresponding node, then to step 116. Conversely, if it is determined in step 118 that there are no related components corresponding in the tree to nodes of the same depth as the current node, go to step 122.
A l'étape 122, on détermine s'il existe des composantes connexes correspondant dans l'arbre à des nœuds de profondeur supérieure à celle du nœud courant. Si tel est le cas, on passe à l'étape 124, dans laquelle on change la composante connexe courante en la composante connexe identifiée et le nœud courant en le nœud correspondant, puis à l'étape 116. A l'inverse, si l'on détermine à l'étape 122 qu'il n'existe pas de composante connexe correspondant dans l'arbre à des nœuds de profondeur supérieure au nœud courant, on passe à l'étape 124. A l'étape 124, on a balayé l'ensemble des composantes connexes du code graphique et construit un arbre correspondant. Comme expliqué en référence à la figure 2, les étapes précédentes ne représentent qu'une des méthodes permettant de balayer le code graphique et d'autres stratégies sont possibles pour construire l'arbre en associant à une composante connexe donnée du code graphique un nœud d'un arbre, dont le nombre de fils est fonction du nombre de composantes connexes contenues dans la composante connexe donnée.In step 122, it is determined whether there are corresponding connected components in the tree at nodes of greater depth than the current node. If this is the case, go to step 124, in which the current connected component is changed to the identified connected component and the current node to the corresponding node, and then to step 116. Conversely, if it is determined in step 122 that there is no corresponding connected component in the tree at nodes of greater depth than the current node, proceed to step 124. At step 124, it is scanned the set of related components of the graphic code and builds a corresponding tree. As explained with reference to FIG. 2, the preceding steps represent only one of the methods for scanning the graphic code and other strategies are possible for constructing the tree by associating with a given connected component of the graphic code a node of a tree whose number of sons is a function of the number of connected components contained in the given connected component.
A l'étape 126, on transforme l'arbre obtenu aux étapes précédentes en une information. Le procédé à cette étape est inverse du procédé décrit plus haut en référence à l'étape 14 de la figure 2. Par exemple, si l'étape 14 est réalisée à l'aide de la procédure U décrite plus haut, ce sera la procédure F décrite au même endroit qui pourra être utilisée à l'étape 126. D'un point de vue algorithmique, le codage de la figure 3 comme le décodage de la figure 6 peuvent être mis en œuvre avec des ressources limitées. Pour ce qui est du codage, l'étape 14 peut s'effectuer, si on choisit d'utiliser la procédure U, en temps linéaire ; si le langage de programmation utilisé ne possède pas de gestion automatique de la mémoire ou de représentation pratique des termes, on remarquera que le nombre de noeuds de l'arbre obtenu est en O(m log m), et on pourra travailler dans un tableau de taille fixe.In step 126, transforming the tree obtained in the previous steps into information. The process in this step is the opposite of the method described above with reference to step 14 of FIG. 2. For example, if step 14 is carried out using the procedure U described above, this will be the procedure F described in the same place that can be used in step 126. From an algorithmic point of view, the coding of Figure 3 as the decoding of Figure 6 can be implemented with limited resources. As regards the coding, step 14 can be performed, if one chooses to use the procedure U, in linear time; if the programming language used does not have automatic management of the memory or practical representation of the terms, it will be noticed that the number of nodes of the obtained tree is in O (m log m), and one will be able to work in a table fixed size.
Ensuite vient une étape de dimensionnement et de positionnement des représentations graphiques des noeuds de l'arbre. La marge de manoeuvre de cette étape est large en raison de la commutativité de l'arbre et de la déformabilité du procédé. Une façon simple et récursive de réaliser cette étape est de représenter chaque composante par un rectangle aux bords horizontaux et verticaux, et de réserver à l'intérieur de ce rectangle un ou deux sous-rectangles pour accueillir les représentations calculées récursivement des noeuds. Cette division peut se faire verticalement ou horizontalement, ce choix affectant la taille finale du symbole si on souhaite maintenir constante la distance entre les bords de rectangles adjacents. Un algorithme peut rechercher diverses configurations pour minimiser la surface totale, la plus grande dimension, ou pour conférer au symbole un rapport hauteur/largeur recherché.Then comes a step of sizing and positioning the graphical representations of the nodes of the tree. The room for maneuvering this step is wide because of the commutativity of the tree and the deformability of the process. A simple and recursive way to realize this step is to represent each component by a rectangle with horizontal and vertical edges, and to reserve inside this rectangle one or two sub-rectangles to accommodate the recursively calculated representations of the nodes. This division can be done vertically or horizontally, this choice affecting the final size of the symbol if it is desired to maintain constant the distance between the edges of adjacent rectangles. A The algorithm can search for various configurations to minimize the total area, the largest dimension, or to give the symbol a desired aspect ratio.
Pour ce qui est du décodage, l'algorithme suppose de pouvoir reconnaître dans une image numérisée toutes les composantes connexes ainsi que leurs relations d'imbrication. Ceci peut s'effectuer par un balayage des pixels et en utilisant un algorithme d'Union-Find pour mettre à jour les ensembles des membres des composantes rencontrées au fur et à mesure, ce qui prend une quantité de mémoire en 0{n) mots machine et un temps en 0{n log ri) où n est le nombre de pixels, en supposant que la mémoire est adressable en temps constant. Les algorithmes à'Union-Find sont bien connus et décrit dans Introduction to Algorithms (Second Edition), Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, et Cliff Stein, MIT Press et McGraw-Hill.As far as decoding is concerned, the algorithm supposes that it is possible to recognize in a digitized image all the connected components as well as their nesting relations. This can be done by scanning the pixels and using a Union-Find algorithm to update the sets of members of the components encountered as and when, which takes a memory amount of 0 {n) words machine and a time in 0 {n log ri) where n is the number of pixels, assuming that the memory is addressable in constant time. The Union-Find algorithms are well known and described in Introduction to Algorithms (Second Edition), Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Cliff Stein, MIT Press and McGraw-Hill.
Les inventeurs ont mis en œuvre la présente invention à l'aide d'un programme écrit en langage OCaml, compilé en code natif pour une machine d'architecture x86 ; cette machine recevait des images soit en temps réel par un capteur CCD noir et blanc numérisé par une carte d'acquisition à base de Bt848, avec une résolution de 384 x 292, soit par un appareil photo numérique avec une résolution de 1600 x 1200 pixels. Un code graphique du type de celui de la figure 4 ou de la figure 5, est décodé en une durée inférieure à 130ms en 384 x 292 (resp. 2.5s en 1600 x 1200) sur un Xeon cadencé à 3.00GHz. Le temps de calcul est peu sensible au nombre de symboles présents (avec 125 copies du symboles sur une image 1600 x 1200, le temps monte à 2.75s). Il dépend essentiellement du nombre de composantes connexes. Un filtrage adéquat du bruit de fond peut permettre de grandement réduire le nombre de composantes parasites.The inventors have implemented the present invention using a program written in OCam1 language, compiled in native code for an x86 architecture machine; this machine received images either in real time by a black and white CCD sensor digitized by a Bt848-based acquisition card, with a resolution of 384 x 292, or by a digital camera with a resolution of 1600 x 1200 pixels . A graphic code of the type of that of Figure 4 or Figure 5, is decoded in less than 130ms in 384 x 292 (respectively 2.5s in 1600 x 1200) on a Xeon clocked at 3.00GHz. The calculation time is not very sensitive to the number of symbols present (with 125 copies of the symbols on an image 1600 x 1200, the time goes up to 2.75s). It depends essentially on the number of related components. Proper filtering of background noise can greatly reduce the number of spurious components.
La figure 7 montre un code graphique codant la même information que le code barres de la figure 1. Dans l'exemple de la figure 7, on a utilisé comme dans l'exemple de la figure 1 des composantes connexes alternativement noires et blanches.FIG. 7 shows a graphic code coding the same information as the bar code of FIG. 1. In the example of FIG. 7, alternating black and white connected components were used, as in the example of FIG.
Les figures 8 à 12 montrent différents exemples de codes graphiques pour l'information 777. La figure 8 montre le code graphique non déformé. Les figures 9, 10 et 11 montrent différentes déformations du code. Ces déformations pourraient résulter soit d'une déformation d'un support physique sur lequel le code est appliqué. Elles pourraient résulter de l'appareil de lecture utilisé. Ces déformations ne modifient pas la connexité par arcs des différentes composantes composant le code graphique et ne modifient donc pas la valeur de l'information codée. Le code graphique est ainsi résistant à toute déformation qui ne modifie pas la connexité des composantes; il peut notamment être décodé indépendamment d'un étirement axial. La figure 12 montre un autre code graphique pour le nombre 777. Dans l'exemple de la figure 12 comme dans celui de la figure 5, on utilise des composantes connexes qui ne présentent pas une forme déterminée et identique.Figures 8 to 12 show different examples of graphic codes for information 777. Figure 8 shows the undeformed graphic code. Figures 9, 10 and 11 show different deformations of the code. These deformations could result either from a deformation of a physical medium on which the code is applied. They could result from the reading device used. These deformations do not modify the connectivity by arcs of the different components composing the graphic code and therefore do not modify the value of the coded information. The graphic code is thus resistant to any deformation that does not modify the connectivity of the components; it can in particular be decoded independently of axial stretching. FIG. 12 shows another graphic code for the number 777. In the example of FIG. 12 as in that of FIG. 5, connected components which do not have a specific and identical shape are used.
Les figures 13 à 15 montrent un autre mode de réalisation de l'invention, dans lequel on utilise un arbre non commutatif. Ceci signifie que l'ordre des fils dans l'arbre présente une importance. Le code graphique est alors orienté et le sens de lecture des composantes connexes présente une importance.Figures 13 to 15 show another embodiment of the invention, in which a non-commutative tree is used. This means that the order of the threads in the tree is important. The graphic code is then oriented and the reading direction of the related components is important.
La figure 13 montre l'arbre correspondant au nombre 12 - en binaire 1100. Le codage est le suivant: un nœud avec un fils code pour un 1 tandis qu'un nœud avec 2 fils code pour un zéro. La figure 14 montre un exemple possible de code graphique, utilisant un arbre binaire non commutatif. Le code graphique utilise des composantes connexes rectangulaires; il est orienté pour rendre compte du caractère non commutatif de l'arbre. Dans l'exemple, les fils d'un nœud sont ordonnés par leurs positions relatives; pour des nœuds de même rang, le fils gauche vient avant le fils droit et le fils du haut avant le fils du bas. Le code de la figure 14 correspond à l'information 12, encodé suivant la formule T(w) proposée plus haut, avec w = 1100. Les chiffres de référence montrent l'ordre de lecture. L'image miroir de la marque de la figure 14 ne code donc pas la même information.Figure 13 shows the tree corresponding to the number 12 - in binary 1100. The coding is as follows: a node with a son codes for a 1 while a node with 2 sons codes for a zero. Figure 14 shows a possible example of a graphic code, using a noncommutative binary tree. The graphic code uses rectangular connected components; it is oriented to account for the noncommutative nature of the tree. In the example, the threads of a node are ordered by their relative positions; for nodes of the same rank, the left son comes before the right son and the son of the top before the son of the bottom. The code of FIG. 14 corresponds to the information item 12, encoded according to the formula T (w) proposed above, with w = 1100. The reference numbers show the reading order. The mirror image of the mark of FIG. 14 does not therefore code the same information.
Pour un arbre non commutatif, le décodage implique donc lors de la recherche des composantes connexes, de balayer l'arbre dans un sens donné. Le code reste résistant à des déformations uniaxiales; des déformations peuvent toutefois conduire à des difficultés si l'ordre de lecture importe. L'avantage de ce code est de présenter une densité d'information plus élevée, au prix d'une plus grande difficulté si l'on souhaite faire épouser au code une forme reconnaissable par un humain, similaire à celle de la figure 5.For a noncommutative tree, the decoding therefore implies, when searching for related components, to scan the tree in a given direction. The code remains resistant to uniaxial deformations; deformations can, however, lead to difficulties if the reading order is important. The advantage of this code is to present a higher density of information, at the cost of greater difficulty if it is desired to marry the code form recognizable by a human, similar to that of Figure 5.
La figure 15 montre un autre exemple de code graphique. Dans l'exemple de la figure 15, l'ordre des composantes connexes est donné par l'angle des bords avec l'horizontale ou la verticale. Autrement dit, lorsqu'une composante connexe contient deux composantes connexes, comme par exemple la composante 1 et ses deux fils 2 et 3, il convient de considérer d'abord la composante connexe dont les bords sont parallèles aux axes. Bien entendu, il ne s'agit que d'une convention de lecture, et on pourrait utiliser d'autres conventions permettant de différencier deux composantes connexes voisines, comme par exemple l'épaisseur des traits ou des couleurs plus ou moins foncées. Par rapport à l'exemple de la figure 14, l'exemple de la figure 15 implique uniquement de comparer localement deux composantes connexes et ne nécessite pas d'orienter le code graphique.Figure 15 shows another example of graphical code. In the example of Figure 15, the order of the connected components is given by the angle of the edges with the horizontal or the vertical. In other words, when a connected component contains two connected components, such as the component 1 and its two wires 2 and 3, it is first necessary to consider the connected component whose edges are parallel to the axes. Of course, it is only a reading convention, and one could use other conventions to differentiate two neighboring connected components, such as the thickness of the lines or more or less dark colors. Compared with the example of FIG. 14, the example of FIG. 15 only involves locally comparing two connected components and does not require orienting the graphic code.
Le code des figures 13 à 15 est résistant aux déformations, comme celui des figures 2 à 12. Les explications données en référence aux figures 2 et 6 sont fournies uniquement pour faciliter la compréhension de l'invention. En pratique, il est possible d'utiliser un algorithme de transformation du code graphique en un arbre, qui fonctionne en une seule passe et qui permet directement de trouver l'arbre correspondant au code graphique, comme celui proposé plus haut.The code of FIGS. 13 to 15 is resistant to deformations, like that of FIGS. 2 to 12. The explanations given with reference to Figures 2 and 6 are provided solely to facilitate the understanding of the invention. In practice, it is possible to use a graphical code transformation algorithm into a tree, which operates in a single pass and which makes it possible to directly find the tree corresponding to the graphic code, such as the one proposed above.
Le code graphique de l'invention, dont des modes de réalisation sont représentés aux figures 4, 5, 7 à 12, 14 et 15, est avantageusement combiné à la valeur codée, comme représenté aux figures 7 et 8. La valeur codée peut être écrite sous une forme lisible par l'homme, par exemple sous le code graphique. Ceci permet d'une part une lecture de la combinaison par un appareil automatique et d'autre part une lecture de la combinaison par un opérateur humain. Le code graphique peut aussi simplement être appliqué sur un support quelconque, pour permettre une reconnaissance par un appareil du genre de celui décrit en référence à la figure 16. Le support peut être une étiquette, un film plastique, ou encore un produit lui-même. Les codes graphiques de l'invention peuvent être caractérisés par différents paramètres :The graphic code of the invention, of which embodiments are shown in FIGS. 4, 5, 7 to 12, 14 and 15, is advantageously combined with the coded value, as represented in FIGS. 7 and 8. The coded value can be written in human readable form, for example under the graphic code. This allows on the one hand a reading of the combination by an automatic device and on the other hand a reading of the combination by a human operator. The graphic code may also simply be applied to any support, to allow recognition by a device of the type described with reference to FIG. 16. The support may be a label, a plastic film, or even a product itself. . The graphic codes of the invention can be characterized by various parameters:
- la profondeur de l'arbre associé au code;- the depth of the tree associated with the code;
- le nombre de nœuds de l'arbre associé au code;the number of nodes of the tree associated with the code;
- le caractère équilibré de l'arbre, représenté par exemple par le rapport entre le nombre de nœuds et une fonction exponentielle de sa hauteur; - la surface occupée par la marque graphique, compte tenu de l'épaisseur du trait;the balanced nature of the tree, represented for example by the ratio between the number of nodes and an exponential function of its height; - the area occupied by the graphic mark, given the thickness of the line;
- la densité d'information, c'est-à-dire le rapport entre la quantité d'information codée et le rapport de la surface de la marque graphique et le carré de l'épaisseur de trait.the information density, that is to say the ratio between the amount of coded information and the ratio of the area of the graphic mark and the square of the line thickness.
La profondeur de l'arbre est typiquement supérieure ou égale à cinq pour le codage d'informations usuelles.The depth of the tree is typically greater than or equal to five for the coding of usual information.
Le nombre de nœuds est typiquement supérieur à 10 pour le codage d'informations usuelles.The number of nodes is typically greater than 10 for the coding of usual information.
Le caractère équilibré de l'arbre s'apprécie par le rapport entre le nombre de nœuds et une fonction exponentielle de la hauteur de l'arbre. Par exemple, pour un arbre binaire, on considère le rapport N/2h, avec N le nombre de nœuds et h la hauteur de l'arbre. Ce rapport tend vers 1 pour un arbre binaire complet; il tend vers zéro pour un ensemble de cercles concentriques. Un codage avec les procédés décrits plus haut fournit des valeurs asymptotiquement supérieures à 0,1. Pour un arbre p-aire, on remplace le chiffre 2 par le nombre p dans cette formule; on retrouve le nombre p en considérant l'arité maximale des nœuds de l'arbre, c'est-à-dire le nombre maximal de fils d'un nœud donné. On peut aussi considérer au lieu du chiffre 2 la valeur max(2, p), qui traite aussi des cas particuliers, tels les cercles concentriques. Un code pourrait alors être caractérisé par l'inégalité suivante:The balanced character of the tree is appreciated by the ratio between the number of nodes and an exponential function of the height of the tree. For example, for a binary tree, consider the ratio N / 2 h , with N the number of nodes and h the height of the tree. This ratio tends to 1 for a complete binary tree; it tends to zero for a set of concentric circles. Coding with the methods described above provides values asymptotically greater than 0.1. For a p-ary tree, the number 2 is replaced by the number p in this formula; we find the number p by considering the maximum arity of the nodes of the tree, that is to say the maximum number of threads of a given node. Can also consider instead of the numeral 2 the value max (2, p), which also deals with particular cases, such as concentric circles. A code could then be characterized by the following inequality:
N max(2,/?)Λ ~ avec les définitions ci-dessus. Ces trois caractéristiques sont représentatives de l'arbre utilisé dans le codage ou le décodage. Les caractéristiques suivantes concernent la marque graphique et sont représentatives du fait que l'on cherche dans la majorité des applications un codage aussi compact ou dense que possible - ce qui bien sûr n'est pas le cas sur la figure 5.N max (2, /?) Λ ~ with the definitions above. These three characteristics are representative of the tree used in the coding or the decoding. The following characteristics relate to the graphic mark and are representative of the fact that in the majority of applications a coding as compact or dense as possible is sought - which of course is not the case in FIG.
La surface occupée par la marque graphique, compte tenu de l'épaisseur du trait peut être évaluée par le diamètre du plus grand disque d'une couleur homogène ou par la distance entre des composantes connexes adjacentes. Ce diamètre ou cette distance est, dans les exemples des figures 4, 7 et 8, de l'ordre de l'épaisseur du trait; ceci revient à éviter dans la marque des espaces vides. On peut par exemple imposer que le diamètre ou la distance soit inférieur ou égal à quatre, voire deux, fois l'épaisseur de trait utilisée pour écrire la marque. La densité d'information s'apprécie comme le rapport entre la quantité d'information codée, typiquement mesurée en bits et le rapport de la surface de la marque graphique et le carré de l'épaisseur de trait. Dans l'exemple de la figure 4, on code une information sur quatre bits, dans une marque graphique sensiblement carrée avec un côté d'environ 14 épaisseurs de trait. La densité est de 1/50. Sur la figure 7, la marque a une taille d'environ 80 x 40 épaisseurs de trait, alors que l'information codée est d'une longueur de 40 bits; ceci conduit à une densité de l'ordre de 1,25%. Typiquement, la densité d'une marque graphique est supérieure à 0,5%.The area occupied by the graphic mark, given the thickness of the line, can be evaluated by the diameter of the largest disk of a homogeneous color or by the distance between adjacent connected components. This diameter or this distance is, in the examples of FIGS. 4, 7 and 8, of the order of the thickness of the line; this amounts to avoiding gaps in the mark. For example, the diameter or the distance may be less than or equal to four or even two times the line thickness used to write the mark. The density of information is assessed as the ratio between the amount of coded information, typically measured in bits, and the ratio of the area of the graphical mark to the square of the line weight. In the example of FIG. 4, four-bit information is coded in a substantially square graphic mark with a side of about 14 line thicknesses. The density is 1/50. In Figure 7, the mark has a size of about 80 x 40 line thicknesses, while the coded information is 40 bits long; this leads to a density of the order of 1.25%. Typically, the density of a graphic mark is greater than 0.5%.
Pour caractériser un code, on peut utiliser l'un de ces critères, ou une combinaison d'un nombre quelconque de ces critères.To characterize a code, one of these criteria can be used, or a combination of any number of these criteria.
L'invention concerne aussi dans un autre mode de réalisation, un appareil décodeur. Un exemple d'un tel appareil est représenté dans la vue schématique de la figure 16. Dans l'exemple de la figure 16 est représenté un support 160, avec deux codes graphiques selon l'invention. Sur le support 160 est aussi représenté un repère; ce repère est symbolique du calcul de la position des deux codes graphiques, comme expliqué ci-dessous.The invention also relates in another embodiment, a decoder apparatus. An example of such an apparatus is shown in the schematic view of FIG. 16. In the example of FIG. 16 is shown a support 160, with two graphic codes according to the invention. On the support 160 is also shown a reference; this mark is symbolic of the calculation of the position of the two graphic codes, as explained below.
L'appareil comprend une partie d'acquisition de l'image du code graphique, du genre décrit en référence à l'étape 112 plus haut. Cette partie d'acquisition fournit une image du support 160 et des codes graphiques à une partie de traitement 163. Cette partie d'acquisition comprend typiquement un capteur d'image 161, suivi d'un convertisseur analogique / numérique 162; bien entendu, le convertisseur peut être intégré au capteur d'image. La partie de traitement 163 est adaptée à décoder l'image reçue et fournit en sortie, par exemple vers un afficheur 164 ou sur un port la valeur de l'information codée dans l'image. La partie 163 peut comprendre un microprocesseur classique, un circuit programmable ou d'autres moyens logiques adaptés à la mise en œuvre automatique du procédé de décodage. On peut aussi utiliser une logique câblée, comme indiqué sur la figure 16 par la mention d'un décodeur logiciel ou câblé. On peut prévoir si nécessaire une ou plusieurs mémoires de stockage.The apparatus comprises an image acquisition part of the graphic code, of the kind described with reference to step 112 above. This acquisition part provides an image of the medium 160 and the graphic codes to a processing part 163. This acquisition part typically comprises an image sensor 161, followed by an analog / digital converter 162; of course, the converter can be integrated with the image sensor. The processing part 163 is adapted to decode the received image and outputs, for example to a display 164 or to a port the value of the information coded in the image. The portion 163 may comprise a conventional microprocessor, a programmable circuit or other logic means adapted to the automatic implementation of the decoding method. It is also possible to use wired logic, as indicated in FIG. 16 by the mention of a software or wired decoder. If necessary, one or more storage memories can be provided.
Dans l'exemple de la figure 16, le support 160 comprend deux codes. La partie de traitement 163 est adaptée à reconnaître la présence des deux codes; en outre, elle est adaptée à fournir une indication de la position des deux codes; dans l'exemple, cette position est indiquée par rapport au repère cartésien représenté sur la figure. La référence 164 montre donc l'affichage des valeurs des deux codes ainsi que des positions de ces codes dans le repère choisi. Dans l'exemple, le repère est un repère cartésien, compte tenu de la forme rectangulaire de l'image acquise; on peut utiliser d'autres types de repères en fonction de la partie d'acquisition. L'invention n'est pas limitée aux exemples proposés plus haut. Ainsi, dans les exemples, on a utilisé uniquement deux couleurs pour les composantes connexes. On pourrait aussi utiliser plus de deux couleurs, ce qui permet d'augmenter l'information à chaque niveau de l'arbre. Par exemple, avec trois couleurs (blanc, gris et noir), il y a deux choix pour la couleur de chaque composante, ce qui permet d'encoder un bit supplémentaire par noeud. On pourrait utiliser aussi une couleur unique pour le codage, c'est-à-dire n'attacher du sens qu'aux composantes connexes de cette couleur; ceci présente l'inconvénient d'augmenter la taille de la marque, sans pour autant la rendre plus facilement déchiffrable.In the example of FIG. 16, the support 160 comprises two codes. The processing portion 163 is adapted to recognize the presence of both codes; in addition, it is adapted to provide an indication of the position of the two codes; in the example, this position is indicated relative to the Cartesian coordinate system represented in the figure. The reference 164 thus shows the display of the values of the two codes as well as the positions of these codes in the chosen reference. In the example, the landmark is a Cartesian landmark, given the rectangular shape of the acquired image; other types of markers may be used depending on the acquisition part. The invention is not limited to the examples proposed above. Thus, in the examples, only two colors were used for the related components. We could also use more than two colors, which increases the information at each level of the tree. For example, with three colors (white, gray and black), there are two choices for the color of each component, which allows to encode an additional bit per node. One could also use a single color for coding, meaning to attach meaning only to the related components of that color; this has the disadvantage of increasing the size of the mark, without making it more easily decipherable.
Dans les exemples proposés plus haut, on a utilisé des arbres binaires; dans l'arbre, chaque nœud présente zéro, un ou deux fils; chaque composante connexe contient donc zéro, une ou deux composantes connexes. On pourrait aussi utiliser des arbres plus complexes, par exemple des arbres ternaires ou (N-aires) dans lesquels les nœuds peuvent présenter jusqu'à trois fils (ou N fils). Dans ce cas, les composantes connexes du code graphique pourraient contenir jusqu'à trois (ou N fils). Cette solution permet d'augmenter la compacité du code graphique, sans rendre le décodage plus complexe. On a utilisé plus haut le mot "tracer" pour indiquer la création d'une composante connexe dans la marque; le tracé peut consister en une écriture physique de la composante connexe sur un support; dans ce cas, l'action de tracer n'est pas nécessairement mise en œuvre à chaque itération de l'étape 18, dans la mesure où on peut se dispenser de "tracer" des composantes connexes blanches. On peut aussi "tracer" dans une mémoire les différentes composantes connexes, pour ensuite procéder à une écriture physique de l'ensemble de la marque. Dans ce cas, l'action de "tracer" revient à affecter des valeurs à des pixels d'une image.In the examples proposed above, binary trees were used; in the tree, each node has zero, one or two sons; each connected component therefore contains zero, one or two related components. One could also use more complex trees, for example ternary trees or (N-areas) in which the nodes can present up to three son (or N son). In this case, the related components of the graphic code could contain up to three (or N threads). This solution makes it possible to increase the compactness of the graphic code, without making the decoding more complex. The word "trace" has been used above to indicate the creation of a related component in the mark; the plot may consist of a physical writing of the connected component on a support; in this case, the tracing action is not necessarily implemented at each iteration of step 18, since it is possible to dispense with "tracing" white connected components. We can also "draw" in a memory the different related components, then proceed to a physical writing of the entire brand. In this case, the action of "plotting" amounts to assigning values to pixels of an image.
Pour cette écriture de la marque, on peut utiliser toutes les technologies connues, en fonction du support utilisé pour le code graphique et en fonction du dispositif de lecture envisagé. Pour la lecture, on peut aussi utiliser toutes les technologies disponibles; le terme de "couleur" doit donc être compris en référence à la technologie utilisée pour la lecture; par exemple, une technologie de lecture ultraviolette utilise une "couleur", même si l'ultraviolet n'est pas à proprement parler une couleur. Une technologie de "lecture" tactile utiliserait comme "couleur" des différences d'état de surface. Comme dans les codes de l'état de la technique, on peut prévoir des codes correcteurs d'erreurs et de la redondance pour rendre le codage graphique plus résistant. On peut aussi faciliter l'acquisition du code par des marques de référence, notamment dans le cas d'une orientation du code graphique.For this writing of the mark, it is possible to use all the known technologies, depending on the medium used for the graphic code and on the reading device envisaged. For reading, one can also use all available technologies; the term "color" must therefore be understood with reference to the technology used for reading; for example, an ultraviolet reading technology uses a "color", even though the ultraviolet is not strictly speaking a color. A tactile "read" technology would use as "color" differences in surface condition. As in the codes of the state of the art, error-correcting codes and redundancy can be provided to make the graphic coding more resistant. It is also possible to facilitate the acquisition of the code by reference marks, especially in the case of an orientation of the graphic code.
On a décrit en références aux figures le codage d'un mot. On peut juxtaposer différents mots pour coder une information comprenant plusieurs mots. The coding of a word has been described with reference to the figures. Different words can be juxtaposed to encode information comprising several words.

Claims

REVENDICATIONS
1. Un procédé de codage d'une information sous forme d'une marque graphique présentant une pluralité de composantes connexes, comprenant: - une étape de transformation de l'information à coder en un arbre;A method of encoding information in the form of a graphical mark having a plurality of related components, comprising: a step of transforming the information to be encoded into a tree;
- une étape de transformation de l'arbre en une marque graphique, dans laquelle un nœud de l'arbre est codé par une composante connexe de la marque graphique comprenant autant de composantes connexes intérieures que le nœud présente de fils.a step of transforming the tree into a graphic mark, in which a node of the tree is encoded by a connected component of the graphic mark comprising as many internal connected components as the present node of son.
2. Le procédé de la revendication 1, caractérisé en ce que l'arbre est un arbre commutatif.2. The method of claim 1, characterized in that the tree is a commutative tree.
3. Le procédé de la revendication 1 , caractérisé en ce que l'arbre est un arbre non commutatif.3. The method of claim 1, characterized in that the tree is a non-commutative tree.
4. Le procédé de la revendication 1, 2 ou 3, dans lequel l'arbre est un arbre binaire.The method of claim 1, 2 or 3, wherein the tree is a binary tree.
5. Le procédé de l'une des revendications 1 à 4, dans lequel les composantes connexes présentent au moins deux couleurs, et dans lequel un nœud de l'arbre est codé par une composante connexe de la marque graphique présentant une première couleur et comprenant autant de composantes connexes intérieures d'une deuxième couleur que le nœud présente de fils.The method of one of claims 1 to 4, wherein the connected components have at least two colors, and wherein a node of the tree is encoded by a connected component of the graphic mark having a first color and comprising as many internal connected components of a second color as the node has son.
6. Un procédé de décodage d'une marque graphique présentant une pluralité de composantes connexes en une information, comprenant:A method of decoding a graphical mark having a plurality of related components into an information, comprising:
- une étape de transformation de la marque graphique en un arbre, dans lequel un nœud de l'arbre correspond à une composante connexe de la marque graphique le nœud présentant autant de fils que la composante connexe correspondante présente de composantes connexes intérieures;a step of transforming the graphic mark into a tree, in which a node of the tree corresponds to a connected component of the graphic mark the node having as many threads as the corresponding connected component has internal connected components;
- une étape de transformation de l'arbre en l'information.a step of transforming the tree into information.
7. Le procédé de la revendication 6, caractérisé en ce que l'arbre est un arbre commutatif.7. The method of claim 6, characterized in that the tree is a commutative tree.
8. Le procédé de la revendication 6, caractérisé en ce que l'arbre est un arbre non commutatif.8. The method of claim 6, characterized in that the tree is a non-commutative tree.
9. Le procédé de la revendication 6, 7 ou 8, dans lequel l'arbre est un arbre binaire. The method of claim 6, 7 or 8, wherein the tree is a binary tree.
10. Le procédé de l'une des revendications 6 à 9, dans lequel les composantes connexes présentent au moins deux couleurs, et dans lequel un nœud de l'arbre correspondant à une composante connexe de la marque graphique présentant une première couleur présente autant de fils que la composant connexe comprend de composantes connexes intérieures d'une deuxième couleur.The method of one of claims 6 to 9, wherein the connected components have at least two colors, and wherein a node of the tree corresponding to a connected component of the graphic mark having a first color has as many son that the related component comprises internal connected components of a second color.
11. Un support présentant une marque graphique susceptible d'être décodée suivant le procédé de l'une des revendications 6 à 10.11. A support having a graphic mark capable of being decoded according to the method of one of claims 6 to 10.
12. Un support présentant une marque graphique obtenue par le procédé de codage de l'une des revendications 1 à 5.12. A support having a graphic mark obtained by the coding method of one of claims 1 to 5.
13. Le support de la revendication 11 ou 12, présentant en outre une indication de la valeur de l'information décodée ou codée suivant ledit procédé.13. The medium of claim 11 or 12, further having an indication of the value of the information decoded or encoded according to said method.
14. Le support de la combinaison de la revendication 11, 12 ou 13, dans laquelle une composante connexe de la marque graphique présente une forme rectangulaire.14. The support of the combination of claim 11, 12 or 13, wherein a connected component of the graphic mark has a rectangular shape.
15. Le support de l'une des revendications 11 à 14, dans lequel l'arbre correspondant à la marque dans le codage ou le décodage présente une hauteur supérieure ou égale à 5.15. The medium of one of claims 11 to 14, wherein the tree corresponding to the mark in the coding or decoding has a height greater than or equal to 5.
16. Le support de l'une des revendications 11 à 15, dans lequel l'arbre correspondant à la marque dans le codage ou le décodage présente un nombre de nœuds supérieur à 10.16. The medium of one of claims 11 to 15, wherein the tree corresponding to the mark in the coding or decoding has a number of nodes greater than 10.
17. Le support de l'une des revendications 11 à 16, dans lequel l'arbre correspondant à la marque dans le codage ou le décodage satisfait j! ,Λ ≥0,1 max\2,p) avec N le nombre de nœuds, p l'arité maximale des nœuds de l'arbre et h Ia hauteur de l'arbre.17. The medium of one of claims 11 to 16, wherein the tree corresponding to the mark in the encoding or decoding satisfies! , Λ ≥0,1 max \ 2, p) where N is the number of nodes, p is the maximum arity of the nodes of the tree and h is the height of the tree.
18. Le support de l'une des revendications 11 à 17, dans lequel le diamètre du plus grand disque de couleur homogène dans la marque est inférieur ou égal à quatre fois l'épaisseur de trait utilisée pour écrire la marque. 18. The support of one of claims 11 to 17, wherein the diameter of the largest homogeneous color disc in the mark is less than or equal to four times the line thickness used to write the mark.
19. Le support de l'une des revendications 11 à 18, dans lequel la densité, exprimée par le rapport entre19. The medium of one of claims 11 to 18, wherein the density, expressed by the ratio between
- la quantité d'information codée, mesurée en bits etthe quantity of coded information, measured in bits and
- le rapport de la surface de la marque graphique et le carré de l'épaisseur de trait est supérieure à 0,5%.the ratio of the area of the graphic mark and the square of the line thickness is greater than 0.5%.
20. Un appareil décodeur, comprenant :20. A decoder apparatus, comprising:
- une partie d'acquisition (161, 162) adaptée à fournir une image d'un code graphique;an acquisition part (161, 162) adapted to provide an image of a graphic code;
- une partie de traitement (162, 163) pouvant être réalisée par logiciel ou câblée et adaptée à recevoir l'image fournie par la partie d'acquisition et à décoder l'image reçue (160) pour fournir la valeur de l'information codée dans le code graphique.a processing part (162, 163) that can be implemented by software or cable and adapted to receive the image supplied by the acquisition part and to decode the received image (160) to provide the value of the coded information in the graphic code.
21. L'appareil de la revendication 20, dans lequel la partie de traitement est adaptée à fournir une indication de la position d'un code graphique dans l'image reçue.The apparatus of claim 20, wherein the processing portion is adapted to provide an indication of the position of a graphic code in the received image.
22. Un programme d'ordinateur sur un support lisible par ordinateur et contenant du code adapté à exécuter sur un ordinateur toutes les étapes du procédé de codage de l'une des revendications 1 à 5.22. A computer program on a computer readable medium containing code adapted to execute on a computer all the steps of the coding method of one of claims 1 to 5.
23. Un programme d'ordinateur sur un support lisible par ordinateur et contenant du code adapté à exécuter sur un ordinateur toutes les étapes du procédé de décodage de l'une des revendications 6 à 10. 23. A computer program on a computer-readable medium containing code suitable for executing on a computer all the steps of the decoding method of one of claims 6 to 10.
PCT/FR2005/003013 2005-12-02 2005-12-02 Method of coding in graphic form WO2007063195A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/FR2005/003013 WO2007063195A1 (en) 2005-12-02 2005-12-02 Method of coding in graphic form

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/FR2005/003013 WO2007063195A1 (en) 2005-12-02 2005-12-02 Method of coding in graphic form

Publications (1)

Publication Number Publication Date
WO2007063195A1 true WO2007063195A1 (en) 2007-06-07

Family

ID=36865880

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2005/003013 WO2007063195A1 (en) 2005-12-02 2005-12-02 Method of coding in graphic form

Country Status (1)

Country Link
WO (1) WO2007063195A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015121651A1 (en) * 2014-02-13 2015-08-20 Soul Purpose Limited A method and apparatus for encoding and decoding digital data in an image

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5260556A (en) * 1988-12-20 1993-11-09 Australian Meat & Live-Stock Research & Development Corp. Optically readable coded target
US6360948B1 (en) * 1998-11-27 2002-03-26 Denso Corporation Method of reading two-dimensional code and storage medium thereof
US20020075261A1 (en) * 2000-12-18 2002-06-20 Ibm Corporation Tightened bounding volumes for BSP-trees
US6478232B1 (en) * 2001-06-12 2002-11-12 Frank Dowling Compact optically readable data encoding

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5260556A (en) * 1988-12-20 1993-11-09 Australian Meat & Live-Stock Research & Development Corp. Optically readable coded target
US6360948B1 (en) * 1998-11-27 2002-03-26 Denso Corporation Method of reading two-dimensional code and storage medium thereof
US20020075261A1 (en) * 2000-12-18 2002-06-20 Ibm Corporation Tightened bounding volumes for BSP-trees
US6478232B1 (en) * 2001-06-12 2002-11-12 Frank Dowling Compact optically readable data encoding

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015121651A1 (en) * 2014-02-13 2015-08-20 Soul Purpose Limited A method and apparatus for encoding and decoding digital data in an image

Similar Documents

Publication Publication Date Title
EP0720125B1 (en) Image forming apparatus and method for correcting optical geometrical distortions in an image
EP0315515B1 (en) Method for optically reading bar-codes
Cornelis et al. Crack detection and inpainting for virtual restoration of paintings: The case of the Ghent Altarpiece
FR2635208A1 (en) ARTICLE, IN PARTICULAR LABEL, HAVING INFORMATION CODED BY POLYGONES, AND METHOD AND SYSTEM FOR CODING AND READING THIS ARTICLE
FR2631182A1 (en) DYNAMICALLY VARIABLE BINARY CODE READABLE BY A MACHINE AND METHOD FOR READING AND PRODUCTION THEREOF
EP2084648A1 (en) Methods and devices for authenticating a product and a two-dimensional code and novel application of a two-dimensional code
BE1022636B1 (en) METHOD AND METHOD OF CORRECTING PROJECTIVE DISTORTIONS WITH MULTIPLE LEVEL ELIMINATION STEPS
WO2008145859A2 (en) Card-counting device
FR3009518A1 (en)
CA2908210C (en) Identification process for a sign on a deformed image
FR2853792A1 (en) Digital video sequence tattooing process, involves selecting optimal tattooed displacement vector, based on preset criteria, such that modified coordinates of displacement vector are coordinates of optimal vector
EP2724322B1 (en) Method and apparatus of authenticating a label
JP4619032B2 (en) Information recording method and apparatus, and multilayer code
FR2544939A1 (en) SYSTEM AND METHOD FOR REPROJECTING IMAGES ACQUIRED BY RETROPROJECTION IN TOMODENSITOGRAPHY
FR3019338A1 (en) SYSTEM AND METHOD FOR PROCESSING DATA
WO2007063195A1 (en) Method of coding in graphic form
EP4143733A1 (en) Method for verifying a barcode
FR2638263A1 (en) APPARATUS FOR CONVERTING IMAGE CONTOUR DATA INTO REPRESENTATIVE POINT DATA OF POINTS TO BE FORMED
FR3044795A1 (en) METHODS OF PRODUCING AND CUSTOMIZING CONSUMER CONSUMER ITEMS FOR ACCESS TO PERSONALIZED CONTENT
FR2979160A1 (en) OPTICAL READING CODE PREPARATION DEVICE
EP3328655B1 (en) Device and method for optimising the digital transformation of a substrate
EP3362947B1 (en) Method for making a 2d barcode secure
FR2697930A1 (en) Method for producing a synthesized reference image for inspecting objects
CN111524072B (en) Super-resolution reconstruction network training method and device, electronic equipment and storage medium
EP2737452A1 (en) Method for encoding an image after resizing by deleting pixels

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 05824634

Country of ref document: EP

Kind code of ref document: A1