PRODUCT WITH A RIGHTENABLE IMAGE CAPTURABLE SURFACE, IMAGE RIGHTENING METHOD, SYSTEM AND PROGRAM, METHOD FOR PRODUCING THE SURFACE AND COMPUTER-READABLE MEDIUM

A support surface with a superposition of translated two-dimensional visual objects uses phase autocorrelation and affine transformations to rectify distorted images, addressing the challenge of capturing QR codes at varying orientations and perspectives.

FR3160489A1Active Publication Date: 2025-09-26ADVANCED TRACK & TRACE SA
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
FR2024002792
Authority / Receiving Office
FR · FR
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-03-20
Publication Date
2025-09-26
Estimated Expiration
2044-03-20

AI Technical Summary

Technical Problem

Existing image rectification methods for QR codes and similar two-dimensional visual objects struggle to accurately straighten images captured at varying orientations, dimensions, and perspectives, due to their rigid spatial format.

Method used

A support surface with a superposition of three copies of a two-dimensional visual object, each translated by different vectors, combined to enable phase autocorrelation for image rectification, using affine transformations to align the image in a predefined position.

Benefits of technology

The method effectively straightens distorted images by identifying correlation vectors and applying transformations, ensuring accurate extraction of information from QR codes and similar objects despite capture angle and perspective distortions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

TITLE OF THE INVENTION: PRODUCT WITH A CAPTURABLE SURFACE IN A RIGHTENABLE IMAGE, METHOD, SYSTEM AND PROGRAM FOR IMAGE RECTIFICATION, METHOD FOR PRODUCING THE SURFACE AND COMPUTER-READABLE MEDIUM A surface carries an overlay (21) in which first, second and third copies (14, 17, 18) of a two-dimensional visual object are combined. A rectification method for obtaining a rectified image of the surface comprises the steps of:- producing a phase autocorrelation of a first image comprising a part of the overlay (21),- in the phase autocorrelation, identifying at least two correlation vectors,- determining a transformation that transforms a tuple composed from the correlation vectors into a tuple composed from two known reference vectors for the overlay, and- applying the transformation to at least a part of the first image. Figure for abstract: Figure 5
Need to check novelty before this filing date? Find Prior Art

Description

Title of the invention: PRODUCT WITH A RIGHTENABLE IMAGE CAPTURABLE SURFACE, IMAGE RIGHTENING METHOD, SYSTEM AND PROGRAM, METHOD FOR PRODUCING THE SURFACE AND COMPUTER-READABLE MEDIUM Technical field of the invention

[0001] 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, as well as a medium capable of being read by a computer.

[0002] 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. State of the art

[0003] Known in English as "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 able to be recognized despite an orientation, a change in dimensions and / or a perspective effect resulting from the shooting conditions during photography.

[0004] It is known to straighten an image of a QR code in order to be able to extract the information from it. For its straightening, a QR code comprises 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 which is coded on a space thus completely filled, located between the positioning elements.

[0005] It is clear from the above that the spatial format of a QR code is rigidly defined. There is therefore room for improvement in image straightening. Summary of the invention

[0006] 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 so 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 different from the first predetermined translation vector.

[0007] By means of the superposition comprising the first, second and third copies of the two-dimensional visual object, an image of the support surface can be straightened by means of a particular straightening method.

[0008] This rectification method comprises at least steps in which: a) at least a first image is obtained in such a way that this first image comprises at least part of the superposition, b) at least one phase autocorrelation of the first image is produced, c) in said at least one phase autocorrelation, at least two correlation vectors are identified as each corresponding to the phase correlation between two of the first, second and third copies, (d) a transformation or an approximation of this transformation is determined which transforms a tuple composed from the correlation vectors into a tuple composed from at least two reference vectors known for the superposition, and e) the transformation or approximation is applied to at least part of the first image. Brief description of the figures

[0009] Other advantages and 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, among which:

[0010] [Fig-1] is a flowchart representing 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,

[0011] [Fig.2] is a schematic view of a first example of a two-dimensional visual object,

[0012] [Fig.3] is a schematic view of a second copy of the two-dimensional visual object,

[0013] [Fig.4] is a schematic view of a third example of the two-dimensional visual object,

[0014] [Fig.5] is a schematic view of a superposition in which the first, second and third copies of the two-dimensional visual object are combined,

[0015] [Fig.6] is a schematic view which represents a superposition identical to that of [Fig.4] except with regard to the individual shapes of discrete locations constituting the first, second and third copies of the two-dimensional visual object,

[0016] [Fig.7] is a schematic view of 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 [Fig.5] are combined on a support surface seen from the front,

[0017] [Fig.8] is a schematic view of a photographically captured image of the print carried by the product shown in [Fig.7],

[0018] [Fig.9] is a flowchart representing the steps of a rectification method according to a first embodiment,

