Product with a surface that can be captured in a rectifiable image, method, system and program for carrying out image rectification, method for producing the surface and computer-readable medium
A support surface with translated copies of a two-dimensional visual object and a phase autocorrelation-based rectification method addresses the inflexibility and vulnerability of existing image rectification, ensuring effective and tamper-resistant image rectification on non-flat surfaces.
Patent Information
- Application Number
- PCT/EP2025/057701
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-03-20
- Filing Date
- 2025-03-20
- Publication Date
- 2025-09-25
AI Technical Summary
Existing image rectification methods for QR codes and similar two-dimensional visual objects are inflexible and prone to deliberate or accidental damage, especially when subjected to changes in orientation, dimension, or perspective, making them vulnerable for anti-counterfeiting applications.
A support surface with an overlay comprising first, second, and third copies of a two-dimensional visual object, where each copy is translated by a different vector, allowing for phase autocorrelation to rectify images, and a rectification method involving phase autocorrelation, correlation vector identification, and transformation application to achieve image straightening.
The method provides enhanced flexibility and resilience against damage, enabling effective image rectification even on non-flat surfaces, while concealing the visual object's coded or encrypted information, making it difficult to tamper with anti-counterfeiting codes.
Smart Images

Figure EP2025057701_25092025_PF_FP_ABST
Abstract
Description
[0001] PRODUCT WITH A CAPTURABLE SURFACE IN A RIGHTENABLE IMAGE, METHOD, SYSTEM AND PROGRAM FOR IMAGE RIGHTENING, PRODUCTION METHOD
[0002] SURFACE AND SUPPORT CAPABLE OF BEING READABLE BY A COMPUTER
[0003] TECHNICAL FIELD OF THE INVENTION
[0004] The invention relates to a support surface, a rectification method for obtaining a rectified image of the support surface, a method, a system and a program for producing a support surface which can be captured into a rectifiable image, and a medium capable of being read by a computer.
[0005] For example, the invention can be applied to the rectification of an image of a support surface bearing an anti-counterfeiting code and / or containing other information.
[0006] STATE OF THE ART
[0007] Known in English as a "QR code" (registered trademark) for "Quick Response Code", a QR code is intended to be photographed digitally. A QR code in an image obtained by photography must be recognizable despite an orientation, a change in dimensions and / or a perspective effect resulting from the shooting conditions during the photograph.
[0008] It is known to straighten an image of a QR code in order to extract information from it. For this straightening, a QR code includes three positioning elements, each of which is composed of a black square and a white square centered in this black square. These three positioning elements, also called landmarks, are distributed at three of the four corners of the QR code. The QR code also contains information that is encoded in a completely filled space, located between the positioning elements.
[0009] From the above it is clear that the spatial format of a QR code is rigidly defined. Therefore, there is room for improvement in image straightening.
[0010] SUMMARY OF THE INVENTION
[0011] A product comprises a support surface carrying an overlay in which at least first, second and third copies of a two-dimensional visual object are combined such that the second copy is a translation of the first copy according to a first predetermined translation vector and the third copy is a translation of the first copy according to a second predetermined translation vector having a direction and / or a norm different from the first predetermined translation vector.
[0012] By means of the superposition comprising the first, second and third copies of the two-dimensional visual object, an image of the supporting surface can be rectified by means of a particular rectification method.
[0013] This rectification method comprises at least steps in which: a) obtaining at least one first image such that this first image comprises at least a part of the superposition, b) producing at least one phase autocorrelation of the first image, c) in said at least one phase autocorrelation, identifying at least two correlation vectors as each corresponding to the phase correlation between two of the first, second and third copies, d) determining a transformation or an approximation of this transformation which transforms a tuple composed from the correlation vectors into a tuple composed from at least two known reference vectors for the superposition, and e) applying the transformation or the approximation to at least a part of the first image.
[0014] STATEMENT OF THE INVENTION
[0015] The present invention aims to remedy all or part of the drawbacks of the prior art. In particular, the invention aims at least to offer more freedom to design a means provided on a support surface to allow rectification of an image of this surface.
[0016] According to a first aspect, the present invention relates to a product, which comprises a support surface carrying an overlay in which at least first, second and third copies of a two-dimensional visual object are combined in such a way that the second copy is a translation of the first copy according to a first predetermined translation vector and that the third copy is a translation of the first copy according to a second predetermined translation vector having a direction and / or a norm different from the first predetermined translation vector.
[0017] The support surface of the product defined above can be captured by photography in an image which, thanks to the superposition, can be straightened by means of a straightening process defined below.
[0018] The superposition forms a means provided on a surface to enable the straightening of an image of this surface. The invention offers more freedom to design a means provided on a support surface to enable the straightening of an image of this surface. In particular, the two-dimensional visual object at the base of the superposition can have a very large, even infinite, number of different shapes.
[0019] For example, the two-dimensional visual object comprises a scattering of discrete locations within the supporting surface.
[0020] For example, the two-dimensional visual object comprises an encryption of a message according to a graphic encryption. The invention offers a great freedom of choice concerning this graphic encryption.
[0021] For example, the two-dimensional visual object comprises a coding of a message according to a graphic coding. The invention offers a great freedom of choice concerning this graphic coding. Thanks to these arrangements, the superposition is barely or practically not visible to an average human being. This is particularly interesting when the two-dimensional visual object comprises a coding of information according to a graphic coding and / or an encryption of information according to a graphic encryption. Indeed, the coded or encrypted information is then difficult to recognize as being coded or encrypted information, to locate and / or to deliberately damage. This is all the more interesting when the coded or encrypted information includes an anti-counterfeiting function. Conversely, QR codes are easily recognizable.For example, counterfeits with QR codes are known to have been damaged in such a way that it is impossible to verify whether or not they contain authentication information as they should to perform an anti-counterfeiting function. In such cases, the damage may be carried out by counterfeiters in such a way as to appear accidental when it is actually deliberate.
[0022] For example, the two-dimensional visual object includes an element that is meaningful to a human being and that, for example, is chosen from a symbol, a trademark, a character of a script and / or a representation of, for example, a landscape, a living being, a natural object or a manufactured product.
[0023] The product defined above may incorporate one or more other advantageous characteristics, alone or in combination, in particular among those defined below.
[0024] In embodiments, the support surface comprises a background, the overlay comprising at least one shade making at least a portion of at least one of the first, second and third examples discernible relative to the background.
[0025] In embodiments, of the first, second, and third copies, at least the first copy and the second copy overlap one another in the product.
[0026] This makes it possible to arrange the first and second copies on a small surface area. It also makes it difficult, if not impossible, to deliberately damage the first copy without damaging the second copy.
[0027] In embodiments, the two-dimensional visual object comprises a scattering of discrete locations within the support surface.
[0028] This way, a small size can be given to discreet locations, which helps make the overlay barely or practically invisible to an average human being.
[0029] Where the two-dimensional visual object comprises a scattering of discrete locations within the support surface and, of the first, second and third copies, at least the first copy and the second copy overlap one another, it is further possible to use only a small fraction of the overlap to perform image rectification by means of the rectification method defined below.
[0030] When the two-dimensional visual object comprises a scattering of discrete locations within the support surface, a portion of the discrete locations may together include coded and / or encrypted information, such as an anti-counterfeiting code. For example, the discrete locations may be grouped into two sets, namely a first set of discrete locations encoding or encrypting information and a second set of discrete locations arranged relative to each other so as to include no information. In this way, the coded or encrypted information may be concealed within the scattering of discrete locations. A third party not knowing how the first and second sets are arranged relative to each other does not know which portion of the scattering of discrete locations must be damaged in order to render the coded or encrypted information inaccessible.This is of great interest when the coded and / or encrypted information is an anti-counterfeiting code.
[0031] In embodiments, the support surface of the product carries a predetermined key for verifying whether or not a processing of an image taken by photography of at least a portion of the support surface is a rectification of this image taken by photography, at least a portion of the key being part of at least one of the first, second and third copies or being distinct from the first, second and third copies.
[0032] According to a second aspect, the present invention relates to a computer-implemented rectification method for obtaining a rectified image of a support surface of a product as defined above, the rectification method comprising the following steps: a) obtaining at least a first image of at least a portion of the support surface so that this first image comprises at least a portion of the superposition, b) producing at least one phase autocorrelation of the first image, c) in said at least one phase autocorrelation, identifying at least two correlation vectors as each corresponding to the phase correlation between two of the first, second and third copies, d) determining a transformation or an approximation of this transformation which transforms a tuple composed from the correlation vectors into a tuple composed from at least two known reference vectors for the superposition,and e) applying the transformation or approximation to at least a portion of the first image to obtain a second image.,
[0033] The rectification method defined above is capable of straightening, in a predefined position, an image of the support surface of a product as defined above.
[0034] In embodiments, the rectification method comprises, after step e), a step of applying a test to the second image to determine whether or not the second image complies with a rectification of at least a portion of the first image in a predefined position.
[0035] In embodiments, if the second image is determined to be non-compliant with a rectification of at least a portion of the first image in the predefined position, the method comprises a reiteration: - of step d) by replacing therein the tuple composed from the reference vectors with a new tuple composed from the reference vectors, or by replacing therein the tuple composed from the correlation vectors with a new tuple composed from the correlation vectors,
[0036] - from step e), and
[0037] - of step f), until the second image is determined to be consistent with a rectification of at least a portion of the first image in the predefined position.
[0038] In embodiments, the test comprises a step of searching by comparison to a stored error correction and, if an element comparable to the stored error correction is present in the second image according to the search, concluding that the second image is consistent with a rectification of at least a portion of the first image in the predefined position.
[0039] In embodiments, step c) comprises at least the following sub-steps: c1) identification of at least four peaks as being associable into first and second pairs, each of which corresponds to the phase correlation between two of the first, second and third copies, c2) determination of the two correlation vectors as each being representative of the position of the peaks of one of the first and second pairs relative to each other.
[0040] In embodiments, wherein step c1 comprises the following steps:
[0041] - performing a rearrangement by swapping a left half and a right half of the phase autocorrelation with each other and by swapping a low half and a high half of the phase autocorrelation with each other,
[0042] - determination of a main peak as the most intense peak on the rearrangement,
[0043] - filtering of the intensity rearrangement configured to isolate, as being the most intense, the main peak and all the peaks that can be associated in pairs, each corresponding to a phase correlation between two of the copies of the two-dimensional visual object,
[0044] - among all the peaks that can be associated in pairs, choice of the first and second pairs of peaks as each consisting of two peaks symmetrical with respect to the main peak, on the rearrangement.
[0045] In embodiments, during sub-step c2), the two correlation vectors are determined as each being representative of the position of one of the peaks of one of the first and second pairs relative to the main peak on the rearrangement.
[0046] In embodiments, step a) comprises the following sub-steps: a1) obtaining an initial image of at least a portion of the support surface, and a2) dividing the initial image into a plurality of image portions according to an arrangement in which each image portion has a position, each image portion being said first image in one of several iterations of steps b), c) and d) carried out in order to obtain the transformations corresponding to the image portions or approximations of these transformations, each image portion being said first image in one of several iterations of step e) in which, to each image portion, the corresponding transformation or its approximation is applied, in order to obtain the second images corresponding to the image portions,the rectification method comprises a step of constructing a resulting image by assembling the second images in such a way that any second image among the second images has the same position according to the arrangement as the image portion from which said any second image was obtained by one of the iterations of steps b), c), d) and e).,
[0047] Thus, piecewise straightening is performed. Piecewise straightening is particularly advantageous when the support surface is not flat or practically flat, for example when the support surface has at least one edge and / or at least one curvature. In particular, piecewise straightening is particularly advantageous when the support surface is no longer flat or practically flat whereas it was during the printing of the overlay on it. For example, this can occur when the support surface is one side of a label that has been stuck to a non-flat support after the printing of the overlay 21 has been carried out on this label.
[0048] In embodiments, the transformations or approximations of the transformations are affine transformations, the method a step of determining a two-dimensional interpolation of the affine transformations, i) instead of step g) and the iterations of step e), a step of applying the two-dimensional interpolation to the initial image.
[0049] Thus, the piecewise recovery is “smoothed.”
[0050] In embodiments, step a) comprises the following sub-steps: a1) obtaining an initial image of at least a portion of the support surface, and a2) dividing the initial image into a plurality of image portions according to an arrangement in which each image portion has a position, each image portion being said first image in one of several iterations of steps b), c), d) and e) carried out in order to obtain the second images corresponding to the image portions, the rectification method comprising a construction of a resulting image by assembling the second images so that any second image among the second images has the same position according to the arrangement as the image portion from which said any second image was obtained by one of the iterations of steps b), c), d) and e). Thus, a piecewise rectification is carried out.Piecewise straightening is particularly advantageous when the support surface is not flat or practically flat, for example when the support surface has at least one edge and / or at least one curvature. In particular, piecewise straightening is particularly advantageous when the support surface is no longer flat or practically flat while it was during the printing on it of the overlay. For example, this can occur when the support surface is a face of a label which has been stuck on a non-planar support after the printing of the overlay 21 has been carried out on this label.
[0051] In embodiments, the straightening method comprises the steps, after step a):
[0052] - by removing at least the first copy in the first image by colorimetric filtering, obtaining a simplified image comprising only the second and third copies among the copies of the two-dimensional visual object,
[0053] - producing a phase autocorrelation of the simplified image, while, in step d), the tuple of two correlation vectors comprises a differentiated correlation vector identified in step c) as corresponding to the correlation between the second and third copies in the phase autocorrelation of the simplified image.
[0054] This makes it possible to reduce the number of times large and lengthy calculations may have to be repeated.
[0055] In embodiments, the first copy of the two-dimensional visual object is printed with a first ink, while the second copy of the two-dimensional visual object is printed with a second ink, and the third copy is printed with a third ink. The first ink differs from the second and third inks such that the first copy can be removed from the first image by a first colorimetric filtering that does not remove the second and third copies of the first image. The second ink differs from the first and third inks such that the second copy can be removed from the first image by a second colorimetric filtering that does not remove the first and third copies of the first image.
[0056] In embodiments, said at least one phase autocorrelation in step c) comprises two phase autocorrelations, namely a phase autocorrelation of the first image as having undergone the first colorimetric filtering having removed the first copy and another phase autocorrelation of the first image as having undergone the second colorimetric filtering having removed the second copy.
[0057] In embodiments, in step c) the at least two correlation vectors are identified in two phase autocorrelations, which are two phase autocorrelations of the first image after colorimetric filtration and which differ from each other in that different colorimetric filtrations are applied to the first image before one of the phase autocorrelations and before the other phase correlation. These colorimetric filtrations differ from each other in that one of the colorimetric filtrations removes the first copy in the first image while leaving the second and third copies there, while the other colorimetric filtration removes the second copy in the first image while leaving the first and second copies there.
[0058] In embodiments, the two known reference vectors each correspond to the correlation between two of the first, second and third copies when the superposition is in the predefined position.
[0059] According to a third aspect, the present invention relates to a method for producing a support surface which can be captured by rectifiable image photography, which comprises at least the following steps:
[0060] - provision of a two-dimensional visual object,
[0061] - forming a superposition in which at least first, second and third copies of the two-dimensional visual object are combined in such a way that the second copy is a translation of the first copy according to a first predetermined translation vector, in the superposition plane, and that the third copy is a translation of the first copy in the superposition plane, according to a second predetermined translation vector having a direction and / or a norm different from the first predetermined translation vector, and
[0062] - application of the overlay on the support surface.
[0063] The aims, advantages and particular characteristics of the production process which is the subject of the present invention being similar to those of the product which is the subject of the present invention, they are not recalled here.
[0064] In embodiments, the production method is a method of producing the support surface of a product as defined above.
[0065] According to a fourth aspect, the present invention relates to a rectification system for obtaining a rectified image of a support surface of a product as defined above, the rectification system comprising:
[0066] - at least one processor to execute instructions, and
[0067] - at least one computer memory storing instructions which, once executed on the at least one processor, lead to the implementation of the rectification method which is the subject of the present invention
[0068] According to a fifth aspect, the present invention relates to a computer program for obtaining a rectified image of a support surface of a product as defined above, the computer program comprising instructions which, once executed on a processor, lead to the implementation of the rectification method which is the subject of the present invention.
[0069] According to a sixth aspect, the present invention relates to a storage medium capable of being read by a computer, this medium storing the instructions of the computer program as defined above. The aims, advantages and particular characteristics of the rectification system and of the computer program which are the subject of the present invention being similar to those of the rectification method which is the subject of the present invention, they are not recalled here.
[0070] BRIEF DESCRIPTION OF THE FIGURES
[0071] Other advantages and particular characteristics will emerge more clearly from the following description of several particular embodiments of the invention, given as non-limiting examples and represented in the appended drawings, in which:
[0072] Figure 1 represents, in the form of a flowchart, the steps of a production method which is according to one embodiment and which is a method of producing a support surface which can be captured by photography in a rectifiable image,
[0073] Figure 2 schematically represents a first example of a two-dimensional visual object,
[0074] Figure 3 schematically represents a second copy of the two-dimensional visual object,
[0075] Figure 4 schematically represents a third example of the two-dimensional visual object,
[0076] Figure 5 schematically represents a superposition in which the first, second and third copies of the two-dimensional visual object are combined,
[0077] Figure 6 schematically represents a superposition identical to that of Figure 4 except for the individual shapes of discrete locations constituting the first, second and third copies of the two-dimensional visual object,
[0078] Figure 7 schematically represents a product according to one embodiment and bearing a print in which a representation of a bust of a painter and the superposition shown in Figure 5 are combined on a support surface seen from the front,
[0079] Figure 8 schematically represents an image captured by photography of the impression carried by the product represented in Figure 7,
[0080] Figure 9 represents, in the form of a flowchart, the steps of a rectification method according to a first embodiment,
[0081] Figure 10 schematically represents a rearrangement of a phase autocorrelation of the image visible in Figure 8,
[0082] Figure 11 schematically represents a rearrangement of a phase autocorrelation of the superposition of Figure 6 when this superposition is viewed from the front, in a predefined position, as in Figure 6,
[0083] Figure 12 represents, in the form of a flowchart, the steps of a rectification method according to a third embodiment, Figure 13 represents, schematically, a cutting of an image captured by photography of the impression carried by the product represented in Figure 7, and
[0084] Figure 14 schematically represents a particular embodiment of a rectification system capable of implementing a computer program to obtain a rectified image of a support surface.
[0085] For clarity, figures are not to scale.
[0086] DESCRIPTION OF EMBODIMENTS
[0087] This description is given without limitation, each characteristic of an embodiment being able to be combined with any other characteristic of any other embodiment in an advantageous manner.
[0088] The expression "and / or", as used herein and in the claims, is to be understood to mean "either or both" of the elements so conjoined, i.e., elements which are present conjunctively in some cases and disjunctively in other cases. Multiple elements listed with "and / or" are to be interpreted in the same way, i.e., "one or more" of the elements so conjoined. Other elements may optionally be present, other than the elements specifically identified by the "and / or" clause, whether or not they are related to these specifically identified elements.Thus, by way of non-limiting example, a reference to "A and / or B", when used in conjunction with open language such as "comprising" may refer, in one embodiment, to A only (optionally including elements other than B); in another embodiment, to B only (optionally including elements other than A); in yet another embodiment, to both A and B (optionally including other elements); etc.
[0089] As used herein in the description and in the claims, "or" is to be understood as having the same meaning as "and / or" as defined above. For example, when separating elements in a list, "or" or "and / or" is to be interpreted as inclusive, i.e., the inclusion of at least one, but also more than one, number or list of elements, and, optionally, additional elements not listed. Only terms clearly indicating the contrary, such as "only one of" or "exactly one of", or, when used in the claims, "consisting of", refer to the inclusion of only one element of a number or list of elements.
[0090] As used in this specification and in the claims, the expression "at least one", with reference to a list of one or more elements, is to be understood to mean at least one element selected from one or more elements in the list of elements, but not necessarily including at least one of each element specifically listed in the list of elements and not excluding every combination of elements in the list of elements. This definition also allows for the optional presence of elements other than the specifically identified elements in the list of elements to which the expression "at least one" refers, whether or not related to those specifically identified elements.Thus, by way of non-limiting example, "at least one of A and B" (or, equivalently, "at least one of A or B", or, equivalently, "at least one of A and / or B") may refer, in one embodiment, to at least one, optionally including more than one, A, without B present (and optionally including elements other than B); in another embodiment, to at least one, optionally including more than one, B, without A present (and optionally including elements other than A); in yet another embodiment, to at least one, optionally including more than one, A, and at least one, optionally including more than one, B (and optionally including other elements); etc.
[0091] In the claims, as well as in the description below, all transitional expressions such as "comprising", "including", "carrying", "having", "containing", "involving", "holding", "consisting of", and the like, are to be understood as open, i.e., as meaning "including, but not limited to". Only the transitional expressions "consisting of" and "consisting essentially of" are to be understood as closed or semi-closed transitional expressions, respectively.
[0092] In FIG. 1, a production method 100 according to one embodiment is a method for producing a support surface that can be captured by photography in a rectifiable image.
[0093] In a provision step 10 of the production method 100, a two-dimensional visual object 13 is provided, a first example 14 of which is shown in FIG. 2.
[0094] As used herein, the term "visual" in the expression "visual object" indicates that the object is optically discernible in the infrared, visible spectrum and / or ultraviolet.
[0095] The two-dimensional visual object 13 comprises a scattering of discrete locations 15. The discrete locations 15 of the scattering are spaced apart from each other.
[0096] The discrete locations 15 are scattered within a background 16, from which they are discernible. At least a portion of the discrete locations 15 are scattered randomly, that is to say in a manner that depends on chance. Within the background 16, the discrete locations 15 are scattered overall without being organized according to one or more repeated patterns. A portion of the discrete locations 15 may include coded and / or encrypted information, such as an anti-counterfeiting code. In embodiments, the discrete locations 15 are groupable into two sets, namely a first set of discrete locations 15 encoding or encrypting information and a second set of discrete locations 15 arranged relative to each other so as not to include any information.
[0097] A second example 17 of the two-dimensional visual object 13 is shown in Figure 3. A third example 18 of the two-dimensional visual object 13 is shown in Figure 4. In embodiments, the discrete locations 15 have substantially the same individual shape in each of the first, second, and third examples 14, 17, and 18. The scattering of the discrete locations 15 is the same or substantially the same in the first, second, and third examples 14, 17, and 18.
[0098] In a forming step 20 of the production method 100, a superposition 21 is formed by combining the first, second and third copies 14, 17 and 18 in a superposition plane, which is the plane of the sheet in FIG. 4.
[0099] As can be seen in Figure 5, the first, second and third copies 14, 17 and 18 of the two-dimensional visual object 13 are combined in the superposition 21 so that the second copy 17 is a translation of the first copy 14 according to a first predetermined translation vector V1 and the third copy 18 is a translation of the first copy 14 according to a second predetermined translation vector V2 having a direction and / or a norm different from the first predetermined translation vector V1.
[0100] We recall here that a vector is defined by a direction, a sense and a norm. If A and B are two distinct points, the AB has three characteristic elements:
[0101] - its direction (right (AB));
[0102] - its direction (there are two possible directions of travel of the line (AB): from A to B or from B to A);
[0103] - its norm (or its length, the length of the segment [AB]).
[0104] Two vectors of different direction are therefore two vectors whose directions are not parallel. Two vectors of different norms are therefore two vectors of different lengths.
[0105] In embodiments shown in Figure 5, the discrete locations 15 have a first individual shape in the first example 14, a second individual shape in the second example 17, and a third individual shape in the third example 18.
[0106] Figure 6 shows an overlay 21 which is according to embodiments. The overlay 21 of Figure 6 is identical to the overlay 21 of Figure 5 except for the individual shape of the discrete locations 15. In Figure 6, the discrete locations 15 have the same individual shape in the first example 14, in the second example 17, and in the third example 18. In these embodiments, the individual shapes of the discrete locations 15 are substantially circles which are substantially identical throughout the overlay 21.
[0107] In an application step 30 of the production method 100, the overlay 21 is provided on a support surface 32 that comprises a product 33 visible in FIG. 7. For example, the overlay 21 is printed on the support surface 32. In FIG. 7, the support surface 32 is seen from the front, in a predefined position. In embodiments, one or more inks are positioned at the discrete locations 15, when the overlay 21 is printed on the support surface 32. For example, the support surface 32 is one side of a label.
[0108] In Figure 7, we observe the support surface 32 which carries a replication 35 in addition to the superposition 21. The replication 35 and the superposition 21 are superimposed. In embodiments, the replication 35 comprises the replication of an element meaningful to a human being. In embodiments, the replication 35 comprises the replication of an element chosen from a symbol, a trademark, a character of a script and / or a representation for example of a landscape, a living being, a natural object or a manufactured product. In the example shown in Figure 7, the replication 35 is the replication of a stylized bust of a painter.
[0109] In embodiments, the support surface 32 does not carry any replication in addition to the overlay 21.
[0110] In embodiments, the overlay 21 is barely or practically invisible to an average human being. By average human being, we mean a human being having visual faculties that are normal, within the average of humanity, and that are without particular defects or unusual abilities. In embodiments, the overlay 21 is barely or practically invisible to an average human being, in particular compared to the reproduction 35.
[0111] In embodiments, a small size of the discrete locations 15 helps make the overlay 21 barely or practically invisible to an average human being. In embodiments, the overlay 21 is printed in a low-visibility color, such as a pale yellow. In embodiments, the two embodiments presented above are combined to make the overlay 21 even less visible. In embodiments, the overlay 21 is printed with an ink that is invisible when illuminated by natural sunlight and is visible when illuminated by ultraviolet light. In embodiments, the overlay 21 is printed with an ink whose color is not in the visible spectrum but can still be detected by special optical and electronic devices.
[0112] Figure 8 is a schematic view of an image 37 of the support surface 32. The image 37 was captured by digital photography at a non-zero angle relative to a perpendicular to the support surface 32, such that the image 37 is distorted compared to the original on the support surface 32. For example, the image 37 may be distorted by a perspective effect and / or a rotation and / or a scale factor, compared to the original on the support surface 32.
[0113] By means of the superposition 21, the image 37 is able to be straightened into a predefined position such as a position corresponding to a front view, without inclination, of the support surface 32.
[0114] Embodiments of a rectification method for obtaining a rectified image of the support surface 32 using the overlay 21 are designated by the reference numeral 40 in FIG. 9.
[0115] In an obtaining step, alternatively designated by its numerical reference 42 or alphabetical reference a, of the rectification method 40, a first image of at least a portion of the support surface 32 is obtained so that this first image comprises at least a portion of the superposition 21. In the example shown, this first image is the image 37 shown in FIG. 8. For example, the image 37 is obtained by digital photography of the support surface 32. According to another possibility, the image 37 is obtained by receiving it via digital communication.
[0116] In a production step, alternatively designated by its numerical reference 43 or alphabetical reference b, of the rectification method 40, a phase autocorrelation of the first image is produced. A phase autocorrelation of the first image is a phase correlation of the first image with itself.
[0117] The phase autocorrelation of the first image is defined by the following formula:
[0118] A(l) = F -1 { F(l) o F(I)7|F(I) o F(l)*|} (1 ) where I is the intensity matrix of the first image, A(l) is the phase autocorrelation of the intensity matrix of the first image, F is the discrete Fourier transform, F(l)* is the complex conjugate of F(l), F -1 is the inverse discrete Fourier transform, while o is the Hadamard matrix product.
[0119] The discrete Fourier transform is calculated numerically using a computer, using the fast Fourier transform (also known as FFT), which is a well-known algorithm.
[0120] In an identification step alternatively designated by its numerical reference 44 or alphabetical reference c, 44 of the rectification method 40, at least two correlation vectors are identified as each corresponding to the phase correlation between two of the first, second and third copies 15, 17 and 18 in the image 37.
[0121] The identification step 44 preferably comprises two sub-steps, including an identification sub-step alternately designated by its numerical reference 46 or alphanumeric reference c1.
[0122] The identification sub-step 46 preferably comprises a production step 47, a determination step 48, a filtering step 49 and a choice step 50.
[0123] In the performing step, hereinafter referred to by its reference numeral 47, a rearrangement is performed by interchanging a left half and a right half of the phase autocorrelation of the image 37 with each other and by interchanging a low half and a high half of the phase autocorrelation of the image 37 with each other. The rearrangement resulting from the performing step 47 performed on the phase autocorrelation of the image 37 is shown schematically and referenced 52 in FIG. 10.
[0124] In the determining step hereinafter referred to as reference numeral 48, a main peak is determined as the most intense peak on rearrangement 52. The main peak of rearrangement 52 is designated as reference numeral P10 in FIG. 10.
[0125] In the filtering step, hereinafter designated by its reference numeral 49, the rearrangement 52 is subjected to digital intensity filtering capable of isolating, as being the most intense, the main peak P10 and all of the peaks P20, P21, P30, P31, P40 and P41 which can be associated in pairs, each corresponding to a phase correlation between two of the copies 15, 17 and 18 of the two-dimensional visual object 13. The peaks P20 and P21 are a pair of peaks symmetrical with respect to the main peak P10. The peaks P20 and P21 correspond to the phase correlation between the first copy 14 and the second copy 17 in the image 37.
[0126] Peaks P30 and P31 are a pair of peaks symmetrical with respect to the main peak P10. Peaks P30 and P31 correspond to the phase correlation between the second copy 17 and the third copy 18 in image 37.
[0127] Peaks P40 and P41 are a pair of peaks symmetrical with respect to the main peak P10. Peaks P40 and P41 correspond to the phase correlation between the third copy 18 and the second copy 17 in image 37.
[0128] In the selection step, hereinafter designated by its reference numeral 50, a first pair of peaks and a second pair of peaks are chosen from the pair of symmetrical peaks P20 and P21, the pair of symmetrical peaks P30 and P31, and the pair of symmetrical peaks P40 and P41. For example, as the first pair of peaks, the pair of symmetrical peaks P20 and P21 is chosen. For example, as the second pair of peaks, the pair of symmetrical peaks P30 and P31 is chosen.
[0129] Preferably, among all the peaks P20, P21, P30, P31, P40 and P41 which can be associated in pairs, the first and second pairs of peaks are chosen during the choice step 50 as each consisting of two peaks symmetrical with respect to the main peak P10, on the rearrangement 52.
[0130] In the identification sub-step 46, at least four peaks have therefore been identified as being associable into first and second pairs, each of which corresponds to the phase correlation between two of the first, second and third copies 15, 17 and 18. For example, peaks P20 and P21 have been identified as being associable into a first pair corresponding to the phase correlation between two of the first, second and third copies 15, 17 and 18. For example, peaks P30 and P31 have been identified as being associable into a second pair corresponding to the phase correlation between two of the first, second and third copies 15, 17 and 18.
[0131] Preferably, in addition to the identification sub-step 46, the identification step 44 comprises a determination sub-step, alternatively designated by its numerical reference 51 or alphanumeric c2.
[0132] In the determination sub-step 51, the two correlation vectors are determined as each being representative of the position of the peaks of one of the first and second pairs relative to each other. In embodiments, in the sub-step 51, the two correlation vectors are determined as each being representative of the position of one of the peaks of one of the first and second pairs relative to the main peak P10 on the rearrangement 52. For example, the correlation vector C1 is chosen as being representative of the position of the peak P20 relative to the main peak P10 on the rearrangement 52. For example, the correlation vector C2 is chosen as being representative of the position of the peak P20 relative to the main peak P10 on the rearrangement 52. In FIG. 10, the vector C3 is a correlation vector representative of the position of the peak P30 relative to the main peak P10 on the rearrangement 52.
[0133] The negative of vector C1 is called the -C1 vector or the -C1 correlation vector. It is not shown for clarity. Like the C1 correlation vector, vector -C1 corresponds to the phase correlation between the first copy 14 and the second copy 17 in image 37. Like the C1 correlation vector, vector -C1 is a correlation vector.
[0134] The negative of vector C2 is called the -C2 vector or the -C2 correlation vector. It is not shown for clarity. Like the C2 correlation vector, vector -C2 corresponds to the phase correlation between the second copy 17 and the third copy 18 in image 37. Like the C2 correlation vector, vector -C2 is a correlation vector.
[0135] The negative of the C3 vector is called the -C3 vector or the -C3 correlation vector. It is not shown for clarity. Like the C3 correlation vector, the -C3 vector corresponds to the phase correlation between the first copy 14 and the third copy 18 in image 37. Like the C3 correlation vector, the -C3 vector is a correlation vector.
[0136] A rearrangement is represented schematically and referenced 53 in Figure 11. The rearrangement 53 is obtained by carrying out a step which is identical to the identification step 47 except that it is carried out on a phase autocorrelation of the superposition 21, that is to say on a phase autocorrelation of the image of this superposition 21 seen from the front as in Figure 6, in the predefined position.
[0137] In other words, the rearrangement 53 is obtained by interchanging a left half and a right half of the phase autocorrelation of the superposition 21 seen from the front, in the predefined position, with each other and by interchanging a bottom half and a top half of the phase autocorrelation of the superposition 21 seen from the front, in the predefined position, with each other.
[0138] The main peak of the 53 rearrangement is designated by the reference P100 in Figure 11.
[0139] In the rearrangement 53, the peaks P120 and P121 are a pair of peaks symmetrical with respect to the main peak P100. The peaks P120 and P121 correspond to the phase correlation between the first copy 14 and the second copy 17 in the superposition 21 seen from the front, in the predefined position, as in Figure 6.
[0140] In the rearrangement 53, the peaks P130 and P131 are a pair of peaks symmetrical with respect to the main peak P100. The peaks P130 and P131 correspond to the phase correlation between the second copy 17 and the third copy 18 in the superposition 21 seen from the front, in the predefined position, as in Figure 6.
[0141] On the rearrangement 53, the peaks P140 and P141 are a pair of peaks symmetrical with respect to the main peak P100. The peaks P140 and P141 correspond to the phase correlation between the third copy 18 and the second copy 17 in the superposition 21 seen from the front, in the predefined position, as in Figure 6. The vector C10 is representative of the position of the peak P120 with respect to the main peak P100 on the rearrangement 53. The vector C10 corresponds to the phase correlation between the first copy 14 and the second copy 17 in the superposition 21 seen from the front, in the predefined position, as in Figure 6.
[0142] The vector C20 is representative of the position of the peak P130 relative to the main peak P100 on the rearrangement 53. The vector C20 corresponds to the phase correlation between the second copy 17 and the third copy 18 in the superposition 21 seen from the front, in the predefined position, as in figure 6.
[0143] The vector C30 is representative of the position of the peak P140 relative to the main peak P100 on the rearrangement 53. The vector C30 corresponds to the phase correlation between the first copy 14 and the third copy 18 in the superposition 21 seen from the front, in the predefined position, as in figure 6.
[0144] Vectors C10, C20 and C30 are known reference vectors for superposition 21.
[0145] The negative of the C10 vector is called the -C10 vector or the -C10 reference vector. It is not shown for clarity. Like the C10 reference vector, the -C10 vector corresponds to the phase correlation between the first copy 14 and the second copy 17 in the superposition 21 viewed from the front, in the predefined position. Like the C10 reference vector, the -C10 vector is a known reference vector for the superposition 21.
[0146] The negative of the C20 vector is called the -C20 vector or the -C20 reference vector. It is not shown for clarity. Like the C20 reference vector, the -C20 vector corresponds to the phase correlation between the second copy 17 and the third copy 18 in the superposition 21 viewed from the front, in the predefined position. Like the C20 reference vector, the -C20 vector is a known reference vector for the superposition 21.
[0147] The negative of the C30 vector is called the -C30 vector or the -C30 reference vector. It is not shown for clarity. Like the C30 reference vector, the -C30 vector corresponds to the phase correlation between the first copy 14 and the third copy 18 in the superposition 21 viewed from the front, in the predefined position. Like the C30 reference vector, the -C30 vector is a known reference vector for the superposition 21.
[0148] A tuple is composed from the correlation vectors C1 and C2. This is the tuple (C1, C2).
[0149] According to a first example, a tuple is composed from the reference vectors C10 and C20. According to the first example, this is the tuple (C10, C20).
[0150] As used here, a tuple (also called a "list", "finite family", or "finite sequence") is a finite ordered collection of objects, which are also called elements. Generally, a tuple consisting of two objects is also called a pair.
[0151] In a determination step, alternatively designated by its numerical reference 55 or alphabetical reference d of the rectification method 40, a transformation is determined which transforms a tuple composed from the correlation vectors C1, -C1, C2, -C2, C3 and -C3 into a tuple composed from at least two reference vectors among the reference vectors C10, -C10, C20, -C20, C30 and -C30 known for the superposition. This transformation is an affine transformation which is determined by a numerical method using a computer. More precisely, the transformation is a linear application. According to the first example of the first embodiment, the determination step 55 of the rectification method 40 is a step in which a transformation is determined which transforms the tuple (C1, C2) into the tuple (C10, C20).
[0152] In an application step, alternatively designated by its numerical reference 56 or alphabetical reference e of the rectification method 40, the transformation determined in step 55 is applied to the first image 37 to obtain a second image.
[0153] In a step of applying a test, alternatively designated by its numerical reference 57 or alphabetical reference f, of the rectification method 40, a test is applied to the second image. The test aims to determine whether or not the second image conforms to a rectification of at least a part of the first image (here image 37) in a predefined position. In the test, a search is carried out in the second image by comparison with a key stored in a memory such as a computer memory. If an element comparable to the stored key is present in the second image according to the search, it is concluded that the second image conforms to a rectification of at least a part of the first image in the predefined position.
[0154] In embodiments, the stored key is a known pattern present on the support surface 32. In embodiments, the overlay comprises the stored key. In Figure 6, a key 58 is an example of a stored key consisting of a set of discrete locations 15, which together form a predefined known pattern and stored in a memory such as a computer memory. In embodiments, in the test of step 57, the second image is searched to see whether an element comparable to the key 58 is present in the second image. If an element comparable to the key 58 is present in the second image based on the search, it is concluded that the second image is consistent with a rectification of at least a portion of the first image (here image 37) in the predefined position.
[0155] In the first example, the reference vector C10 is a correlation vector corresponding to the phase correlation between the first copy 14 and the second copy 17 in the superposition 21 seen from the front, in the predefined position. In the first example, the correlation vector C1 corresponds to the phase correlation between the first copy 14 and the second copy 17 in the image 37. In the first example, the correlation vector C1 in the image 37 corresponds to the reference vector C10 in the superposition 21 seen from the front, in the predefined position. In the first example, the reference vector C20 is a correlation vector corresponding to the phase correlation between the second copy 17 and the third copy 18 in the superposition 21 seen from the front, in the predefined position.In the first example, the correlation vector C2 corresponds to the phase correlation between the second copy 17 and the third copy 18 in the image 37. In the first example, the correlation vector C2 in the image 37 corresponds to the reference vector C20 in the superposition 21 seen from the front, in the predefined position.
[0156] According to the first example, the tuple (C1, C2) in the image 37 corresponds to the tuple (C10, C20) in the superposition 21 seen from the front, in the predefined position. Therefore, the transformation determined in the determination step 55 is the one sought, so that the stored polarizer, for example the polarizer 58, is found in the second image by the test of step 57. The test of step 57 therefore concludes that the second image conforms to a straightening of the first image 37 in a predefined position. The second image is then generally similar to the front view of the support surface 32 in FIG. 7.
[0157] Since the test of step 57 concludes in the first example that the second image conforms to a rectification of the first image 37 in a predefined position, the rectification method 40 has reached its end and stops. In FIG. 9, the end of the rectification method 40 is designated by the reference 60.
[0158] When the first and second pairs of peaks are chosen in operation 50, it is not known whether the first pair of peaks chosen corresponds to the phase correlation between the first copy 14 and the second copy 17 in image 37, to the phase correlation between the second copy 17 and the third copy 18 in image 37, or to the phase correlation between the first copy 14 and the third copy 18 in image 37. When the first and second pairs of peaks are chosen in operation 50, it is also not known whether the second pair of peaks chosen corresponds to the phase correlation between the first copy 14 and the second copy 17 in image 37, to the phase correlation between the second copy 17 and the third copy 18 in image 37, or to the phase correlation between the first copy 14 and the third copy 18 in image 37.
[0159] Therefore, it is not known whether the tuple composed from chosen correlation vectors in image 37 corresponds to the tuple composed from reference vectors C10, -C10, C20, -C20, C30 and -C30 in superposition 21 seen from the front, in the predefined position
[0160] According to a second example, the tuple composed from the correlation vectors is still the tuple (C1, C2) at the end of step 51, while the tuple composed from the reference vectors is the tuple (C10, C30) in step 55.
[0161] In the determination step 55 performed in the second example, a transformation is determined that transforms the tuple (C1, C2) into the tuple (C10, C30). This transformation is an affine transformation that is determined by a numerical method using a computer. In the application step 56 performed in the second example, the transformation determined in the determination step 55 is applied to the first image 37 to obtain a second image.
[0162] In the test application step 57 performed in the second example, the test is applied to the second image.
[0163] The tuple (C1, C2) in the image 37 does not correspond to the tuple (C10, C30) in the superposition 21 seen from the front, in the predefined position. As a result, the transformation determined in the determination step 55 in the second example is not the one sought. It follows that, in the second example, the stored key, for example the key 58, is not found in the second image by the test of the application step 57 which therefore concludes that the second image does not conform to a rectification of the first image 37 in the predefined position.
[0164] Since the test of the test application step 57 concludes that the second image does not conform to a rectification of the first image 37 in the predefined position in the second example, the tuple (C10, C30) is replaced by a new tuple composed from the reference vectors C10, -C10, C20, -C20, C30 and -C30 and the determination step 55 is repeated with this new tuple as the tuple composed from the reference vectors C10, -C10, C20, -C20, C30 and -C30. For example, the new tuple may be the tuple (C20, C10), the tuple (C20, C30) or the tuple (C10, C20). In the reiteration of step 55, a new transformation is determined which is the one transforming the tuple (C1, C2) into the new tuple composed from the reference vectors C10, - C10, C20, -C20, C30 and -C30.
[0165] Then, application step 56 is also repeated.
[0166] In the reiteration of the application step 56, the new transformation determined in the reiteration of step 55 is applied to the first image 37 to obtain a new second image.
[0167] Then, the test from the test application step 57 is also repeated.
[0168] In the reiteration of the step of applying a test 57, the same test is applied to the new second image. Depending on the result of this test applied to the new second image, the rectification method 40 ends or a new reiteration of steps 55, 56 and 57 with yet another new tuple composed from the reference vectors C10, -C10, C20, -C20, C30 and -C30 is carried out.
[0169] In the embodiments which have just been described, we reiterate:
[0170] - step 55 by replacing the tuple composed from the reference vectors C10, -C10, C20, -C20, C30 and -C30 with a new tuple composed from the reference vectors C10, -C10, C20, -C20, C30 and -C30, then
[0171] - step 56, then
[0172] - step 57.
[0173] In embodiments, the following are repeated: - step 55 by replacing the tuple composed from the correlation vectors C1, -C1, C2, -C2, C3 and -C3 with a new tuple composed from the correlation vectors C1, -C1, C2, -C2, C3 and -C3, then
[0174] - step 56, then
[0175] - step 57.
[0176] In the following, only what distinguishes a second embodiment of the rectification method from the rectification method 40 according to the first embodiment is described.
[0177] In the second embodiment of the straightening method, the first copy 14 of the two-dimensional visual object 13 is printed with a first ink that differs from a second ink with which the second and third copies 17 and 18 of the two-dimensional visual object 13 are printed. The first ink differs from the second ink such that the first copy 14 can be removed from the first image by colorimetric filtering that does not remove the second and third copies 17 and 18 from the first image.
[0178] The first image without the first copy 14 is called the first simplified image. The first simplified image includes the second and third copies 17 and 18. The first simplified image is obtained by removing the first copy 14 from image 37.
[0179] A phase autocorrelation of the first simplified image is produced. In an operation analogous to the rearrangement step 47, a rearrangement is performed by swapping a left half and a right half of the phase autocorrelation of the first simplified image with each other and by swapping a low half and a high half of the phase autocorrelation of the first simplified image with each other. The rearrangement is called the simplified rearrangement. The simplified rearrangement includes the central peak P10, as well as peaks 30 and 31. The simplified rearrangement lacks peaks P20, P21, P40, and P41. In the simplified rearrangement, vectors C2 and -C2 are the only two identifiable correlation vectors. Vectors C2 and -C2 are differentiated vectors in that they are known to correspond to the phase correlation between the second and third copies 17 and 18.
[0180] In the determination step 55, the vector C2 is chosen from the two correlation vectors of the tuple composed from the correlation vectors C1, -C1, C2, -C2, C3 and -C3. In the determination step 55, the vector C20 or -C20 is chosen from the two reference vectors of the tuple composed from the reference vectors C10, -C10, C20, -C20, C30 and -C30.
[0181] In other words, in the determination step 55, a transformation is determined that transforms a tuple comprising the correlation vector C2 and the correlation vector C1 or C3 into a tuple comprising the reference vector C20 or -C20 and one of the reference vectors C10, -C10, C30 and -C30. In this way, the maximum number of possible cases where the test of step 57 can be applied is reduced. At the same time, the number of times that steps 55 and 56 may be repeated before the test of step 57 terminates the rectification method according to a second embodiment is reduced. In this way, the number of times that large and lengthy calculations may have to be repeated is reduced.
[0182] The steps of a straightening method 140 according to a third embodiment are shown in FIG. 12. In the following, the straightening method 140 is only described in terms of how it differs from the method 40. Furthermore, as long as they are identical or equivalent, a referenced step of the straightening method 40 and a referenced step of the method 140 are designated by the same reference.
[0183] The obtaining step 42 of the rectification method 140 comprises an obtaining sub-step, alternatively designated by its numerical reference 601 or alphanumeric a1, in which an initial image 61 of the support surface 32 is obtained. Figure 13 shows the initial image 61. For example, the initial image 61 is captured by digital photography of the support surface 32.
[0184] A division sub-step, alternatively designated by its numerical reference 63 or alphanumeric a2 of step 42 of the rectification method 140 follows the obtaining sub-step 6011. In the division sub-step 63, the initial image 62 is divided into a plurality of image portions according to an arrangement in which each image portion has a position. In FIG. 13, the image portions resulting from the division carried out in the division sub-step 63 are referenced 62. Each image portion 62 is one of several first images that are obtained in the obtaining step 42 of the rectification method 140.
[0185] In the superposition 21, the first, second and third examples 14, 17 and 18 overlap one another. The superposition 21 is thus present over a large portion of the support surface 32. As a result, each image portion 62 comprises a portion of the superposition 21. Since the two-dimensional visual object 13 comprises a scattering of discrete locations 15 within the support surface 32, each image portion 62 further comprises a sufficiently large number of discrete locations 15 so that its phase autocorrelation exhibits discernible peaks that result from the phase autocorrelations of the first, second and third examples 14, 17 and 18 with one another.
[0186] In the rectification method 140, a rectification is determined for each image portion 62.
[0187] First, a rectification is determined for a first image portion 62 among the image portions 62. To do this, the rectification method 40 is executed in such a way that the phase autocorrelation in the production step 43 is a phase autocorrelation of the first image portion 62. In other words, the first image in the production step 43 of the rectification method 40 is here the first image portion 62.
[0188] The rectification method 40 in the production step 43 of which a phase autocorrelation of the first image portion 62 is produced then comprises, in succession, the steps 43, 44, 55, 56, 57 and 60 which are the steps indicated furthest to the left in FIG. 12. Optionally, it further comprises one or more reiterations of steps 55, 56 and 57 in succession, depending on the result(s) of the test(s) of step(s) 57. In step 56 and its possible reiteration(s), the transformation determined in step 55 is applied to the first image portion 62. Finally, a second image conforming to a rectification of the first image portion 62 in the predefined position is obtained by implementing the rectification method 40.
[0189] Next, a rectification is determined for each image portion 62 other than the first image portion 62. For each image portion 62 other than the first image portion 62, a variant, designated by its numerical reference, 141 of the image rectification method 40 is executed.
[0190] In the production step 43 of the variant 141, the first image is one of the image portions 62 other than the first image portion. In other words, in step 43 of the variant 141, a phase autocorrelation of one of the image portions 62 other than the first image portion 62 is produced.
[0191] In variant 141, the indication step 44 is identical to the indication step 44 of the rectification method 40 except that, as the tuple of reference vectors, the tuple of reference vectors is chosen with which the test of the application step 57 in the rectification method 40 applied to the first image portion 62 concluded positively, that is to say concluded that the second image is actually in conformity with a rectification of the first image portion 62 in the predefined position. In other words, in variant 141, the test of application step 57 and possibly one or more reiterations of steps 55, 56 and 57 are avoided, by using the result of the test of step 57 in the rectification method 40 applied to the first image portion 62. By proceeding in this way, it is assumed that the respective rectifications to be applied to the different image portions 62 are close to each other.
[0192] Step 55 of variant 141 is identical to step 55 of rectification method 40. Step 56 of variant 141 is identical to step 56 of rectification method 40 except that, in step 56 of variant 140, the transformation determined in the preceding step 55 is applied to an image portion 62 other than the first image portion 62. The image portion 62 to which the transformation is applied in step 56 of variant 141 is the image portion 62 that was used to determine this transformation by means of steps 43, 44 and 55.
[0193] Variant 141 does not include step 57 or one or more reiterations of steps 55, 56 and 57.
[0194] A second image conforming to a rectification of each image portion 62 other than the first image portion 62, in the predefined position, is obtained by each implementation of the variant 141. After the implementation of the rectification method 40 to the first image portion 62 and several implementations of the variant 141, several second images are available. With each second image, the position of the image portion 62 to which the transformation of step 56 was applied to obtain this second image is associated.In a construction step, alternatively designated by its numerical reference 65 or alphabetical reference g, of the rectification method 140, a resulting image is constructed by assembling the second images in such a way that any second image among the second images has the same position according to the arrangement as the image portion 62 from which said any second image was obtained by one of the iterations of steps 43, 44, 55 and 56. The resulting image is a rectification of the initial image in the predefined position.
[0195] As will be understood, the resulting image is a piecewise straightened image of the support surface 32. The piecewise straightening carried out by the straightening method 140 is particularly advantageous when the support surface 32 is not flat or practically flat, for example when the support surface 32 has at least one edge and / or at least one curvature. In particular, the piecewise straightening carried out by the straightening method 140 is particularly advantageous when the support surface 32 is no longer flat or practically flat while it was during the printing thereon of the overlay 21 and the replication 35. For example, this can occur when the support surface 32 is a face of a label which has been stuck on a non-planar support after the printing of the overlay 21 and the replication 35 has been carried out on this label.
[0196] A first variant of the rectification method 140 is obtained by replacing at least part of the variants 141 with the rectification method 40 in the method 140.
[0197] A second variant of the rectification method 140 differs from the rectification method 140 in that it comprises a step in which a two-dimensional interpolation of the affine transformations determined in the different steps 55 is determined.
[0198] The second variant of the rectification method 140 is distinguished from the rectification method 140 also in that it comprises a step which is an alternative step replacing step 65 and several of the iterations of steps 55. In this alternative step, the two-dimensional interpolation is applied to the initial image 61 to obtain a second image which is a rectification of the initial image in the predefined position.
[0199] According to other embodiments, the rectification method 40 is replaced by the rectification method according to the second embodiment in the rectification method 140 or in one of its variants.
[0200] According to embodiments, instead of the transformation in step(s) 55, an approximation of this transformation is determined in step(s) 55 and this approximation is applied in step(s) 56, in any of the methods and variants that are the rectification method 40 according to the first mode, the rectification method according to the second mode, the rectification method 140 according to the third mode, as well as their variants. According to an advantageous variant, the approximation of the transformation is a linear application, which is determined numerically by means of a computer.
[0201] The rectification method 40 according to the first mode, the rectification method according to the second mode, the rectification method 140 according to the third mode, as well as their variants, are each capable of carrying out a rectification comprising a deletion of a perspective or a modification of a perspective, a placing of the image according to a predefined angular orientation around an axis perpendicular to the plane of the image and / or a placing of the image in predefined dimensions by enlargement or reduction.
[0202] Generally, Figure 14 is a block diagram illustrating an exemplary computer system with which any embodiment and variation may be implemented. In the example of Figure 14, a computer system 205 is a de-erecting system for obtaining a de-erected image of a support surface such as the support surface 32. In the example of Figure 14, the computer system 205 and instructions for implementing the disclosed technologies in hardware, software, or a combination of hardware and software, are shown schematically, for example, as boxes and circles, at the same level of detail that is commonly used by those of ordinary skill in the art to which this disclosure relates to communicate about computer architecture and computer system implementations.
[0203] The computer system 205 includes an input / output (I / O) subsystem 220 that may include a bus and / or one or more other communication mechanisms for communicating information and / or instructions between components of the computer system 205 over electronic signal paths. The input / output subsystem 220 may include an input / output controller, a memory controller, and at least one input / output port. The electronic signal paths are shown schematically in the drawings, for example, as lines, one-way arrows, or two-way arrows.
[0204] At least one processor 210 is coupled to the I / O subsystem 220 to process information and instructions. The processor 210 may include, for example, a general-purpose microprocessor or microcontroller and / or a special-purpose microprocessor such as an embedded system or graphics processing unit (GPU) or a digital signal processor or an ARM processor. The processor 210 may include an integrated arithmetic logic unit (ALU) or may be coupled to a separate ALU.
[0205] The computer system 205 includes one or more memories 225, such as a main memory, which is coupled to the I / O subsystem 220 to electronically digitally store data and instructions to be executed by the processor 210. The memory 225 may include volatile memory such as various forms of random access memory (RAM) or any other dynamic storage device. The memory 225 may also be used to store temporary variables or other intermediate information during the execution of the instructions to be executed by the processor 210. Such instructions, when stored in a non-transitory computer-readable storage medium accessible to the processor 210, may transform the computer system 205 into a special purpose machine that is customized to perform the operations specified in the instructions.The computer system 205 further includes non-volatile memory such as a read-only memory (ROM) 230 or other static storage device coupled to the I / O subsystem 220 for storing information and instructions for the processor 210. The ROM 230 may include various forms of programmable ROM (PROM) such as erasable PROM (EPROM) or electrically erasable PROM (EEPROM). A persistent storage unit 215 may include various forms of non-volatile random access memory (NVRAM), such as FLASH memory, or solid state storage, a magnetic disk, or an optical disk such as a CD-ROM or DVD-ROM and may be coupled to the I / O subsystem 220 for storing information and instructions.Memory 215 is an example of a non-transitory computer-readable medium that can be used to store instructions and data that, when executed by processor 210, cause execution of computer-implemented methods for performing the techniques of this document.
[0206] The instructions in memory 225, ROM 230, or storage 215 may comprise one or more sets of instructions that are organized into modules, methods, objects, functions, routines, or calls. The instructions may be organized as one or more computer programs, operating system services, or application programs, including mobile applications. The instructions may comprise an operating system and / or system software; one or more libraries to support multimedia, programming, or other functions; data protocol instructions or stacks to implement TCP / IP, HTTP, or other communication protocols; file format processing instructions to parse or render files encoded using HTML, XML, JPEG, MPEG, or PNG;user interface instructions for rendering or interpreting commands for a graphical user interface (GUI), command-line interface, or text-based user interface;application software such as an office suite, Internet access applications, design and manufacturing applications, graphics applications, audio applications, software engineering applications, educational applications, games, or miscellaneous applications. The instructions may implement a web server, a web application server, or a web client. The instructions may be organized as a presentation layer, an application layer, and a data storage layer such as a relational database system using Structured Query Language (SQL) or no SQL, an object store, a graph database, a flat file system, or other data storage.;
[0207] The computer system 205 may be coupled via the I / O subsystem 220 to at least one output device 235. In one embodiment, the output device 235 is a digital computer display. Exemplary displays that may be used in various embodiments include a touchscreen or a light-emitting diode (LED) display or a liquid crystal display (LCD) or an e-paper display. The computer system 205 may include one or more other types of output devices 235, instead of or in addition to a display device. Examples of other output devices 235 include printers, ticket printers, plotters, projectors, sound cards or video cards, speakers, buzzers or piezoelectric devices or other audible devices, LED or LCD lamps or indicators, haptic devices, actuators, or servos.
[0208] At least one input device 240 is coupled to the I / O subsystem 220 to communicate signals, data, command selections, or gestures to the processor 210.Examples of input devices 240 include touchscreens, microphones, digital still and video cameras, alphanumeric and other keys, keyboards, graphics tablets, image scanners, joysticks, clocks, switches, buttons, dials, sliders, and / or various types of sensors such as force sensors, motion sensors, heat sensors, accelerometers, gyroscopes, and inertial measuring unit (IMU) sensors and / or various types of transceivers such as wireless transceivers, such as cellular or those known as "Wi-Fi" (registered trademark), radio frequency (RF), or infrared (IR) transceivers, and global positioning system (GPS) transceivers.
[0209] Another type of input device is a control device 245, which may perform cursor control or other automated control functions such as navigating a graphical interface on a display screen, alternatively or in addition to input functions. The control device 245 may be a touchpad, mouse, trackball, or cursor direction keys to communicate direction information and control selections to the processor 210 and to control movement of the cursor on the display 235. The input device may have at least two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), which allows the device to specify positions in a plane.Another type of input device is a wired, wireless, or optical control device, such as a joystick, wand, console, steering wheel, pedal, gear shift mechanism, or other type of control device. An input device 240 may include a combination of several different input devices, such as a video camera and a depth sensor.
[0210] In another embodiment, the computer system 205 may include an Internet of Things (IoT) device in which one or more of the output device 235, the input device 240, and the control device 245 are omitted. Or, in such an embodiment, the input device 240 may include one or more cameras, motion detectors, thermometers, microphones, seismic detectors, other sensors or detectors, measuring devices, or encoders, and the output device 235 may include a special-purpose display such as a single-line LED or LCD display, one or more indicators, a display panel, a meter, a valve, a solenoid, an actuator, or a servomotor.
[0211] When the computing system 205 is a mobile computing device, the input device 240 may include a global positioning system (GPS) receiver coupled to a GPS module that is capable of triangulating to a plurality of GPS satellites, determining, and generating geolocation or position data such as latitude-longitude values for a geophysical location of the computing system 205. The output device 235 may include hardware, software, firmware, and interfaces for generating position report packets, notifications, pulse or heartbeat signals, or other recurring data transmissions that specify a position of the computing system 205, alone or in combination with other application-specific data, directed to the host 250 or server 255.
[0212] The computer system 205 may implement the techniques described herein using custom hardwired logic, at least one ASIC (Application-specific integrated circuit) or FPGA (Field-programmable gate array), firmware, and / or program instructions or logic that, when loaded and used or executed in combination with the computer system, cause or program the computer system to operate as a special-purpose machine. In one embodiment, the techniques described herein are executed by the computer system 205 in response to the processor 210 executing at least one sequence of at least one instruction contained in the main memory 225.These instructions may be read into main memory 225 from another storage medium, such as memory 215. Execution of the instruction sequences contained in main memory 225 causes processor 210 to execute the process steps described herein. In other embodiments, hard-wired circuits may be used instead of or in combination with software instructions.
[0213] The term "storage medium," as used herein, means any non-transitory medium that stores data and / or instructions that enable a machine to operate in a specific manner. These storage media may include non-volatile media and / or volatile media. Non-volatile media include, for example, optical or magnetic disks, such as memory 215. Volatile media include dynamic memory, such as memory 225. Common forms of storage media include, for example, a hard disk drive, a solid-state drive, a flash drive, a magnetic data storage medium, any optical or physical data storage medium, a memory chip, etc. Storage media are distinct from, but may be used in conjunction with, transmission media.Transmission media are involved in the transfer of information between storage media. For example, transmission media include coaxial cables, copper wires, and optical fibers, including the wires that make up a bus of the I / O subsystem 220. Transmission media can also take the form of acoustic or light waves, such as those generated during radio and infrared data communications.
[0214] Various forms of media may be involved in transporting at least one sequence of at least one instruction to the processor 210 for execution. For example, the instructions may initially be transported on a magnetic disk or solid-state drive of a remote computer. The remote computer may load the instructions into its dynamic memory and send the instructions over a communications link such as a fiber optic or coaxial cable or a telephone line using a modem. A modem or router local to the computer system 205 may receive the data over the communications link and convert the data into a format that can be read by the computer system 205.For example, a receiver such as a radio frequency antenna or an infrared detector may receive the data carried in a wireless or optical signal and suitable circuitry may provide the data to the I / O subsystem 220, for example by placing the data on a bus. The I / O subsystem 220 transports the data to the memory 225, from which the processor 210 retrieves and executes the instructions. The instructions received by the memory 225 may optionally be stored on the memory 215 before or after execution by the processor 210.
[0215] The computer system 205 also includes a communication interface 260 coupled to a bus 220. The communication interface 260 provides a bidirectional data communication coupling to the one or more network links 265 that are directly or indirectly connected to at least one communication network, such as a network 270 or a public or private cloud on the Internet. For example, the communication interface 260 may be an Ethernet network interface, an Integrated Services Digital Network (ISDN) card, a cable modem, a satellite modem, or a modem for providing a data communication connection to a corresponding type of communication line, e.g., an Ethernet cable or a metal cable of any type or a fiber optic line or a telephone line.Network 270 broadly represents a local area network (LAN), a wide area network (WAN), a campus network, an Internet network, or any combination thereof. Communications interface 260 may include a LAN card to provide a data communications connection to a compatible LAN, or a cellular radiotelephone interface that is wired to send or receive cellular data according to cellular radiotelephone wireless network standards, or a satellite radio interface that is wired to send or receive digital data according to satellite wireless network standards. In any such implementation, communications interface 260 sends and receives electrical, electromagnetic, or optical signals over signal paths that carry digital data streams representing various types of information.
[0216] The network link 265 typically provides electrical, electromagnetic, or optical data communication directly or via at least one network to other data devices, using, for example, satellite, cellular, or "Wi-Fi" (registered trademark) technology or known as "BLUETOOTH" (registered trademark). For example, the network link 265 may provide a connection through a network 270 to a host computer 250.
[0217] Further, the network link 265 may provide a connection via the network 270 or to other computing devices via interconnecting devices and / or computers that are operated by an Internet Service Provider (ISP) 275. The ISP 275 provides data communication services via a global packet data communication network represented by the Internet 280. A server computer 255 may be coupled to the Internet 280. The server 255 broadly represents any computer, data center, virtual machine, or virtual computing instance with or without a hypervisor,or a computer running a containerized program system such as that known as "DOCKER" (registered trademark) or that known as "KUBERNETES" (registered trademark). The server 255 may represent an electronic digital service that is implemented using more than one computer or instance and that is accessed and used by transmitting web service requests, Uniform Resource Locator (URL) strings with parameters in Hypertext Transfer Protocol (HTTP) payloads, application programming interface (API) calls, application service calls, or other service calls. The computer system 205 and the server 255 may form elements of a distributed computing system that includes other computers,a processing cluster, server farm, or other organization of computers that cooperate to perform tasks or run applications or services. The server 255 may include one or more sets of instructions that are organized as modules, methods, objects, functions, routines, or calls. The instructions may be organized as one or more computer programs, operating system services, or application programs, including mobile applications. The instructions may include an operating system and / or system software; one or more libraries to support multimedia, programming, or other functions; instructions or data protocol stacks to implement TCP / IP (Transmission control protocol / Internet protocol) communication protocols,HTTP or other; file format processing instructions for parsing or rendering files encoded using HTML (for "Hypertext markup language"), XML (for "Extensible markup language"), JPEG (for "Joint Photography Experts Group"), MPEG (for "Moving picture experts group") or PNG (for "Portable Networks Graphics"); user interface instructions for rendering or interpreting commands for a graphical user interface (GUI), a command-line interface or a text-based user interface; application software such as an office suite, Internet access applications, design and manufacturing applications, graphics applications,audio applications, software engineering applications, educational applications, games, or miscellaneous applications. The server 255 may include a web application server that hosts a presentation layer, an application layer, and a data storage layer such as a relational database system using Structured Query Language (SQL) or no SQL, an object store, a graph database, a flat file system, or other data storage.
[0218] The computer system 205 may send messages and receive data and instructions, including program code, via the network(s), network link 265, and communications interface 260. In the Internet example, a server 255 may transmit requested code for an application program via the Internet 280, ISP 275, local area network 270, and communications interface 260. The received code may be executed by the processor 210 as it is received, and / or stored in memory 215, or other non-volatile memory for later execution.
[0219] The execution of instructions as described in this section may implement a process in the form of an instance of a running computer program consisting of program code and its current activity. Depending on the operating system (OS), a process may consist of multiple threads that execute instructions concurrently. In this context, a computer program is a passive collection of instructions, while a process may be the actual execution of those instructions. Multiple processes may be associated with the same program; for example, having multiple instances of the same program open often means that more than one process is running. Multitasking may be implemented to allow multiple processes to share the processor 210.Although each processor 210 or processor core executes only one task at a time, the computer system 205 may be programmed to implement multitasking to allow each processor to switch between currently executing tasks without having to wait for each task to complete. In one embodiment, the switches may be performed when tasks perform input / output operations, when a task indicates that it can be switched, or upon hardware interrupts. Time sharing may be implemented to allow rapid response to user interactive applications by rapidly performing context switches to give the appearance of simultaneous execution of multiple processes.In one embodiment, for security and reliability reasons, an operating system may prevent direct communication between independent processes, by providing strictly mediated and controlled interprocess communication functionality.
Claims
CLAIMS 1. Product, characterized in that it comprises a support surface (32) carrying a superposition (21) in which at least first, second and third copies (14, 17, 18) of a two-dimensional visual object (13) are combined in such a way that the second copy (17) is a translation of the first copy (14) according to a first predetermined translation vector (V1) and that the third copy (18) is a translation of the first copy (14) according to a second predetermined translation vector (V2) having a direction and / or a norm different from the first predetermined translation vector (V1).
2. Product according to claim 1, wherein, among the first, second and third copies (14, 17, 18), at least the first copy (14) and the second copy (17) overlap one another.
3. Product according to one of claims 1 or 2, in which the two-dimensional visual object (13) comprises a scattering of discrete locations (15) within the support surface (32).
4. Product according to one of claims 1 to 3, the support surface (32) of which carries a predetermined error-detection device (58) for checking whether or not a processing of an image taken by photography of at least one part of the support surface (32) is a rectification of this image taken by photography, at least one part of the error-detection device (58) being part of at least one of the first, second and third copies (14, 17, 18) or being distinct from the first, second and third copies (14, 17, 18).
5. Product according to one of claims 1 to 4, in which the support surface (32) comprises a background (16), the superposition comprising at least one shade making at least part of at least one of the first, second and third copies (14, 17, 18) discernible at least with respect to the background.
6. Computer-implemented rectification method (40, 140) for obtaining a rectified image of a support surface (32) of a product according to one of claims 1 to 5, characterized in that it comprises at least the following steps: a) obtaining (42) at least one first image (37; 62) of at least one part of the support surface (32) so that this first image (37; 62) comprises at least one part of the superposition (21), b) producing (43) at least one phase autocorrelation of the first image (37; 62), c) in said at least one phase autocorrelation, identifying (44) at least two correlation vectors (C1, C2) as each corresponding to the phase correlation between two of the first, second and third copies (14, 17, 18), d) determining (55) a transformation or an approximation of this transformation which transforms a tuple composed from the correlation vectors (C1, C2, C3) into a tuple composed from at least two reference vectors (C10, C20) known for the superposition (21), and e) applying (56) the transformation or the approximation to at least a part of the first image (37; 62) to obtain a second image.
7. A method (40, 140) of rectification according to claim 6, which comprises, after step e), a step of applying (57) a test to the second image to determine whether or not the second image conforms to a rectification of at least a part of the first image (37; 62) in a predefined position.
8. A method (40, 140) of rectification according to claim 7, wherein, if the second image is determined to be non-compliant with a rectification of at least a portion of the first image (37; 62) in the predefined position, the method comprises a reiteration: - of step d) (55) by replacing the tuple composed from the reference vectors (C10, C20, C30) by a new tuple composed from the reference vectors (C10, C20, C30), or by replacing the tuple composed from the correlation vectors (C1, C2, C3) by a new tuple composed from the correlation vectors (C1, C2, C3), - from step e) (56), and - from step f) (57), until the second image is determined to be consistent with a rectification of at least a portion of the first image (37; 62) in the predefined position.
9. Method (40, 140) of rectification according to one of claims 7 and 8, the test comprises a step of searching by comparison with a stored error correction (58) and, if an element comparable to the stored error correction (58) is present in the second image according to the search, concluding that the second image is consistent with a rectification of at least a part of the first image (37; 62) in the predefined position.
10. Rectification method (40, 140) according to one of claims 6 to 9, in which step c) comprises at least the following steps: c1) identification (46) of at least four peaks (P20, P21, P30, P31, P40, P41) as being associable into first and second pairs each of which corresponds to the phase correlation between two of the first, second and third copies (14, 17, 18), c2) determination (51) of the two correlation vectors (C1, C2) as each being representative of the position of the peaks of one of the first and second pairs relative to each other.
11. A method (40, 140) of rectification according to claim 10, wherein step c1 comprises the following steps: - performing (47) a rearrangement (52) by swapping a left half and a right half of the phase autocorrelation with each other and by swapping a low half and a high half of the phase autocorrelation with each other, - determination (48) of a main peak (P10) as being the most intense peak on the rearrangement (52), - filtering (49) of the rearrangement (52) to an intensity filtering configured to isolate, as being the most intense, the main peak (P10) and all of the peaks (P20, P21, P30, P31, P40, P41) which can be associated in pairs each corresponding to a phase correlation between two of the copies of the two-dimensional visual object (13), - among all the peaks (P20, P21, P30, P31, P40, P41) which can be associated in pairs, choice (50) of the first and second pairs of peaks as each consisting of two peaks symmetrical with respect to the main peak (P10), on the rearrangement (52).
12. Method (40, 140) of rectification according to claim 11, during sub-step c2) (50), the two correlation vectors (C1, C2) are determined as each being representative of the position of one of the peaks of one of the first and second pairs relative to the main peak (P10) on the rearrangement (52).
13. A rectification method (140) according to one of claims 6 to 12, wherein step a) (42) comprises the following sub-steps: a1) obtaining (601) an initial image (61) of at least a portion of the support surface (32), and a2) dividing (63) the initial image (61) into a plurality of image portions (62) according to an arrangement in which each image portion (62) has a position, each image portion (62) being said first image (62) in one of several iterations of steps b), c) and d) carried out in order to obtain the transformations corresponding to the image portions (62) or approximations of these transformations, each image portion (62) being said first image (62) in one of several iterations of step e) in which, at each image portion (62), the corresponding transformation or its approximation is applied, in order to obtain the second images corresponding to the image portions (62),the rectification method comprising g) a step of constructing (65) a resulting image by assembling the second images so that any second image, among the second images has the same position according to the arrangement as the image portion (62) from which said any second image was obtained by one of the iterations of steps b), c), d) and e).
14. A rectification method (140) according to claim 13, wherein the transformations or approximations of the transformations are affine transformations, the method comprising: h) a step of determining a two-dimensional interpolation of the affine transformations, i) instead of step g) and the iterations of step e), a step of applying the two-dimensional interpolation to the initial image (61).
15. A rectification method (140) according to one of claims 6 to 12, wherein step a) comprises the following sub-steps: a1) obtaining (601) an initial image (61) of at least a portion of the support surface (32), and a2) dividing (63) the initial image (61) into a plurality of image portions (62) according to an arrangement in which each image portion (62) has a position, each image portion (62) being said first image (62) in one of several iterations of steps b), c), d) and e) carried out in order to obtain the second images corresponding to the image portions (62), the rectification method comprising a step of constructing a resulting image by assembling the second images so that any second image among the second images has the same position according to the arrangement as the image portion (62) from which said second any image was obtained by one of the iterations of steps b), c), d) and e).
16. Straightening method according to one of claims 6 to 15, which comprises the following steps, after step a: - by removing at least the first copy (14) in the first image (37; 62) by colorimetric filtering, obtaining a simplified image comprising only the second and third copies (17, 18) among the copies (14, 17, 18) of the two-dimensional visual object (13), - producing a phase autocorrelation of the simplified image, while, in step d) (55), the tuple of two correlation vectors comprises a differentiated correlation vector (C2) identified in step c) (44) as corresponding to the correlation between the second and third copies (17, 18) in the phase autocorrelation of the simplified image.
17. Method (40, 140) of rectification according to one of claims 6 to 16, in which the two known reference vectors (C10, C20) each correspond to the correlation between two of the first, second and third copies (14, 17, 18) when the superposition (21) is in the predefined position.
18. Method (100) for producing a support surface (32) which can be captured by photography in a rectifiable image, characterized in that it comprises at least the following steps: - provision (10) of a two-dimensional visual object (13), - formation (20) of a superposition (21) in which at least first, second and third copies (14, 17, 18) of the two-dimensional visual object (13) are formed such that the second copy (17) is a translation of the first copy (14) according to a first predetermined translation vector (V1), in the superposition plane, and that the third copy (18) is a translation of the first copy (14) in the superposition plane, according to a second predetermined translation vector (V2) having a direction and / or a norm different from the first predetermined translation vector (V1), and - application (30) of the superposition (21) to the support surface (32).
19. Production method (100) according to claim 18, which is a method of producing the support surface (32) of a product (33) according to one of claims 1 to 5.
20. Straightening system for obtaining a straightened image of a support surface (32) of a product according to one of claims 1 to 5, characterized in that it comprises: - at least one processor to execute instructions, and - at least one computer memory storing instructions which, once executed on the at least one processor, lead to the implementation of the method according to one of claims 6 to 19.
21. Computer program for obtaining a rectified image of a support surface (32) of a product according to one of claims 1 to 5, characterized in that it comprises instructions which, once executed on a processor, lead to the implementation of the method according to one of claims 6 to 19.
22. Storage medium capable of being read by a computer, characterized in that it stores the instructions of the computer program according to claim 21.
Citation Information
Patent Citations
improvements to shears, spanners, pliers and other similar tools
FR220E
2-dimensional code pattern, 2-dimensional code pattern supporting medium, 2-dimensional code pattern generating method, and 2-dimensional code reading apparatus and method
US20060049260A1
Stream dot pattern, method of forming stream dot pattern, information input / output method using stream dot pattern, and dot pattern
US20120118968A1
Compensating for geometric distortion of images in constrained processing environments
US20190287226A1
Systems and methods for text and barcode reading under perspective distortion
US20200380229A1