PRODUCT WITH A CAPTUREABLE SURFACE IN A RECTIFIABLE IMAGE, IMAGE RECTIFICATION METHOD, SYSTEM AND PROGRAM, SURFACE PRODUCTION METHOD AND COMPUTER-READABLE MEDIA

A support surface with a superposition of translated two-dimensional visual objects enables effective image rectification by phase autocorrelation and affine transformations, addressing the limitations of existing QR code decoding methods under distortion.

FR3160489B1Active Publication Date: 2026-06-26ADVANCED TRACK & TRACE SA

Patent Information

Authority / Receiving Office
FR · FR
Patent Type
Patents
Current Assignee / Owner
ADVANCED TRACK & TRACE SA
Filing Date
2024-03-20
Publication Date
2026-06-26

AI Technical Summary

Technical Problem

Existing image rectification methods for QR codes and similar two-dimensional visual objects are limited by their rigid spatial format, making them difficult to recognize and decode accurately when subjected to orientation, dimension changes, or perspective distortions during photography.

Method used

A support surface is created with a superposition of three copies of a two-dimensional visual object, each translated by different vectors, allowing for image rectification through phase autocorrelation and affine transformations to correct for distortions.

Benefits of technology

The method effectively rectifies distorted images of the support surface, ensuring accurate recognition and decoding of encoded information despite changes in orientation, dimensions, or perspective.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000041_0000
    Figure 00000041_0000
  • Figure 00000041_0001
    Figure 00000041_0001
  • Figure 00000042_0000
    Figure 00000042_0000
Patent Text Reader

Abstract

TITLE OF THE INVENTION: PRODUCT WITH A CAPTUREABLE SURFACE IN A RECTIFIABLE IMAGE, METHOD, SYSTEM AND PROGRAM FOR IMAGE RECTIFICATION, METHOD FOR PRODUCING THE SURFACE AND COMPUTER-READABLE MEDIUM. A surface carries a superposition (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: - a phase autocorrelation is produced of a first image comprising a portion of the superposition (21), - at least two correlation vectors are identified in the phase autocorrelation, - a transformation is determined that transforms a tuple composed of the correlation vectors into a tuple composed of two known reference vectors for the superposition, and - the transformation is applied to at least a portion of the first image. Figure for the summary: Figure 5
Need to check novelty before this filing date? Find Prior Art

Description

Title of the invention: PRODUCT WITH AN IMAGE-CATCHABLE SURFACE THAT CAN BE RECTIFIED, METHOD, SYSTEM AND PROGRAM FOR RECTIFICATION IMAGE, PRODUCTION METHOD FOR SURFACE AND MEDIA CAPABLE OF BEING READ BY A COMPUTER 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 captureable support surface in 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 on a substrate bearing an anti-counterfeiting code and / or containing other information. Prior 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 a photographic image must be recognizable despite an orientation, a change in dimensions and / or a perspective effect resulting from the shooting conditions during the photograph.

[0004] It is known to rectify an image of a QR code in order to extract the information. For rectification, a QR code comprises three positioning elements, each consisting of a black square and a white square centered within the 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 encoded in a completely filled space between the positioning elements.

[0005] It follows from the above that the spatial format of a QR code is defined in a rigid manner. There is therefore room for improvements with regard to image rectification. Summary of the invention

[0006] A product comprises a support surface bearing a superposition in which at least first, second, and third copies of a two-dimensional visual object are combined such that the second copy is a translation of the first copy along a first predetermined translation vector and the third copy is a translation of the first copy along a second predetermined translation vector different from the first predetermined translation vector.

[0007] Thanks to the superposition comprising the first, second and third copies of the two-dimensional visual object, an image of the support surface can be rectified by means of a particular rectification process.

[0008] This rectification process includes at least steps in which: a) We obtain at least one first image such that this first image includes 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) We determine a transformation or an approximation of this transformation that transforms a composite tuple from the correlation vectors into a composite tuple from at least two known reference vectors for the superposition, and e) the transformation or approximation is applied to at least a part of the first image. Brief description of the figures

[0009] Other advantages and features will become clearer from the following description of several particular embodiments of the invention, given by way of non-limiting examples and shown in the accompanying drawings, among which:

[0010] [Fig-1] is a flowchart representing the steps of a production process which, according to an embodiment, is a production process for a surface-support that can be captured by photography in a rectifiable image,

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

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

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