[0019] [Fig. 10] is a schematic view of a rearrangement of a phase autocorrelation of the image visible in [Fig.8],

[0020] [Fig. 11] is a schematic view of a rearrangement of a phase autocorrelation of the superposition of [Fig.6] when this superposition is viewed from the front, in a predefined position, as in [Fig.6],

[0021] [Fig. 12] is a flowchart representing the steps of a rectification method according to a third embodiment,

[0022] [Fig. 13] is a schematic view showing a cutout of a photographically captured image of the print carried by the product shown in [Fig.7], and

[0023] [Fig. 14] is a diagram of a particular embodiment of a rectification system capable of implementing a computer program to obtain a rectified image of a support surface.

[0024] For the sake of clarity, the figures are not to scale. Description of the embodiments

[0025] In [Fig. 1], a production method 1 according to one embodiment is a method for producing a support surface that can be captured by re-erectable image photography.

[0026] In a step 10 of the production method 1, a two-dimensional visual object 13 is provided, a first example 14 of which is shown in [Fig.2].

[0027] As used herein, the term "visual" in the expression "visual object" indicates that the object is optically discernible in the infrared, the visible spectrum and / or the ultraviolet.

[0028] 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.

[0029] 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 globally 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. According to an alternative embodiment of the invention, the discrete locations 15 can be grouped 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.

[0030] A second example 17 of the two-dimensional visual object 13 is shown in [Fig. 3]. A third example 18 of the two-dimensional visual object 13 is shown in [Fig. 4]. According to a variant, 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.

[0031] In a step 20 of the production method 1, 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].

[0032] As can be seen in [Fig. 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 VI and the third copy 18 is a translation of the first copy 14 according to a second predetermined translation vector V2 different from the first predetermined translation vector VI.

[0033] An alternative embodiment is shown in [Fig. 5]. In [Fig. 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.

[0034] [Fig. 6] shows a superposition 21 which is according to one embodiment. The superposition 21 of [Fig. 6] is identical to the superposition 21 of [Fig. 5] except for the individual shape of the discrete locations 15. In [Fig. 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. According to the embodiment, the individual shapes of the discrete locations 15 are substantially circles which are substantially identical throughout the superposition 21.

[0035] In a step 30 of the production method 1, the overlay 21 is provided on a support surface 32 which 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. According to a variant, 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.

[0036] In [Fig.7], the support surface 32 carries a replication 35 in addition to the super position 21. The replication 35 and the superposition 21 are superimposed. According to a variant, the replication 35 comprises the replication of an element meaningful to a human being. According to a variant, 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 of [Fig.7], the replication 35 is the replication of a stylized bust of a painter.

[0037] According to a variant, the support surface 32 does not carry any replication in addition to the superposition 21.

[0038] According to a variant, the superposition 21 is barely or practically not visible to an average human being. By average human being, we mean a human being having visual faculties which are normal, in the average of humanity, and which are without particular defect or without unusual aptitude. According to a variant, the superposition 21 is barely or practically not visible to an average human being, in particular compared to the reproduction 35.

[0039] According to a first possibility, a small size of the discrete locations 15 helps to make the overlay 21 barely or practically not visible to an average human being. According to a second possibility, the overlay 21 is printed in a low-visibility color, such as a pale yellow. According to a third possibility, the first possibility and the second possibility are combined to make the overlay 21 even less visible. According to a fourth possibility, the overlay 21 is printed with an ink that is invisible when illuminated by natural sunlight and that is visible when illuminated by ultraviolet light. According to a fifth possibility, 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.

[0040] [Fig. 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, so 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.

[0041] By means of the superposition 21, the image 37 is able to be straightened in a predefined position such as a position corresponding to a front view, without inclination, of the support surface 32. A straightening method for obtaining a straightened image of the support surface 32 by means of the superposition 21 is designated by the reference 40 in [Fig.9].

[0042] The straightening method 40 is according to a first embodiment.

[0043] In a step 42 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.

[0044] In a step 43 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.

[0045] The phase autocorrelation of the first image is defined by the following formula: À(I) = F *{ F(I) o F(I)* / IF(I) o F(I)*I} (1) where I is the intensity matrix of the first image, A(I) is the phase autocorrelation of the intensity matrix of the first image, F is the discrete Fourier transform, F(I)* is the complex conjugate of F(I), F 1 is the inverse discrete Fourier transform, while o is the Hadamard matrix product.

[0046] The discrete Fourier transform is calculated numerically using a computer, by implementing the fast Fourier transform (also referred to by the acronym FFT), which is a well-known algorithm.

[0047] In a step 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.

[0048] Step 44 comprises two sub-steps, including a sub-step 46.

[0049] Substep 46 comprises operation 47, operation 48, operation 49 and operation 50.

[0050] In operation 47, a rearrangement is performed by interchanging a left half and a right half of the phase autocorrelation of image 37 with each other and by interchanging a bottom half and a top half of the phase autocorrelation of image 37 with each other. The rearrangement resulting from operation 47 performed on the phase autocorrelation of image 37 is shown schematically and referenced 52 in [Fig. 10].

[0051] In operation 47, a main peak is determined as being the most intense peak on rearrangement 52. The main peak of rearrangement 52 is designated by the reference P10 in [Fig.10].

[0052] In operation 49, the rearrangement 52 is subjected to digital intensity filtering capable of isolating, as being the most intense, the main peak P10 and all the peaks P20, P21, P30, P31, P40 and P41 which can be associated into corresponding pairs each has a phase correlation between two of the copies 15, 17 and 18 of the two-dimensional visual object 13.

[0053] Peaks P20 and P21 are a pair of peaks symmetrical with respect to the main peak P10. Peaks P20 and P21 correspond to the phase correlation between the first copy 14 and the second copy 17 in image 37.

[0054] 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.

[0055] 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.

[0056] In operation 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.

[0057] Operation 50 is an operation in which, among all the peaks P20, P21, P30, P31, P40 and P41 which can be associated in pairs, first and second pairs of peaks are chosen as each consisting of two peaks symmetrical with respect to the main peak P10, on the rearrangement 52.

[0058] In sub-step 44, 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.

[0059] In addition to sub-step 46, step 44 includes a sub-step 51.

[0060] In 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. According to an advantageous variant, in 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. rearrangement 52.

[0061] 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.

[0062] The negative of the vector Cl is called the vector -Cl or the correlation vector -Cl. It is not shown for the sake of clarity. Like the correlation vector Cl, the vector -Cl corresponds to the phase correlation between the first copy 14 and the second copy 17 in image 37. Like the correlation vector Cl, the vector -Cl is a correlation vector.

[0063] The negative of vector C2 is called vector -C2 or correlation vector -C2. It is not shown for clarity. Like correlation vector C2, vector -C2 corresponds to the phase correlation between second copy 17 and third copy 18 in image 37. Like correlation vector C2, vector -C2 is a correlation vector.

[0064] The negative of vector C3 is called vector -C3 or correlation vector -C3. It is not shown for clarity. Like correlation vector C3, vector -C3 corresponds to the phase correlation between first copy 14 and third copy 18 in image 37. Like correlation vector C3, vector -C3 is a correlation vector.

[0065] A rearrangement is shown schematically and referenced 53 in [Fig. 1 1]. The rearrangement 53 is obtained by performing an operation which is identical to operation 47 except that it is performed 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 [Fig. 6], in the predefined position.

[0066] 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.

[0067] The main peak of the 53 rearrangement is designated by the reference P100 in [Fig. 11]

[0068] On rearrangement 53, peaks P120 and P121 are a pair of symmetrical peaks relative 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 [Fig.6].

[0069] 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 [Fig.6].

[0070] In 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 [Fig.6].

[0071] The vector CIO is representative of the position of the peak P120 relative to the main peak P100 on the rearrangement 53. The vector CIO 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 [Fig.6].

[0072] 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 [Fig.6].

[0073] 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 [Fig.6].

[0074] The vectors CIO, C20 and C30 are known reference vectors for the superposition 21.

[0075] The negative of the CIO vector is called the -CIO vector or the -CIO reference vector. It is not shown for the sake of clarity. Like the CIO reference vector, the -CIO vector 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. Like the CIO reference vector, the -CIO vector is a known reference vector for the superposition 21.

[0076] The negative of the vector C20 is called the vector -C20 or the reference vector -C20. It is not shown for the sake of clarity. Like the reference vector C20, 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. Like the reference vector C20, the vector -C20 is a known reference vector for the superposition 21.

[0077] The negative of the vector C30 is called the vector -C30 or the reference vector -C30. It is not shown for the sake of clarity. Like the reference vector C30, 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. Like the reference vector C30, the vector -C30 is a known reference vector for the superposition 21.

[0078] A tuple is composed from the correlation vectors Cl and C2. This is the tuple (Cl, C2).

[0079] According to a first example, a tuple is composed from the reference vectors CIO and C20. According to the first example, this is the tuple (CIO, C20).

[0080] As used herein, 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.

[0081] In a step 55 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, 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).

[0082] In a step 56 of the rectification method 40, the transformation determined in step 55 is applied to the first image 37 to obtain a second image.

[0083] In a step 57 of the rectification method 40, a test is applied to the second image. This test aims to determine whether or not the second image conforms to a rectification of at least a portion 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 portion of the first image in the predefined position.

[0084] According to one embodiment, the stored key is a known pattern present on the support surface 32. According to one embodiment, the superposition comprises the stored key. In [Fig.6], a key 58 is an example of a stored key consisting of a set of discrete locations 15, which together form a known pattern predefined and stored in a memory such as a computer memory. According to one embodiment, in the test of step 57, the second image is searched to see whether an element comparable to the key 58 is present or not in the second image. If an element comparable to the key 58 is present in the second image according to 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.

[0085] In the first example, the reference vector CIO 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 CIO in the superposition 21 seen from the front, in the predefined position.

[0086] 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.

[0087] 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 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. This test of step 57 therefore concludes that the second image is consistent with 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].

[0088] Since the test of step 57 concludes in the first example that the second image is consistent with 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.

[0089] 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.

[0090] Therefore, it is not known whether the tuple composed from correlation vectors chosen in image 37 corresponds to the tuple composed from the reference vectors CIO, -CIO, C20, -C20, C30 and -C30 in the superposition 21 seen from the front, in the predefined position

[0091] According to a second example, the tuple composed from the correlation vectors is always the tuple (Cl, C2) at the end of step 51, while the tuple composed from the reference vectors is the tuple (CIO, C30) in step 55.

[0092] In step 55 performed in the second example, a transformation is determined which transforms the tuple (Cl, C2) into the tuple (CIO, C30). This transformation is an affine transformation which is determined by a numerical method using a computer.

[0093] In step 56 performed in the second example, the transformation determined in step 55 is applied to the first image 37 to obtain a second image.

[0094] In step 57 performed in the second example, the test is applied to the second image.

[0095] 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 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 step 57 which therefore concludes that the second image is not consistent with a rectification of the first image 37 in the predefined position.

[0096] Since the test of 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 (CIO, C30) is replaced by a new tuple composed from the reference vectors CIO, -CIO, C20, -C20, C30 and -C30 and step 55 is repeated with this new tuple as the tuple composed from the reference vectors CIO, -CIO, C20, -C20, C30 and -C30. For example, the new tuple may be the tuple (C20, CIO), the tuple (C20, C30) or the tuple (CIO, C20). In the reiteration of step 55, a new transformation is determined which is the one transforming the tuple (Cl, C2) into the new tuple composed from the reference vectors CIO, -CIO, C20, -C20, C30 and -C30.

[0097] Then, step 56 is also repeated.

[0098] In the reiteration of 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.

[0099] Then, the test of step 57 is also repeated.

[0100] In the reiteration of step 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 method rectification 40 ends or a new reiteration of steps 55, 56 and 57 with yet another new tuple composed from the reference vectors CIO, -CIO, C20, -C20, C30 and -C30 is carried out.

[0101] In the first embodiment which has just been described, we reiterate: - step 55 by replacing the tuple composed from the reference vectors CIO, -CIO, C20, -C20, C30 and -C30 with a new tuple composed from the reference vectors CIO, -CIO, C20, -C20, C30 and -C30, then - step 56, then - step 57.

[0102] According to a variant of the first embodiment, we repeat: - step 55 by replacing the tuple composed from the correlation vectors Cl, -Cl, C2, -C2, C3 and -C3 by a new tuple composed from the correlation vectors Cl, -Cl, C2, -C2, C3 and -C3, then - step 56, then - step 57.

[0103] In the following, a second embodiment of the rectification method is described only in terms of what distinguishes it from the rectification method 40 according to the first embodiment.

[0104] In the second embodiment of the rectification 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.

[0105] 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.

[0106] A phase autocorrelation of the first simplified image is produced. In an operation analogous to operation 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 bottom half and a top half of the phase autocorrelation of the first simplified image with each other. This 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 the sense that they are known to correspond to the phase correlation between the second and third copies 17 and 18.

[0107] In 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 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.

[0108] In other words, in step 55, a transformation is determined which 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 have to 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 long calculations may have to be repeated is reduced.

[0109] 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.

[0110] Step 42 of the rectification method 140 comprises a sub-step 60, in which an initial image 61 of the support surface 32 is obtained. [Fig. 13] shows the initial image 61. For example, the initial image 61 is captured by digital photography of the support surface 32.

[0111] A substep 63 of step 42 of the rectification method 140 follows substep 60. In substep 63, the initial image 62 is divided into a plurality of image portions in an arrangement in which each image portion has a position. In [Fig. 13], the image portions resulting from the division performed in substep 63 are referenced 62. Each image portion 62 is one of several first images that are obtained in step 42 of the rectification method 140.

[0112] 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 part of the support surface 32. Thanks to this, each image portion 62 comprises a part 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 has peaks discernible which result from the phase autocorrelations of the first, second and third copies 14, 17 and 18 with each other.

[0113] In the rectification method 140, a rectification is determined for each image portion 62.

[0114] A rectification is first 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 its step 43 is a phase autocorrelation of the first image portion 62. In other words, the first image in step 43 of the rectification method 40 is here the first image portion 62.

[0115] The rectification method 40 in step 43 of which a phase autocorrelation of the first image portion 62 is produced then comprises, in succession, 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.

[0116] 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 240 of the image rectification method 40 is executed.

[0117] In step 43 of variant 240, the first image is one of the image portions 62 other than the first image portion. In other words, in step 43 of variant 240, a phase autocorrelation of one of the image portions 62 other than the first image portion 62 is produced.

[0118] In variant 240, step 44 is identical to 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 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 240, the test of 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, the assumption is made that the respective rectifications to be applied to the different image portions 62 are close to each other.

[0119] Step 55 of variant 240 is identical to step 55 of the rectification method 40. Step 56 of variant 240 is identical to step 56 of rectification method 40 except that, in step 56 of variant 240, 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 240 is the image portion 62 that was used to determine this transformation by means of steps 43, 44 and 55.

[0120] Variant 240 does not include step 57 or one or more reiterations of steps 55, 56 and 57.

[0121] 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 240. After the implementation of the rectification method 40 to the first image portion 62 and several implementations of the variant 240, 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.

[0122] In a step 65 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.

[0123] 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 superposition 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 superposition 21 and the replication 35 has been carried out on this label.

[0124] A first variant of the rectification method 140 is obtained by replacing at least a part of the variants 240 by the rectification method 40 in the method 140.

[0125] 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 dif- different stages 55.

[0126] 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.

[0127] According to other variants, 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.

[0128] According to variants, 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.

[0129] 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.

[0130] Generally, [Fig. 14] is a block diagram that illustrates an exemplary computer system with which any embodiment and variation may be implemented. In the example of [Fig. 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 [Fig. 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, e.g., 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.

[0131] The computer system 205 comprises an input / output subsystem (called “FO”, for “Input / Output”, translated as Entrée / sortie in French) 220 which may comprise 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.

[0132] 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.

[0133] 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.

[0134] 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 FO 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 computer-implemented methods for performing the techniques of this document.

[0135] 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. ;

[0136] 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.

[0137] 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.

[0138] 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.

[0139] 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.

[0140] 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.

[0141] 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.

[0142] The term "storage medium" as used herein refers to 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.

[0143] Storage media are distinct from, but may be used in conjunction with, transmission media. Transmission media participate in the transfer of information between storage media. For example, transmission media include coaxial cables, copper wires, and optical fibers, including wires that constitute a bus of the I / O subsystem 220. Transmission media may also take the form of acoustic or light waves, such as those generated during radio and infrared data communications.

[0144] 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.

[0145] 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, for example, an Ethernet cable or a metallic cable of any type or a fiber optic line or a telephone line.The network 270 broadly represents a local area network (LAN), a wide area network (WAN), a campus network, an Internet network, or any combination thereof. The communication 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, the communications interface 260 sends and receives electrical, electromagnetic, or optical signals over signal paths that carry digital data streams representing various types of information.

[0146] 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, known as "Wi-Fi" (registered trademark) or known as "BLUETOOTH" (registered trademark) technology. For example, the network link 265 may provide a connection through a network 270 to a host computer 250.

[0147] Further, network link 265 may provide a connection via network 270 or to other computing devices via interconnect devices and / or computers that are operated by an Internet Service Provider (ISP) 275. 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. Server 255 broadly represents any computer, data center, virtual machine or virtual computing instance with or without a hypervisor, or 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, a server farm, or other organization of computers that cooperate to perform tasks or run applications or services.The server 255 may comprise one or more sets of instructions which are organized in the form of modules, methods, . of objects, functions, routines, or calls. Instructions may be organized as one or more computer programs, operating system services, or application programs, including mobile applications. 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 (for “Transmission control protocol / Internet protocol”), HTTP, or other communication protocols;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.

[0148] The computer system 205 may send messages and receive data and instructions, including program code, via the network(s), the network link 265, and the communications interface 260. In the Internet example, a server 255 may transmit requested code for an application program via the Internet 280, the ISP 275, the local area network 270, and the 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.

[0149] Execution of instructions as described in this section may implement a process in the form of an instance of a currently executing computer program consisting of program code and its current activity. According to the operating system (called "OS"), a process may consist of multiple threads that execute instructions simultaneously. 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, opening multiple instances of the same program 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, switches may be performed when tasks perform input / output operations, when a task indicates it can be switched, or upon hardware interrupts. Time sharing may be implemented to enable 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. Statement of the invention

[0150] The invention has at least the aim of offering more freedom to design a means provided on a support surface to allow rectification of an image of this surface.

[0151] According to the invention, this aim is achieved by means of a product, which comprises a support surface carrying a superposition 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 different from the first predetermined translation vector.

[0152] The support surface of the product defined above can be captured by photography in an image which, thanks to the superposition, can be rectified by means of a rectification method defined below.

[0153] The overlay forms a means provided on a surface to enable the straightening of an image of this surface. The invention offers more freedom for design a means provided on a supporting surface to allow the rectification 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.

[0154] For example, the two-dimensional visual object comprises a scattering of discrete locations within the support surface.

[0155] 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.

[0156] 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.

[0157] According to one possibility made possible by the invention, the superposition is barely or practically not visible to an average human being. This is particularly advantageous 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 advantageous when the coded or encrypted information includes an anti-counterfeiting function. Conversely, QR codes are easily recognizable. For example, counterfeits bearing QR codes are known which are damaged in such a way that it is impossible to verify whether or not they contain authentication information as they should in order to be able to provide an anti-counterfeiting function.In such cases, the deterioration may be carried out by counterfeiters in such a way as to appear accidental when it is deliberate.

[0158] For example, the two-dimensional visual object comprises an element which is meaningful to a human being and which, 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.

[0159] The product defined above may incorporate one or more other advantageous characteristics, alone or in combination, in particular among those defined below.

[0160] 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.

[0161] In embodiments, of the first, second, and third copies, at least the first copy and the second copy overlap one another in the product.

[0162] Thus, it is made possible to arrange the first and second copies on a reduced surface area. It is also made difficult, if not impossible, to deliberately damage the first copy without damaging the second copy.

[0163] In embodiments, the two-dimensional visual object comprises a scattering of discrete locations within the support surface.

[0164] Thus, a small size can be given to the discreet locations, which helps to make the overlay little or practically not visible to an average human being.

[0165] 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 using the rectification method defined below.

[0166] 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 make the coded or encrypted information inaccessible.This is of great interest when the coded and / or encrypted information is an anti-counterfeiting code.

[0167] 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.

[0168] The invention also relates to a rectification method implemented by computer to obtain a rectified image of a support surface of a product as defined above, this rectification method comprising at least steps in which: a) at least one first image of at least one part of the support surface is obtained in such a way that this first image comprises at least one part of the su- perposition, b) at least one phase autocorrelation of the first image is produced, c) in said at least one phase autocorrelation, at least two correlation vectors are identified 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 superposition, and e) applying the transformation or approximation to at least a part of the first image to obtain a second image.