[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 forms 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 painter's bust and the superimposition shown in [Fig. 5] are combined on a front-viewed support surface,

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

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

[0019] [Fig. 10] is a schematic view of a rearrangement of a phase autocorrelation of the image visible on [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 process according to a third embodiment,

[0022] [Fig. 13] is a schematic view representing a cutout of a photographic 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 that can implement 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 implementation methods

[0025] In [Fig. 1], a production process 1 according to an embodiment is a production process of a support surface that can be captured by photography in a rectifiable image.

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

[0027] As it is understood here, 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 distant from each other.

[0029] The discrete locations 15 are scattered within a background 16, from which they are distinguishable. At least some of the discrete locations 15 are scattered randomly, that is, in a way that depends on chance. Within the background 16, the discrete locations 15 are scattered globally without being organized according to one or more repeating patterns. Some of the discrete locations 15 may include coded and / or encrypted information, such as an anti-counterfeiting code. According to one 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 one embodiment, the discrete locations 15 have substantially the same individual shape in each of the first, second, and third examples 14, 17, and 18. The spacing 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 process 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 on the [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 in such a way that the second copy 17 is a translation of the first copy 14 along a first predetermined translation vector VI and that the third copy 18 is a translation of the first copy 14 along 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 specimen 14, a second individual shape in the second specimen 17, and a third individual shape in the third specimen 18.

[0034] Figure 6 represents a superposition 21 which, according to one embodiment, is identical to the superposition 21 of Figure 5 except for the individual shape of the discrete locations 15. In Figure 6, the discrete locations 15 have the same individual shape in the first instance 14, in the second instance 17, and in the third instance 18. According to the embodiment, the individual shapes of the discrete locations 15 are substantially identical circles throughout the superposition 21.

[0035] In a step 30 of the production process 1, a substrate surface 32 comprising a product 33 visible in [Fig. 7] is provided with the overlay 21. For example, the overlay 21 is printed onto the substrate surface 32. In [Fig. 7], the substrate surface 32 is viewed from the front, in a predefined position. According to one embodiment, one or more inks are positioned at the discrete locations 15 when printing the superposition 21 on the support surface 32. For example, the support surface 32 is one face of a label.

[0036] In [Fig. 7], the support surface 32 bears a replication 35 in addition to the overlay 21. The replication 35 and the overlay 21 are superimposed. In one embodiment, the replication 35 comprises the replication of an element significant to a human being. In another embodiment, the replication 35 comprises the replication of an element chosen from among 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 one variant, the support surface 32 does not carry replication in addition to the overlay 21.

[0038] According to one variant, the superposition 21 is barely or practically invisible to an average human being. By average human being is meant a human being with normal visual faculties, within the average range of humanity, and without any particular defect or unusual aptitude. According to one variant, the superposition 21 is barely or practically invisible to an average human being, especially compared to reproduction 35.

[0039] According to a first possibility, a small size of the discreet locations 15 contributes to making the overlay 21 barely or practically invisible to the average human being. A second possibility is that the overlay 21 is printed in a faint color, such as pale yellow. A third possibility combines the first and second possibilities to make the overlay 21 even less visible. A fourth possibility is that the overlay 21 is printed with an ink that is invisible under natural sunlight but visible under ultraviolet light. A fifth possibility is that the overlay 21 is printed with an ink whose color is not in the visible spectrum but can 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 with respect 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 scaling factor, compared to the original on the support surface 32.

[0041] By means of the superposition 21, the image 37 can be rectified into a predefined position such as a position corresponding to a front view, without inclination, of the support surface 32. A rectification method for obtaining a The rectified image of the support surface 32 by means of the superposition 21 is designated by the reference 40 on the [Fig.9].

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

[0043] In a step 42 of the straightening process 40, a first image of at least a portion of the support surface 32 is obtained such that this first image includes at least a portion of the overlay 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. Alternatively, the image 37 is obtained by receiving it via digital communication.

[0044] In a step 43 of the rectification process 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: A(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, implementing the fast Fourier transform (also designated by the acronym FFT from the English name "fast Fourier transform"), which is a well-known algorithm.

[0047] In a step 44 of the rectification process 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, one of which is 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 lower half and an upper 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 as 52 in [Fig. 10].

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

[0052] In operation 49, the rearrangement 52 is subjected to a 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 that can be associated into pairs, each corresponding to 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 among the symmetrical peak pairs P20 and P21, P30 and P31, and P40 and P41. For example, the first pair of peaks is chosen from the symmetrical peak pairs P20 and P21. For example, the second pair of peaks is chosen from the symmetrical peak pairs P30 and P31.

[0057] Operation 50 is an operation in which, among the totality of peaks P20, P21, P30, P31, P40 and P41 that 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 substep 44, at least four peaks were therefore 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 examples 15, 17 and 18. For example, peaks P20 and P21 were identified as being associable into a first pair corresponding to the phase correlation between two of the first, second and third examples 15, 17 and 18. For example, peaks P30 and P31 were identified as being associable into a second pair corresponding to the phase correlation between two of the first, second and third examples 15, 17 and 18.

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

[0060] In substep 51, the two correlation vectors are determined to be 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 substep 51, the two correlation vectors are determined to each represent 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 to represent the position of peak P20 relative to the main peak P10 on the rearrangement 52. For example, the correlation vector C2 is chosen to represent the position of peak P20 relative to the main peak P10 on the rearrangement 52.

[0061] On [Fig. 10], the vector C3 is a correlation vector representing the position of 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 clarity. Like the correlation vector Cl, the vector -Cl corresponds to the phase correlation between the first specimen 14 and the second specimen 17 in image 37. Like the correlation vector Cl, the vector -Cl is a correlation vector.

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

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

[0065] A rearrangement is schematically represented and referenced as 53 in [Fig. 11]. 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 viewed from the front, in the predefined position, with each other and by interchanging a lower half and an upper half of the phase autocorrelation of the superposition 21 viewed from the front, in the predefined position, with each other.

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

[0068] On the rearrangement 53, the peaks P120 and P121 are a pair of peaks symmetric with respect to the main peak P100. The peaks P120 and P121 correspond to the phase correlation between the first copy 14 and the second copy 17 in the superposition 21 seen from the front, in the predefined position, as in [Fig.6].

[0069] On the rearrangement 53, the peaks P130 and P131 are a pair of peaks symmetric 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] On the rearrangement 53, the peaks P140 and P141 are a pair of peaks symmetric 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 CIO vector is representative of the position of the peak P120 relative to the main peak P100 on the rearrangement 53. 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, as in [Fig.6].

[0072] The vector C20 is representative of the position of the peak P130 with respect 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 with respect 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 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 front-view superposition 21, 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 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 front-view superposition 21, 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 specimen 14 and the third specimen 18 in the front-view superposition 21, 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. It 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, it is the tuple (CIO, C20).

[0080] As used here, a tuple (also called a "list", "finite family", or "finite sequence") is a finite ordered collection of objects, which are also called elements. Generally, a tuple consisting of two objects is also called a pair.

[0081] In a step 55 of the rectification process 40, a transformation is determined that transforms a composite tuple from the correlation vectors C1, -C1, C2, -C2, C3, and -C3 into a composite tuple from at least two reference vectors among the reference vectors C10, -C10, C20, -C20, C30, and -C30 known for superposition. This transformation is an affine transformation that is determined by a numerical method using a computer. More precisely, the transformation is a linear mapping. According to the first example of the first embodiment, step 55 of the rectification process 40 is a step in which a transformation is determined that transforms the tuple (C1, C2) into the tuple (C10, C20).

[0082] In a step 56 of the rectification process 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 process 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 performed in the second image by comparison with a key stored in a memory such as 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] In one embodiment, the stored keying feature is a known pattern present on the support surface 32. In another embodiment, the overlay includes the stored keying feature. In [Fig. 6], a keying feature 58 is an example of a stored keying feature consisting of a set of discrete locations 15, which together form a predefined known pattern stored in a memory such as a memory computer. According to one embodiment, in the test of step 57, the second image is checked to see if an element comparable to the alignment feature 58 is present. If an element comparable to the alignment feature 58 is found in the second image, the second image is concluded to conform to a rectification of at least a part of the first image (here image 37) into the predefined position.

[0085] In the first example, the reference vector CIO is a correlation vector corresponding to the phase correlation between the first specimen 14 and the second specimen 17 in the front-view superposition 21, in the predefined position. In the first example, the correlation vector Cl corresponds to the phase correlation between the first specimen 14 and the second specimen 17 in image 37. In the first example, the correlation vector Cl in image 37 corresponds to the reference vector CIO in the front-view superposition 21, 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 specimen 17 and the third specimen 18 in the front-view superposition 21, in the predefined position. In the first example, the correlation vector C2 corresponds to the phase correlation between the second specimen 17 and the third specimen 18 in image 37. In the first example, the correlation vector C2 in image 37 corresponds to the reference vector C20 in the front-view superposition 21, in the predefined position.

[0087] According to the first example, the tuple (Cl, C2) in image 37 corresponds to the tuple (CIO, C20) in the front-view superposition 21, in the predefined position. Therefore, the transformation determined in step 55 is the one sought, so that the stored alignment feature, for example alignment feature 58, is found in the second image by the test in step 57. This test in step 57 thus concludes that the second image conforms to a rectification 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] As the test in step 57 concludes in the first example that the second image conforms to a rectification of the first image 37 in a predefined position, the rectification process 40 has reached its end and stops. In [Fig. 9], the end of the rectification process 40 is designated by reference numeral 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] Consequently, 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 front-view superposition 21, 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 carried out 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 carried out 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 carried out in the second example, the test is applied to the second image.