[0169] The rectification method defined above is capable of rectification, in a predefined position, of an image of the support surface of a product as defined above.

[0170] In embodiments, the rectification method comprises a step which follows step e) and in which:

[0171] f / a test is applied 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 in a predefined position.

[0172] In embodiments, if the test in step f) determines that the second image is not in conformity with a rectification of at least a portion of the first image in the predefined position, the following is repeated: - step d) by replacing the tuple composed from the reference vectors with a new tuple composed from the reference vectors, or by replacing the tuple composed from the correlation vectors with a new tuple composed from the correlation vectors, - step e), and - step f), until step f) determines that the second image conforms to a rectification of at least a portion of the first image in the predefined position.

[0173] In embodiments, in the test of the rectification method, in the second image, a search is carried out by comparison with a stored error correction and, if an element comparable to the stored error correction is present in the second image according to the search, it is concluded that the second image is consistent with a rectification of at least a portion of the first image in the predefined position.

[0174] In embodiments, step c) comprises at least sub-steps in which: cl) at least four peaks are 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, c2) 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.

[0175] In embodiments, in substep cl): - a rearrangement is carried out 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, - a main peak is determined as the most intense peak on the rearrangement, - the rearrangement is subjected to intensity filtering capable of isolating, as being the most intense, the main peak and all the peaks that can be associated into pairs, each corresponding to a phase correlation between two of the copies of the two-dimensional visual object, - among all the peaks that can be combined into pairs, we choose the first and second pairs of peaks as each consisting of two peaks symmetrical with respect to the main peak, on the rearrangement.