[0095] The tuple (Cl, C2) in image 37 does not correspond to the tuple (CIO, C30) in the front-view superposition 21, in the predefined position. Consequently, the transformation determined in step 55 in the second example is not the one sought. It follows that, in the second example, the stored alignment feature, for example alignment feature 58, is not found in the second image by the test in step 57, which therefore concludes that the second image does not conform to a rectification of the first image 37 in the predefined position.

[0096] Since the test in 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 can be the tuple (C20, CIO), the tuple (C20, C30) or the tuple (CIO, C20). In the reiteration of step 55, we determine a new transformation which is that which transforms the tuple (Cl, C2) into the new tuple composed from the reference vectors CIO, -CIO, C20, -C20, C30 and -C30.

[0097] Next, we also repeat step 56.

[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] Next, we also repeat the test from step 57.

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

[0101] In the first embodiment just 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 with a new tuple composed from the correlation vectors Cl, -Cl, C2, -C2, C3 and -C3, then - step 56, then - step 57.

[0103] In what follows, only what distinguishes a second embodiment of the straightening process from the straightening process 40 according to the first embodiment is described.

[0104] In the second embodiment of the rectification process, 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 in such a way that the first copy 14 can be removed from the first image by a 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 the 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 interchanging The left and right halves of the phase autocorrelation of the first simplified image are swapped with each other, and the lower and upper halves of the phase autocorrelation of the first simplified image are swapped. 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 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 Cl, -Cl, 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 that transforms a tuple comprising the correlation vector C2 and the correlation vector C1 or C3 into a tuple comprising the reference vector C20 or -C20 and one of the reference vectors C10, -C10, C30, and -C30. This reduces the maximum number of possible cases in which the test in step 57 can be applied. At the same time, it reduces the number of times steps 55 and 56 might need to be repeated before the test in step 57 terminates the correction process according to a second embodiment. This, in turn, reduces the number of times large and lengthy calculations might need to be repeated.

[0109] The steps of a straightening process 140 according to a third embodiment are shown in [Fig. 12]. In what follows, only those aspects of straightening process 140 that differ from process 40 are described. Furthermore, provided they are identical or equivalent, a referenced step of straightening process 40 and a referenced step of process 140 are designated by the same reference numeral.