[0176] In embodiments, in 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.

[0177] In embodiments, step a) comprises sub-steps in which: a1) an initial image of at least a portion of the support surface is obtained, and a2) the initial image is divided 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) which are carried out in order to obtain the transformations corresponding to the image portions or approximations of these transformations,

[0178] 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 straightening method comprising a step in which: g) 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).

[0179] Thus, piecewise rectification is carried out. Piecewise rectification is particularly interesting when the support surface is not flat or practically planar, for example when the support surface has at least one edge and / or at least one curvature. In particular, piecewise straightening is particularly interesting when the support surface is no longer planar or practically planar whereas 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.

[0180] In embodiments, the transformations or approximations of the transformations are affine transformations, the method comprising steps in which: h) a two-dimensional interpolation of the affine transformations is determined, i) instead of step g) and the iterations of step e), the two-dimensional interpolation is applied to the initial image.

[0181] Thus, the piecewise adjustment is “smoothed”.

[0182] In embodiments, step a) comprises sub-steps in which: a1) an initial image of at least a portion of the support surface is obtained, and a2) the initial image is divided 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) which are carried out in order to obtain the second images corresponding to the image portions, the rectification method comprising a step in which a resulting image is constructed 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).

[0183] Thus, piecewise straightening 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 whereas 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-flat support after the printing of the overlay 21 has been carried out on this label.