[0110] Step 42 of the straightening process 140 includes a substep 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 process 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 as 62. Each image portion 62 is one of several initial images obtained in step 42 of the rectification process 140.

[0112] In the superposition 21, the first, second, and third copies 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 includes 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 also contains a sufficiently large number of discrete locations 15 so that its phase autocorrelation exhibits discernible peaks resulting from the phase autocorrelations of the first, second, and third copies 14, 17, and 18 with each other.

[0113] In the rectification process 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 process 40 is carried out so 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 process 40 is here the first image portion 62.

[0115] The rectification process 40, in step 43 of which a phase autocorrelation of the first image portion 62 is produced, subsequently comprises steps 43, 44, 55, 56, 57, and 60, which are the leftmost steps shown in [Fig. 12]. Optionally, it also comprises one or more consecutive iterations of steps 55, 56, and 57, depending on the result(s) of the test(s) in step 57. In step 56 and its possible iterations, 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 process 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 process 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 is produced of one of the image portions 62 other than the first image portion 62.

[0118] In variant 240, step 44 is identical to step 44 of the rectification process 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 process 40 applied to the first portion of image 62 concluded positively, that is, concluded that the second image does indeed conform to 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 repetitions of steps 55, 56 and 57 are avoided, by using the result of the test of step 57 in the rectification process 40 applied to the first image portion 62. By proceeding in this way, it is assumed that the respective rectifications to be applied to the different image portions 62 are close to each other.

[0119] Step 55 of variant 240 is identical to step 55 of the rectification process 40. Step 56 of variant 240 is identical to step 56 of the rectification process 40 except that, in step 56 of variant 240, the transformation determined in the preceding step 55 is applied to a portion of image 62 other than the first portion of image 62. The portion of image 62 to which the transformation is applied in step 56 of variant 240 is the portion of image 62 that was used to determine this transformation by means of steps 43, 44 and 55.

[0120] Variant 240 does not include step 57 nor 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 variant 240. After implementing the rectification process 40 on the first image portion 62 and several implementations of variant 240, several second images are available. Each second image is associated with the position of the image portion 62 to which the transformation of step 56 was applied to obtain this second image.

[0122] In a step 65 of the rectification process 140, 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 portion of image 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 substrate surface 32. The piecewise straightening performed by the straightening process 140 is particularly advantageous when the substrate surface 32 is not flat or practically flat, for example, when the substrate surface 32 has at least one edge and / or at least one curve. In particular, the piecewise straightening performed by the straightening process 140 is particularly advantageous when the substrate surface 32 is no longer flat or practically flat, whereas it was during the printing of the overlay 21 and the replication 35. For example, this can occur when the substrate surface 32 is a face of a label which was glued onto a non-planar support after the printing of the overlay 21 and the replication 35 was carried out on this label.

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

[0125] A second variant of the rectification process 140 differs from the rectification process 140 in that it includes a step in which a two-dimensional interpolation of the affine transformations determined in the different steps 55 is determined.

[0126] The second variant of the rectification process 140 differs from the rectification process 140 also in that it includes a step which is an alternative step replacing step 65 and several of the iterations of steps 55. In this alternative step, 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 straightening process 40 is replaced by the straightening process according to the second embodiment in the straightening process 140 or in one of its variants.

[0128] According to variants, instead of the transformation in step 55, an approximation of this transformation is determined in step 55 and applied in step 56, in any of the processes and variants, namely the rectification process 40 according to the first mode, the rectification process according to the second mode, the rectification process 140 according to the third mode, and their variants. According to an advantageous variant, the approximation of the transformation is a linear transformation, which is determined numerically using a computer.

[0129] The rectification process 40 according to the first mode, the rectification process according to the second mode, the rectification process 140 according to the third mode, as well as their variants, are each capable of performing a rectification comprising a suppression of a perspective or a modification of a perspective, a positioning of the image according to a predefined angular orientation around an axis perpendicular to the plane of the image and / or a positioning of the image in predefined dimensions by enlargement or reduction.

[0130] In general, [Fig. 14] is a functional diagram illustrating an example of a computer system with which any embodiment and any variant can be implemented. In the example of [Fig. 14], a computer system 205 is a rectification system for obtaining a rectified 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 represented schematically, for example in the form of boxes and circles, at the same level of detail that is commonly used by persons of ordinary competence in the art to which this disclosure relates in communicating about computer architecture and computer system implementations.

[0131] The computer system 205 includes an input / output (I / O) subsystem 220 which may include a bus and / or one or more other communication mechanisms for communicating information and / or instructions between the 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 represented schematically in the drawings, for example, as lines, unidirectional arrows, or bidirectional arrows.

[0132] At least one processor 210 is coupled to the LO 220 subsystem for processing 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 integrated system or a 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 for electronically and digitally storing 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 instructions to be executed by the processor 210. Such instructions, when stored in a non-transient, computer-readable storage medium accessible to the processor 210, can 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 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 ROM Programmable memory (PROM) such as erasable PROM (EPROM) or electrically erasable PROM (EEPROM). A persistent storage unit 215 can 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 can be coupled to the I / O subsystem 220 to store information and instructions. Memory 215 is an example of non-transient, computer-readable media that can be used to store instructions and data which, when executed by the processor 210, cause the execution of computer-implemented methods to carry out 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 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, 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 to render or interpret commands for a graphical user interface (GUI, for "Graphics User Interface"), 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 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 a structured query language (SQL) or no SQL, an object store, a graph database, a flat file system, or any other data storage.

[0136] The computer system 205 can 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. Examples of displays that can be used in various embodiments include a touchscreen or a display Light-emitting diodes (LEDs), liquid crystal displays (LCDs), or electronic paper displays are used. The computer system 205 may include one or more other types of output devices 235, either in place of or in addition to a display device. Examples of other output devices 235 include printers, ticket printers, plotters, projectors, sound or video cards, loudspeakers, buzzers or piezoelectric 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 240 input devices include touch screens, microphones, fixed and video digital 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, like cellular transceivers or those known as "Wi-Fi" (trademark), radio frequency (RF) or infrared (IR), and global positioning system (GPS) transceivers.

[0138] Another type of input device is a control device 245, which can perform cursor control or other automated control functions such as navigating a graphical interface on a display screen, either alternatively or in addition to the input functions. The control device 245 can be a touchpad, a mouse, a trackball, or cursor direction keys to communicate direction information and control selections to the processor 210 and to control cursor movement on the screen 235. The input device can 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 shifter, or any other type of control device. A 240 input device 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, input device 240 and 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 counter, a valve, a solenoid, an actuator or a servomotor.

[0140] When the computer 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 computer 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 computer system 205, alone or in combination with other application-specific data, directed to the host 250 or server 255.

[0141] The computer system 205 can implement the techniques described herein by 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 function as a purpose-specific machine. In one embodiment, the techniques described herein are executed by the computer system 205 in response to the processor 210, which executes at least one sequence of at least one instruction contained in main memory 225.These instructions can be read from main memory 225 from another storage medium, such as memory 215. Executing the instruction sequences contained in main memory 225 causes the processor 210 to execute the steps of the process described in this document. In other embodiments, hardwired circuits may be used instead of, or in combination with, software instructions.

[0142] The term "storage medium," as used in this document, means any non-transient medium that stores data and / or instructions enabling a machine to operate in a specific manner. Such storage media may include non-volatile 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 transmission media, but can be used in conjunction with them. Transmission media participate in the transfer of information between storage media. For example, transmission media include coaxial cables, copper wires, and optical fibers, including the wires that constitute a bus in the I / O 220 subsystem. Transmission media can also take the form of acoustic or light waves, such as those generated during data communications by radio and infrared waves.

[0144] Various forms of media can be involved in transporting at least one sequence of at least one instruction to the processor 210 for execution. For example, the instructions can initially be transported on a magnetic disk or solid-state drive of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a communication 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 can receive the data over the communication 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 can receive data carried in a wireless or optical signal, and a suitable circuit can provide the data to the I / O subsystem 220, for example by placing the data on a bus. The I / O subsystem 220 carries the data to memory 225, from which the processor 210 retrieves and executes instructions. Instructions received by memory 225 may optionally be stored in 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 bidirectional data communication coupling to the network link(s) 265 that are directly or indirectly connected to at least one communication network, such than a 270 network or a public or private cloud on the Internet. For example, the 260 communication interface can be an Ethernet network interface, an Integrated Services Digital Network (ISDN) card, a cable modem, a satellite modem, or a modem to provide a data communication connection to a corresponding type of communication line, such as an Ethernet cable, a metallic cable of any type, a fiber optic line, or a telephone line. The 270 network broadly represents a local area network (LAN), a wide area network (WAN), a campus network, an Internet network, or any combination thereof.The 260 communication interface may include a LAN card to provide a data communication 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 260 communication interface 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 through at least one network to other data devices, using, for example, satellite or cellular technology known as "Wi-Fi" (registered trademark) or known as "BLUETOOTH" (registered trademark). For example, the network link 265 can provide a connection through a network 270 to a host computer 250.

[0147] In addition, the network link 265 can provide a connection via the network 270 or to other computing devices via interconnect devices and / or computers that are operated by an Internet Service Provider (ISP) 275. The ISP 275 provides data communication services via a global packet data communication network represented by the Internet 280. A server computer 255 can be coupled to the Internet 280. The server 255 broadly represents any computer, data center, virtual machine or virtual computing instance with or without a hypervisor, or computer running a containerized program system such as that known as "DOCKER" (registered trademark) or that known as "KUBERNETES" (registered trademark).Server 255 can represent an electronic digital service that is implemented using more than one computer or instance and is accessed and used by transmitting Web service requests, strings of Uniform Resource Locators (URLs) with parameters. in HTTP payloads (for "Hypertext Transfer Protocol"), API calls (for "Application Programming Interface"), application service calls, or other service calls. The 205 computer system and the 255 server can form elements of a distributed computing system that includes other computers, a processing cluster, a server farm, or another organization of computers that cooperate to perform tasks or run applications or services. The 255 server can have one or more sets of instructions that are organized as modules, methods, objects, functions, routines, or calls. The instructions can be organized as one or more computer programs, operating system services, or application programs.including mobile applications. The instructions may include an operating system and / or system software; one or more libraries to support multimedia, programming, or other functions; instructions or data protocol stacks to implement TCP / IP (Transmission Control Protocol / Internet Protocol), HTTP, or other communication protocols; file format processing instructions to parse or render files encoded using HTML (Hypertext Markup Language), XML (Extensible Markup Language), JPEG (Joint Photography Experts Group), MPEG (Moving Picture Experts Group),translated by a group of experts in moving images") or PNG (for "Portable Networks Graphie"); 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 255 server 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 a structured query language (SQL, for "Structured Query Language") or no SQL,an object store, a graphical database, a flat file system, or any other data storage.