[0184] In embodiments, the rectification method comprises steps which follow step a) and in which: - by removing at least the first copy in the first image by filtering colorimetric, a simplified image is obtained comprising only the second and third copies among the copies of the two-dimensional visual object, - a phase autocorrelation of the simplified image is produced, while, in step d), the tuple of two correlation vectors comprises a differentiated correlation vector which is identified in step c) as corresponding to the correlation between the second and third copies in the phase autocorrelation of the simplified image.

[0185] Thus, it is possible to reduce the number of times where large and long calculations may have to be repeated.

[0186] 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.According to this possibility, 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. According to this possibility, 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 are distinguished 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 colorimetric filtration removes the first copy in the first image while leaving the second and third copies, while the other colorimetric filtration removes the second copy in the first image while leaving the first and second copies.

[0187] 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.

[0188] The invention also relates to a method for producing a support surface. captureable by photography in a rectifiable image, characterized in that it comprises at least steps in which: - we provide a two-dimensional visual object, - a superposition is formed 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 different from the first predetermined translation vector, and - the support surface is provided with the overlay.

[0189] In embodiments, the production method is a method of producing the support surface of a product as defined above.

[0190] The invention also relates to a rectification system for obtaining a rectified image of a support surface of a product as defined above, this rectification system comprising: - 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 steps: a) a first image of at least a portion of the support surface is obtained so that this first image comprises at least a portion of the superposition, b) at least one phase autocorrelation of the first image is produced, c) in said at least one phase autocorrelation, at least two correlation vectors are identified as each corresponding to the phase correlation between two of the first, second and third copies, (d) a transformation or an approximation of this transformation is determined which transforms a tuple composed from the correlation vectors into a tuple composed from at least two reference vectors known for the superposition, and e) the transformation or approximation is applied to at least part of the first image to obtain a second image.