[0148] The computer system 205 can send messages and receive data and instructions, including program code, via the or networks, network link 265 and communication interface 260. In the Internet example, a server 255 can transmit requested code for an application program via the Internet 280, the ISP 275, the local network 270 and the communication interface 260. The received code can be executed by the processor 210 as it is received, and / or stored in memory 215, or in other non-volatile memory for later execution.

[0149] The execution of instructions as described in this section may implement a process in the form of an instance of a running computer program consisting of program code and its current activity. Depending on the operating system (OS), a process may consist of multiple threads that execute instructions concurrently. In this context, a computer program is a passive collection of instructions, while a process may be the actual execution of those instructions. Several 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.Although each processor 210 or processor core executes only one task at a time, the computer system 205 can be programmed to implement multitasking to allow each processor to switch between running tasks without having to wait for each task to finish. In one embodiment, switching can occur when tasks perform input / output operations, when a task indicates that it is ready to switch over, or on hardware interrupts. Time-sharing can be implemented to enable a fast response to interactive user applications by rapidly switching contexts to give the impression of multiple processes running concurrently.In one embodiment, for reasons of security and reliability, an operating system may prevent direct communication between independent processes, by providing a strictly mediated and controlled interprocess communication functionality. Description 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 a rectification of an image of that surface.

[0151] According to the invention, this goal is achieved by means of a product comprising a support surface bearing 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 along a first predetermined translation vector and the third copy is a translation of the first copy along 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 superposition, can be rectified by means of a rectification process defined below.

[0153] The superposition forms a means provided on a surface to allow the rectification of an image of that surface. The invention offers greater freedom in designing a means provided on a support surface to allow the rectification of an image of that surface. In particular, the two-dimensional visual object at the basis 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 includes a message encryption using a graphical cipher. The invention offers considerable freedom of choice regarding this graphical cipher.

[0156] For example, the two-dimensional visual object includes a message encoded using a graphic encoding. The invention offers considerable freedom of choice regarding this graphic encoding.

[0157] According to one possibility of the invention, the superimposition is barely or practically invisible to the average human being. This is particularly advantageous when the two-dimensional visual object includes information encoded using graphic coding and / or information encrypted using graphic coding. Indeed, the encoded or encrypted information is then difficult to recognize as such, to locate, and / or to intentionally damage. This is all the more important when the encoded or encrypted information has an anti-counterfeiting function. Conversely, QR codes are easily recognizable. For example, there are known counterfeit items bearing QR codes that 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 perform an anti-counterfeiting function.In such cases, the damage can be carried out by counterfeiters in such a way as to appear accidental when it is in fact intentional.

[0158] For example, the two-dimensional visual object includes an element that is meaningful to a human being and that, for example, is chosen from a symbol, a mark of commerce, a character of a script and / or a representation for example of a landscape, a living being, a natural object or a manufactured product.

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

[0160] In some embodiments, the support surface comprises a background, the overlay including at least one shade making at least part of at least one of the first, second and third specimens discernible from the background.

[0161] In embodiments, among the first, second and third examples, at least the first and second examples overlap each other in the product.

[0162] Thus, it is possible to place the first and second copies in a small area. It is also difficult, if not impossible, to intentionally damage the first copy without damaging the second copy.

[0163] In some 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 discrete locations, which helps to make the superposition barely or practically invisible to an average human being.

[0165] When the two-dimensional visual object comprises a scattering of discrete locations within the support surface and, among the first, second and third copies, at least the first copy and the second copy overlap each other, it is further possible to use only a small fraction of the overlap to perform image rectification by means of the rectification process defined below.

[0166] When the two-dimensional visual object comprises a scattering of discrete locations within the substrate surface, some of the discrete locations may together contain coded and / or encrypted information, such as an anti-counterfeiting code. For example, the discrete locations may be grouped into two sets: a first set of discrete locations encoding or encrypting information, and a second set of discrete locations arranged relative to each other so as not to include any information. In this way, the coded or encrypted information can be concealed within the scattering of discrete locations. A third party unaware of the relative arrangement of the first and second sets cannot determine which part of the scattering of discrete locations must be damaged to render the coded or encrypted information inaccessible.This is of great interest when the coded and / or encrypted information is an anti-counterfeiting code.

[0167] In embodiments, the product support surface carries a predetermined keying feature to check whether a processing of an image taken by photograph of at least a part of the support surface is or is not a rectification of that image taken by photograph, at least a part of the keying feature 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 computer-implemented rectification method for obtaining 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 is obtained of at least a part of the support surface such that this first image includes at least a part of the superposition, b) at least one phase autocorrelation is produced of the first image, 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) we determine a transformation or an approximation of this transformation which transforms a composite tuple from the correlation vectors into a composite tuple from at least two known reference vectors for the superposition, and e) we apply the transformation or approximation to at least a part of the first image to obtain a second image.

[0169] The straightening process defined above is able to straighten, in a predefined position, an image of the support surface of a product as defined above.

[0170] In some embodiments, the straightening process includes a step following step e) and in which:

[0171] f / a test is applied to the second image to determine whether the second image conforms to a rectification of at least part of the first image into a predefined position.

[0172] In embodiments, if the test in step f) determines that the second image does not conform to a rectification of at least part of the first image into the predefined position, the following steps are 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 part of the first image into the predefined position.