[0191] The invention also relates to a computer program for obtaining a rectified image of a support surface of a product as defined above, this computer program comprising instructions which, once executed on a processor, lead to the implementation of the steps: a) a first image of at least a portion of the support surface is obtained so that this first image comprises at least a portion of the superposition, b) at least one phase autocorrelation of the first image is produced, c) in said at least one phase autocorrelation, at least two are identified correlation vectors as each corresponding to the phase correlation between two of the first, second and third copies, (d) a transformation or an approximation of this transformation is determined which transforms a tuple composed from the correlation vectors into a tuple composed from at least two reference vectors known for the superposition, and e) the transformation or approximation is applied to at least part of the first image to obtain a second image.

[0192] The invention also relates to a storage medium capable of being read by a computer, this medium storing the instructions of the computer program as defined above.

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 (VI) and that the third copy (18) is a translation of the first copy (14) according to a second predetermined translation vector (V2) different from the first predetermined translation vector (VI).

2. The product of 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 and 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. A computer-implemented rectification method for obtaining a rectified image of a support surface (32) of a product according to one of claims 1 to 4, characterized in that it comprises at least steps in which: a) at least one first image (37; 62) of at least one part of the support surface (32) is obtained so that this first image (37; 62) comprises at least one part of the superposition (21), b) at least one phase autocorrelation of the first image (37; 62) is produced, c) in said at least one phase autocorrelation, at least two correlation vectors (C1, C2) are identified as each corresponding to the phase correlation between two of the first, second and third copies (14, 17, 18), d) a transformation or an approximation of this transformation is determined which transforms a tuple composed from the correlation vectors (Cl, C2, C3) into a tuple composed from at least two reference vectors (CIO, C20) known for the superposition (21), and e) the transformation or the approximation is applied to at least a part of the first image (37; 62) to obtain a second image.

6. A rectification method according to claim 5, which comprises a step following step e) and in which: f / a test is applied to the second image to determine whether or not the second image conforms to a rectification of at least a portion of the first image (37; 62) in a predefined position.

7. A rectification method according to claim 6, wherein, if the test in step f) determines that the second image is not in conformity with a rectification of at least a portion of the first image (37; 62) in the predefined position, the following are repeated: - step d) by replacing therein the tuple composed from the reference vectors (C10, C20, C30) with a new tuple composed from the reference vectors (C10, C20, C30), or by replacing therein the tuple composed from the correlation vectors (C1, C2, C3) with a new tuple composed from the correlation vectors (C1, C2, C3), - step e), and - step f), until step f) determines that the second image is in conformity with a rectification of at least a portion of the first image (37; 62) in the predefined position.

8. A method of straightening according to one of claims 6 and 7, in the test of which, in the second image, a search is carried out by comparison with a stored polarizer (58) and, if an element comparable to the stored polarizer (58) is present in the second image according to the search, it is concluded that the second image is in accordance with a straightening of at least a part of the first image (37; 62) in the predefined position.