[0173] In embodiments, in the test of the rectification process, in the second image, a search is carried out by comparison to a memorized error and, if an element comparable to the memorized error is present in the second image according to the search, it is concluded that the second image conforms to a rectification of at least a part of the first image in the predefined position.

[0174] In embodiments, step c) includes at least substeps in which: cl) at least four peaks are identified as being associatable into first and second pairs, each of which corresponds to the phase correlation between two of the first, second, and third examples, c2) we determine the two correlation vectors as each representing 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 performed by swapping the left and right halves of the phase autocorrelation with each other, and by swapping the lower and upper halves of the phase autocorrelation with each other. - a principal peak is determined to be the most intense peak in the rearrangement, - the rearrangement is subjected to intensity filtering capable of isolating, as the most intense, the principal peak and all the peaks that can be associated into pairs, each corresponding to a phase correlation between two copies of the two-dimensional visual object, - among all the peaks that can be associated into pairs, we choose the first and second pairs of peaks as each consisting of two peaks that are symmetrical with respect to the main peak, on the rearrangement.

[0176] In embodiments, in substep c2), the two correlation vectors are determined as each representing the position of one of the peaks of one of the first and second pairs with respect to the main peak on the rearrangement.

[0177] In embodiments, step a) comprises substeps 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 in 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 performed 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 rectification process 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 portion of the image from which said any second image was obtained by one of the iterations of steps b), c), d) and e).

[0179] Thus, piecewise straightening is performed. Piecewise straightening is particularly advantageous when the substrate surface is not flat or practically flat, for example, when the substrate surface has at least one edge and / or at least one curve. In particular, piecewise straightening is especially advantageous when the substrate surface is no longer flat or practically flat, whereas it was flat when the overlay was printed on it. For example, this can occur when the substrate surface is a face of a label that has been affixed to a non-planar substrate after the overlay 21 has been printed on that label.

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

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

[0182] In embodiments, step a) comprises substeps 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 in 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 process 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 in 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 performed. Piecewise straightening is particularly advantageous when the substrate surface is not flat or practically flat, for example, when the substrate surface has at least one edge and / or at least one curve. In particular, piecewise straightening is especially advantageous when the substrate surface is no longer flat or practically flat, whereas it was flat when the overlay was printed on it. For example, this can occur when the substrate surface is a face of a label that has been affixed to a non-planar substrate after the overlay 21 has been printed on that label.

[0184] In some embodiments, the straightening process includes steps following step a) and in which: - by removing at least the first instance in the first image by colorimetric filtering, we obtain a simplified image comprising only the second and third instances among the instances of the two-dimensional visual object, - we produce a phase autocorrelation of the simplified image, while, in step d), the tuple of two correlation vectors includes a differentiated correlation vector which is identified in step c) as corresponding to the correlation between the second and third instances in the phase autocorrelation of the simplified image.

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

[0186] In some 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 color filtering that does not remove the second and third copies from 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 color filtering that does not remove the first and third copies from the first image.According to this possibility, the at least one phase autocorrelation in step c) comprises two phase autocorrelations, namely a phase autocorrelation of the first image as it has undergone the first colorimetric filtering that removed the first instance, and another phase autocorrelation of the first image as it has undergone the second colorimetric filtering that removed the second instance. According to this possibility, in step c) the at least two correlation vectors are identified in two phase autocorrelations, which are two. The two phase autocorrelations of the first image are distinguished from each other by the fact that different colorimetric filters are applied to the first image before one of the phase autocorrelations and before the other phase correlation. These colorimetric filters differ in that one removes the first instance in the first image, leaving the second and third instances, while the other removes the second instance in the first image, leaving both the first and second instances.

[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 photographic support surface that can be rectified, characterized in that it comprises at least steps in which: - a two-dimensional visual object is provided, - we form a superposition in which we combine at least first, second and third copies of the two-dimensional visual object such that the second copy is a translation of the first copy along 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, along a second predetermined translation vector different from the first predetermined translation vector, and - the support surface is equipped with the superposition.

[0189] In embodiments, the production process is a process for 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 at least one processor, lead to the implementation of the following steps: a) a first image is obtained of at least a part of the support surface such that this first image includes at least a part of the superposition, b) at least one phase autocorrelation is produced of the first image, 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) we determine a transformation or an approximation of this transformation which transforms a composite tuple from the correlation vectors into a composite tuple from at least two known reference vectors for the superposition, and e) we apply the transformation or approximation to at least a 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 following steps: a) a first image is obtained of at least a part of the support surface such that this first image includes at least a part of the superposition, b) at least one phase autocorrelation is produced of the first image, 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) we determine a transformation or an approximation of this transformation which transforms a composite tuple from the correlation vectors into a composite tuple from at least two known reference vectors for the superposition, and e) we apply the transformation or approximation to at least a 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

Demands

1. Product, characterized in that it comprises a support surface (32) bearing an overlay (21) in which at least first, second and third copies (14, 17, 18) of a two-dimensional visual object (13) are combined such that the second copy (17) is a translation of the first copy (14) along a first predetermined translation vector (VI) and the third copy (18) is a translation of the first copy (14) along a second predetermined translation vector (V2) different from the first predetermined translation vector (VI) and in which the two-dimensional visual object (13) comprises a scattering of discrete locations (15) within the support surface (32).

2. Product according to claim 1, wherein, among the first, second and third examples (14, 17, 18), at least the first example (14) and the second example (17) overlap one another.

3. Product according to any one of claims 1 or 2, wherein the support surface (32) has a predetermined keying device (58) to check whether a processing of an image taken by photograph of at least a part of the support surface (32) is or is not a rectification of that image taken by photograph, at least a part of the keying device (58) being part of at least one of the first, second and third examples (14, 17, 18) or being distinct from the first, second and third examples (14, 17, 18).

4. A computer-implemented rectification method for obtaining a rectified image of a substrate surface (32) of a product according to any one of claims 1 to 3, characterized in that it comprises at least steps in which: a) at least one first image (37; 62) of at least a portion of the substrate surface (32) is obtained such that this first image (37; 62) includes 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 corresponding each to the phase correlation between two of the first, second and third copies (14, 17, 18), d) we determine a transformation or an approximation of this transformation which transforms a composite tuple from the correlation vectors (Cl, C2, C3) into a composite tuple from at least two reference vectors (CIO, C20) known for the superposition (21), and e) we apply the transformation or approximation to at least a part of the first image (37; 62) to obtain a second image.

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

6. Rectification method according to claim 5, wherein, if the test in step f) determines that the second image does not conform to a rectification of at least a part of the first image (37; 62) in the predefined position, the following are repeated: - step d) replacing the tuple composed from the reference vectors (C1, C20, C30) with a new tuple composed from the reference vectors (C1, C20, C30), or replacing the tuple composed from the correlation vectors (Cl, C2, C3) with a new tuple composed from the correlation vectors (Cl, C2, C3), - step e), and - step f), until step f) determines that the second image conforms to a rectification of at least a part of the first image (37; 62) in the predefined position.

7. A rectification method according to any one of claims 5 and 6, in the test wherein, in the second image, a search is carried out by comparison to a stored key (58) and, if an element comparable to the stored key (58) is present in the second image according to the search, it is concluded that the second image conforms to a rectification of at least a part of the first image (37; 62) in the predefined position.

8. A rectification method according to any one of claims 4 to 7, wherein step c) comprises at least substeps in which: c1) at least four peaks (P20, P21, P30, P31, P40, P41) are identified as being associatable into first and second pairs, each of which corresponds to the phase correlation between two of the first, second and third examples (14, 17, 18), c2) the two correlation vectors (C1, 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.

9. A rectification method according to claim 8, in substep c1) wherein: - a rearrangement (52) is carried out by interchanging a left half and a right half of the phase autocorrelation with each other and by interchanging a lower half and an upper half of the phase autocorrelation with each other, - a principal peak (P10) is determined to be the most intense peak on the rearrangement (52), - the rearrangement (52) is subjected to intensity filtering capable of isolating, as the most intense, the principal peak (P10) and all the peaks (P20, P21, P30, P31, P40, P41) that can be associated into pairs, each corresponding to a phase correlation between two copies of the two-dimensional visual object (13), - among all the peaks (P20, P21, P30, P31, P40, P41) can be paired,The first and second pairs of peaks are chosen as each consisting of two peaks symmetrical with respect to the main peak (P10), on the (52) rearrangement.

10. Rectification method according to claim 9, in substep c2) wherein 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 with respect to the main peak (P10) on the rearrangement (52).

11. A straightening method according to any one of claims 4 to 10, wherein step a) comprises substeps 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) in 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 process comprising a step in which: g) 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 (62) from which said any second image was obtained by one of the iterations of steps b), c), d) and e).

12. A straightening method according to claim 11, 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), we apply two-dimensional interpolation to the initial image (61).

13. A rectification method according to any one of claims 4 to 10, wherein step a) comprises substeps in which: a) 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) in 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) performed 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 such that any second image among the second images have the same position according to the arrangement as the portion of image (62) from which said second image was obtained by one of the iterations of steps b), c), d) and

14. ej. A rectification method according to any one of claims 4 to 13, comprising steps following step a) and wherein: - by removing 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.

15. A straightening method according to any one of claims 4 to 14, wherein 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.

16. A method for producing a photographic support surface (32) that can be captured in a rectifiable image, characterized in that it comprises at least steps in which: - a two-dimensional visual object (13) is provided, in which the two-dimensional visual object (13) comprises a scattering of discrete locations (15), - 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 such that the second copy (17) is a translation of the first copy (14) along a first predetermined translation vector (VI), in the superposition plane, and the third copy (18) is a translation of the first copy (14) in the superposition plane, along a second predetermined translation vector (V2) different from the first predetermined translation vector (VI), and - the support surface (32) is endowed with the superposition (21).

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

18. Rectification system for obtaining a rectified image of a support surface (32) of a product according to any one of claims 1 to 3, 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 of the steps: a) a first image (37; 62) of at least a part of the support surface (32) is obtained such that this first image (37; 62) includes at least a 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 composite tuple from the correlation vectors (Cl, C2, C3) into a composite tuple from at least two reference vectors (C10, C20) known for the superposition (21), and e) the transformation or approximation is applied to at least a part of the first image (37; 62) to obtain a second image.;

19. A computer program for obtaining a rectified image of a support surface (32) of a product according to any one of claims 1 to 3, 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 a part of the support surface (32) is obtained such that this first image (37; 62) includes at least a 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 (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 composite tuple from the correlation vectors (Cl, C2, C3) into a composite tuple from at least two reference vectors (C10, C20) known for the superposition (21), and (e) the transformation or approximation is applied to at least a part of the first image (37; 62) to obtain a second image.

20. Computer-readable storage medium characterized in that it stores the instructions of the computer program according to claim 19.