9. Rectification method according to one of claims 5 to 8, in which step c) comprises at least sub-steps in which: cl) at least four peaks (P20, P21, P30, P31, P40, P41) are 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 (14, 17, 18), c2) the two correlation vectors (Cl, C2) are determined as each being representative of the position of the peaks of one of the first and second pairs relative to each other.

10. A rectification method according to claim 9, in sub-step cl) of which: - a rearrangement (52) is carried out 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, - a main peak (P 10) is determined as being the most intense peak on the rearrangement (52), - the rearrangement (52) is subjected to intensity filtering capable of isolating, as being the most intense, the main peak (P10) and all the peaks (P20, P21, P30, P31, P40, P41) which can be associated into 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) can be combined in couples,we choose 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).,

11. Rectification method according to claim 10, in sub-step c2) of which the two correlation vectors (Cl, 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).

12. A straightening method according to one of claims 5 to 11, wherein step a) comprises sub-steps in which: a1) an initial image (61) of at least a portion of the support surface (32) is obtained, and a2) the initial image (61) is divided 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) which are 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, to 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 a step in which: g) 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 b), c), d) and e).

13. A rectification method according to claim 12, wherein the transformations or approximations of the transformations are affine transformations, the method comprising steps in which: h) a two-dimensional interpolation of the affine transformations is determined, i) instead of step g) and the iterations of step e), the two-dimensional interpolation is applied to the initial image (61).

14. A rectification method according to one of claims 5 to 11, wherein step a) comprises sub-steps in which: a1) an initial image (61) of at least a portion of the support surface (32) is obtained, and a2) the initial image (61) is divided 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) which are carried out in order to obtain the second images corresponding to the image portions (62), the rectification method comprising a step in which 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 second images. iterations of steps b),c), d) and e).,

15. A straightening method according to one of claims 5 to 14, which comprises steps which follow step a) and in which: - by deleting at least the first copy (14) in the first image (37; 62) by colorimetric filtering, a simplified image is obtained comprising only the second and third copies (17, 18) among the copies (14, 17, 18) of the two-dimensional visual object (13), - a phase autocorrelation of the simplified image is produced, while, in step d), the tuple of two correlation vectors comprises a differentiated correlation vector (C2) which is identified in step c) as corresponding to the correlation between the second and third copies (17, 18) in the phase autocorrelation of the simplified image.

16. A rectification method according to one of claims 5 to 15, in which the two known reference vectors (CIO, 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.

17. Method for producing a support surface (32) which can be captured by photography in a rectifiable image, characterized in that it comprises at least steps in which: - a two-dimensional visual object (13) is provided, - a superposition (21) is formed in which at least first, second and third copies (14, 17, 18) of the 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 (VI), 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) different from the first predetermined translation vector (VI), and - the superposition (21) is provided on the support surface (32).

18. A production method according to claim 17, which is a method of producing the support surface (32) of a product (33) according to one of claims 1 to 4.

19. Rectification system for obtaining a rectified image of a support surface (32) of a product according to one of claims 1 to 4, characterized in that it comprises: - at least one processor for executing instructions, and - at least one computer memory storing instructions which, once executed on the at least one processor, lead to the implementation implementing the steps: a) a first image (37; 62) of at least a portion of the support surface (32) is obtained so that this first image (37; 62) comprises at least a portion of the superposition (21), b) at least one phase autocorrelation of the first image (37; 62) is produced, c) in said at least one phase autocorrelation, at least two correlation vectors (C1, C2) are identified as each corresponding to the phase correlation between two of the first, second and third copies (14, 17, 18), d) a transformation or an approximation of this transformation is determined 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) the transformation or the approximation is applied to at least a portion of the first image (37; 62) ; 62) to obtain a second image.

20. Computer program for obtaining a rectified image of a support surface (32) of a product according to one of claims 1 to 4, characterized in that it comprises instructions which, once executed on a processor, lead to the implementation of the steps: a) a first image (37; 62) of at least one part of the support surface (32) is obtained so that this first image (37; 62) comprises at least one part of the superposition (21), b) at least one phase autocorrelation of the first image (37;62), c) in said at least one phase autocorrelation, at least two correlation vectors (Cl, C2) are identified as each corresponding to the phase correlation between two of the first, second and third copies (14, 17, 18), d) a transformation or an approximation of this transformation is determined which transforms a tuple composed from the correlation vectors (Cl, C2, C3) into a tuple composed from at least two reference vectors (CIO, C20) known for the superposition (21), and e) the transformation or the approximation is applied to at least a part of the first image (37; 62) to obtain a second image.;

21. Storage medium capable of being read by a computer, characterized in that it stores the instructions of the computer program according to claim 20.

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